(function(c){var b,a;c.fn.ajaxify=function(d){var e=c.extend({},c.fn.ajaxify.defaults,d);return this.each(function(){var f=c(this);f.submit(function(h){h.preventDefault();if(c().validate&&c(this).data("validating")&&!c(this).data("validated")){return}c.fn.ajaxify.btnDisable.call(this,e);var i=this.action;var g={};f.find("input[type=text], input[type=password], input[type=hidden], textarea, select").each(function(){g[this.name]=this.value}).end().find("input[type=radio], input[type=checkbox]").each(function(){if(this.checked){g[this.name]=this.value}});var j=c.ajax({type:"POST",url:i,data:g,success:function(k){if(j.getResponseHeader("success")=="true"){e.success.call(f[0],j,k)}else{e.failure.call(f[0],j,k);c.fn.ajaxify.btnEnable()}},error:function(k){e.failure.call(f[0],j,k);c.fn.ajaxify.btnEnable()}})})})};c.fn.ajaxify.defaults={btnCSS:{background:"#cccccc",cursor:"text"},btnText:"",success:function(){},failure:function(){}};c.fn.ajaxify.btnDisable=function(d){b=c(this).find("input[type=submit]");a=b.clone().insertAfter(b);b.hide();a.css(d.btnCSS).attr("disabled","disabled");if(d.btnText){a.attr("value",d.btnText)}};c.fn.ajaxify.btnEnable=function(){a.remove();b.show()}})(jQuery);