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