jQuery(function(d){var b=d("meta[name=csrf-token]").attr("content"),e=d("meta[name=csrf-param]").attr("content");d.fn.extend({triggerAndReturn:function(f,h){var g=new d.Event(f);this.trigger(g,h);return g.result!==false},callRemote:function(){var g=this,h=g.is("form")?g.serializeArray():[],i=g.attr("method")||g.attr("data-method")||"GET",f=g.attr("action")||g.attr("href");if(f===undefined){throw"No URL specified for remote call (action or href must be present)."}else{if(g.triggerAndReturn("ajax:before")){d.ajax({url:f,data:h,dataType:"script",type:i.toUpperCase(),beforeSend:function(j){g.trigger("ajax:loading",j)},success:function(k,j,l){g.trigger("ajax:success",[k,j,l])},complete:function(j){g.trigger("ajax:complete",j)},error:function(l,j,k){g.trigger("ajax:failure",[l,j,k])}})}g.trigger("ajax:after")}}});d("a[data-confirm],input[data-confirm]").live("click",function(){var f=d(this);if(f.triggerAndReturn("confirm")){if(!confirm(f.attr("data-confirm"))){return false}}});d("form[data-remote]").live("submit",function(f){d(this).callRemote();f.preventDefault()});d("a[data-remote],input[data-remote]").live("click",function(f){d(this).callRemote();f.preventDefault()});d("a[data-method]:not([data-remote])").live("click",function(j){var i=d(this),g=i.attr("href"),k=i.attr("data-method"),h=d('<form method="post" action="'+g+'"></form>'),f='<input name="_method" value="'+k+'" type="hidden" />';if(e!=null&&b!=null){f+='<input name="'+e+'" value="'+b+'" type="hidden" />'}h.hide().append(f).appendTo("body");j.preventDefault();h.submit()});var a="input[data-disable-with]";var c="form[data-remote]:has("+a+")";d(c).live("ajax:before",function(){d(this).find(a).each(function(){var f=d(this);f.data("enable-with",f.val()).attr("value",f.attr("data-disable-with")).attr("disabled","disabled")})});d(c).live("ajax:after",function(){d(this).find(a).each(function(){var f=d(this);f.removeAttr("disabled").val(f.data("enable-with"))})})});