(function($){
var _1=$.ajax;
var _2={};
var _3=[];
var _4=[];
$.ajax=function(_5){
_5=jQuery.extend(_5,jQuery.extend({},jQuery.ajaxSettings,_5));
var _6=_5.port;
switch(_5.mode){
case "abort":
if(_2[_6]){
_2[_6].abort();
}
return _2[_6]=_1.apply(this,arguments);
case "queue":
var _7=_5.complete;
_5.complete=function(){
if(_7){
_7.apply(this,arguments);
}
jQuery([_1]).dequeue("ajax"+_6);
};
jQuery([_1]).queue("ajax"+_6,function(){
_1(_5);
});
return;
case "sync":
var _8=_3.length;
_3[_8]={error:_5.error,success:_5.success,complete:_5.complete,done:false};
_4[_8]={error:[],success:[],complete:[]};
_5.error=function(){
_4[_8].error=arguments;
};
_5.success=function(){
_4[_8].success=arguments;
};
_5.complete=function(){
_4[_8].complete=arguments;
_3[_8].done=true;
if(_8==0||!_3[_8-1]){
for(var i=_8;i<_3.length&&_3[i].done;i++){
if(_3[i].error){
_3[i].error.apply(jQuery,_4[i].error);
}
if(_3[i].success){
_3[i].success.apply(jQuery,_4[i].success);
}
if(_3[i].complete){
_3[i].complete.apply(jQuery,_4[i].complete);
}
_3[i]=null;
_4[i]=null;
}
}
};
}
return _1.apply(this,arguments);
};
})(jQuery);

