DocumentServer/NodeJsProjects/Common/sources/sockjs-0.3.min.js
2015-04-28 17:59:00 +03:00

1687 lines
55 KiB
JavaScript

/*
* (c) Copyright Ascensio System SIA 2010-2015
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
var JSON;
JSON || (JSON = {}),
function () {
function str(a, b) {
var c, d, e, f, g = gap,
h, i = b[a];
i && typeof i == "object" && typeof i.toJSON == "function" && (i = i.toJSON(a)),
typeof rep == "function" && (i = rep.call(b, a, i));
switch (typeof i) {
case "string":
return quote(i);
case "number":
return isFinite(i) ? String(i) : "null";
case "boolean":
case "null":
return String(i);
case "object":
if (!i) {
return "null";
}
gap += indent,
h = [];
if (Object.prototype.toString.apply(i) === "[object Array]") {
f = i.length;
for (c = 0; c < f; c += 1) {
h[c] = str(c, i) || "null";
}
e = h.length === 0 ? "[]" : gap ? "[\n" + gap + h.join(",\n" + gap) + "\n" + g + "]" : "[" + h.join(",") + "]",
gap = g;
return e;
}
if (rep && typeof rep == "object") {
f = rep.length;
for (c = 0; c < f; c += 1) {
typeof rep[c] == "string" && (d = rep[c], e = str(d, i), e && h.push(quote(d) + (gap ? ": ": ":") + e));
}
} else {
for (d in i) {
Object.prototype.hasOwnProperty.call(i, d) && (e = str(d, i), e && h.push(quote(d) + (gap ? ": ": ":") + e));
}
}
e = h.length === 0 ? "{}" : gap ? "{\n" + gap + h.join(",\n" + gap) + "\n" + g + "}" : "{" + h.join(",") + "}",
gap = g;
return e;
}
}
function quote(a) {
escapable.lastIndex = 0;
return escapable.test(a) ? '"' + a.replace(escapable, function (a) {
var b = meta[a];
return typeof b == "string" ? b : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
}) + '"' : '"' + a + '"';
}
function f(a) {
return a < 10 ? "0" + a : a;
}
"use strict",
typeof Date.prototype.toJSON != "function" && (Date.prototype.toJSON = function (a) {
return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + f(this.getUTCMonth() + 1) + "-" + f(this.getUTCDate()) + "T" + f(this.getUTCHours()) + ":" + f(this.getUTCMinutes()) + ":" + f(this.getUTCSeconds()) + "Z": null;
},
String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (a) {
return this.valueOf();
});
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap, indent, meta = {
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
rep;
typeof JSON.stringify != "function" && (JSON.stringify = function (a, b, c) {
var d;
gap = "",
indent = "";
if (typeof c == "number") {
for (d = 0; d < c; d += 1) {
indent += " ";
}
} else {
typeof c == "string" && (indent = c);
}
rep = b;
if (!b || typeof b == "function" || typeof b == "object" && typeof b.length == "number") {
return str("", {
"": a
});
}
throw new Error("JSON.stringify");
}),
typeof JSON.parse != "function" && (JSON.parse = function (text, reviver) {
function walk(a, b) {
var c, d, e = a[b];
if (e && typeof e == "object") {
for (c in e) {
Object.prototype.hasOwnProperty.call(e, c) && (d = walk(e, c), d !== undefined ? e[c] = d : delete e[c]);
}
}
return reviver.call(a, b, e);
}
var j;
text = String(text),
cx.lastIndex = 0,
cx.test(text) && (text = text.replace(cx, function (a) {
return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
}));
if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
j = eval("(" + text + ")");
return typeof reviver == "function" ? walk({
"": j
},
"") : j;
}
throw new SyntaxError("JSON.parse");
});
} ();
SockJS = function () {
var a = document,
b = window,
c = {},
d = function () {};
d.prototype.addEventListener = function (a, b) {
this._listeners || (this._listeners = {}),
a in this._listeners || (this._listeners[a] = []);
var d = this._listeners[a];
c.arrIndexOf(d, b) === -1 && d.push(b);
return;
},
d.prototype.removeEventListener = function (a, b) {
if (! (this._listeners && a in this._listeners)) {
return;
}
var d = this._listeners[a],
e = c.arrIndexOf(d, b);
if (e !== -1) {
d.length > 1 ? this._listeners[a] = d.slice(0, e).concat(d.slice(e + 1)) : delete this._listeners[a];
return;
}
return;
},
d.prototype.dispatchEvent = function (a) {
var b = a.type,
c = Array.prototype.slice.call(arguments, 0);
this["on" + b] && this["on" + b].apply(this, c);
if (this._listeners && b in this._listeners) {
for (var d = 0; d < this._listeners[b].length; d++) {
this._listeners[b][d].apply(this, c);
}
}
};
var e = function (a, b) {
this.type = a;
if (typeof b != "undefined") {
for (var c in b) {
if (!b.hasOwnProperty(c)) {
continue;
}
this[c] = b[c];
}
}
};
e.prototype.toString = function () {
var a = [];
for (var b in this) {
if (!this.hasOwnProperty(b)) {
continue;
}
var c = this[b];
typeof c == "function" && (c = "[function]"),
a.push(b + "=" + c);
}
return "SimpleEvent(" + a.join(", ") + ")";
};
var f = function (a) {
var b = this;
b._events = a || [],
b._listeners = {};
};
f.prototype.emit = function (a) {
var b = this;
b._verifyType(a);
if (b._nuked) {
return;
}
var c = Array.prototype.slice.call(arguments, 1);
b["on" + a] && b["on" + a].apply(b, c);
if (a in b._listeners) {
for (var d = 0; d < b._listeners[a].length; d++) {
b._listeners[a][d].apply(b, c);
}
}
},
f.prototype.on = function (a, b) {
var c = this;
c._verifyType(a);
if (c._nuked) {
return;
}
a in c._listeners || (c._listeners[a] = []),
c._listeners[a].push(b);
},
f.prototype._verifyType = function (a) {
var b = this;
c.arrIndexOf(b._events, a) === -1 && c.log("Event " + JSON.stringify(a) + " not listed " + JSON.stringify(b._events) + " in " + b);
},
f.prototype.nuke = function () {
var a = this;
a._nuked = !0;
for (var b = 0; b < a._events.length; b++) {
delete a[a._events[b]];
}
a._listeners = {};
};
var g = "abcdefghijklmnopqrstuvwxyz0123456789_";
c.random_string = function (a, b) {
b = b || g.length;
var c, d = [];
for (c = 0; c < a; c++) {
d.push(g.substr(Math.floor(Math.random() * b), 1));
}
return d.join("");
},
c.random_number = function (a) {
return Math.floor(Math.random() * a);
},
c.random_number_string = function (a) {
var b = ("" + (a - 1)).length,
d = Array(b + 1).join("0");
return (d + c.random_number(a)).slice(-b);
},
c.getOrigin = function (a) {
a += "/";
var b = a.split("/").slice(0, 3);
return b.join("/");
},
c.isSameOriginUrl = function (a, c) {
return c || (c = b.location.href),
a.split("/").slice(0, 3).join("/") === c.split("/").slice(0, 3).join("/");
},
c.getParentDomain = function (a) {
if (/^[0-9.]*$/.test(a)) {
return a;
}
if (/^\[/.test(a)) {
return a;
}
if (!/[.]/.test(a)) {
return a;
}
var b = a.split(".").slice(1);
return b.join(".");
},
c.objectExtend = function (a, b) {
for (var c in b) {
b.hasOwnProperty(c) && (a[c] = b[c]);
}
return a;
};
var h = "_jp";
c.polluteGlobalNamespace = function () {
h in b || (b[h] = {});
},
c.closeFrame = function (a, b) {
return "c" + JSON.stringify([a, b]);
},
c.userSetCode = function (a) {
return a === 1000 || a >= 3000 && a <= 4999;
},
c.countRTO = function (a) {
var b;
return a > 100 ? b = 3 * a : b = a + 200,
b;
},
c.log = function () {
b.console && console.log && console.log.apply && console.log.apply(console, arguments);
},
c.bind = function (a, b) {
return a.bind ? a.bind(b) : function () {
return a.apply(b, arguments);
};
},
c.flatUrl = function (a) {
return a.indexOf("?") === -1 && a.indexOf("#") === -1;
},
c.amendUrl = function (b) {
var d = a.location;
if (!b) {
throw new Error("Wrong url for SockJS");
}
if (!c.flatUrl(b)) {
throw new Error("Only basic urls are supported in SockJS");
}
return b.indexOf("//") === 0 && (b = d.protocol + b),
b.indexOf("/") === 0 && (b = d.protocol + "//" + d.host + b),
b = b.replace(/[/]+$/, ""),
b;
},
c.arrIndexOf = function (a, b) {
for (var c = 0; c < a.length; c++) {
if (a[c] === b) {
return c;
}
}
return -1;
},
c.arrSkip = function (a, b) {
var d = c.arrIndexOf(a, b);
if (d === -1) {
return a.slice();
}
var e = a.slice(0, d);
return e.concat(a.slice(d + 1));
},
c.isArray = Array.isArray ||
function (a) {
return {}.toString.call(a).indexOf("Array") >= 0;
},
c.delay = function (a, b) {
return typeof a == "function" && (b = a, a = 0),
setTimeout(b, a);
};
var i = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
j = {
"\0": "\\u0000",
"\x01": "\\u0001",
"\x02": "\\u0002",
"\x03": "\\u0003",
"\x04": "\\u0004",
"\x05": "\\u0005",
"\x06": "\\u0006",
"\x07": "\\u0007",
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\x0b": "\\u000b",
"\f": "\\f",
"\r": "\\r",
"\x0e": "\\u000e",
"\x0f": "\\u000f",
"\x10": "\\u0010",
"\x11": "\\u0011",
"\x12": "\\u0012",
"\x13": "\\u0013",
"\x14": "\\u0014",
"\x15": "\\u0015",
"\x16": "\\u0016",
"\x17": "\\u0017",
"\x18": "\\u0018",
"\x19": "\\u0019",
"\x1a": "\\u001a",
"\x1b": "\\u001b",
"\x1c": "\\u001c",
"\x1d": "\\u001d",
"\x1e": "\\u001e",
"\x1f": "\\u001f",
'"': '\\"',
"\\": "\\\\",
"\x7f": "\\u007f",
"\x80": "\\u0080",
"\x81": "\\u0081",
"\x82": "\\u0082",
"\x83": "\\u0083",
"\x84": "\\u0084",
"\x85": "\\u0085",
"\x86": "\\u0086",
"\x87": "\\u0087",
"\x88": "\\u0088",
"\x89": "\\u0089",
"\x8a": "\\u008a",
"\x8b": "\\u008b",
"\x8c": "\\u008c",
"\x8d": "\\u008d",
"\x8e": "\\u008e",
"\x8f": "\\u008f",
"\x90": "\\u0090",
"\x91": "\\u0091",
"\x92": "\\u0092",
"\x93": "\\u0093",
"\x94": "\\u0094",
"\x95": "\\u0095",
"\x96": "\\u0096",
"\x97": "\\u0097",
"\x98": "\\u0098",
"\x99": "\\u0099",
"\x9a": "\\u009a",
"\x9b": "\\u009b",
"\x9c": "\\u009c",
"\x9d": "\\u009d",
"\x9e": "\\u009e",
"\x9f": "\\u009f",
"\xad": "\\u00ad",
"\u0600": "\\u0600",
"\u0601": "\\u0601",
"\u0602": "\\u0602",
"\u0603": "\\u0603",
"\u0604": "\\u0604",
"\u070f": "\\u070f",
"\u17b4": "\\u17b4",
"\u17b5": "\\u17b5",
"\u200c": "\\u200c",
"\u200d": "\\u200d",
"\u200e": "\\u200e",
"\u200f": "\\u200f",
"\u2028": "\\u2028",
"\u2029": "\\u2029",
"\u202a": "\\u202a",
"\u202b": "\\u202b",
"\u202c": "\\u202c",
"\u202d": "\\u202d",
"\u202e": "\\u202e",
"\u202f": "\\u202f",
"\u2060": "\\u2060",
"\u2061": "\\u2061",
"\u2062": "\\u2062",
"\u2063": "\\u2063",
"\u2064": "\\u2064",
"\u2065": "\\u2065",
"\u2066": "\\u2066",
"\u2067": "\\u2067",
"\u2068": "\\u2068",
"\u2069": "\\u2069",
"\u206a": "\\u206a",
"\u206b": "\\u206b",
"\u206c": "\\u206c",
"\u206d": "\\u206d",
"\u206e": "\\u206e",
"\u206f": "\\u206f",
"\ufeff": "\\ufeff",
"\ufff0": "\\ufff0",
"\ufff1": "\\ufff1",
"\ufff2": "\\ufff2",
"\ufff3": "\\ufff3",
"\ufff4": "\\ufff4",
"\ufff5": "\\ufff5",
"\ufff6": "\\ufff6",
"\ufff7": "\\ufff7",
"\ufff8": "\\ufff8",
"\ufff9": "\\ufff9",
"\ufffa": "\\ufffa",
"\ufffb": "\\ufffb",
"\ufffc": "\\ufffc",
"\ufffd": "\\ufffd",
"\ufffe": "\\ufffe",
"\uffff": "\\uffff"
},
k = /[\x00-\x1f\ud800-\udfff\ufffe\uffff\u0300-\u0333\u033d-\u0346\u034a-\u034c\u0350-\u0352\u0357-\u0358\u035c-\u0362\u0374\u037e\u0387\u0591-\u05af\u05c4\u0610-\u0617\u0653-\u0654\u0657-\u065b\u065d-\u065e\u06df-\u06e2\u06eb-\u06ec\u0730\u0732-\u0733\u0735-\u0736\u073a\u073d\u073f-\u0741\u0743\u0745\u0747\u07eb-\u07f1\u0951\u0958-\u095f\u09dc-\u09dd\u09df\u0a33\u0a36\u0a59-\u0a5b\u0a5e\u0b5c-\u0b5d\u0e38-\u0e39\u0f43\u0f4d\u0f52\u0f57\u0f5c\u0f69\u0f72-\u0f76\u0f78\u0f80-\u0f83\u0f93\u0f9d\u0fa2\u0fa7\u0fac\u0fb9\u1939-\u193a\u1a17\u1b6b\u1cda-\u1cdb\u1dc0-\u1dcf\u1dfc\u1dfe\u1f71\u1f73\u1f75\u1f77\u1f79\u1f7b\u1f7d\u1fbb\u1fbe\u1fc9\u1fcb\u1fd3\u1fdb\u1fe3\u1feb\u1fee-\u1fef\u1ff9\u1ffb\u1ffd\u2000-\u2001\u20d0-\u20d1\u20d4-\u20d7\u20e7-\u20e9\u2126\u212a-\u212b\u2329-\u232a\u2adc\u302b-\u302c\uaab2-\uaab3\uf900-\ufa0d\ufa10\ufa12\ufa15-\ufa1e\ufa20\ufa22\ufa25-\ufa26\ufa2a-\ufa2d\ufa30-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufb4e\ufff0-\uffff]/g,
l,
m = JSON && JSON.stringify ||
function (a) {
return i.lastIndex = 0,
i.test(a) && (a = a.replace(i, function (a) {
return j[a];
})),
'"' + a + '"';
},
n = function (a) {
var b, c = {},
d = [];
for (b = 0; b < 65536; b++) {
d.push(String.fromCharCode(b));
}
return a.lastIndex = 0,
d.join("").replace(a, function (a) {
return c[a] = "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4),
"";
}),
a.lastIndex = 0,
c;
};
c.quote = function (a) {
var b = m(a);
return k.lastIndex = 0,
k.test(b) ? (l || (l = n(k)), b.replace(k, function (a) {
return l[a];
})) : b;
};
var o = ["websocket", "xdr-streaming", "xhr-streaming", "iframe-eventsource", "iframe-htmlfile", "xdr-polling", "xhr-polling", "iframe-xhr-polling", "jsonp-polling"];
c.probeProtocols = function () {
var a = {};
for (var b = 0; b < o.length; b++) {
var c = o[b];
a[c] = y[c] && y[c].enabled();
}
return a;
},
c.detectProtocols = function (a, b, c) {
var d = {},
e = [];
b || (b = o);
for (var f = 0; f < b.length; f++) {
var g = b[f];
d[g] = a[g];
}
var h = function (a) {
var b = a.shift();
d[b] ? e.push(b) : a.length > 0 && h(a);
};
return c.websocket !== !1 && h(["websocket"]),
d["xhr-streaming"] && !c.null_origin ? e.push("xhr-streaming") : d["xdr-streaming"] && !c.cookie_needed && !c.null_origin ? e.push("xdr-streaming") : h(["iframe-eventsource", "iframe-htmlfile"]),
d["xhr-polling"] && !c.null_origin ? e.push("xhr-polling") : d["xdr-polling"] && !c.cookie_needed && !c.null_origin ? e.push("xdr-polling") : h(["iframe-xhr-polling", "jsonp-polling"]),
e;
};
var p = "_sockjs_global";
c.createHook = function () {
var a = "a" + c.random_string(8);
if (! (p in b)) {
var d = {};
b[p] = function (a) {
return a in d || (d[a] = {
id: a,
del: function () {
delete d[a];
}
}),
d[a];
};
}
return b[p](a);
},
c.attachMessage = function (a) {
c.attachEvent("message", a);
},
c.attachEvent = function (c, d) {
typeof b.addEventListener != "undefined" ? b.addEventListener(c, d, !1) : (a.attachEvent("on" + c, d), b.attachEvent("on" + c, d));
},
c.detachMessage = function (a) {
c.detachEvent("message", a);
},
c.detachEvent = function (c, d) {
typeof b.addEventListener != "undefined" ? b.removeEventListener(c, d, !1) : (a.detachEvent("on" + c, d), b.detachEvent("on" + c, d));
};
var q = {},
r = !1,
s = function () {
for (var a in q) {
q[a](),
delete q[a];
}
},
t = function () {
if (r) {
return;
}
r = !0,
s();
};
c.attachEvent("unload", t),
c.unload_add = function (a) {
var b = c.random_string(8);
return q[b] = a,
r && c.delay(s),
b;
},
c.unload_del = function (a) {
a in q && delete q[a];
},
c.createIframe = function (b, d) {
var e = a.createElement("iframe"),
f,
g,
h = function () {
clearTimeout(f);
try {
e.onload = null;
} catch(a) {}
e.onerror = null;
},
i = function () {
e && (h(), setTimeout(function () {
e && e.parentNode.removeChild(e),
e = null;
},
0), c.unload_del(g));
},
j = function (a) {
e && (i(), d(a));
},
k = function (a, b) {
try {
e && e.contentWindow && e.contentWindow.postMessage(a, b);
} catch(c) {}
};
return e.src = b,
e.style.display = "none",
e.style.position = "absolute",
e.onerror = function () {
j("onerror");
},
e.onload = function () {
clearTimeout(f),
f = setTimeout(function () {
j("onload timeout");
},
2000);
},
a.body.appendChild(e),
f = setTimeout(function () {
j("timeout");
},
15000),
g = c.unload_add(i),
{
post: k,
cleanup: i,
loaded: h
};
},
c.createHtmlfile = function (a, d) {
var e = new ActiveXObject("htmlfile"),
f,
g,
i,
j = function () {
clearTimeout(f);
},
k = function () {
e && (j(), c.unload_del(g), i.parentNode.removeChild(i), i = e = null, CollectGarbage());
},
l = function (a) {
e && (k(), d(a));
},
m = function (a, b) {
try {
i && i.contentWindow && i.contentWindow.postMessage(a, b);
} catch(c) {}
};
e.open(),
e.write('<html><script>document.domain="' + document.domain + '";' + "</s" + "cript></html>"),
e.close(),
e.parentWindow[h] = b[h];
var n = e.createElement("div");
return e.body.appendChild(n),
i = e.createElement("iframe"),
n.appendChild(i),
i.src = a,
f = setTimeout(function () {
l("timeout");
},
15000),
g = c.unload_add(k),
{
post: m,
cleanup: k,
loaded: j
};
};
var u = function () {};
u.prototype = new f(["chunk", "finish"]),
u.prototype._start = function (a, d, e, f) {
var g = this;
try {
g.xhr = new XMLHttpRequest;
} catch(h) {}
if (!g.xhr) {
try {
g.xhr = new b.ActiveXObject("Microsoft.XMLHTTP");
} catch(h) {}
}
if (b.ActiveXObject || b.XDomainRequest) {
d += (d.indexOf("?") === -1 ? "?" : "&") + "t=" + +(new Date);
}
g.unload_ref = c.unload_add(function () {
g._cleanup(!0);
});
try {
g.xhr.open(a, d, !0);
} catch(i) {
g.emit("finish", 0, ""),
g._cleanup();
return;
}
if (!f || !f.no_credentials) {
g.xhr.withCredentials = "true";
}
if (f && f.headers) {
for (var j in f.headers) {
g.xhr.setRequestHeader(j, f.headers[j]);
}
}
g.xhr.onreadystatechange = function () {
if (g.xhr) {
var a = g.xhr;
switch (a.readyState) {
case 3:
try {
var b = a.status,
c = a.responseText;
} catch(a) {}
b === 1223 && (b = 204),
c && c.length > 0 && g.emit("chunk", b, c);
break;
case 4:
var b = a.status;
b === 1223 && (b = 204),
g.emit("finish", b, a.responseText),
g._cleanup(!1);
}
}
},
g.xhr.send(e);
},
u.prototype._cleanup = function (a) {
var b = this;
if (!b.xhr) {
return;
}
c.unload_del(b.unload_ref),
b.xhr.onreadystatechange = function () {};
if (a) {
try {
b.xhr.abort();
} catch(d) {}
}
b.unload_ref = b.xhr = null;
},
u.prototype.close = function () {
var a = this;
a.nuke(),
a._cleanup(!0);
};
var v = c.XHRCorsObject = function () {
var a = this,
b = arguments;
c.delay(function () {
a._start.apply(a, b);
});
};
v.prototype = new u;
var w = c.XHRLocalObject = function (a, b, d) {
var e = this;
c.delay(function () {
e._start(a, b, d, {
no_credentials: !0
});
});
};
w.prototype = new u;
var x = c.XDRObject = function (a, b, d) {
var e = this;
c.delay(function () {
e._start(a, b, d);
});
};
x.prototype = new f(["chunk", "finish"]),
x.prototype._start = function (a, b, d) {
var e = this,
f = new XDomainRequest;
b += (b.indexOf("?") === -1 ? "?" : "&") + "t=" + +(new Date);
var g = f.ontimeout = f.onerror = function () {
e.emit("finish", 0, ""),
e._cleanup(!1);
};
f.onprogress = function () {
e.emit("chunk", 200, f.responseText);
},
f.onload = function () {
e.emit("finish", 200, f.responseText),
e._cleanup(!1);
},
e.xdr = f,
e.unload_ref = c.unload_add(function () {
e._cleanup(!0);
});
try {
e.xdr.open(a, b),
e.xdr.send(d);
} catch(h) {
g();
}
},
x.prototype._cleanup = function (a) {
var b = this;
if (!b.xdr) {
return;
}
c.unload_del(b.unload_ref),
b.xdr.ontimeout = b.xdr.onerror = b.xdr.onprogress = b.xdr.onload = null;
if (a) {
try {
b.xdr.abort();
} catch(d) {}
}
b.unload_ref = b.xdr = null;
},
x.prototype.close = function () {
var a = this;
a.nuke(),
a._cleanup(!0);
},
c.isXHRCorsCapable = function () {
return b.XMLHttpRequest && "withCredentials" in new XMLHttpRequest ? 1 : b.XDomainRequest && a.domain ? 2 : L.enabled() ? 3 : 4;
};
var y = function (a, d, e) {
if (this === b) {
return new y(a, d, e);
}
var f = this,
g;
f._options = {
devel: !1,
debug: !1,
protocols_whitelist: [],
info: undefined,
rtt: undefined
},
e && c.objectExtend(f._options, e),
f._base_url = c.amendUrl(a),
f._server = f._options.server || c.random_number_string(1000),
f._options.protocols_whitelist && f._options.protocols_whitelist.length ? g = f._options.protocols_whitelist : (typeof d == "string" && d.length > 0 ? g = [d] : c.isArray(d) ? g = d : g = null, g && f._debug('Deprecated API: Use "protocols_whitelist" option instead of supplying protocol list as a second parameter to SockJS constructor.')),
f._protocols = [],
f.protocol = null,
f.readyState = y.CONNECTING,
f._ir = S(f._base_url),
f._ir.onfinish = function (a, b) {
f._ir = null,
a ? (f._options.info && (a = c.objectExtend(a, f._options.info)), f._options.rtt && (b = f._options.rtt), f._applyInfo(a, b, g), f._didClose()) : f._didClose(1002, "Can't connect to server", !0);
};
};
y.prototype = new d,
y.version = "0.3.4",
y.CONNECTING = 0,
y.OPEN = 1,
y.CLOSING = 2,
y.CLOSED = 3,
y.prototype._debug = function () {
this._options.debug && c.log.apply(c, arguments);
},
y.prototype._dispatchOpen = function () {
var a = this;
a.readyState === y.CONNECTING ? (a._transport_tref && (clearTimeout(a._transport_tref), a._transport_tref = null), a.readyState = y.OPEN, a.dispatchEvent(new e("open"))) : a._didClose(1006, "Server lost session");
},
y.prototype._dispatchMessage = function (a) {
var b = this;
if (b.readyState !== y.OPEN) {
return;
}
b.dispatchEvent(new e("message", {
data: a
}));
},
y.prototype._dispatchHeartbeat = function (a) {
var b = this;
if (b.readyState !== y.OPEN) {
return;
}
b.dispatchEvent(new e("heartbeat", {}));
},
y.prototype._didClose = function (a, b, d) {
var f = this;
if (f.readyState !== y.CONNECTING && f.readyState !== y.OPEN && f.readyState !== y.CLOSING) {
throw new Error("INVALID_STATE_ERR");
}
f._ir && (f._ir.nuke(), f._ir = null),
f._transport && (f._transport.doCleanup(), f._transport = null);
var g = new e("close", {
code: a,
reason: b,
wasClean: c.userSetCode(a)
});
if (!c.userSetCode(a) && f.readyState === y.CONNECTING && !d) {
if (f._try_next_protocol(g)) {
return;
}
g = new e("close", {
code: 2000,
reason: "All transports failed",
wasClean: !1,
last_event: g
});
}
f.readyState = y.CLOSED,
c.delay(function () {
f.dispatchEvent(g);
});
},
y.prototype._didMessage = function (a) {
var b = this,
c = a.slice(0, 1);
switch (c) {
case "o":
b._dispatchOpen();
break;
case "a":
var d = JSON.parse(a.slice(1) || "[]");
for (var e = 0; e < d.length; e++) {
b._dispatchMessage(d[e]);
}
break;
case "m":
var d = JSON.parse(a.slice(1) || "null");
b._dispatchMessage(d);
break;
case "c":
var d = JSON.parse(a.slice(1) || "[]");
b._didClose(d[0], d[1]);
break;
case "h":
b._dispatchHeartbeat();
}
},
y.prototype._try_next_protocol = function (b) {
var d = this;
d.protocol && (d._debug("Closed transport:", d.protocol, "" + b), d.protocol = null),
d._transport_tref && (clearTimeout(d._transport_tref), d._transport_tref = null);
for (;;) {
var e = d.protocol = d._protocols.shift();
if (!e) {
return !1;
}
if (y[e] && y[e].need_body === !0 && (!a.body || typeof a.readyState != "undefined" && a.readyState !== "complete")) {
return d._protocols.unshift(e),
d.protocol = "waiting-for-load",
c.attachEvent("load", function () {
d._try_next_protocol();
}),
!0;
}
if ( !! y[e] && !!y[e].enabled(d._options)) {
var f = y[e].roundTrips || 1,
g = (d._options.rto || 0) * f || 5000;
d._transport_tref = c.delay(g, function () {
d.readyState === y.CONNECTING && d._didClose(2007, "Transport timeouted");
});
var h = c.random_string(8),
i = d._base_url + "/" + d._server + "/" + h;
return d._debug("Opening transport:", e, " url:" + i, " RTO:" + d._options.rto),
d._transport = new y[e](d, i, d._base_url),
!0;
}
d._debug("Skipping transport:", e);
}
},
y.prototype.close = function (a, b) {
var d = this;
if (a && !c.userSetCode(a)) {
throw new Error("INVALID_ACCESS_ERR");
}
return d.readyState !== y.CONNECTING && d.readyState !== y.OPEN ? !1 : (d.readyState = y.CLOSING, d._didClose(a || 1000, b || "Normal closure"), !0);
},
y.prototype.send = function (a) {
var b = this;
if (b.readyState === y.CONNECTING) {
throw new Error("INVALID_STATE_ERR");
}
return b.readyState === y.OPEN && b._transport.doSend(c.quote("" + a)),
!0;
},
y.prototype._applyInfo = function (b, d, e) {
var f = this;
f._options.info = b,
f._options.rtt = d,
f._options.rto = c.countRTO(d),
f._options.info.null_origin = !a.domain;
var g = c.probeProtocols();
f._protocols = c.detectProtocols(g, e, b);
};
var z = y.websocket = function (a, d) {
var e = this,
f = d + "/websocket";
f.slice(0, 5) === "https" ? f = "wss" + f.slice(5) : f = "ws" + f.slice(4),
e.ri = a,
e.url = f;
var g = b.WebSocket || b.MozWebSocket;
e.ws = new g(e.url),
e.ws.onmessage = function (a) {
e.ri._didMessage(a.data);
},
e.unload_ref = c.unload_add(function () {
e.ws.close();
}),
e.ws.onclose = function () {
e.ri._didMessage(c.closeFrame(1006, "WebSocket connection broken"));
};
};
z.prototype.doSend = function (a) {
this.ws.send("[" + a + "]");
},
z.prototype.doCleanup = function () {
var a = this,
b = a.ws;
b && (b.onmessage = b.onclose = null, b.close(), c.unload_del(a.unload_ref), a.unload_ref = a.ri = a.ws = null);
},
z.enabled = function () {
return !! b.WebSocket || !!b.MozWebSocket;
},
z.roundTrips = 2;
var A = function () {};
A.prototype.send_constructor = function (a) {
var b = this;
b.send_buffer = [],
b.sender = a;
},
A.prototype.doSend = function (a) {
var b = this;
b.send_buffer.push(a),
b.send_stop || b.send_schedule();
},
A.prototype.send_schedule_wait = function () {
var a = this,
b;
a.send_stop = function () {
a.send_stop = null,
clearTimeout(b);
},
b = c.delay(25, function () {
a.send_stop = null,
a.send_schedule();
});
},
A.prototype.send_schedule = function () {
var a = this;
if (a.send_buffer.length > 0) {
var b = "[" + a.send_buffer.join(",") + "]";
a.send_stop = a.sender(a.trans_url, b, function (b, c) {
a.send_stop = null,
b === !1 ? a.ri._didClose(1006, "Sending error " + c) : a.send_schedule_wait();
}),
a.send_buffer = [];
}
},
A.prototype.send_destructor = function () {
var a = this;
a._send_stop && a._send_stop(),
a._send_stop = null;
};
var B = function (b, d, e) {
var f = this;
if (! ("_send_form" in f)) {
var g = f._send_form = a.createElement("form"),
h = f._send_area = a.createElement("textarea");
h.name = "d",
g.style.display = "none",
g.style.position = "absolute",
g.method = "POST",
g.enctype = "application/x-www-form-urlencoded",
g.acceptCharset = "UTF-8",
g.appendChild(h),
a.body.appendChild(g);
}
var g = f._send_form,
h = f._send_area,
i = "a" + c.random_string(8);
g.target = i,
g.action = b + "/jsonp_send?i=" + i;
var j;
try {
j = a.createElement('<iframe name="' + i + '">');
} catch(k) {
j = a.createElement("iframe"),
j.name = i;
}
j.id = i,
g.appendChild(j),
j.style.display = "none";
try {
h.value = d;
} catch(l) {
c.log("Your browser is seriously broken. Go home! " + l.message);
}
g.submit();
var m = function (a) {
if (!j.onerror) {
return;
}
j.onreadystatechange = j.onerror = j.onload = null,
c.delay(500, function () {
j.parentNode.removeChild(j),
j = null;
}),
h.value = "",
e(!0);
};
return j.onerror = j.onload = m,
j.onreadystatechange = function (a) {
j.readyState == "complete" && m();
},
m;
},
C = function (a) {
return function (b, c, d) {
var e = new a("POST", b + "/xhr_send", c);
return e.onfinish = function (a, b) {
d(a === 200 || a === 204, "http status " + a);
},
function (a) {
d(!1, a);
};
};
},
D = function (b, d) {
var e, f = a.createElement("script"),
g,
h = function (a) {
g && (g.parentNode.removeChild(g), g = null),
f && (clearTimeout(e), f.parentNode.removeChild(f), f.onreadystatechange = f.onerror = f.onload = f.onclick = null, f = null, d(a), d = null);
},
i = !1,
j = null;
f.id = "a" + c.random_string(8),
f.src = b,
f.type = "text/javascript",
f.charset = "UTF-8",
f.onerror = function (a) {
j || (j = setTimeout(function () {
i || h(c.closeFrame(1006, "JSONP script loaded abnormally (onerror)"));
},
1000));
},
f.onload = function (a) {
h(c.closeFrame(1006, "JSONP script loaded abnormally (onload)"));
},
f.onreadystatechange = function (a) {
if (/loaded|closed/.test(f.readyState)) {
if (f && f.htmlFor && f.onclick) {
i = !0;
try {
f.onclick();
} catch(b) {}
}
f && h(c.closeFrame(1006, "JSONP script loaded abnormally (onreadystatechange)"));
}
};
if (typeof f.async == "undefined" && a.attachEvent) {
if (!/opera/i.test(navigator.userAgent)) {
try {
f.htmlFor = f.id,
f.event = "onclick";
} catch(k) {}
f.async = !0;
} else {
g = a.createElement("script"),
g.text = "try{var a = document.getElementById('" + f.id + "'); if(a)a.onerror();}catch(x){};",
f.async = g.async = !1;
}
}
typeof f.async != "undefined" && (f.async = !0),
e = setTimeout(function () {
h(c.closeFrame(1006, "JSONP script loaded abnormally (timeout)"));
},
35000);
var l = a.getElementsByTagName("head")[0];
return l.insertBefore(f, l.firstChild),
g && l.insertBefore(g, l.firstChild),
h;
},
E = y["jsonp-polling"] = function (a, b) {
c.polluteGlobalNamespace();
var d = this;
d.ri = a,
d.trans_url = b,
d.send_constructor(B),
d._schedule_recv();
};
E.prototype = new A,
E.prototype._schedule_recv = function () {
var a = this,
b = function (b) {
a._recv_stop = null,
b && (a._is_closing || a.ri._didMessage(b)),
a._is_closing || a._schedule_recv();
};
a._recv_stop = F(a.trans_url + "/jsonp", D, b);
},
E.enabled = function () {
return !0;
},
E.need_body = !0,
E.prototype.doCleanup = function () {
var a = this;
a._is_closing = !0,
a._recv_stop && a._recv_stop(),
a.ri = a._recv_stop = null,
a.send_destructor();
};
var F = function (a, d, e) {
var f = "a" + c.random_string(6),
g = a + "?c=" + escape(h + "." + f),
i = 0,
j = function (a) {
switch (i) {
case 0:
delete b[h][f],
e(a);
break;
case 1:
e(a),
i = 2;
break;
case 2:
delete b[h][f];
}
},
k = d(g, j);
b[h][f] = k;
var l = function () {
b[h][f] && (i = 1, b[h][f](c.closeFrame(1000, "JSONP user aborted read")));
};
return l;
},
G = function () {};
G.prototype = new A,
G.prototype.run = function (a, b, c, d, e) {
var f = this;
f.ri = a,
f.trans_url = b,
f.send_constructor(C(e)),
f.poll = new $(a, d, b + c, e);
},
G.prototype.doCleanup = function () {
var a = this;
a.poll && (a.poll.abort(), a.poll = null);
};
var H = y["xhr-streaming"] = function (a, b) {
this.run(a, b, "/xhr_streaming", bd, c.XHRCorsObject);
};
H.prototype = new G,
H.enabled = function () {
return b.XMLHttpRequest && "withCredentials" in new XMLHttpRequest && !/opera/i.test(navigator.userAgent);
},
H.roundTrips = 2,
H.need_body = !0;
var I = y["xdr-streaming"] = function (a, b) {
this.run(a, b, "/xhr_streaming", bd, c.XDRObject);
};
I.prototype = new G,
I.enabled = function () {
return !! b.XDomainRequest;
},
I.roundTrips = 2;
var J = y["xhr-polling"] = function (a, b) {
this.run(a, b, "/xhr", bd, c.XHRCorsObject);
};
J.prototype = new G,
J.enabled = H.enabled,
J.roundTrips = 2;
var K = y["xdr-polling"] = function (a, b) {
this.run(a, b, "/xhr", bd, c.XDRObject);
};
K.prototype = new G,
K.enabled = I.enabled,
K.roundTrips = 2;
var L = function () {};
L.prototype.i_constructor = function (a, b, d) {
var e = this;
e.ri = a,
e.origin = c.getOrigin(d),
e.base_url = d,
e.trans_url = b;
var f = d + "/iframe.html";
e.ri._options.devel && (f += "?t=" + +(new Date)),
e.window_id = c.random_string(8),
f += "#" + e.window_id,
e.iframeObj = c.createIframe(f, function (a) {
e.ri._didClose(1006, "Unable to load an iframe (" + a + ")");
}),
e.onmessage_cb = c.bind(e.onmessage, e),
c.attachMessage(e.onmessage_cb);
},
L.prototype.doCleanup = function () {
var a = this;
if (a.iframeObj) {
c.detachMessage(a.onmessage_cb);
try {
a.iframeObj.iframe.contentWindow && a.postMessage("c");
} catch(b) {}
a.iframeObj.cleanup(),
a.iframeObj = null,
a.onmessage_cb = a.iframeObj = null;
}
},
L.prototype.onmessage = function (a) {
var b = this;
if (a.origin !== b.origin) {
return;
}
var c = a.data.slice(0, 8),
d = a.data.slice(8, 9),
e = a.data.slice(9);
if (c !== b.window_id) {
return;
}
switch (d) {
case "s":
b.iframeObj.loaded(),
b.postMessage("s", JSON.stringify([y.version, b.protocol, b.trans_url, b.base_url]));
break;
case "t":
b.ri._didMessage(e);
}
},
L.prototype.postMessage = function (a, b) {
var c = this;
c.iframeObj.post(c.window_id + a + (b || ""), c.origin);
},
L.prototype.doSend = function (a) {
this.postMessage("m", a);
},
L.enabled = function () {
var a = navigator && navigator.userAgent && navigator.userAgent.indexOf("Konqueror") !== -1;
return (typeof b.postMessage == "function" || typeof b.postMessage == "object") && !a;
};
var M, N = function (a, d) {
parent !== b ? parent.postMessage(M + a + (d || ""), "*") : c.log("Can't postMessage, no parent window.", a, d);
},
O = function () {};
O.prototype._didClose = function (a, b) {
N("t", c.closeFrame(a, b));
},
O.prototype._didMessage = function (a) {
N("t", a);
},
O.prototype._doSend = function (a) {
this._transport.doSend(a);
},
O.prototype._doCleanup = function () {
this._transport.doCleanup();
},
c.parent_origin = undefined,
y.bootstrap_iframe = function () {
var d;
M = a.location.hash.slice(1);
var e = function (a) {
if (a.source !== parent) {
return;
}
typeof c.parent_origin == "undefined" && (c.parent_origin = a.origin);
if (a.origin !== c.parent_origin) {
return;
}
var e = a.data.slice(0, 8),
f = a.data.slice(8, 9),
g = a.data.slice(9);
if (e !== M) {
return;
}
switch (f) {
case "s":
var h = JSON.parse(g),
i = h[0],
j = h[1],
k = h[2],
l = h[3];
i !== y.version && c.log('Incompatibile SockJS! Main site uses: "' + i + '", the iframe:' + ' "' + y.version + '".');
if (!c.flatUrl(k) || !c.flatUrl(l)) {
c.log("Only basic urls are supported in SockJS");
return;
}
if (!c.isSameOriginUrl(k) || !c.isSameOriginUrl(l)) {
c.log("Can't connect to different domain from within an iframe. (" + JSON.stringify([b.location.href, k, l]) + ")");
return;
}
d = new O,
d._transport = new O[j](d, k, l);
break;
case "m":
d._doSend(g);
break;
case "c":
d && d._doCleanup(),
d = null;
}
};
c.attachMessage(e),
N("s");
};
var P = function (a, b) {
var d = this;
c.delay(function () {
d.doXhr(a, b);
});
};
P.prototype = new f(["finish"]),
P.prototype.doXhr = function (a, b) {
var d = this,
e = (new Date).getTime(),
f = new b("GET", a + "/info"),
g = c.delay(8000, function () {
f.ontimeout();
});
f.onfinish = function (a, b) {
clearTimeout(g),
g = null;
if (a === 200) {
var c = (new Date).getTime() - e,
f = JSON.parse(b);
typeof f != "object" && (f = {}),
d.emit("finish", f, c);
} else {
d.emit("finish");
}
},
f.ontimeout = function () {
f.close(),
d.emit("finish");
};
};
var Q = function (b) {
var d = this,
e = function () {
var a = new L;
a.protocol = "w-iframe-info-receiver";
var c = function (b) {
if (typeof b == "string" && b.substr(0, 1) === "m") {
var c = JSON.parse(b.substr(1)),
e = c[0],
f = c[1];
d.emit("finish", e, f);
} else {
d.emit("finish");
}
a.doCleanup(),
a = null;
},
e = {
_options: {},
_didClose: c,
_didMessage: c
};
a.i_constructor(e, b, b);
};
a.body ? e() : c.attachEvent("load", e);
};
Q.prototype = new f(["finish"]);
var R = function () {
var a = this;
c.delay(function () {
a.emit("finish", {},
2000);
});
};
R.prototype = new f(["finish"]);
var S = function (a) {
if (c.isSameOriginUrl(a)) {
return new P(a, c.XHRLocalObject);
}
switch (c.isXHRCorsCapable()) {
case 1:
return new P(a, c.XHRLocalObject);
case 2:
return new P(a, c.XDRObject);
case 3:
return new Q(a);
default:
return new R;
}
},
T = O["w-iframe-info-receiver"] = function (a, b, d) {
var e = new P(d, c.XHRLocalObject);
e.onfinish = function (b, c) {
a._didMessage("m" + JSON.stringify([b, c])),
a._didClose();
};
};
T.prototype.doCleanup = function () {};
var U = y["iframe-eventsource"] = function () {
var a = this;
a.protocol = "w-iframe-eventsource",
a.i_constructor.apply(a, arguments);
};
U.prototype = new L,
U.enabled = function () {
return "EventSource" in b && L.enabled();
},
U.need_body = !0,
U.roundTrips = 3;
var V = O["w-iframe-eventsource"] = function (a, b) {
this.run(a, b, "/eventsource", _, c.XHRLocalObject);
};
V.prototype = new G;
var W = y["iframe-xhr-polling"] = function () {
var a = this;
a.protocol = "w-iframe-xhr-polling",
a.i_constructor.apply(a, arguments);
};
W.prototype = new L,
W.enabled = function () {
return b.XMLHttpRequest && L.enabled();
},
W.need_body = !0,
W.roundTrips = 3;
var X = O["w-iframe-xhr-polling"] = function (a, b) {
this.run(a, b, "/xhr", bd, c.XHRLocalObject);
};
X.prototype = new G;
var Y = y["iframe-htmlfile"] = function () {
var a = this;
a.protocol = "w-iframe-htmlfile",
a.i_constructor.apply(a, arguments);
};
Y.prototype = new L,
Y.enabled = function () {
return L.enabled();
},
Y.need_body = !0,
Y.roundTrips = 3;
var Z = O["w-iframe-htmlfile"] = function (a, b) {
this.run(a, b, "/htmlfile", bc, c.XHRLocalObject);
};
Z.prototype = new G;
var $ = function (a, b, c, d) {
var e = this;
e.ri = a,
e.Receiver = b,
e.recv_url = c,
e.AjaxObject = d,
e._scheduleRecv();
};
$.prototype._scheduleRecv = function () {
var a = this,
b = a.poll = new a.Receiver(a.recv_url, a.AjaxObject),
c = 0;
b.onmessage = function (b) {
c += 1,
a.ri._didMessage(b.data);
},
b.onclose = function (c) {
a.poll = b = b.onmessage = b.onclose = null,
a.poll_is_closing || (c.reason === "permanent" ? a.ri._didClose(1006, "Polling error (" + c.reason + ")") : a._scheduleRecv());
};
},
$.prototype.abort = function () {
var a = this;
a.poll_is_closing = !0,
a.poll && a.poll.abort();
};
var _ = function (a) {
var b = this,
d = new EventSource(a);
d.onmessage = function (a) {
b.dispatchEvent(new e("message", {
data: unescape(a.data)
}));
},
b.es_close = d.onerror = function (a, f) {
var g = f ? "user" : d.readyState !== 2 ? "network" : "permanent";
b.es_close = d.onmessage = d.onerror = null,
d.close(),
d = null,
c.delay(200, function () {
b.dispatchEvent(new e("close", {
reason: g
}));
});
};
};
_.prototype = new d,
_.prototype.abort = function () {
var a = this;
a.es_close && a.es_close({},
!0);
};
var ba, bb = function () {
if (ba === undefined) {
if ("ActiveXObject" in b) {
try {
ba = !!(new ActiveXObject("htmlfile"));
} catch(a) {}
} else {
ba = !1;
}
}
return ba;
},
bc = function (a) {
var d = this;
c.polluteGlobalNamespace(),
d.id = "a" + c.random_string(6, 26),
a += (a.indexOf("?") === -1 ? "?" : "&") + "c=" + escape(h + "." + d.id);
var f = bb() ? c.createHtmlfile : c.createIframe,
g;
b[h][d.id] = {
start: function () {
g.loaded();
},
message: function (a) {
d.dispatchEvent(new e("message", {
data: a
}));
},
stop: function () {
d.iframe_close({},
"network");
}
},
d.iframe_close = function (a, c) {
g.cleanup(),
d.iframe_close = g = null,
delete b[h][d.id],
d.dispatchEvent(new e("close", {
reason: c
}));
},
g = f(a, function (a) {
d.iframe_close({},
"permanent");
});
};
bc.prototype = new d,
bc.prototype.abort = function () {
var a = this;
a.iframe_close && a.iframe_close({},
"user");
};
var bd = function (a, b) {
var c = this,
d = 0;
c.xo = new b("POST", a, null),
c.xo.onchunk = function (a, b) {
if (a !== 200) {
return;
}
for (;;) {
var f = b.slice(d),
g = f.indexOf("\n");
if (g === -1) {
break;
}
d += g + 1;
var h = f.slice(0, g);
c.dispatchEvent(new e("message", {
data: h
}));
}
},
c.xo.onfinish = function (a, b) {
c.xo.onchunk(a, b),
c.xo = null;
var d = a === 200 ? "network" : "permanent";
c.dispatchEvent(new e("close", {
reason: d
}));
};
};
return bd.prototype = new d,
bd.prototype.abort = function () {
var a = this;
a.xo && (a.xo.close(), a.dispatchEvent(new e("close", {
reason: "user"
})), a.xo = null);
},
y.getUtils = function () {
return c;
},
y.getIframeTransport = function () {
return L;
},
y;
} (),
"_sockjs_onload" in window && setTimeout(_sockjs_onload, 1),
typeof define == "function" && define.amd && define("sockjs", [], function () {
return SockJS;
});