(function(D){var C=D.ajax;var A={};var E=[];var B=[];D.ajax=function(H){H=jQuery.extend(H,jQuery.extend({},jQuery.ajaxSettings,H));var G=H.port;switch(H.mode){case"abort":if(A[G]){A[G].abort()}return A[G]=C.apply(this,arguments);case"queue":var F=H.complete;H.complete=function(){if(F){F.apply(this,arguments)}jQuery([C]).dequeue("ajax"+G)};jQuery([C]).queue("ajax"+G,function(){C(H)});return ;case"sync":var I=E.length;E[I]={error:H.error,success:H.success,complete:H.complete,done:false};B[I]={error:[],success:[],complete:[]};H.error=function(){B[I].error=arguments};H.success=function(){B[I].success=arguments};H.complete=function(){B[I].complete=arguments;E[I].done=true;if(I==0||!E[I-1]){for(var J=I;J<E.length&&E[J].done;J++){if(E[J].error){E[J].error.apply(jQuery,B[J].error)}if(E[J].success){E[J].success.apply(jQuery,B[J].success)}if(E[J].complete){E[J].complete.apply(jQuery,B[J].complete)}E[J]=null;B[J]=null}}}}return C.apply(this,arguments)}})(jQuery)