(function(a){var b=a.ajax;var c={};var d=[];var e=[];a.ajax=function(a){a=jQuery.extend(a,jQuery.extend({},jQuery.ajaxSettings,a));var f=a.port;switch(a.mode){case"abort":if(c[f]){c[f].abort()}return c[f]=b.apply(this,arguments);case"queue":var g=a.complete;a.complete=function(){if(g)g.apply(this,arguments);jQuery([b]).dequeue("ajax"+f);};jQuery([b]).queue("ajax"+f,function(){b(a)});return;case"sync":var h=d.length;d[h]={error:a.error,success:a.success,complete:a.complete,done:false};e[h]={error:[],success:[],complete:[]};a.error=function(){e[h].error=arguments};a.success=function(){e[h].success=arguments};a.complete=function(){e[h].complete=arguments;d[h].done=true;if(h==0||!d[h-1])for(var a=h;a<d.length&&d[a].done;a++){if(d[a].error)d[a].error.apply(jQuery,e[a].error);if(d[a].success)d[a].success.apply(jQuery,e[a].success);if(d[a].complete)d[a].complete.apply(jQuery,e[a].complete);d[a]=null;e[a]=null}}}return b.apply(this,arguments)}})(jQuery)
