-
Notifications
You must be signed in to change notification settings - Fork 2
/
jquery-ahm.min.js
1 lines (1 loc) · 1.93 KB
/
jquery-ahm.min.js
1
if(typeof jQuery.ahm==="undefined"){jQuery.extend({ahm:function(c,b){var d={url:c,dataType:"json"};if(b){$.extend(d,b)}var e=$.ajax(d);e.done(function(f){$.each(f,function(h,j){var i=h.split("/");var g=i[0];var k=i[1]?i[1]:"html";a(g,k,j)})});var a=function(f,j,h){if(typeof h==="object"){$.each(h,function(k,l){if(typeof l==="string"&&l.indexOf("function")===0){h[k]=window["eval"]("["+l+"]")[0]}else{if(l=="this"){h[k]=b.context}}})}if(f=="this"){f=b.context}if(h=="this"){h=b.context}var g;if(f){g=$(f)}else{if(window[j]){g=window}else{if(jQuery[j]){g=jQuery}else{if(j.indexOf(".")!==-1){var i=j.split(".");g=window[i[0]];j=i[1]}else{alert("ahm: undefined callback="+j);return}}}}if(typeof g[j]==="function"){if($.isArray(h)){g[j]["apply"](g,h)}else{g[j](h)}}else{g[j]=h}};return false},ahm_form:function(c,a){c=$(c);if(c.is("form")==false){c=c.closest("form")}var d=c.find(":submit").not('[disabled="disabled"]');var b={type:c.attr("method"),data:c.serialize(),context:c,beforeSend:function(f,e){d.attr("disabled","disabled")},complete:function(e,f){d.removeAttr("disabled")}};$.extend(b,a);return $.ahm(c.attr("action"),b)},run_loaded:[],run:function(){var c=[].slice.apply(arguments);var b=c.shift();var e=c.shift();if(b[0]===":"){b="/js/"+b.substring(1)+".js"}if(typeof e!=="function"){var d=window;var a=e;e=function(){var f=a.indexOf(".");if(f!=-1){d=window[a.substr(0,f)];a=a.substr(f+1)}if(typeof d[a]["apply"]==="function"){d[a]["apply"](d,c)}else{d[a](c[0])}}}if($.inArray(b,$.run_loaded)!=-1){e();return}$.run_loaded.push(b);$.getScript(b).done(e)}});$(function(){$("body").delegate("a.ahm","click",function(){return $.ahm(this.href,{context:this})});$("body").delegate("form.ahm","submit",function(){return $.ahm_form(this)});$("div.ahm,span.ahm").each(function(){var a=$(this);if(a.attr("data-url")){if(a.attr("data-delay")){setTimeout(function(){$.ahm(a.attr("data-url"),{context:a})},a.attr("data-delay"))}else{$.ahm(a.attr("data-url"),{context:a})}}})})};