(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)
