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

