
(function($){var _val=$.fn.val;var slice=[].slice;$.fn.autoclear=function(options){var settings={defaultClass:'default',otherClass:'other',defaultValue:'',useDefaultOnReset:true,clearDefaultOnSubmit:true};if(arguments.length){switch(typeof options){case"string":settings.defaultClass=options;break;case"object":settings=$.extend(settings,options);break;};};this.filter('input:text,textarea').each(function(){var self=$(this);var form=self.closest('form');var currentValue=$.trim(val(self));var defaultValue=self.attr('title');if(isBlank(defaultValue)){if(currentValue===''){defaultValue=settings.defaultValue;}else{defaultValue=currentValue;};};self.data('default.autoclear',defaultValue);form.bind('reset.autoclear',function(){var expectedValue;if(settings.useDefaultOnReset){expectedValue='';}else{expectedValue=self.attr('defaultValue');};self.val(expectedValue);});if(settings.useDefaultOnReset||isBlank($.trim(self.attr('defaultValue')))){self.attr('defaultValue',defaultValue).val(currentValue);};if(settings.clearDefaultOnSubmit){form.bind('submit.autoclear',function(){self.trigger('focus.autoclear');});};}).bind({'focus.autoclear':function(){var self=$(this);if(self.val()===''){val(self,'').trigger('other.autoclear');};},'blur.autoclear':function(){var self=$(this);var value=$.trim(self.val());if(value===''){self.trigger('default.autoclear');}else{self.trigger('other.autoclear');};},'default.autoclear':function(){var self=$(this).removeClass(settings.otherClass).addClass(settings.defaultClass);val(self,self.data('default.autoclear'));},'other.autoclear':function(){var self=$(this);self.removeClass(settings.defaultClass).addClass(settings.otherClass);}}).trigger('blur.autoclear');return this;};$.fn.val=function(){var result=_val.apply(this,arguments);var defaultValue;if(typeof result==="string"){defaultValue=this.first().data('default.autoclear');if(defaultValue!==undefined&&result===defaultValue){result='';};}else{this.each(function(){var self=$(this);var defaultValue=self.data('default.autoclear');if(defaultValue!==undefined&&self.val()===''){self.trigger('default.autoclear');}else{self.trigger('other.autoclear');};});};return result;};function isBlank(prop){return prop===undefined||prop==='';};function val(el){return _val.apply(el,slice.call(arguments,1));};}(jQuery));
