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