您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
彻底清理百度搜索(www.baidu.com)结果首尾的推广广告、二次顽固广告与右侧广告,并防止反复
当前为
// ==UserScript== // @name:en scii // @name:zh-TW 百度廣告(首尾推廣及右側廣告)清理 // @version 0.89 // @description 彻底清理百度搜索(www.baidu.com)结果首尾的推广广告、二次顽固广告与右侧广告,并防止反复 // @description:en Just Kill Baidu AD // @description:zh-TW 徹底清理百度搜索(www.baidu.com)結果首尾的推廣廣告、二次頑固廣告與右側廣告,並防止反復 // @author [email protected] // @include http*://www.warzone.com/* // @grant none // @run-at document-start // @license MIT License // @compatible chrome 测试通过 // @compatible firefox 测试通过 // @compatible opera 未测试 // @compatible safari 未测试 // @name scripts // @namespace https://greasyfork.org/users/240876 // ==/UserScript== var io = "undefined" === typeof module ? {} : module.exports; (function() { (function(d, a) { d.version = "0.9.17"; d.protocol = 1; d.transports = []; d.j = []; d.sockets = {}; d.connect = function(b, c) { var g = d.util.parseUri(b), f, e; a && a.location && (g.protocol = g.protocol || a.location.protocol.slice(0, -1), g.host = g.host || (a.document ? a.document.domain : a.location.hostname), g.port = g.port || a.location.port); f = d.util.uniqueUri(g); var l = { host: g.host, secure: "https" == g.protocol, port: g.port || ("https" == g.protocol ? 443 : 80), query: g.query || "" }; d.util.merge(l, c); if (l["force new connection"] || !d.sockets[f]) e = new d.Socket(l); !l["force new connection"] && e && (d.sockets[f] = e); e = e || d.sockets[f]; console.log("connect returns", e.of(1 < g.path.length ? g.path : "")); return e.of(1 < g.path.length ? g.path : "") } })("object" === typeof module ? module.exports : this.io = {}, this); (function(d, a) { var b = d.util = {}, c = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/, g = "source protocol authority userInfo user password host port relative path directory file query anchor".split(" "); b.parseUri = function(e) { e = c.exec(e || ""); for (var a = {}, b = 14; b--;) a[g[b]] = e[b] || ""; console.log("parseUri returns", a); return a }; b.uniqueUri = function(e) { var c = e.protocol, b = e.host; e = e.port; "document" in a ? (b = b || document.domain, e = e || ("https" == c && "https:" !== document.location.protocol ? 443 : document.location.port)) : (b = b || "localhost", e || "https" != c || (e = 443)); console.log("unique Uri returns", (c || "http") + "://" + b + ":" + (e || 80)); return (c || "http") + "://" + b + ":" + (e || 80) }; b.query = function(e, a) { var c = b.chunkQuery(e || ""), f = []; b.merge(c, b.chunkQuery(a || "")); for (var g in c) c.hasOwnProperty(g) && f.push(g + "=" + c[g]); console.log("b.query returns", f.length ? "?" + f.join("&") : ""); return f.length ? "?" + f.join("&") : "" }; b.chunkQuery = function(e) { var a = {}; e = e.split("&"); for (var c = 0, b = e.length, f; c < b; ++c) f = e[c].split("="), f[0] && (a[f[0]] = f[1]); console.log("chunkQuery returns", a); return a }; var f = !1; b.load = function(e) { if ("document" in a && "complete" === document.readyState || f) return e(); b.on(a, "load", e, !1) }; b.on = function(e, a, c, b) { console.log("b.on args", e,a,c,b); e.attachEvent ? e.attachEvent("on" + a, c) : e.addEventListener && e.addEventListener(a, c, b) }; b.request = function(e) { console.log("b.request arg", e); if (e && "undefined" != typeof XDomainRequest && !b.ua.hasCORS) return new XDomainRequest; if ("undefined" != typeof XMLHttpRequest && (!e || b.ua.hasCORS)) return new XMLHttpRequest; if (!e) try { return new(window[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP") } catch (a) {} return null }; "undefined" != typeof window && b.load(function() { f = !0 }); b.defer = function(e) { if (!b.ua.webkit || "undefined" != typeof importScripts) return e(); b.load(function() { setTimeout(e, 100) }) }; b.merge = function(e, a, c, f) { console.log("b.merge args", e,a ,c , f); f = f || []; c = "undefined" == typeof c ? 2 : c; for (var g in a) a.hasOwnProperty(g) && 0 > b.indexOf(f, g) && ("object" === typeof e[g] && c ? b.merge(e[g], a[g], c - 1, f) : (e[g] = a[g], f.push(a[g]))); return e }; b.mixin = function(a, c) { b.merge(a.prototype, c.prototype) }; b.inherit = function(a, c) { function b() {} b.prototype = c.prototype; a.prototype = new b }; b.isArray = Array.isArray || function(a) { return "[object Array]" === Object.prototype.toString.call(a) }; b.intersect = function(a, c) { for (var f = [], g = a.length > c.length ? a : c, d = a.length > c.length ? c : a, n = 0, v = d.length; n < v; n++) ~b.indexOf(g, d[n]) && f.push(d[n]); return f }; b.indexOf = function(a, c, b) { var f = a.length; for (b = 0 > b ? 0 > b + f ? 0 : b + f : b || 0; b < f && a[b] !== c; b++); return f <= b ? -1 : b }; b.toArray = function(a) { for (var c = [], b = 0, f = a.length; b < f; b++) c.push(a[b]); return c }; b.ua = {}; b.ua.hasCORS = "undefined" != typeof XMLHttpRequest && function() { try { var a = new XMLHttpRequest } catch (c) { return !1 } return void 0 != a.withCredentials }(); b.ua.webkit = "undefined" != typeof navigator && /webkit/i.test(navigator.userAgent); b.ua.iDevice = "undefined" != typeof navigator && /iPad|iPhone|iPod/i.test(navigator.userAgent) })("undefined" != typeof io ? io : module.exports, this); (function(d, a) { function b() {} d.EventEmitter = b; b.prototype.on = function(c, b) { console.log("on args", c, b); console.log("this on", this.$events); this.$events || (this.$events = {}); this.$events[c] ? a.util.isArray(this.$events[c]) ? this.$events[c].push(b) : this.$events[c] = [this.$events[c], b] : this.$events[c] = b; return this }; b.prototype.addListener = b.prototype.on; b.prototype.once = function(a, b) { function f() { e.removeListener(a, f); b.apply(this, arguments) } var e = this; f.listener = b; this.on(a, f); return this }; b.prototype.removeListener = function(c, b) { if (this.$events && this.$events[c]) { var f = this.$events[c]; if (a.util.isArray(f)) { for (var e = -1, l = 0, m = f.length; l < m; l++) if (f[l] === b || f[l].listener && f[l].listener === b) { e = l; break } if (0 > e) return this; f.splice(e, 1); f.length || delete this.$events[c] } else(f === b || f.listener && f.listener === b) && delete this.$events[c] } return this }; b.prototype.removeAllListeners = function(a) { if (void 0 === a) return this.$events = {}, this; this.$events && this.$events[a] && (this.$events[a] = null); return this }; b.prototype.listeners = function(b) { this.$events || (this.$events = {}); this.$events[b] || (this.$events[b] = []); a.util.isArray(this.$events[b]) || (this.$events[b] = [this.$events[b]]); return this.$events[b] }; b.prototype.emit = function(b) { console.log("emit arg", b); console.log("this events", this.$events); if (!this.$events) return !1; var g = this.$events[b]; if (!g) return !1; var f = Array.prototype.slice.call(arguments, 1); if ("function" == typeof g) g.apply(this, f); else if (a.util.isArray(g)) for (var g = g.slice(), e = 0, l = g.length; e < l; e++) g[e].apply(this, f); else return !1; return !0 } })("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports); (function(d, a) { function b(a) { return 10 > a ? "0" + a : a } function c(a) { l.lastIndex = 0; return l.test(a) ? '"' + a.replace(l, function(a) { var b = p[a]; return "string" === typeof b ? b : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + a + '"' } function g(a, e) { console.log("g args", a, e); var f, l, d, p, u = m, h, q = e[a]; q instanceof Date && (q = isFinite(a.valueOf()) ? a.getUTCFullYear() + "-" + b(a.getUTCMonth() + 1) + "-" + b(a.getUTCDate()) + "T" + b(a.getUTCHours()) + ":" + b(a.getUTCMinutes()) + ":" + b(a.getUTCSeconds()) + "Z" : null); "function" === typeof n && (q = n.call(e, a, q)); switch (typeof q) { case "string": return c(q); case "number": return isFinite(q) ? String(q) : "null"; case "boolean": case "null": return String(q); case "object": if (!q) return "null"; m += r; h = []; if ("[object Array]" === Object.prototype.toString.apply(q)) { p = q.length; for (f = 0; f < p; f += 1) h[f] = g(f, q) || "null"; d = 0 === h.length ? "[]" : m ? "[\n" + m + h.join(",\n" + m) + "\n" + u + "]" : "[" + h.join(",") + "]"; m = u; return d } if (n && "object" === typeof n) for (p = n.length, f = 0; f < p; f += 1) "string" === typeof n[f] && (l = n[f], (d = g(l, q)) && h.push(c(l) + (m ? ": " : ":") + d)); else for (l in q) Object.prototype.hasOwnProperty.call(q, l) && (d = g(l, q)) && h.push(c(l) + (m ? ": " : ":") + d); d = 0 === h.length ? "{}" : m ? "{\n" + m + h.join(",\n" + m) + "\n" + u + "}" : "{" + h.join(",") + "}"; m = u; return d } } if (a && a.parse) return d.JSON = { parse: a.parse, stringify: a.stringify }; var f = d.JSON = {}, e = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, l = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, m, r, p = { "\b": "\\b", "\t": "\\t", "\n": "\\n", "\f": "\\f", "\r": "\\r", '"': '\\"', "\\": "\\\\" }, n; f.stringify = function(a, b, c) { var f; r = m = ""; if ("number" === typeof c) for (f = 0; f < c; f += 1) r += " "; else "string" === typeof c && (r = c); if ((n = b) && "function" !== typeof b && ("object" !== typeof b || "number" !== typeof b.length)) throw Error("JSON.stringify"); return g("", { "": a }) }; f.parse = function(a, b) { function c(a, f) { var e, l, g = a[f]; if (g && "object" === typeof g) for (e in g) Object.prototype.hasOwnProperty.call(g, e) && (l = c(g, e), void 0 !== l ? g[e] = l : delete g[e]); return b.call(a, f, g) } var f; a = String(a); e.lastIndex = 0; e.test(a) && (a = a.replace(e, function(a) { return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4) })); if (/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return f = eval("(" + a + ")"), "function" === typeof b ? c({ "": f }, "") : f; throw new SyntaxError("JSON.parse"); } })("undefined" != typeof io ? io : module.exports, "undefined" !== typeof JSON ? JSON : void 0); (function(d, a) { var b = d.parser = {}, c = b.packets = "disconnect connect heartbeat message json event ack error noop".split(" "), g = b.reasons = ["transport not supported", "client not handshaken", "unauthorized"], f = b.advice = ["reconnect"], e = a.JSON, l = a.util.indexOf; b.encodePacket = function(a) { var b = l(c, a.type), d = a.id || "", m = a.endpoint || "", w = a.ack, t = null; switch (a.type) { case "error": var x = a.reason ? l(g, a.reason) : ""; a = a.advice ? l(f, a.advice) : ""; if ("" !== x || "" !== a) t = x + ("" !== a ? "+" + a : ""); break; case "message": "" !== a.data && (t = a.data); break; case "event": t = { name: a.name }; a.args && a.args.length && (t.args = a.args); t = e.stringify(t); break; case "json": t = e.stringify(a.data); break; case "connect": a.qs && (t = a.qs); break; case "ack": t = a.ackId + (a.args && a.args.length ? "+" + e.stringify(a.args) : "") } b = [b, d + ("data" == w ? "+" : ""), m]; null !== t && void 0 !== t && b.push(t); console.log(b.join(':')); return b.join(":") }; b.encodePayload = function(a) { console.log("encodePayload args"); var b = ""; if (1 == a.length) return a[0]; for (var c = 0, f = a.length; c < f; c++) b += "\ufffd" + a[c].length + "\ufffd" + a[c]; return b }; var m = /([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/; b.decodePacket = function(a) { var b = a.match(m); if (!b) return {}; var l = b[2] || ""; a = b[5] || ""; var d = { type: c[b[1]], endpoint: b[4] || "" }; l && (d.id = l, d.ack = b[3] ? "data" : !0); switch (d.type) { case "error": b = a.split("+"); d.reason = g[b[0]] || ""; d.advice = f[b[1]] || ""; break; case "message": d.data = a || ""; break; case "event": try { var w = e.parse(a); d.name = w.name; d.args = w.args } catch (t) {} d.args = d.args || []; break; case "json": try { d.data = e.parse(a) } catch (t) {} break; case "connect": d.qs = a || ""; break; case "ack": if (b = a.match(/^([0-9]+)(\+)?(.*)/)) if (d.ackId = b[1], d.args = [], b[3]) try { d.args = b[3] ? e.parse(b[3]) : [] } catch (t) {} } return d }; b.decodePayload = function(a) { if ("\ufffd" == a.charAt(0)) { for (var c = [], f = 1, e = ""; f < a.length; f++) "\ufffd" == a.charAt(f) ? (c.push(b.decodePacket(a.substr(f + 1).substr(0, e))), f += Number(e) + 1, e = "") : e += a.charAt(f); return c } return [b.decodePacket(a)] } })("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports); (function(d, a) { function b(a, b) { this.socket = a; this.sessid = b } d.Transport = b; a.util.mixin(b, a.EventEmitter); b.prototype.heartbeats = function() { return !0 }; b.prototype.onData = function(b) { this.clearCloseTimeout(); (this.socket.connected || this.socket.connecting || this.socket.reconnecting) && this.setCloseTimeout(); if ("" !== b && (b = a.parser.decodePayload(b)) && b.length) for (var g = 0, f = b.length; g < f; g++) this.onPacket(b[g]); return this }; b.prototype.onPacket = function(a) { this.socket.setHeartbeatTimeout(); if ("heartbeat" == a.type) return this.onHeartbeat(); if ("connect" == a.type && "" == a.endpoint) this.onConnect(); "error" == a.type && "reconnect" == a.advice && (this.isOpen = !1); this.socket.onPacket(a); return this }; b.prototype.setCloseTimeout = function() { if (!this.closeTimeout) { var a = this; this.closeTimeout = setTimeout(function() { a.onDisconnect() }, this.socket.closeTimeout) } }; b.prototype.onDisconnect = function() { this.isOpen && this.close(); this.clearTimeouts(); this.socket.onDisconnect(); return this }; b.prototype.onConnect = function() { this.socket.onConnect(); return this }; b.prototype.clearCloseTimeout = function() { this.closeTimeout && (clearTimeout(this.closeTimeout), this.closeTimeout = null) }; b.prototype.clearTimeouts = function() { this.clearCloseTimeout(); this.reopenTimeout && clearTimeout(this.reopenTimeout) }; b.prototype.packet = function(b) { this.send(a.parser.encodePacket(b)) }; b.prototype.onHeartbeat = function(a) { this.packet({ type: "heartbeat" }) }; b.prototype.onOpen = function() { this.isOpen = !0; this.clearCloseTimeout(); this.socket.onOpen() }; b.prototype.onClose = function() { this.isOpen = !1; this.socket.onClose(); this.onDisconnect() }; b.prototype.prepareUrl = function() { var b = this.socket.options; return this.scheme() + "://" + b.host + ":" + b.port + "/" + b.resource + "/" + a.protocol + "/" + this.name + "/" + this.sessid }; b.prototype.ready = function(a, b) { b.call(this) } })("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports); (function(d, a, b) { function c(f) { this.options = { port: 80, secure: !1, document: "document" in b ? document : !1, resource: "socket.io", transports: a.transports, "connect timeout": 1E4, "try multiple transports": !0, reconnect: !0, "reconnection delay": 500, "reconnection limit": Infinity, "reopen delay": 3E3, "max reconnection attempts": 10, "sync disconnect on unload": !1, "auto connect": !0, "flash policy port": 10843, manualFlush: !1 }; a.util.merge(this.options, f); this.reconnecting = this.connecting = this.open = this.connected = !1; this.namespaces = {}; this.buffer = []; this.doBuffer = !1; if (this.options["sync disconnect on unload"] && (!this.isXDomain() || a.util.ua.hasCORS)) { var e = this; a.util.on(b, "beforeunload", function() { e.disconnectSync() }, !1) } this.options["auto connect"] && this.connect() } function g() {} d.Socket = c; a.util.mixin(c, a.EventEmitter); c.prototype.of = function(b) { this.namespaces[b] || (this.namespaces[b] = new a.SocketNamespace(this, b), "" !== b && this.namespaces[b].packet({ type: "connect" })); return this.namespaces[b] }; c.prototype.publish = function() { this.emit.apply(this, arguments); var a, b; for (b in this.namespaces) this.namespaces.hasOwnProperty(b) && (a = this.of(b), a.$emit.apply(a, arguments)) }; c.prototype.handshake = function(b) { function e(a) { a instanceof Error ? (c.connecting = !1, c.onError(a.message)) : b.apply(null, a.split(":")) } var c = this, d = this.options, d = ["http" + (d.secure ? "s" : "") + ":/", d.host + ":" + d.port, d.resource, a.protocol, a.util.query(this.options.query, "t=" + +new Date) ].join("/"); if (this.isXDomain() && !a.util.ua.hasCORS) { var r = document.getElementsByTagName("script")[0], p = document.createElement("script"); p.src = d + "&jsonp=" + a.j.length; r.parentNode.insertBefore(p, r); a.j.push(function(a) { e(a); p.parentNode.removeChild(p) }) } else { var n = a.util.request(); n.open("GET", d, !0); this.isXDomain() && (n.withCredentials = !0); n.onreadystatechange = function() { if (4 == n.readyState) if (n.onreadystatechange = g, 200 == n.status) e(n.responseText); else if (403 == n.status) c.onError(n.responseText); else c.connecting = !1, !c.reconnecting && c.onError(n.responseText) }; n.send(null) } }; c.prototype.getTransport = function(b) { b = b || this.transports; for (var e = 0, c; c = b[e]; e++) if (a.Transport[c] && a.Transport[c].check(this) && (!this.isXDomain() || a.Transport[c].xdomainCheck(this))) return new a.Transport[c](this, this.sessionid); return null }; c.prototype.connect = function(b) { if (this.connecting) return this; var c = this; c.connecting = !0; this.handshake(function(l, g, d, p) { function n(a) { c.transport && c.transport.clearTimeouts(); c.transport = c.getTransport(a); if (!c.transport) return c.publish("connect_failed"); c.transport.ready(c, function() { c.connecting = !0; c.publish("connecting", c.transport.name); c.transport.open(); c.options["connect timeout"] && (c.connectTimeoutTimer = setTimeout(function() { if (!c.connected && (c.connecting = !1, c.options["try multiple transports"])) { for (var a = c.transports; 0 < a.length && a.splice(0, 1)[0] != c.transport.name;); a.length ? n(a) : c.publish("connect_failed") } }, c.options["connect timeout"])) }) } c.sessionid = l; c.closeTimeout = 1E3 * d; c.heartbeatTimeout = 1E3 * g; c.transports || (c.transports = c.origTransports = p ? a.util.intersect(p.split(","), c.options.transports) : c.options.transports); c.setHeartbeatTimeout(); n(c.transports); c.once("connect", function() { clearTimeout(c.connectTimeoutTimer); b && "function" == typeof b && b() }) }); return this }; c.prototype.setHeartbeatTimeout = function() { clearTimeout(this.heartbeatTimeoutTimer); if (!this.transport || this.transport.heartbeats()) { var a = this; this.heartbeatTimeoutTimer = setTimeout(function() { a.transport.onClose() }, this.heartbeatTimeout) } }; c.prototype.packet = function(a) { this.connected && !this.doBuffer ? this.transport.packet(a) : this.buffer.push(a); return this }; c.prototype.setBuffer = function(a) { this.doBuffer = a; !a && this.connected && this.buffer.length && (this.options.manualFlush || this.flushBuffer()) }; c.prototype.flushBuffer = function() { this.transport.payload(this.buffer); this.buffer = [] }; c.prototype.disconnect = function() { if (this.connected || this.connecting) this.open && this.of("").packet({ type: "disconnect" }), this.onDisconnect("booted"); return this }; c.prototype.disconnectSync = function() { var b = a.util.request(), c = ["http" + (this.options.secure ? "s" : "") + ":/", this.options.host + ":" + this.options.port, this.options.resource, a.protocol, "", this.sessionid].join("/") + "/?disconnect=1"; b.open("GET", c, !1); b.send(null); this.onDisconnect("booted") }; c.prototype.isXDomain = function() { var a = b.location.port || ("https:" == b.location.protocol ? 443 : 80); return this.options.host !== b.location.hostname || this.options.port != a }; c.prototype.onConnect = function() { this.connected || (this.connected = !0, this.connecting = !1, this.doBuffer || this.setBuffer(!1), this.emit("connect")) }; c.prototype.onOpen = function() { this.open = !0 }; c.prototype.onClose = function() { this.open = !1; clearTimeout(this.heartbeatTimeoutTimer) }; c.prototype.onPacket = function(a) { this.of(a.endpoint).onPacket(a) }; c.prototype.onError = function(a) { a && a.advice && "reconnect" === a.advice && (this.connected || this.connecting) && (this.disconnect(), this.options.reconnect && this.reconnect()); this.publish("error", a && a.reason ? a.reason : a) }; c.prototype.onDisconnect = function(a) { var b = this.connected, c = this.connecting; this.open = this.connecting = this.connected = !1; if (b || c) this.transport.close(), this.transport.clearTimeouts(), b && (this.publish("disconnect", a), "booted" != a && this.options.reconnect && !this.reconnecting && this.reconnect()) }; c.prototype.reconnect = function() { function a() { if (c.connected) { for (var f in c.namespaces) c.namespaces.hasOwnProperty(f) && "" !== f && c.namespaces[f].packet({ type: "connect" }); c.publish("reconnect", c.transport.name, c.reconnectionAttempts) } clearTimeout(c.reconnectionTimer); c.removeListener("connect_failed", b); c.removeListener("connect", b); c.reconnecting = !1; delete c.reconnectionAttempts; delete c.reconnectionDelay; delete c.reconnectionTimer; delete c.redoTransports; c.options["try multiple transports"] = d } function b() { if (c.reconnecting) { if (c.connected) return a(); if (c.connecting && c.reconnecting) return c.reconnectionTimer = setTimeout(b, 1E3); c.reconnectionAttempts++ >= g ? c.redoTransports ? (c.publish("reconnect_failed"), a()) : (c.on("connect_failed", b), c.options["try multiple transports"] = !0, c.transports = c.origTransports, c.transport = c.getTransport(), c.redoTransports = !0, c.connect()) : (c.reconnectionDelay < p && (c.reconnectionDelay *= 2), c.connect(), c.publish("reconnecting", c.reconnectionDelay, c.reconnectionAttempts), c.reconnectionTimer = setTimeout(b, c.reconnectionDelay)) } } this.reconnecting = !0; this.reconnectionAttempts = 0; this.reconnectionDelay = this.options["reconnection delay"]; var c = this, g = this.options["max reconnection attempts"], d = this.options["try multiple transports"], p = this.options["reconnection limit"]; this.options["try multiple transports"] = !1; this.reconnectionTimer = setTimeout(b, this.reconnectionDelay); this.on("connect", b) } })("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports, this); (function(d, a) { function b(a, b) { this.socket = a; this.name = b || ""; this.flags = {}; this.json = new c(this, "json"); this.ackPackets = 0; this.acks = {} } function c(a, b) { this.namespace = a; this.name = b } d.SocketNamespace = b; a.util.mixin(b, a.EventEmitter); b.prototype.$emit = a.EventEmitter.prototype.emit; b.prototype.of = function() { return this.socket.of.apply(this.socket, arguments) }; b.prototype.packet = function(a) { a.endpoint = this.name; this.socket.packet(a); this.flags = {}; return this }; b.prototype.send = function(a, b) { console.log("send args", a, b); var c = { type: this.flags.json ? "json" : "message", data: a }; "function" == typeof b && (c.id = ++this.ackPackets, c.ack = !0, this.acks[c.id] = b); return this.packet(c) }; b.prototype.emit = function(a) { var b = Array.prototype.slice.call(arguments, 1), c = b[b.length - 1], d = { type: "event", name: a }; "function" == typeof c && (d.id = ++this.ackPackets, d.ack = "data", this.acks[d.id] = c, b = b.slice(0, b.length - 1)); d.args = b; return this.packet(d) }; b.prototype.disconnect = function() { "" === this.name ? this.socket.disconnect() : (this.packet({ type: "disconnect" }), this.$emit("disconnect")); return this }; b.prototype.onPacket = function(b) { function c() { e.packet({ type: "ack", args: a.util.toArray(arguments), ackId: b.id }) } var e = this; switch (b.type) { case "connect": this.$emit("connect"); break; case "disconnect": if ("" === this.name) this.socket.onDisconnect(b.reason || "booted"); else this.$emit("disconnect", b.reason); break; case "message": case "json": var d = ["message", b.data]; "data" == b.ack ? d.push(c) : b.ack && this.packet({ type: "ack", ackId: b.id }); this.$emit.apply(this, d); break; case "event": d = [b.name].concat(b.args); "data" == b.ack && d.push(c); this.$emit.apply(this, d); break; case "ack": this.acks[b.ackId] && (this.acks[b.ackId].apply(this, b.args), delete this.acks[b.ackId]); break; case "error": if (b.advice) this.socket.onError(b); else "unauthorized" == b.reason ? this.$emit("connect_failed", b.reason) : this.$emit("error", b.reason) } }; c.prototype.send = function() { this.namespace.flags[this.name] = !0; this.namespace.send.apply(this.namespace, arguments) }; c.prototype.emit = function() { this.namespace.flags[this.name] = !0; this.namespace.emit.apply(this.namespace, arguments) } })("undefined" != typeof io ? io : module.exports, "undefined" != typeof io ? io : module.parent.exports); (function(d, a, b) { function c(b) { a.Transport.apply(this, arguments) } d.websocket = c; a.util.inherit(c, a.Transport); c.prototype.name = "websocket"; c.prototype.open = function() { var c = a.util.query(this.socket.options.query), f = this, e; e || (e = b.MozWebSocket || b.WebSocket); this.websocket = new e(this.prepareUrl() + c); this.websocket.onopen = function() { f.onOpen(); f.socket.setBuffer(!1) }; this.websocket.onmessage = function(a) { f.onData(a.data) }; this.websocket.onclose = function() { f.onClose(); f.socket.setBuffer(!0) }; this.websocket.onerror = function(a) { f.onError(a) }; return this }; c.prototype.send = a.util.ua.iDevice ? function(a) { var b = this; setTimeout(function() { b.websocket.send(a) }, 0); return this } : function(a) { this.websocket.send(a); return this }; c.prototype.payload = function(a) { for (var b = 0, c = a.length; b < c; b++) this.packet(a[b]); return this }; c.prototype.close = function() { this.websocket.close(); return this }; c.prototype.onError = function(a) { this.socket.onError(a) }; c.prototype.scheme = function() { return this.socket.options.secure ? "wss" : "ws" }; c.check = function() { return "WebSocket" in b && !("__addTask" in WebSocket) || "MozWebSocket" in b }; c.xdomainCheck = function() { return !0 }; a.transports.push("websocket") })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this); (function(d, a) { function b() { a.Transport.websocket.apply(this, arguments) } d.flashsocket = b; a.util.inherit(b, a.Transport.websocket); b.prototype.name = "flashsocket"; b.prototype.open = function() { var b = this, d = arguments; WebSocket.__addTask(function() { a.Transport.websocket.prototype.open.apply(b, d) }); return this }; b.prototype.send = function() { var b = this, d = arguments; WebSocket.__addTask(function() { a.Transport.websocket.prototype.send.apply(b, d) }); return this }; b.prototype.close = function() { WebSocket.__tasks.length = 0; a.Transport.websocket.prototype.close.call(this); return this }; b.prototype.ready = function(c, d) { function f() { var a = c.options, f = a["flash policy port"], r = ["http" + (a.secure ? "s" : "") + ":/", a.host + ":" + a.port, a.resource, "static/flashsocket", "WebSocketMain" + (c.isXDomain() ? "Insecure" : "") + ".swf"]; b.loaded || ("undefined" === typeof WEB_SOCKET_SWF_LOCATION && (WEB_SOCKET_SWF_LOCATION = r.join("/")), 843 !== f && WebSocket.loadFlashPolicyFile("xmlsocket://" + a.host + ":" + f), WebSocket.__initialize(), b.loaded = !0); d.call(e) } var e = this; if (document.body) return f(); a.util.load(f) }; b.check = function() { return "undefined" != typeof WebSocket && "__initialize" in WebSocket && x ? 10 <= x.getFlashPlayerVersion().major : !1 }; b.xdomainCheck = function() { return !0 }; "undefined" != typeof window && (WEB_SOCKET_DISABLE_AUTO_INITIALIZATION = !0); a.transports.push("flashsocket") })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports); if ("undefined" != typeof window) var x = function() { function d() { if (!B) { try { var a = h.getElementsByTagName("body")[0].appendChild(h.createElement("span")); a.parentNode.removeChild(a) } catch (b) { return } B = !0; for (var a = E.length, c = 0; c < a; c++) E[c]() } } function a(a) { B ? a() : E[E.length] = a } function b(a) { if ("undefined" != typeof u.addEventListener) u.addEventListener("load", a, !1); else if ("undefined" != typeof h.addEventListener) h.addEventListener("load", a, !1); else if ("undefined" != typeof u.attachEvent) w(u, "onload", a); else if ("function" == typeof u.onload) { var b = u.onload; u.onload = function() { b(); a() } } else u.onload = a } function c() { var a = h.getElementsByTagName("body")[0], b = h.createElement("object"); b.setAttribute("type", "application/x-shockwave-flash"); var c = a.appendChild(b); if (c) { var f = 0; (function() { if ("undefined" != typeof c.GetVariable) { var e = c.GetVariable("$version"); e && (e = e.split(" ")[1].split(","), k.pv = [parseInt(e[0], 10), parseInt(e[1], 10), parseInt(e[2], 10)]) } else if (10 > f) { f++; setTimeout(arguments.callee, 10); return } a.removeChild(b); c = null; g() })() } else g() } function g() { var a = z.length; if (0 < a) for (var b = 0; b < a; b++) { var c = z[b].id, d = z[b].callbackFn, g = { success: !1, id: c }; if (0 < k.pv[0]) { var h = v(c); if (h) if (!t(z[b].swfVersion) || k.wk && 312 > k.wk) if (z[b].expressInstall && e()) { g = {}; g.data = z[b].expressInstall; g.width = h.getAttribute("width") || "0"; g.height = h.getAttribute("height") || "0"; h.getAttribute("class") && (g.styleclass = h.getAttribute("class")); h.getAttribute("align") && (g.align = h.getAttribute("align")); for (var M = {}, h = h.getElementsByTagName("param"), n = h.length, p = 0; p < n; p++) "movie" != h[p].getAttribute("name").toLowerCase() && (M[h[p].getAttribute("name")] = h[p].getAttribute("value")); l(g, M, c, d) } else m(h), d && d(g); else A(c, !0), d && (g.success = !0, g.ref = f(c), d(g)) } else A(c, !0), d && ((c = f(c)) && "undefined" != typeof c.SetVariable && (g.success = !0, g.ref = c), d(g)) } } function f(a) { var b = null; (a = v(a)) && "OBJECT" == a.nodeName && ("undefined" != typeof a.SetVariable ? b = a : (a = a.getElementsByTagName("object")[0]) && (b = a)); return b } function e() { return !F && t("6.0.65") && (k.win || k.mac) && !(k.wk && 312 > k.wk) } function l(a, b, c, f) { F = !0; I = f || null; N = { success: !1, id: c }; var e = v(c); if (e) { "OBJECT" == e.nodeName ? (D = r(e), G = null) : (D = e, G = c); a.id = "SWFObjectExprInst"; if ("undefined" == typeof a.width || !/%$/.test(a.width) && 310 > parseInt(a.width, 10)) a.width = "310"; if ("undefined" == typeof a.height || !/%$/.test(a.height) && 137 > parseInt(a.height, 10)) a.height = "137"; h.title = h.title.slice(0, 47) + " - Flash Player Installation"; f = k.ie && k.win ? ["Active"].concat("").join("X") : "PlugIn"; f = "MMredirectURL=" + u.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + f + "&MMdoctitle=" + h.title; b.flashvars = "undefined" != typeof b.flashvars ? b.flashvars + ("&" + f) : f; k.ie && k.win && 4 != e.readyState && (f = h.createElement("div"), c += "SWFObjectNew", f.setAttribute("id", c), e.parentNode.insertBefore(f, e), e.style.display = "none", function() { 4 == e.readyState ? e.parentNode.removeChild(e) : setTimeout(arguments.callee, 10) }()); p(a, b, c) } } function m(a) { if (k.ie && k.win && 4 != a.readyState) { var b = h.createElement("div"); a.parentNode.insertBefore(b, a); b.parentNode.replaceChild(r(a), b); a.style.display = "none"; (function() { 4 == a.readyState ? a.parentNode.removeChild(a) : setTimeout(arguments.callee, 10) })() } else a.parentNode.replaceChild(r(a), a) } function r(a) { var b = h.createElement("div"); if (k.win && k.ie) b.innerHTML = a.innerHTML; else if (a = a.getElementsByTagName("object")[0]) if (a = a.childNodes) for (var c = a.length, e = 0; e < c; e++) 1 == a[e].nodeType && "PARAM" == a[e].nodeName || 8 == a[e].nodeType || b.appendChild(a[e].cloneNode(!0)); return b } function p(a, b, c) { var e, f = v(c); if (k.wk && 312 > k.wk) return e; if (f) if ("undefined" == typeof a.id && (a.id = c), k.ie && k.win) { var d = "", g; for (g in a) a[g] != Object.prototype[g] && ("data" == g.toLowerCase() ? b.movie = a[g] : "styleclass" == g.toLowerCase() ? d += ' class="' + a[g] + '"' : "classid" != g.toLowerCase() && (d += " " + g + '="' + a[g] + '"')); g = ""; for (var l in b) b[l] != Object.prototype[l] && (g += '<param name="' + l + '" value="' + b[l] + '" />'); f.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + d + ">" + g + "</object>"; H[H.length] = a.id; e = v(a.id) } else { l = h.createElement("object"); l.setAttribute("type", "application/x-shockwave-flash"); for (var m in a) a[m] != Object.prototype[m] && ("styleclass" == m.toLowerCase() ? l.setAttribute("class", a[m]) : "classid" != m.toLowerCase() && l.setAttribute(m, a[m])); for (d in b) b[d] != Object.prototype[d] && "movie" != d.toLowerCase() && (a = l, g = d, m = b[d], c = h.createElement("param"), c.setAttribute("name", g), c.setAttribute("value", m), a.appendChild(c)); f.parentNode.replaceChild(l, f); e = l } return e } function n(a) { var b = v(a); b && "OBJECT" == b.nodeName && (k.ie && k.win ? (b.style.display = "none", function() { if (4 == b.readyState) { var c = v(a); if (c) { for (var e in c) "function" == typeof c[e] && (c[e] = null); c.parentNode.removeChild(c) } } else setTimeout(arguments.callee, 10) }()) : b.parentNode.removeChild(b)) } function v(a) { var b = null; try { b = h.getElementById(a) } catch (c) {} return b } function w(a, b, c) { a.attachEvent(b, c); C[C.length] = [a, b, c] } function t(a) { var b = k.pv; a = a.split("."); a[0] = parseInt(a[0], 10); a[1] = parseInt(a[1], 10) || 0; a[2] = parseInt(a[2], 10) || 0; return b[0] > a[0] || b[0] == a[0] && b[1] > a[1] || b[0] == a[0] && b[1] == a[1] && b[2] >= a[2] ? !0 : !1 } function K(a, b, c, e) { if (!k.ie || !k.mac) { var f = h.getElementsByTagName("head")[0]; f && (c = c && "string" == typeof c ? c : "screen", e && (J = y = null), y && J == c || (e = h.createElement("style"), e.setAttribute("type", "text/css"), e.setAttribute("media", c), y = f.appendChild(e), k.ie && k.win && "undefined" != typeof h.styleSheets && 0 < h.styleSheets.length && (y = h.styleSheets[h.styleSheets.length - 1]), J = c), k.ie && k.win ? y && "object" == typeof y.addRule && y.addRule(a, b) : y && "undefined" != typeof h.createTextNode && y.appendChild(h.createTextNode(a + " {" + b + "}"))) } } function A(a, b) { if (O) { var c = b ? "visible" : "hidden"; B && v(a) ? v(a).style.visibility = c : K("#" + a, "visibility:" + c) } } function L(a) { return null != /[\\\"<>\.;]/.exec(a) && "undefined" != typeof encodeURIComponent ? encodeURIComponent(a) : a } var u = window, h = document, q = navigator, P = !1, E = [function() { P ? c() : g() }], z = [], H = [], C = [], D, G, I, N, B = !1, F = !1, y, J, O = !0, k = function() { var a = "undefined" != typeof h.getElementById && "undefined" != typeof h.getElementsByTagName && "undefined" != typeof h.createElement, b = q.userAgent.toLowerCase(), c = q.platform.toLowerCase(), e = c ? /win/.test(c) : /win/.test(b), c = c ? /mac/.test(c) : /mac/.test(b), b = /webkit/.test(b) ? parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : !1, f = !+"\v1", d = [0, 0, 0], g = null; if ("undefined" != typeof q.plugins && "object" == typeof q.plugins["Shockwave Flash"]) !(g = q.plugins["Shockwave Flash"].description) || "undefined" != typeof q.mimeTypes && q.mimeTypes["application/x-shockwave-flash"] && !q.mimeTypes["application/x-shockwave-flash"].enabledPlugin || (P = !0, f = !1, g = g.replace(/^.*\s+(\S+\s+\S+$)/, "$1"), d[0] = parseInt(g.replace(/^(.*)\..*$/, "$1"), 10), d[1] = parseInt(g.replace(/^.*\.(.*)\s.*$/, "$1"), 10), d[2] = /[a-zA-Z]/.test(g) ? parseInt(g.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0); else if ("undefined" != typeof u[["Active"].concat("Object").join("X")]) try { if (g = (new(window[["Active"].concat("Object").join("X")])("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")) f = !0, g = g.split(" ")[1].split(","), d = [parseInt(g[0], 10), parseInt(g[1], 10), parseInt(g[2], 10)] } catch (l) {} return { w3: a, pv: d, wk: b, ie: f, win: e, mac: c } }(); (function() { k.w3 && (("undefined" != typeof h.readyState && "complete" == h.readyState || "undefined" == typeof h.readyState && (h.getElementsByTagName("body")[0] || h.body)) && d(), B || ("undefined" != typeof h.addEventListener && h.addEventListener("DOMContentLoaded", d, !1), k.ie && k.win && (h.attachEvent("onreadystatechange", function() { "complete" == h.readyState && (h.detachEvent("onreadystatechange", arguments.callee), d()) }), u == top && function() { if (!B) { try { h.documentElement.doScroll("left") } catch (a) { setTimeout(arguments.callee, 0); return } d() } }()), k.wk && function() { B || (/loaded|complete/.test(h.readyState) ? d() : setTimeout(arguments.callee, 0)) }(), b(d))) })(); (function() { k.ie && k.win && window.attachEvent("onunload", function() { for (var a = C.length, b = 0; b < a; b++) C[b][0].detachEvent(C[b][1], C[b][2]); a = H.length; for (b = 0; b < a; b++) n(H[b]); for (var c in k) k[c] = null; k = null; for (var e in x) x[e] = null; x = null }) })(); return { registerObject: function(a, b, c, e) { if (k.w3 && a && b) { var f = {}; f.id = a; f.swfVersion = b; f.expressInstall = c; f.callbackFn = e; z[z.length] = f; A(a, !1) } else e && e({ success: !1, id: a }) }, getObjectById: function(a) { if (k.w3) return f(a) }, embedSWF: function(b, c, f, d, g, m, h, n, q, r) { var u = { success: !1, id: c }; k.w3 && !(k.wk && 312 > k.wk) && b && c && f && d && g ? (A(c, !1), a(function() { f += ""; d += ""; var a = {}; if (q && "object" === typeof q) for (var k in q) a[k] = q[k]; a.data = b; a.width = f; a.height = d; k = {}; if (n && "object" === typeof n) for (var v in n) k[v] = n[v]; if (h && "object" === typeof h) for (var w in h) k.flashvars = "undefined" != typeof k.flashvars ? k.flashvars + ("&" + w + "=" + h[w]) : w + "=" + h[w]; if (t(g)) v = p(a, k, c), a.id == c && A(c, !0), u.success = !0, u.ref = v; else { if (m && e()) { a.data = m; l(a, k, c, r); return } A(c, !0) } r && r(u) })) : r && r(u) }, switchOffAutoHideShow: function() { O = !1 }, ua: k, getFlashPlayerVersion: function() { return { major: k.pv[0], minor: k.pv[1], release: k.pv[2] } }, hasFlashPlayerVersion: t, createSWF: function(a, b, c) { if (k.w3) return p(a, b, c) }, showExpressInstall: function(a, b, c, f) { k.w3 && e() && l(a, b, c, f) }, removeSWF: function(a) { k.w3 && n(a) }, createCSS: function(a, b, c, e) { k.w3 && K(a, b, c, e) }, addDomLoadEvent: a, addLoadEvent: b, getQueryParamValue: function(a) { var b = h.location.search || h.location.hash; if (b) { /\?/.test(b) && (b = b.split("?")[1]); if (null == a) return L(b); for (var b = b.split("&"), c = 0; c < b.length; c++) if (b[c].substring(0, b[c].indexOf("=")) == a) return L(b[c].substring(b[c].indexOf("=") + 1)) } return "" }, expressInstallCallback: function() { if (F) { var a = v("SWFObjectExprInst"); a && D && (a.parentNode.replaceChild(D, a), G && (A(G, !0), k.ie && k.win && (D.style.display = "block")), I && I(N)); F = !1 } } } }(); (function() { if ("undefined" != typeof window && !window.WebSocket) { var d = window.console; d && d.log && d.error || (d = { log: function() {}, error: function() {} }); x.hasFlashPlayerVersion("10.0.0") ? ("file:" == location.protocol && d.error("WARNING: web-socket-js doesn't work in file:///... URL unless you set Flash Security Settings properly. Open the page via Web server i.e. http://..."), WebSocket = function(a, b, c, d, f) { var e = this; e.__id = WebSocket.__nextId++; WebSocket.__instances[e.__id] = e; e.readyState = WebSocket.CONNECTING; e.bufferedAmount = 0; e.__events = {}; b ? "string" == typeof b && (b = [b]) : b = []; setTimeout(function() { WebSocket.__addTask(function() { WebSocket.__flash.create(e.__id, a, b, c || null, d || 0, f || null) }) }, 0) }, WebSocket.prototype.send = function(a) { if (this.readyState == WebSocket.CONNECTING) throw "INVALID_STATE_ERR: Web Socket connection has not been established"; a = WebSocket.__flash.send(this.__id, encodeURIComponent(a)); if (0 > a) return !0; this.bufferedAmount += a; return !1 }, WebSocket.prototype.close = function() { this.readyState != WebSocket.CLOSED && this.readyState != WebSocket.CLOSING && (this.readyState = WebSocket.CLOSING, WebSocket.__flash.close(this.__id)) }, WebSocket.prototype.addEventListener = function(a, b, c) { a in this.__events || (this.__events[a] = []); this.__events[a].push(b) }, WebSocket.prototype.removeEventListener = function(a, b, c) { if (a in this.__events) for (a = this.__events[a], c = a.length - 1; 0 <= c; --c) if (a[c] === b) { a.splice(c, 1); break } }, WebSocket.prototype.dispatchEvent = function(a) { console.log("dispatch event arg", a); for (var b = this.__events[a.type] || [], c = 0; c < b.length; ++c) b[c](a); (b = this["on" + a.type]) && b(a) }, WebSocket.prototype.__handleEvent = function(a) { console.log("handle event arg", a); "readyState" in a && (this.readyState = a.readyState); "protocol" in a && (this.protocol = a.protocol); if ("open" == a.type || "error" == a.type) a = this.__createSimpleEvent(a.type); else if ("close" == a.type) a = this.__createSimpleEvent("close"); else if ("message" == a.type) a = decodeURIComponent(a.message), a = this.__createMessageEvent("message", a); else throw "unknown event type: " + a.type; this.dispatchEvent(a) }, WebSocket.prototype.__createSimpleEvent = function(a) { if (document.createEvent && window.Event) { var b = document.createEvent("Event"); b.initEvent(a, !1, !1); return b } return { type: a, bubbles: !1, cancelable: !1 } }, WebSocket.prototype.__createMessageEvent = function(a, b) { if (document.createEvent && window.MessageEvent && !window.opera) { var c = document.createEvent("MessageEvent"); c.initMessageEvent("message", !1, !1, b, null, null, window, null); return c } return { type: a, data: b, bubbles: !1, cancelable: !1 } }, WebSocket.CONNECTING = 0, WebSocket.OPEN = 1, WebSocket.CLOSING = 2, WebSocket.CLOSED = 3, WebSocket.__flash = null, WebSocket.__instances = {}, WebSocket.__tasks = [], WebSocket.__nextId = 0, WebSocket.loadFlashPolicyFile = function(a) { WebSocket.__addTask(function() { WebSocket.__flash.loadManualPolicyFile(a) }) }, WebSocket.__initialize = function() { if (!WebSocket.__flash) if (WebSocket.__swfLocation && (window.WEB_SOCKET_SWF_LOCATION = WebSocket.__swfLocation), window.WEB_SOCKET_SWF_LOCATION) { var a = document.createElement("div"); a.id = "webSocketContainer"; a.style.position = "absolute"; WebSocket.__isFlashLite() ? (a.style.left = "0px", a.style.top = "0px") : (a.style.left = "-100px", a.style.top = "-100px"); var b = document.createElement("div"); b.id = "webSocketFlash"; a.appendChild(b); document.body.appendChild(a); x.embedSWF(WEB_SOCKET_SWF_LOCATION, "webSocketFlash", "1", "1", "10.0.0", null, null, { hasPriority: !0, swliveconnect: !0, allowScriptAccess: "always" }, null, function(a) { a.success || d.error("[WebSocket] swfobject.embedSWF failed") }) } else d.error("[WebSocket] set WEB_SOCKET_SWF_LOCATION to location of WebSocketMain.swf") }, WebSocket.__onFlashInitialized = function() { setTimeout(function() { WebSocket.__flash = document.getElementById("webSocketFlash"); WebSocket.__flash.setCallerUrl(location.href); WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG); for (var a = 0; a < WebSocket.__tasks.length; ++a) WebSocket.__tasks[a](); WebSocket.__tasks = [] }, 0) }, WebSocket.__onFlashEvent = function() { setTimeout(function() { try { for (var a = WebSocket.__flash.receiveEvents(), b = 0; b < a.length; ++b) WebSocket.__instances[a[b].webSocketId].__handleEvent(a[b]) } catch (c) { d.error(c) } }, 0); return !0 }, WebSocket.__log = function(a) { d.log(decodeURIComponent(a)) }, WebSocket.__error = function(a) { d.error(decodeURIComponent(a)) }, WebSocket.__addTask = function(a) { WebSocket.__flash ? a() : WebSocket.__tasks.push(a) }, WebSocket.__isFlashLite = function() { if (!window.navigator || !window.navigator.mimeTypes) return !1; var a = window.navigator.mimeTypes["application/x-shockwave-flash"]; return a && a.enabledPlugin && a.enabledPlugin.filename ? a.enabledPlugin.filename.match(/flashlite/i) ? !0 : !1 : !1 }, window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION || (window.addEventListener ? window.addEventListener("load", function() { WebSocket.__initialize() }, !1) : window.attachEvent("onload", function() { WebSocket.__initialize() }))) : d.error("Flash Player >= 10.0.0 is required.") } })(); (function(d, a, b) { function c(b) { b && (a.Transport.apply(this, arguments), this.sendBuffer = []) } function g() {} d.XHR = c; a.util.inherit(c, a.Transport); c.prototype.open = function() { this.socket.setBuffer(!1); this.onOpen(); this.get(); this.setCloseTimeout(); return this }; c.prototype.payload = function(b) { for (var c = [], d = 0, g = b.length; d < g; d++) c.push(a.parser.encodePacket(b[d])); this.send(a.parser.encodePayload(c)) }; c.prototype.send = function(a) { this.post(a); return this }; c.prototype.post = function(a) { function c() { if (4 == this.readyState) if (this.onreadystatechange = g, m.posting = !1, 200 == this.status) m.socket.setBuffer(!1); else m.onClose() } function d() { this.onload = g; m.socket.setBuffer(!1) } var m = this; this.socket.setBuffer(!0); this.sendXHR = this.request("POST"); b.XDomainRequest && this.sendXHR instanceof XDomainRequest ? this.sendXHR.onload = this.sendXHR.onerror = d : this.sendXHR.onreadystatechange = c; this.sendXHR.send(a) }; c.prototype.close = function() { this.onClose(); return this }; c.prototype.request = function(b) { var c = a.util.request(this.socket.isXDomain()), d = a.util.query(this.socket.options.query, "t=" + +new Date); c.open(b || "GET", this.prepareUrl() + d, !0); if ("POST" == b) try { c.setRequestHeader ? c.setRequestHeader("Content-type", "text/plain;charset=UTF-8") : c.contentType = "text/plain" } catch (g) {} return c }; c.prototype.scheme = function() { return this.socket.options.secure ? "https" : "http" }; c.check = function(c, e) { try { var d = a.util.request(e), g = b.XDomainRequest && d instanceof XDomainRequest, r = c && c.options && c.options.secure ? "https:" : "http:", p = b.location && r != b.location.protocol; if (d && (!g || !p)) return !0 } catch (n) {} return !1 }; c.xdomainCheck = function(a) { return c.check(a, !0) } })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this); (function(d, a) { function b(b) { a.Transport.XHR.apply(this, arguments) } d.htmlfile = b; a.util.inherit(b, a.Transport.XHR); b.prototype.name = "htmlfile"; b.prototype.get = function() { this.doc = new(window[["Active"].concat("Object").join("X")])("htmlfile"); this.doc.open(); this.doc.write("<html></html>"); this.doc.close(); this.doc.parentWindow.s = this; var b = this.doc.createElement("div"); b.className = "socketio"; this.doc.body.appendChild(b); this.iframe = this.doc.createElement("iframe"); b.appendChild(this.iframe); var d = this, b = a.util.query(this.socket.options.query, "t=" + +new Date); this.iframe.src = this.prepareUrl() + b; a.util.on(window, "unload", function() { d.destroy() }) }; b.prototype._ = function(a, b) { a = a.replace(/\\\//g, "/"); this.onData(a); try { var f = b.getElementsByTagName("script")[0]; f.parentNode.removeChild(f) } catch (e) {} }; b.prototype.destroy = function() { if (this.iframe) { try { this.iframe.src = "about:blank" } catch (a) {} this.doc = null; this.iframe.parentNode.removeChild(this.iframe); this.iframe = null; CollectGarbage() } }; b.prototype.close = function() { this.destroy(); return a.Transport.XHR.prototype.close.call(this) }; b.check = function(b) { if ("undefined" != typeof window && ["Active"].concat("Object").join("X") in window) try { return new(window[["Active"].concat("Object").join("X")])("htmlfile"), a.Transport.XHR.check(b) } catch (d) {} return !1 }; b.xdomainCheck = function() { return !1 }; a.transports.push("htmlfile") })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports); (function(d, a, b) { function c() { a.Transport.XHR.apply(this, arguments) } function g() {} d["xhr-polling"] = c; a.util.inherit(c, a.Transport.XHR); a.util.merge(c, a.Transport.XHR); c.prototype.name = "xhr-polling"; c.prototype.heartbeats = function() { return !1 }; c.prototype.open = function() { a.Transport.XHR.prototype.open.call(this); return !1 }; c.prototype.get = function() { function a() { if (4 == this.readyState) if (this.onreadystatechange = g, 200 == this.status) m.onData(this.responseText), m.get(); else m.onClose() } function c() { this.onerror = this.onload = g; m.retryCounter = 1; m.onData(this.responseText); m.get() } function d() { m.retryCounter++; if (!m.retryCounter || 3 < m.retryCounter) m.onClose(); else m.get() } if (this.isOpen) { var m = this; this.xhr = this.request(); b.XDomainRequest && this.xhr instanceof XDomainRequest ? (this.xhr.onload = c, this.xhr.onerror = d) : this.xhr.onreadystatechange = a; this.xhr.send(null) } }; c.prototype.onClose = function() { a.Transport.XHR.prototype.onClose.call(this); if (this.xhr) { this.xhr.onreadystatechange = this.xhr.onload = this.xhr.onerror = g; try { this.xhr.abort() } catch (b) {} this.xhr = null } }; c.prototype.ready = function(b, c) { var d = this; a.util.defer(function() { c.call(d) }) }; a.transports.push("xhr-polling") })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this); (function(d, a, b) { function c(b) { a.Transport["xhr-polling"].apply(this, arguments); this.index = a.j.length; var c = this; a.j.push(function(a) { c._(a) }) } var g = b.document && "MozAppearance" in b.document.documentElement.style; d["jsonp-polling"] = c; a.util.inherit(c, a.Transport["xhr-polling"]); c.prototype.name = "jsonp-polling"; c.prototype.post = function(b) { function c() { d(); g.socket.setBuffer(!1) } function d() { g.iframe && g.form.removeChild(g.iframe); try { w = document.createElement('<iframe name="' + g.iframeId + '">') } catch (a) { w = document.createElement("iframe"), w.name = g.iframeId } w.id = g.iframeId; g.form.appendChild(w); g.iframe = w } var g = this, r = a.util.query(this.socket.options.query, "t=" + +new Date + "&i=" + this.index); if (!this.form) { var p = document.createElement("form"), n = document.createElement("textarea"), v = this.iframeId = "socketio_iframe_" + this.index, w; p.className = "socketio"; p.style.position = "absolute"; p.style.top = "0px"; p.style.left = "0px"; p.style.display = "none"; p.target = v; p.method = "POST"; p.setAttribute("accept-charset", "utf-8"); n.name = "d"; p.appendChild(n); document.body.appendChild(p); this.form = p; this.area = n } this.form.action = this.prepareUrl() + r; d(); this.area.value = a.JSON.stringify(b); try { this.form.submit() } catch (t) {} this.iframe.attachEvent ? w.onreadystatechange = function() { "complete" == g.iframe.readyState && c() } : this.iframe.onload = c; this.socket.setBuffer(!0) }; c.prototype.get = function() { var b = this, c = document.createElement("script"), d = a.util.query(this.socket.options.query, "t=" + +new Date + "&i=" + this.index); this.script && (this.script.parentNode.removeChild(this.script), this.script = null); c.async = !0; c.src = this.prepareUrl() + d; c.onerror = function() { b.onClose() }; d = document.getElementsByTagName("script")[0]; d.parentNode.insertBefore(c, d); this.script = c; g && setTimeout(function() { var a = document.createElement("iframe"); document.body.appendChild(a); document.body.removeChild(a) }, 100) }; c.prototype._ = function(a) { this.onData(a); this.isOpen && this.get(); return this }; c.prototype.ready = function(b, c) { var d = this; if (!g) return c.call(this); a.util.load(function() { c.call(d) }) }; c.check = function() { return "document" in b }; c.xdomainCheck = function() { return !0 }; a.transports.push("jsonp-polling") })("undefined" != typeof io ? io.Transport : module.exports, "undefined" != typeof io ? io : module.parent.exports, this); "function" === typeof define && define.amd && define([], function() { return io }) })();