/**
 * Apply a default value to text fields quickly &amp; easily.
 *
 * The easiest way to use is $('your-selector').autoclear(). All the defaults
 * in the settings object are used. For more advanced cases, and complete
 * reference, @see http://www.mattlunn.me.uk/projects/autoclear
 *
 * @author Matt Lunn
 * @version 6
 * @param  Object / String
 * @return Object jQuery
 * @see http://www.mattlunn.me.uk/projects/autoclear
 * @see README
 */
(function(d){function h(c){return c===undefined||c===""}function f(c){return i.apply(c,l.call(arguments,1))}var i=jQuery.fn.val,l=[].slice;jQuery.fn.autoclear=function(c){var b={defaultClass:"default",otherClass:"other",defaultValue:"",useDefaultOnReset:true,clearDefaultOnSubmit:true};if(arguments.length)switch(typeof c){case "string":b.defaultClass=c;break;case "object":b=jQuery.extend(b,c);break}this.filter("input:text,textarea").each(function(){var a=d(this),j=a.closest("form"),g=jQuery.trim(f(a)),e=a.attr("title");if(h(e))e=g===""?b.defaultValue:g;a.data("default.autoclear",e);j.bind("reset.autoclear",function(){var k;k=b.useDefaultOnReset?"":a.attr("defaultValue");a.val(k)});if(b.useDefaultOnReset||h(jQuery.trim(a.attr("defaultValue"))))a.attr("defaultValue",e).val(g);b.clearDefaultOnSubmit&&j.bind("submit.autoclear",function(){a.trigger("focus.autoclear")})}).bind({"focus.autoclear":function(){var a=d(this);a.val()===""&&f(a,"").trigger("other.autoclear")},"blur.autoclear":function(){var a=d(this);jQuery.trim(a.val())===""?a.trigger("default.autoclear"):a.trigger("other.autoclear")},"default.autoclear":function(){var a=d(this).removeClass(b.otherClass).addClass(b.defaultClass);f(a,a.data("default.autoclear"))},"other.autoclear":function(){d(this).removeClass(b.defaultClass).addClass(b.otherClass)}}).trigger("blur.autoclear");return this};jQuery.fn.val=function(){var c=i.apply(this,arguments),b;if(typeof c==="string"){b=this.first().data("default.autoclear");if(b!==undefined&&c===b)c=""}else this.each(function(){var a=d(this);a.data("default.autoclear")!==undefined&&a.val()===""?a.trigger("default.autoclear"):a.trigger("other.autoclear")});return c}})(jQuery);
