Файловый менеджер - Редактировать - /home/jogoso94/public_html/jogos/sliding_bricks/js/main.js
�азад
/* screenfull v5.0.0 - 2019-09-09 (c) Sindre Sorhus; MIT License Platform.js <https://mths.be/platform> Copyright 2014-2018 Benjamin Tan <https://bnjmnt4n.now.sh/> Copyright 2011-2013 John-David Dalton Available under MIT license <https://mths.be/mit> */ (function() { var a = "undefined" !== typeof window && "undefined" !== typeof window.document ? window.document : {}, c = "undefined" !== typeof module && module.exports, b = function() { for (var e, f = ["requestFullscreen exitFullscreen fullscreenElement fullscreenEnabled fullscreenchange fullscreenerror".split(" "), "webkitRequestFullscreen webkitExitFullscreen webkitFullscreenElement webkitFullscreenEnabled webkitfullscreenchange webkitfullscreenerror".split(" "), "webkitRequestFullScreen webkitCancelFullScreen webkitCurrentFullScreenElement webkitCancelFullScreen webkitfullscreenchange webkitfullscreenerror".split(" "), "mozRequestFullScreen mozCancelFullScreen mozFullScreenElement mozFullScreenEnabled mozfullscreenchange mozfullscreenerror".split(" "), "msRequestFullscreen msExitFullscreen msFullscreenElement msFullscreenEnabled MSFullscreenChange MSFullscreenError".split(" ") ], g = 0, m = f.length, n = {}; g < m; g++) if ((e = f[g]) && e[1] in a) { for (g = 0; g < e.length; g++) n[f[0][g]] = e[g]; return n } return !1 }(), d = { change: b.fullscreenchange, error: b.fullscreenerror }, h = { request: function(e) { return new Promise(function(f, g) { var m = function() { this.off("change", m); f() }.bind(this); this.on("change", m); e = e || a.documentElement; Promise.resolve(e[b.requestFullscreen]())["catch"](g) }.bind(this)) }, exit: function() { return new Promise(function(e, f) { if (this.isFullscreen) { var g = function() { this.off("change", g); e() }.bind(this); this.on("change", g); Promise.resolve(a[b.exitFullscreen]())["catch"](f) } else e() }.bind(this)) }, toggle: function(e) { return this.isFullscreen ? this.exit() : this.request(e) }, onchange: function(e) { this.on("change", e) }, onerror: function(e) { this.on("error", e) }, on: function(e, f) { var g = d[e]; g && a.addEventListener(g, f, !1) }, off: function(e, f) { var g = d[e]; g && a.removeEventListener(g, f, !1) }, raw: b }; b ? (Object.defineProperties(h, { isFullscreen: { get: function() { return !!a[b.fullscreenElement] } }, element: { enumerable: !0, get: function() { return a[b.fullscreenElement] } }, isEnabled: { enumerable: !0, get: function() { return !!a[b.fullscreenEnabled] } } }), c ? module.exports = h : window.screenfull = h) : c ? module.exports = { isEnabled: !1 } : window.screenfull = { isEnabled: !1 } })(); (function() { function a(l) { l = String(l); return l.charAt(0).toUpperCase() + l.slice(1) } function c(l, v) { var C = -1, B = l ? l.length : 0; if ("number" == typeof B && -1 < B && B <= q) for (; ++C < B;) v(l[C], C, l); else d(l, v) } function b(l) { l = String(l).replace(/^ +| +$/g, ""); return /^(?:webOS|i(?:OS|P))/.test(l) ? l : a(l) } function d(l, v) { for (var C in l) w.call(l, C) && v(l[C], C, l) } function h(l) { return null == l ? a(l) : z.call(l).slice(8, -1) } function e(l, v) { var C = null != l ? typeof l[v] : "number"; return !/^(?:boolean|number|string|undefined)$/.test(C) && ("object" == C ? !!l[v] : !0) } function f(l) { return String(l).replace(/([ -])(?!$)/g, "$1?") } function g(l, v) { var C = null; c(l, function(B, D) { C = v(C, B, D, l) }); return C } function m(l) { function v(K) { return g(K, function(J, H) { var L = H.pattern || f(H); !J && (J = RegExp("\\b" + L + " *\\d+[.\\w_]*", "i").exec(l) || RegExp("\\b" + L + " *\\w+-[\\w]*", "i").exec(l) || RegExp("\\b" + L + "(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)", "i").exec(l)) && ((J = String(H.label && !RegExp(L, "i").test(H.label) ? H.label : J).split("/"))[1] && !/[\d.]+/.test(J[0]) && (J[0] += " " + J[1]), H = H.label || H, J = b(J[0].replace(RegExp(L, "i"), H).replace(RegExp("; *(?:" + H + "[_-])?", "i"), " ").replace(RegExp("(" + H + ")[-_.]?(\\w)", "i"), "$1 $2"))); return J }) } function C(K) { return g(K, function(J, H) { return J || (RegExp(H + "(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)", "i").exec(l) || 0)[1] || null }) } var B = p, D = l && "object" == typeof l && "String" != h(l); D && (B = l, l = null); var M = B.navigator || {}, y = M.userAgent || ""; l || (l = y); var E = D ? !!M.likeChrome : /\bChrome\b/.test(l) && !/internal|\n/i.test(z.toString()), V = D ? "Object" : "ScriptBridgingProxyObject", W = D ? "Object" : "Environment", R = D && B.java ? "JavaPackage" : h(B.java), ba = D ? "Object" : "RuntimeObject"; W = (R = /\bJava/.test(R) && B.java) && h(B.environment) == W; var ca = R ? "a" : "\u03b1", da = R ? "b" : "\u03b2", X = B.document || {}, P = B.operamini || B.opera, S = A.test(S = D && P ? P["[[Class]]"] : h(P)) ? S : P = null, k, T = l; D = []; var U = null, Q = l == y; y = Q && P && "function" == typeof P.version && P.version(); var F = function(K) { return g(K, function(J, H) { return J || RegExp("\\b" + (H.pattern || f(H)) + "\\b", "i").exec(l) && (H.label || H) }) }([{ label: "EdgeHTML", pattern: "Edge" }, "Trident", { label: "WebKit", pattern: "AppleWebKit" }, "iCab", "Presto", "NetFront", "Tasman", "KHTML", "Gecko"]), r = function(K) { return g(K, function(J, H) { return J || RegExp("\\b" + (H.pattern || f(H)) + "\\b", "i").exec(l) && (H.label || H) }) }(["Adobe AIR", "Arora", "Avant Browser", "Breach", "Camino", "Electron", "Epiphany", "Fennec", "Flock", "Galeon", "GreenBrowser", "iCab", "Iceweasel", "K-Meleon", "Konqueror", "Lunascape", "Maxthon", { label: "Microsoft Edge", pattern: "Edge" }, "Midori", "Nook Browser", "PaleMoon", "PhantomJS", "Raven", "Rekonq", "RockMelt", { label: "Samsung Internet", pattern: "SamsungBrowser" }, "SeaMonkey", { label: "Silk", pattern: "(?:Cloud9|Silk-Accelerated)" }, "Sleipnir", "SlimBrowser", { label: "SRWare Iron", pattern: "Iron" }, "Sunrise", "Swiftfox", "Waterfox", "WebPositive", "Opera Mini", { label: "Opera Mini", pattern: "OPiOS" }, "Opera", { label: "Opera", pattern: "OPR" }, "Chrome", { label: "Chrome Mobile", pattern: "(?:CriOS|CrMo)" }, { label: "Firefox", pattern: "(?:Firefox|Minefield)" }, { label: "Firefox for iOS", pattern: "FxiOS" }, { label: "IE", pattern: "IEMobile" }, { label: "IE", pattern: "MSIE" }, "Safari" ]), G = v([{ label: "BlackBerry", pattern: "BB10" }, "BlackBerry", { label: "Galaxy S", pattern: "GT-I9000" }, { label: "Galaxy S2", pattern: "GT-I9100" }, { label: "Galaxy S3", pattern: "GT-I9300" }, { label: "Galaxy S4", pattern: "GT-I9500" }, { label: "Galaxy S5", pattern: "SM-G900" }, { label: "Galaxy S6", pattern: "SM-G920" }, { label: "Galaxy S6 Edge", pattern: "SM-G925" }, { label: "Galaxy S7", pattern: "SM-G930" }, { label: "Galaxy S7 Edge", pattern: "SM-G935" }, "Google TV", "Lumia", "iPad", "iPod", "iPhone", "Kindle", { label: "Kindle Fire", pattern: "(?:Cloud9|Silk-Accelerated)" }, "Nexus", "Nook", "PlayBook", "PlayStation Vita", "PlayStation", "TouchPad", "Transformer", { label: "Wii U", pattern: "WiiU" }, "Wii", "Xbox One", { label: "Xbox 360", pattern: "Xbox" }, "Xoom" ]), N = function(K) { return g(K, function(J, H, L) { return J || (H[G] || H[/^[a-z]+(?: +[a-z]+\b)*/i.exec(G)] || RegExp("\\b" + f(L) + "(?:\\b|\\w*\\d)", "i").exec(l)) && L }) }({ Apple: { iPad: 1, iPhone: 1, iPod: 1 }, Archos: {}, Amazon: { Kindle: 1, "Kindle Fire": 1 }, Asus: { Transformer: 1 }, "Barnes & Noble": { Nook: 1 }, BlackBerry: { PlayBook: 1 }, Google: { "Google TV": 1, Nexus: 1 }, HP: { TouchPad: 1 }, HTC: {}, LG: {}, Microsoft: { Xbox: 1, "Xbox One": 1 }, Motorola: { Xoom: 1 }, Nintendo: { "Wii U": 1, Wii: 1 }, Nokia: { Lumia: 1 }, Samsung: { "Galaxy S": 1, "Galaxy S2": 1, "Galaxy S3": 1, "Galaxy S4": 1 }, Sony: { PlayStation: 1, "PlayStation Vita": 1 } }), u = function(K) { return g(K, function(J, H) { var L = H.pattern || f(H); if (!J && (J = RegExp("\\b" + L + "(?:/[\\d.]+|[ \\w.]*)", "i").exec(l))) { var O = J, Y = H.label || H, Z = { "10.0": "10", "6.4": "10 Technical Preview", "6.3": "8.1", "6.2": "8", "6.1": "Server 2008 R2 / 7", "6.0": "Server 2008 / Vista", "5.2": "Server 2003 / XP 64-bit", "5.1": "XP", "5.01": "2000 SP1", "5.0": "2000", "4.0": "NT", "4.90": "ME" }; L && Y && /^Win/i.test(O) && !/^Windows Phone /i.test(O) && (Z = Z[/[\d.]+$/.exec(O)]) && (O = "Windows " + Z); O = String(O); L && Y && (O = O.replace(RegExp(L, "i"), Y)); J = O = b(O.replace(/ ce$/i, " CE").replace(/\bhpw/i, "web").replace(/\bMacintosh\b/, "Mac OS").replace(/_PowerPC\b/i, " OS").replace(/\b(OS X) [^ \d]+/i, "$1").replace(/\bMac (OS X)\b/, "$1").replace(/\/(\d)/, " $1").replace(/_/g, ".").replace(/(?: BePC|[ .]*fc[ \d.]+)$/i, "").replace(/\bx86\.64\b/gi, "x86_64").replace(/\b(Windows Phone) OS\b/, "$1").replace(/\b(Chrome OS \w+) [\d.]+\b/, "$1").split(" on ")[0]) } return J }) }(["Windows Phone", "Android", "CentOS", { label: "Chrome OS", pattern: "CrOS" }, "Debian", "Fedora", "FreeBSD", "Gentoo", "Haiku", "Kubuntu", "Linux Mint", "OpenBSD", "Red Hat", "SuSE", "Ubuntu", "Xubuntu", "Cygwin", "Symbian OS", "hpwOS", "webOS ", "webOS", "Tablet OS", "Tizen", "Linux", "Mac OS X", "Macintosh", "Mac", "Windows 98;", "Windows " ]); F && (F = [F]); N && !G && (G = v([N])); if (k = /\bGoogle TV\b/.exec(G)) G = k[0]; /\bSimulator\b/i.test(l) && (G = (G ? G + " " : "") + "Simulator"); "Opera Mini" == r && /\bOPiOS\b/.test(l) && D.push("running in Turbo/Uncompressed mode"); "IE" == r && /\blike iPhone OS\b/.test(l) ? (k = m(l.replace(/like iPhone OS/, "")), N = k.manufacturer, G = k.product) : /^iP/.test(G) ? (r || (r = "Safari"), u = "iOS" + ((k = / OS ([\d_]+)/i.exec(l)) ? " " + k[1].replace(/_/g, ".") : "")) : "Konqueror" != r || /buntu/i.test(u) ? N && "Google" != N && (/Chrome/.test(r) && !/\bMobile Safari\b/i.test(l) || /\bVita\b/.test(G)) || /\bAndroid\b/.test(u) && /^Chrome/.test(r) && /\bVersion\//i.test(l) ? (r = "Android Browser", u = /\bAndroid\b/.test(u) ? u : "Android") : "Silk" == r ? (/\bMobi/i.test(l) || (u = "Android", D.unshift("desktop mode")), /Accelerated *= *true/i.test(l) && D.unshift("accelerated")) : "PaleMoon" == r && (k = /\bFirefox\/([\d.]+)\b/.exec(l)) ? D.push("identifying as Firefox " + k[1]) : "Firefox" == r && (k = /\b(Mobile|Tablet|TV)\b/i.exec(l)) ? (u || (u = "Firefox OS"), G || (G = k[1])) : !r || (k = !/\bMinefield\b/i.test(l) && /\b(?:Firefox|Safari)\b/.exec(r)) ? (r && !G && /[\/,]|^[^(]+?\)/.test(l.slice(l.indexOf(k + "/") + 8)) && (r = null), (k = G || N || u) && (G || N || /\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(u)) && (r = /[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(u) ? u : k) + " Browser")) : "Electron" == r && (k = (/\bChrome\/([\d.]+)\b/.exec(l) || 0)[1]) && D.push("Chromium " + k) : u = "Kubuntu"; y || (y = C(["(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$))", "Version", f(r), "(?:Firefox|Minefield|NetFront)"])); if (k = "iCab" == F && 3 < parseFloat(y) && "WebKit" || /\bOpera\b/.test(r) && (/\bOPR\b/.test(l) ? "Blink" : "Presto") || /\b(?:Midori|Nook|Safari)\b/i.test(l) && !/^(?:Trident|EdgeHTML)$/.test(F) && "WebKit" || !F && /\bMSIE\b/i.test(l) && ("Mac OS" == u ? "Tasman" : "Trident") || "WebKit" == F && /\bPlayStation\b(?! Vita\b)/i.test(r) && "NetFront") F = [k]; "IE" == r && (k = (/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(l) || 0)[1]) ? (r += " Mobile", u = "Windows Phone " + (/\+$/.test(k) ? k : k + ".x"), D.unshift("desktop mode")) : /\bWPDesktop\b/i.test(l) ? (r = "IE Mobile", u = "Windows Phone 8.x", D.unshift("desktop mode"), y || (y = (/\brv:([\d.]+)/.exec(l) || 0)[1])) : "IE" != r && "Trident" == F && (k = /\brv:([\d.]+)/.exec(l)) && (r && D.push("identifying as " + r + (y ? " " + y : "")), r = "IE", y = k[1]); if (Q) { if (e(B, "global")) if (R && (k = R.lang.System, T = k.getProperty("os.arch"), u = u || k.getProperty("os.name") + " " + k.getProperty("os.version")), W) { try { y = B.require("ringo/engine").version.join("."), r = "RingoJS" } catch (K) { (k = B.system) && k.global.system == B.system && (r = "Narwhal", u || (u = k[0].os || null)) } r || (r = "Rhino") } else "object" == typeof B.process && !B.process.browser && (k = B.process) && ("object" == typeof k.versions && ("string" == typeof k.versions.electron ? (D.push("Node " + k.versions.node), r = "Electron", y = k.versions.electron) : "string" == typeof k.versions.nw && (D.push("Chromium " + y, "Node " + k.versions.node), r = "NW.js", y = k.versions.nw)), r || (r = "Node.js", T = k.arch, u = k.platform, y = (y = /[\d.]+/.exec(k.version)) ? y[0] : null)); else h(k = B.runtime) == V ? (r = "Adobe AIR", u = k.flash.system.Capabilities.os) : h(k = B.phantom) == ba ? (r = "PhantomJS", y = (k = k.version || null) && k.major + "." + k.minor + "." + k.patch) : "number" == typeof X.documentMode && (k = /\bTrident\/(\d+)/i.exec(l)) ? (y = [y, X.documentMode], (k = +k[1] + 4) != y[1] && (D.push("IE " + y[1] + " mode"), F && (F[1] = ""), y[1] = k), y = "IE" == r ? String(y[1].toFixed(1)) : y[0]) : "number" == typeof X.documentMode && /^(?:Chrome|Firefox)\b/.test(r) && (D.push("masking as " + r + " " + y), r = "IE", y = "11.0", F = ["Trident"], u = "Windows"); u = u && b(u) } y && (k = /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(y) || /(?:alpha|beta)(?: ?\d)?/i.exec(l + ";" + (Q && M.appMinorVersion)) || /\bMinefield\b/i.test(l) && "a") && (U = /b/i.test(k) ? "beta" : "alpha", y = y.replace(RegExp(k + "\\+?$"), "") + ("beta" == U ? da : ca) + (/\d+\+?/.exec(k) || "")); if ("Fennec" == r || "Firefox" == r && /\b(?:Android|Firefox OS)\b/.test(u)) r = "Firefox Mobile"; else if ("Maxthon" == r && y) y = y.replace(/\.[\d.]+/, ".x"); else if (/\bXbox\b/i.test(G)) "Xbox 360" == G && (u = null), "Xbox 360" == G && /\bIEMobile\b/.test(l) && D.unshift("mobile mode"); else if (!/^(?:Chrome|IE|Opera)$/.test(r) && (!r || G || /Browser|Mobi/.test(r)) || "Windows CE" != u && !/Mobi/i.test(l)) if ("IE" == r && Q) try { null === B.external && D.unshift("platform preview") } catch (K) { D.unshift("embedded") } else(/\bBlackBerry\b/.test(G) || /\bBB10\b/.test(l)) && (k = (RegExp(G.replace(/ +/g, " *") + "/([.\\d]+)", "i").exec(l) || 0)[1] || y) ? (k = [k, /BB10/.test(l)], u = (k[1] ? (G = null, N = "BlackBerry") : "Device Software") + " " + k[0], y = null) : this != d && "Wii" != G && (Q && P || /Opera/.test(r) && /\b(?:MSIE|Firefox)\b/i.test(l) || "Firefox" == r && /\bOS X (?:\d+\.){2,}/.test(u) || "IE" == r && (u && !/^Win/.test(u) && 5.5 < y || /\bWindows XP\b/.test(u) && 8 < y || 8 == y && !/\bTrident\b/.test(l))) && !A.test(k = m.call(d, l.replace(A, "") + ";")) && k.name && (k = "ing as " + k.name + ((k = k.version) ? " " + k : ""), A.test(r) ? (/\bIE\b/.test(k) && "Mac OS" == u && (u = null), k = "identify" + k) : (k = "mask" + k, r = S ? b(S.replace(/([a-z])([A-Z])/g, "$1 $2")) : "Opera", /\bIE\b/.test(k) && (u = null), Q || (y = null)), F = ["Presto"], D.push(k)); else r += " Mobile"; if (k = (/\bAppleWebKit\/([\d.]+\+?)/i.exec(l) || 0)[1]) { k = [parseFloat(k.replace(/\.(\d)$/, ".0$1")), k]; if ("Safari" == r && "+" == k[1].slice(-1)) r = "WebKit Nightly", U = "alpha", y = k[1].slice(0, -1); else if (y == k[1] || y == (k[2] = (/\bSafari\/([\d.]+\+?)/i.exec(l) || 0)[1])) y = null; k[1] = (/\bChrome\/([\d.]+)/i.exec(l) || 0)[1]; 537.36 == k[0] && 537.36 == k[2] && 28 <= parseFloat(k[1]) && "WebKit" == F && (F = ["Blink"]); Q && (E || k[1]) ? (F && (F[1] = "like Chrome"), k = k[1] || (k = k[0], 530 > k ? 1 : 532 > k ? 2 : 532.05 > k ? 3 : 533 > k ? 4 : 534.03 > k ? 5 : 534.07 > k ? 6 : 534.1 > k ? 7 : 534.13 > k ? 8 : 534.16 > k ? 9 : 534.24 > k ? 10 : 534.3 > k ? 11 : 535.01 > k ? 12 : 535.02 > k ? "13+" : 535.07 > k ? 15 : 535.11 > k ? 16 : 535.19 > k ? 17 : 536.05 > k ? 18 : 536.1 > k ? 19 : 537.01 > k ? 20 : 537.11 > k ? "21+" : 537.13 > k ? 23 : 537.18 > k ? 24 : 537.24 > k ? 25 : 537.36 > k ? 26 : "Blink" != F ? "27" : "28")) : (F && (F[1] = "like Safari"), k = (k = k[0], 400 > k ? 1 : 500 > k ? 2 : 526 > k ? 3 : 533 > k ? 4 : 534 > k ? "4+" : 535 > k ? 5 : 537 > k ? 6 : 538 > k ? 7 : 601 > k ? 8 : "8")); F && (F[1] += " " + (k += "number" == typeof k ? ".x" : /[.+]/.test(k) ? "" : "+")); "Safari" == r && (!y || 45 < parseInt(y)) && (y = k) } "Opera" == r && (k = /\bzbov|zvav$/.exec(u)) ? (r += " ", D.unshift("desktop mode"), "zvav" == k ? (r += "Mini", y = null) : r += "Mobile", u = u.replace(RegExp(" *" + k + "$"), "")) : "Safari" == r && /\bChrome\b/.exec(F && F[1]) && (D.unshift("desktop mode"), r = "Chrome Mobile", y = null, /\bOS X\b/.test(u) ? (N = "Apple", u = "iOS 4.3+") : u = null); y && 0 == y.indexOf(k = /[\d.]+$/.exec(u)) && -1 < l.indexOf("/" + k + "-") && (u = String(u.replace(k, "")).replace(/^ +| +$/g, "")); F && !/\b(?:Avant|Nook)\b/.test(r) && (/Browser|Lunascape|Maxthon/.test(r) || "Safari" != r && /^iOS/.test(u) && /\bSafari\b/.test(F[1]) || /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(r) && F[1]) && (k = F[F.length - 1]) && D.push(k); D.length && (D = ["(" + D.join("; ") + ")"]); N && G && 0 > G.indexOf(N) && D.push("on " + N); G && D.push((/^on /.test(D[D.length - 1]) ? "" : "on ") + G); if (u) { var aa = (k = / ([\d.+]+)$/.exec(u)) && "/" == u.charAt(u.length - k[0].length - 1); u = { architecture: 32, family: k && !aa ? u.replace(k[0], "") : u, version: k ? k[1] : null, toString: function() { var K = this.version; return this.family + (K && !aa ? " " + K : "") + (64 == this.architecture ? " 64-bit" : "") } } }(k = /\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(T)) && !/\bi686\b/i.test(T) ? (u && (u.architecture = 64, u.family = u.family.replace(RegExp(" *" + k), "")), r && (/\bWOW64\b/i.test(l) || Q && /\w(?:86|32)$/.test(M.cpuClass || M.platform) && !/\bWin64; x64\b/i.test(l)) && D.unshift("32-bit")) : u && /^OS X/.test(u.family) && "Chrome" == r && 39 <= parseFloat(y) && (u.architecture = 64); l || (l = null); B = {}; B.description = l; B.layout = F && F[0]; B.manufacturer = N; B.name = r; B.prerelease = U; B.product = G; B.ua = l; B.version = r && y; B.os = u || { architecture: null, family: null, version: null, toString: function() { return "null" } }; B.parse = m; B.toString = function() { return this.description || "" }; B.version && D.unshift(y); B.name && D.unshift(r); u && r && (u != String(u).split(" ")[0] || u != r.split(" ")[0] && !G) && D.push(G ? "(" + u + ")" : "on " + u); D.length && (B.description = D.join(" ")); return B } var n = { "function": !0, object: !0 }, p = n[typeof window] && window || this, x = n[typeof exports] && exports; n = n[typeof module] && module && !module.nodeType && module; var t = x && n && "object" == typeof global && global; !t || t.global !== t && t.window !== t && t.self !== t || (p = t); var q = Math.pow(2, 53) - 1, A = /\bOpera/; t = Object.prototype; var w = t.hasOwnProperty, z = t.toString, I = m(); "function" == typeof define && "object" == typeof define.amd && define.amd ? (p.platform = I, define(function() { return I })) : x && n ? d(I, function(l, v) { x[v] = l }) : p.platform = I }).call(this); var s_iScaleFactor = 1, s_bIsIphone = !1, s_iOffsetX, s_iOffsetY, s_bFocus = !0; (function(a) { (jQuery.browser = jQuery.browser || {}).mobile = /android|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(ad|hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|tablet|treo|up\.(browser|link)|vodafone|wap|webos|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)) })(navigator.userAgent || navigator.vendor || window.opera); $(window).resize(function() { sizeHandler() }); function NotImplementedError(a) { this.name = "NotImplementedError"; this.message = a || "" } NotImplementedError.prototype = Error.prototype; function error(a) { throw { name: "NotImplementedError", message: a }; } function trace(a) { console.log(a) } window.addEventListener("orientationchange", onOrientationChange); function onOrientationChange() { sizeHandler() } function isIpad() { var a = -1 !== navigator.userAgent.toLowerCase().indexOf("ipad"); return !a && navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints ? !0 : a } function isMobile() { return isIpad() ? !0 : jQuery.browser.mobile } function ifArrayContainsValue(a, c) { for (var b = 0; b < a.length; b++) if (a[b] === c) return !0; return !1 } function getSize(a) { var c = a.toLowerCase(), b = window.document, d = b.documentElement; if (void 0 === window["inner" + a]) a = d["client" + a]; else if (window["inner" + a] != d["client" + a]) { var h = b.createElement("body"); h.id = "vpw-test-b"; h.style.cssText = "overflow:scroll"; var e = b.createElement("div"); e.id = "vpw-test-d"; e.style.cssText = "position:absolute;top:-1000px"; e.innerHTML = "<style>@media(" + c + ":" + d["client" + a] + "px){body#vpw-test-b div#vpw-test-d{" + c + ":7px!important}}</style>"; h.appendChild(e); d.insertBefore(h, b.head); a = 7 == e["offset" + a] ? d["client" + a] : window["inner" + a]; d.removeChild(h) } else a = window["inner" + a]; return a } function sizeHandler() { window.scrollTo(0, 1); if ($("#canvas")) { var a = null !== platform.name && "safari" === platform.name.toLowerCase() ? getIOSWindowHeight() : getSize("Height"); var c = getSize("Width"); s_bFocus && _checkOrientation(c, a); var b = Math.min(a / CANVAS_HEIGHT, c / CANVAS_WIDTH); s_iScaleFactor = b; var d = Math.round(CANVAS_WIDTH * b); b = Math.round(CANVAS_HEIGHT * b); if (b < a) { var h = a - b; b += h; d += CANVAS_WIDTH / CANVAS_HEIGHT * h } else d < c && (h = c - d, d += h, b += CANVAS_HEIGHT / CANVAS_WIDTH * h); h = a / 2 - b / 2; var e = c / 2 - d / 2, f = CANVAS_WIDTH / d; if (e * f < -EDGEBOARD_X || h * f < -EDGEBOARD_Y) b = Math.min(a / (CANVAS_HEIGHT - 2 * EDGEBOARD_Y), c / (CANVAS_WIDTH - 2 * EDGEBOARD_X)), d = Math.round(CANVAS_WIDTH * b), b = Math.round(CANVAS_HEIGHT * b), h = (a - b) / 2, e = (c - d) / 2, f = CANVAS_WIDTH / d; s_iOffsetX = Math.floor(-1 * e * f); s_iOffsetY = Math.floor(-1 * h * f); 0 <= h && (s_iOffsetY = 0); 0 <= e && (s_iOffsetX = 0); null !== s_oInterface && s_oInterface.refreshButtonPos(s_iOffsetX, s_iOffsetY); null !== s_oMenu && s_oMenu.refreshButtonPos(s_iOffsetX, s_iOffsetY); s_bIsIphone && s_oStage ? (canvas = document.getElementById("canvas"), s_oStage.canvas.width = Math.floor(2 * d), s_oStage.canvas.height = Math.floor(2 * b), canvas.style.width = Math.floor(d) + "px", canvas.style.height = Math.floor(b) + "px", s_oStage.scaleX = s_oStage.scaleY = 2 * Math.min(d / CANVAS_WIDTH, b / CANVAS_HEIGHT)) : s_bMobile ? ($("#canvas").css("width", d + "px"), $("#canvas").css("height", b + "px")) : s_oStage && (s_oStage.canvas.width = Math.floor(d), s_oStage.canvas.height = Math.floor(b), s_iScaleFactor = Math.min(d / CANVAS_WIDTH, b / CANVAS_HEIGHT), s_oStage.scaleX = s_oStage.scaleY = s_iScaleFactor); 0 > h || (h = (a - b) / 2); $("#canvas").css("top", h + "px"); $("#canvas").css("left", e + "px"); fullscreenHandler() } } function _checkOrientation(a, c) { s_bMobile && ENABLE_CHECK_ORIENTATION && (a > c ? "landscape" === $(".orientation-msg-container").attr("data-orientation") ? ($(".orientation-msg-container").css("display", "none"), s_oMain.startUpdate()) : ($(".orientation-msg-container").css("display", "block"), s_oMain.stopUpdate()) : "portrait" === $(".orientation-msg-container").attr("data-orientation") ? ($(".orientation-msg-container").css("display", "none"), s_oMain.startUpdate()) : ($(".orientation-msg-container").css("display", "block"), s_oMain.stopUpdate())) } function isChrome() { return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) } function isIOS() { var a = "iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";"); if (-1 !== navigator.userAgent.toLowerCase().indexOf("iphone")) return s_bIsIphone = !0; for (; a.length;) if (navigator.platform === a.pop()) return !0; return s_bIsIphone = !1 } function getIOSWindowHeight() { return document.documentElement.clientWidth / window.innerWidth * window.innerHeight } function getHeightOfIOSToolbars() { var a = (0 === window.orientation ? screen.height : screen.width) - getIOSWindowHeight(); return 1 < a ? a : 0 } function getMobileOperatingSystem() { var a = navigator.userAgent || navigator.vendor || window.opera; return a.match(/iPad/i) || a.match(/iPhone/i) || a.match(/iPod/i) ? "ios" : a.match(/Android/i) ? "android" : "unknown" } function stopSound(a) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || s_aSounds[a].stop() } function playSound(a, c, b) { return !1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile ? (s_aSounds[a].play(), s_aSounds[a].volume(c), s_aSounds[a].loop(b), s_aSounds[a]) : null } function setVolume(a, c) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || s_aSounds[a].volume(c) } function setMute(a, c) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || s_aSounds[c].mute(a) } function soundPlaying(a) { if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) return s_aSounds[a].playing() } function createBitmap(a, c, b) { var d = new createjs.Bitmap(a), h = new createjs.Shape; c && b ? h.graphics.beginFill("#fff").drawRect(0, 0, c, b) : h.graphics.beginFill("#ff0").drawRect(0, 0, a.width, a.height); d.hitArea = h; return d } function createSprite(a, c, b, d, h, e) { a = null !== c ? new createjs.Sprite(a, c) : new createjs.Sprite(a); c = new createjs.Shape; c.graphics.beginFill("#000000").drawRect(-b, -d, h, e); a.hitArea = c; return a } function randomFloatBetween(a, c, b) { "undefined" === typeof b && (b = 2); return parseFloat(Math.min(a + Math.random() * (c - a), c).toFixed(b)) } function shuffle(a) { for (var c = a.length, b, d; 0 !== c;) d = Math.floor(Math.random() * c), --c, b = a[c], a[c] = a[d], a[d] = b; return a } function easeLinear(a, c, b, d) { return b * a / d + c } function easeInQuad(a, c, b, d) { return b * (a /= d) * a + c } function easeInSine(a, c, b, d) { return -b * Math.cos(a / d * (Math.PI / 2)) + b + c } function easeInCubic(a, c, b, d) { return b * (a /= d) * a * a + c } function getTrajectoryPoint(a, c) { var b = new createjs.Point, d = (1 - a) * (1 - a), h = a * a; b.x = d * c.start.x + 2 * (1 - a) * a * c.traj.x + h * c.end.x; b.y = d * c.start.y + 2 * (1 - a) * a * c.traj.y + h * c.end.y; return b } function formatTime(a) { a /= 1E3; var c = Math.floor(a / 60); a = parseFloat(a - 60 * c).toFixed(0); var b = ""; b = 10 > c ? b + ("0" + c + ":") : b + (c + ":"); return 10 > a ? b + ("0" + a) : b + a } function degreesToRadians(a) { return a * Math.PI / 180 } function collideEdgeWithCircle(a, c, b) { if (null === a) return !1; a = closestPointOnLine(a.getPointA(), a.getPointB(), c); c = distanceV2(c, a); return b < c ? null : { distance: c, closest_point: a } } function getAngleBetweenPoints(a, c, b, d) { return 180 * Math.atan2(d - c, b - a) / Math.PI } function randomSign() { return .5 >= Math.random() ? 1 : -1 } function distance(a, c) { var b = a.x - c.x, d = a.y - c.y; return Math.sqrt(b * b + d * d) } function closestPointOnLine(a, c, b) { var d = new CVector2; d.setV(b); d.subtract(a); b = new CVector2; b.setV(c); b.subtract(a); b.normalize(); d = dotProductV2(b, d); if (0 >= d) return a; if (d >= distanceV2(a, c)) return c; b.scalarProduct(d); b.addV(a); return b } function checkRectCollision(a, c) { var b = getBounds(a, .9); var d = getBounds(c, .98); return calculateIntersection(b, d) } function calculateIntersection(a, c) { var b, d, h, e; var f = a.x + (b = a.width / 2); var g = a.y + (d = a.height / 2); var m = c.x + (h = c.width / 2); var n = c.y + (e = c.height / 2); f = Math.abs(f - m) - (b + h); g = Math.abs(g - n) - (d + e); return 0 > f && 0 > g ? (f = Math.min(Math.min(a.width, c.width), -f), g = Math.min(Math.min(a.height, c.height), -g), { x: Math.max(a.x, c.x), y: Math.max(a.y, c.y), width: f, height: g, rect1: a, rect2: c }) : null } function centerBetweenPointsV2(a, c) { var b = new CVector2; b.set(.5 * (a.getX() + c.getX()), .5 * (a.getY() + c.getY())); return b } function dotProductV2(a, c) { return a.getX() * c.getX() + a.getY() * c.getY() } function distanceV2WithoutSquareRoot(a, c) { return (c.getX() - a.getX()) * (c.getX() - a.getX()) + (c.getY() - a.getY()) * (c.getY() - a.getY()) } function distanceV2(a, c) { return Math.sqrt((c.getX() - a.getX()) * (c.getX() - a.getX()) + (c.getY() - a.getY()) * (c.getY() - a.getY())) } function reflectVectorV2(a, c) { var b = dotProductV2(a, c); a.set(a.getX() - 2 * b * c.getX(), a.getY() - 2 * b * c.getY()); return a } function getBounds(a, c) { var b = { x: Infinity, y: Infinity, width: 0, height: 0 }; if (a instanceof createjs.Container) { b.x2 = -Infinity; b.y2 = -Infinity; var d = a.children, h = d.length, e; for (e = 0; e < h; e++) { var f = getBounds(d[e], 1); f.x < b.x && (b.x = f.x); f.y < b.y && (b.y = f.y); f.x + f.width > b.x2 && (b.x2 = f.x + f.width); f.y + f.height > b.y2 && (b.y2 = f.y + f.height) } Infinity == b.x && (b.x = 0); Infinity == b.y && (b.y = 0); Infinity == b.x2 && (b.x2 = 0); Infinity == b.y2 && (b.y2 = 0); b.width = b.x2 - b.x; b.height = b.y2 - b.y; delete b.x2; delete b.y2 } else { if (a instanceof createjs.Bitmap) { h = a.sourceRect || a.image; e = h.width * c; var g = h.height * c } else if (a instanceof createjs.Sprite) if (a.spriteSheet._frames && a.spriteSheet._frames[a.currentFrame] && a.spriteSheet._frames[a.currentFrame].image) { h = a.spriteSheet.getFrame(a.currentFrame); e = h.rect.width; g = h.rect.height; d = h.regX; var m = h.regY } else b.x = a.x || 0, b.y = a.y || 0; else b.x = a.x || 0, b.y = a.y || 0; d = d || 0; e = e || 0; m = m || 0; g = g || 0; b.regX = d; b.regY = m; h = a.localToGlobal(0 - d, 0 - m); f = a.localToGlobal(e - d, g - m); e = a.localToGlobal(e - d, 0 - m); d = a.localToGlobal(0 - d, g - m); b.x = Math.min(Math.min(Math.min(h.x, f.x), e.x), d.x); b.y = Math.min(Math.min(Math.min(h.y, f.y), e.y), d.y); b.width = Math.max(Math.max(Math.max(h.x, f.x), e.x), d.x) - b.x; b.height = Math.max(Math.max(Math.max(h.y, f.y), e.y), d.y) - b.y } return b } function NoClickDelay(a) { this.element = a; window.Touch && this.element.addEventListener("touchstart", this, !1) } NoClickDelay.prototype = { handleEvent: function(a) { switch (a.type) { case "touchstart": this.onTouchStart(a); break; case "touchmove": this.onTouchMove(a); break; case "touchend": this.onTouchEnd(a) } }, onTouchStart: function(a) { a.preventDefault(); this.moved = !1; this.element.addEventListener("touchmove", this, !1); this.element.addEventListener("touchend", this, !1) }, onTouchMove: function(a) { this.moved = !0 }, onTouchEnd: function(a) { this.element.removeEventListener("touchmove", this, !1); this.element.removeEventListener("touchend", this, !1); if (!this.moved) { a = document.elementFromPoint(a.changedTouches[0].clientX, a.changedTouches[0].clientY); 3 == a.nodeType && (a = a.parentNode); var c = document.createEvent("MouseEvents"); c.initEvent("click", !0, !0); a.dispatchEvent(c) } } }; (function() { function a(b) { var d = { focus: "visible", focusin: "visible", pageshow: "visible", blur: "hidden", focusout: "hidden", pagehide: "hidden" }; b = b || window.event; b.type in d ? document.body.className = d[b.type] : (document.body.className = this[c] ? "hidden" : "visible", "hidden" === document.body.className ? (s_oMain.stopUpdate(), s_bFocus = !1) : (s_oMain.startUpdate(), s_bFocus = !0)) } var c = "hidden"; c in document ? document.addEventListener("visibilitychange", a) : (c = "mozHidden") in document ? document.addEventListener("mozvisibilitychange", a) : (c = "webkitHidden") in document ? document.addEventListener("webkitvisibilitychange", a) : (c = "msHidden") in document ? document.addEventListener("msvisibilitychange", a) : "onfocusin" in document ? document.onfocusin = document.onfocusout = a : window.onpageshow = window.onpagehide = window.onfocus = window.onblur = a })(); function ctlArcadeResume() { null !== s_oMain && s_oMain.startUpdate() } function ctlArcadePause() { null !== s_oMain && s_oMain.stopUpdate() } function toDegree(a) { return 180 / Math.PI * a } function getParamValue(a) { for (var c = window.location.search.substring(1).split("&"), b = 0; b < c.length; b++) { var d = c[b].split("="); if (d[0] == a) return d[1] } } function saveItem(a, c) { s_bStorageAvailable && localStorage.setItem(a, c) } function getItem(a) { return s_bStorageAvailable ? localStorage.getItem(a) : null } function setItemJson(a, c) { s_bStorageAvailable && localStorage.setItem(a, JSON.stringify(c)) } function getItemJson(a) { return s_bStorageAvailable ? JSON.parse(localStorage.getItem(a)) : null } function fullscreenHandler() { ENABLE_FULLSCREEN && screenfull.isEnabled && (s_bFullscreen = screenfull.isFullscreen, null !== s_oInterface && s_oInterface.resetFullscreenBut(), null !== s_oMenu && s_oMenu.resetFullscreenBut()) } if (screenfull.isEnabled) screenfull.on("change", function() { s_bFullscreen = screenfull.isFullscreen; null !== s_oInterface && s_oInterface.resetFullscreenBut(); null !== s_oMenu && s_oMenu.resetFullscreenBut() }); function CSpriteLibrary() { var a = {}, c, b, d, h, e, f; this.init = function(g, m, n) { c = {}; d = b = 0; h = g; e = m; f = n }; this.addSprite = function(g, m) { if (!a.hasOwnProperty(g)) { var n = new Image; a[g] = c[g] = { szPath: m, oSprite: n, bLoaded: !1 }; b++ } }; this.getSprite = function(g) { return a.hasOwnProperty(g) ? a[g].oSprite : null }; this._onSpritesLoaded = function() { b = 0; e.call(f) }; this._onSpriteLoaded = function() { h.call(f); ++d === b && this._onSpritesLoaded() }; this.loadSprites = function() { for (var g in c) c[g].oSprite.oSpriteLibrary = this, c[g].oSprite.szKey = g, c[g].oSprite.onload = function() { this.oSpriteLibrary.setLoaded(this.szKey); this.oSpriteLibrary._onSpriteLoaded(this.szKey) }, c[g].oSprite.onerror = function(m) { var n = m.currentTarget; setTimeout(function() { c[n.szKey].oSprite.src = c[n.szKey].szPath }, 500) }, c[g].oSprite.src = c[g].szPath }; this.setLoaded = function(g) { a[g].bLoaded = !0 }; this.isLoaded = function(g) { return a[g].bLoaded }; this.getNumSprites = function() { return b } } var CANVAS_WIDTH = 768, CANVAS_HEIGHT = 1400, CANVAS_WIDTH_HALF = .5 * CANVAS_WIDTH, CANVAS_HEIGHT_HALF = .5 * CANVAS_HEIGHT, EDGEBOARD_X = 0, EDGEBOARD_Y = 200, FPS = 30, FPS_TIME = 1E3 / FPS, DISABLE_SOUND_MOBILE = !1, PRIMARY_FONT = "comfortaa", PRIMARY_FONT_COLOUR = "#ffffff", SECONDARY_FONT_COLOUR = "#000000", STATE_LOADING = 0, STATE_MENU = 1, STATE_HELP = 2, STATE_GAME = 3, ON_MOUSE_DOWN = 0, ON_MOUSE_UP = 1, ON_MOUSE_OVER = 2, ON_MOUSE_OUT = 3, MATRIX_OFFSET_X = 160, MATRIX_OFFSET_Y = 800, SQUARE_LINE_NUMBER = 5, SQUARE_LINES_MINIMUM = 10, SQUARE_SIZE = 100, SQUARE_OFFSET = 15, SQUARE_SCALE_VAR = 1.1, PLAYER_SQUARE_HORIZONTAL_SPEED = 150, PLAYER_SQUARE_VERTICAL_SPEED = 250, PLAYER_START_COLUMN = 2, START_PLAYER_VALUE = 0, COLOUR_CHANGE_OCCURRANCE, GAMEOVER_LIMIT = -50, GAMEOVER_LINE_DIFFERENCE = -180, PLAYER_SQUARE_ANIMATION_LOOPS = 5, PLAYER_BOTTOM_LIMIT = -850, MOTIVATIONAL_TEXT_SPEED = 1300, MOTIVATIONAL_TEXT_WAIT_TIME = 800, MOTIVATIONAL_TEXT_PULSE_TIME = 200, MOTIVATIONAL_TIMER_LIMIT = 600, MATRIX_VERTICAL_SPEED, MATRIX_SPEED_VARIABLE, MAX_MATRIX_SPEED_LIMIT, ENABLE_FULLSCREEN, ENABLE_CHECK_ORIENTATION, SOUNDTRACK_VOLUME_IN_GAME = .3; function CTweenController() { this.tweenValue = function(a, c, b) { return a + b * (c - a) }; this.easeLinear = function(a, c, b, d) { return b * a / d + c }; this.easeInCubic = function(a, c, b, d) { d = (a /= d) * a * a; return c + b * d }; this.easeBackInQuart = function(a, c, b, d) { d = (a /= d) * a; return c + b * (2 * d * d + 2 * d * a + -3 * d) }; this.easeInBack = function(a, c, b, d) { return b * (a /= d) * a * (2.70158 * a - 1.70158) + c }; this.easeOutCubic = function(a, c, b, d) { return b * ((a = a / d - 1) * a * a + 1) + c }; this.getTrajectoryPoint = function(a, c) { var b = new createjs.Point, d = (1 - a) * (1 - a), h = a * a; b.x = d * c.start.x + 2 * (1 - a) * a * c.traj.x + h * c.end.x; b.y = d * c.start.y + 2 * (1 - a) * a * c.traj.y + h * c.end.y; return b }; s_oTweenController = this } function CPreloader() { var a, c, b, d, h, e, f, g, m; this._init = function() { s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this); s_oSpriteLibrary.addSprite("progress_bar", "./sprites/progress_bar.png"); s_oSpriteLibrary.addSprite("200x200", "./sprites/200x200.jpg"); s_oSpriteLibrary.addSprite("but_start", "./sprites/but_start.png"); s_oSpriteLibrary.loadSprites(); m = new createjs.Container; s_oStage.addChild(m) }; this.unload = function() { m.removeAllChildren() }; this._onImagesLoaded = function() {}; this._onAllImagesLoaded = function() { this.attachSprites(); s_oMain.preloaderReady() }; this.attachSprites = function() { var n = new createjs.Shape; n.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); m.addChild(n); n = s_oSpriteLibrary.getSprite("200x200"); f = createBitmap(n); f.regX = .5 * n.width; f.regY = .5 * n.height; f.x = CANVAS_WIDTH_HALF; f.y = CANVAS_HEIGHT_HALF - 180; m.addChild(f); g = new createjs.Shape; g.graphics.beginFill("rgba(0,0,0,0.01)").drawRoundRect(f.x - 95, f.y - 95, 190, 190, 10); m.addChild(g); f.mask = g; n = s_oSpriteLibrary.getSprite("progress_bar"); d = createBitmap(n); d.x = CANVAS_WIDTH_HALF - n.width / 2; d.y = CANVAS_HEIGHT_HALF + 50; m.addChild(d); a = n.width; c = n.height; h = new createjs.Shape; h.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(d.x, d.y, 1, c); m.addChild(h); d.mask = h; b = new createjs.Text("", "30px " + PRIMARY_FONT, PRIMARY_FONT_COLOUR); b.x = CANVAS_WIDTH_HALF; b.y = CANVAS_HEIGHT_HALF + 100; b.textBaseline = "alphabetic"; b.textAlign = "center"; m.addChild(b); e = new createjs.Shape; e.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); m.addChild(e); createjs.Tween.get(e).to({ alpha: 0 }, 500).call(function() { createjs.Tween.removeTweens(e); m.removeChild(e) }) }; this.refreshLoader = function(n) { b.text = n + "%"; 100 === n && (s_oMain._onRemovePreloader(), b.visible = !1, d.visible = !1); h.graphics.clear(); n = Math.floor(n * a / 100); h.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(d.x, d.y, n, c) }; this._init() } function CMain(a) { var c, b = 0, d = 0, h = STATE_LOADING, e, f, g; this.initContainer = function() { s_oCanvas = document.getElementById("canvas"); s_oStage = new createjs.Stage(s_oCanvas); s_oStage.preventSelection = !1; createjs.Touch.enable(s_oStage, !0); s_bMobile = s_bMobile = isMobile(); !1 === s_bMobile && s_oStage.enableMouseOver(20); s_iPrevTime = (new Date).getTime(); createjs.Ticker.addEventListener("tick", this._update); createjs.Ticker.framerate = FPS; navigator.userAgent.match(/Windows Phone/i) && (DISABLE_SOUND_MOBILE = !0); s_oSpriteLibrary = new CSpriteLibrary; e = new CPreloader; }; this.preloaderReady = function() { this._loadImages(); !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || this._initSounds(); c = !0 }; this.soundLoaded = function() { b++; e.refreshLoader(Math.floor(b / d * 100)) }; this._initSounds = function() { Howler.mute(!s_bAudioActive); s_aSoundsInfo = []; s_aSoundsInfo.push({ path: "./sounds/", filename: "soundtrack", loop: !0, volume: 1, ingamename: "soundtrack" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "click", loop: !1, volume: 1, ingamename: "click" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "game_over", loop: !1, volume: 1, ingamename: "game_over" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "change_colour", loop: !1, volume: 1, ingamename: "change_colour" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "destroy_row", loop: !1, volume: 1, ingamename: "destroy_row" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "bonus", loop: !1, volume: 1, ingamename: "bonus" }); d += s_aSoundsInfo.length; s_aSounds = []; for (var n = 0; n < s_aSoundsInfo.length; n++) this.tryToLoadSound(s_aSoundsInfo[n], !1) }; this.tryToLoadSound = function(n, p) { setTimeout(function() { s_aSounds[n.ingamename] = new Howl({ src: [n.path + n.filename + ".mp3"], autoplay: !1, preload: !0, loop: n.loop, volume: n.volume, onload: s_oMain.soundLoaded, onloaderror: function(x, t) { for (var q = 0; q < s_aSoundsInfo.length; q++) if (x === s_aSounds[s_aSoundsInfo[q].ingamename]._sounds[0]._id) { s_oMain.tryToLoadSound(s_aSoundsInfo[q], !0); break } }, onplayerror: function(x) { for (var t = 0; t < s_aSoundsInfo.length; t++) if (x === s_aSounds[s_aSoundsInfo[t].ingamename]._sounds[0]._id) { s_aSounds[s_aSoundsInfo[t].ingamename].once("unlock", function() { s_aSounds[s_aSoundsInfo[t].ingamename].play(); "soundtrack" === s_aSoundsInfo[t].ingamename && null !== s_oGame && setVolume("soundtrack", SOUNDTRACK_VOLUME_IN_GAME) }); break } } }) }, p ? 200 : 0) }; this._loadImages = function() { s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this); s_oSpriteLibrary.addSprite("but_exit", "./sprites/but_exit.png"); s_oSpriteLibrary.addSprite("audio_icon", "./sprites/audio_icon.png"); s_oSpriteLibrary.addSprite("but_play", "./sprites/but_play.png"); s_oSpriteLibrary.addSprite("but_restart", "./sprites/but_restart.png"); s_oSpriteLibrary.addSprite("but_home", "./sprites/but_home.png"); s_oSpriteLibrary.addSprite("msg_box", "./sprites/msg_box.png"); s_oSpriteLibrary.addSprite("msg_box_big", "./sprites/msg_box_big.png"); s_oSpriteLibrary.addSprite("but_credits", "./sprites/but_credits.png"); s_oSpriteLibrary.addSprite("logo_ctl", "./sprites/logo_ctl.png"); s_oSpriteLibrary.addSprite("but_fullscreen", "./sprites/but_fullscreen.png"); s_oSpriteLibrary.addSprite("bg_menu", "./sprites/bg_menu.jpg"); s_oSpriteLibrary.addSprite("bg_game", "./sprites/bg_game.jpg"); s_oSpriteLibrary.addSprite("but_no", "./sprites/but_no.png"); s_oSpriteLibrary.addSprite("but_yes", "./sprites/but_yes.png"); s_oSpriteLibrary.addSprite("but_next", "./sprites/but_next.png"); s_oSpriteLibrary.addSprite("logo_menu", "./sprites/logo_menu.png"); s_oSpriteLibrary.addSprite("box", "./sprites/box.png"); d += s_oSpriteLibrary.getNumSprites(); s_oSpriteLibrary.loadSprites() }; this._onImagesLoaded = function() { b++; e.refreshLoader(Math.floor(b / d * 100)) }; this._onAllImagesLoaded = function() {}; this.onAllPreloaderImagesLoaded = function() { this._loadImages() }; this._onRemovePreloader = function() { try { saveItem("ls_available", "ok") } catch (n) { s_bStorageAvailable = !1 } e.unload(); s_oSoundtrack = playSound("soundtrack", 1, !0); this.gotoMenu() }; this.gotoMenu = function() { f = new CMenu; h = STATE_MENU }; this.gotoGame = function() { g = new CGame(m); h = STATE_GAME; $(s_oMain).trigger("start_session") }; this.gotoHelp = function() { new CHelp; h = STATE_HELP }; this.stopUpdate = function() { c = !1; createjs.Ticker.paused = !0; $("#block_game").css("display", "block"); s_bAudioActive && Howler.mute(!0) }; this.startUpdate = function() { s_iPrevTime = (new Date).getTime(); c = !0; createjs.Ticker.paused = !1; $("#block_game").css("display", "none"); s_bAudioActive && Howler.mute(!1) }; this._update = function(n) { if (!1 !== c) { var p = (new Date).getTime(); s_iTimeElaps = p - s_iPrevTime; s_iCntTime += s_iTimeElaps; s_iCntFps++; s_iPrevTime = p; 1E3 <= s_iCntTime && (s_iCurFps = s_iCntFps, s_iCntTime -= 1E3, s_iCntFps = 0); h === STATE_MENU && f.update(); h === STATE_GAME && g.update(); s_oStage.update(n) } }; s_oMain = this; var m = a; ENABLE_FULLSCREEN = a.fullscreen; ENABLE_CHECK_ORIENTATION = a.check_orientation; s_bAudioActive = a.audio_enable_on_startup; this.initContainer() } var s_bMobile, s_bAudioActive = !0, s_bFullscreen = !1, s_iCntTime = 0, s_iTimeElaps = 0, s_iPrevTime = 0, s_iCntFps = 0, s_iCurFps = 0, s_oStage, s_oMain, s_oSpriteLibrary, s_oSoundTrack = null, s_oCanvas, s_iTotalScore = 0, s_iBestScore = 0, s_aSoundsInfo, s_bStorageAvailable = !0; function CMenu() { var a, c, b, d, h, e, f, g, m, n, p, x, t, q, A, w, z = null, I = null, l; this._init = function() { l = 0; f = new createjs.Container; s_oStage.addChild(f); m = createBitmap(s_oSpriteLibrary.getSprite("bg_menu")); f.addChild(m); g = new createjs.Container; f.addChild(g); var v = s_oSpriteLibrary.getSprite("logo_menu"); n = createBitmap(v); n.regX = v.width / 2; n.regY = v.height / 2; n.x = CANVAS_WIDTH_HALF; n.y = -150; createjs.Tween.get(n, { loop: !1 }).to({ y: CANVAS_HEIGHT_HALF - 100 }, 1E3, createjs.Ease.cubicOut); f.addChild(n); w = new CTLText(f, CANVAS_WIDTH_HALF - 250, CANVAS_HEIGHT_HALF + 150, 500, 36, 36, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, " ", !0, !0, !1, !1); v = s_oSpriteLibrary.getSprite("but_play"); p = new CGfxButton(CANVAS_WIDTH_HALF, CANVAS_HEIGHT + 150, v, f); p.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this); createjs.Tween.get(p.getSprite(), { loop: !1 }).to({ y: CANVAS_HEIGHT_HALF + 350 }, 1E3, createjs.Ease.cubicOut); v = s_oSpriteLibrary.getSprite("but_credits"); b = 20 + .5 * v.width; d = .5 * v.height + 10; q = new CGfxButton(b, d, v, f); q.addEventListener(ON_MOUSE_UP, this._onCredits, this); if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) v = s_oSpriteLibrary.getSprite("audio_icon"), h = CANVAS_WIDTH - .25 * v.width - 20, e = .5 * v.height + 10, t = new CToggle(h, e, v, s_bAudioActive, f), t.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this); v = window.document; var C = v.documentElement; z = C.requestFullscreen || C.mozRequestFullScreen || C.webkitRequestFullScreen || C.msRequestFullscreen; I = v.exitFullscreen || v.mozCancelFullScreen || v.webkitExitFullscreen || v.msExitFullscreen; !1 === ENABLE_FULLSCREEN && (z = !1); z && screenfull.isEnabled && (v = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b + v.width / 2 + 10, c = d, A = new CToggle(a, c, v, s_bFullscreen, f), A.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this)); x = new createjs.Shape; x.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); f.addChild(x); createjs.Tween.get(x).to({ alpha: 0 }, 1E3).call(function() { f.removeChild(x) }); s_bStorageAvailable ? (v = getItem("slidingbricks_total_score"), s_iTotalScore = null !== v && void 0 !== v ? Number(v) : 0, v = getItem("slidingbricks_best_score"), null !== v && void 0 !== v ? s_iBestScore = v : (s_iBestScore = 0, w.refreshText(" ")), w.refreshText(TEXT_BEST_SCORE + ": " + s_iBestScore)) : new CMsgBox(TEXT_ERR_LS, f); this.refreshButtonPos(s_iOffsetX, s_iOffsetY) }; this._initBricks = function() { var v = { images: [s_oSpriteLibrary.getSprite("box")], frames: { width: SQUARE_SIZE, height: SQUARE_SIZE, regX: .5 * SQUARE_SIZE, regY: .5 * SQUARE_SIZE }, animations: { idle: [0, 4] } }; v = new createjs.SpriteSheet(v); var C = createSprite(v, "idle", .5 * SQUARE_SIZE, .5 * SQUARE_SIZE, SQUARE_SIZE, SQUARE_SIZE); C.scaleX = C.scaleY = Math.random() * (1.1 - .9) + .9; C.x = 150 + 100 * Math.random() * SQUARE_LINE_NUMBER; C.y = -200; g.addChild(C); C.gotoAndStop(Math.floor(Math.random() * SQUARE_LINE_NUMBER)); v = 1E3 * Math.random() + 1500; createjs.Tween.get(C).to({ y: CANVAS_HEIGHT + 100 }, v, createjs.Ease.linear).call(function() { createjs.Tween.removeTweens(C); g.removeChild(C) }) }; this.unload = function() { p.unload(); p = null; q.unload(); f.removeChild(m); f.removeChild(g); if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) t.unload(), t = null; z && screenfull.isEnabled && A.unload(); s_oMenu = null }; this.refreshButtonPos = function(v, C) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || t.setPosition(h - v, e + C); z && screenfull.isEnabled && A.setPosition(a + v, c + C); q.setPosition(b + v, d + C) }; this._onFullscreenRelease = function() { s_bFullscreen ? I.call(window.document) : z.call(window.document.documentElement); sizeHandler() }; this.resetFullscreenBut = function() { z && screenfull.isEnabled && A.setActive(s_bFullscreen) }; this.exitFromCredits = function() {}; this._onAudioToggle = function() { Howler.mute(s_bAudioActive); s_bAudioActive = !s_bAudioActive }; this._onCredits = function() { new CCreditsPanel }; this._onButPlayRelease = function() { this.unload(); s_oMain.gotoGame() }; this.update = function() { l += s_iTimeElaps; 700 <= l && (l = 0, this._initBricks()) }; s_oMenu = this; this._init() } var s_oMenu = null; function CGame(a) { var c, b, d, h, e, f, g, m, n, p, x, t, q, A, w; this._init = function() { s_oTweenController = new CTweenController; n = new createjs.Container; s_oStage.addChild(n); var z = createBitmap(s_oSpriteLibrary.getSprite("bg_game")); z.cache(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); n.addChild(z); this._resetVariables(); this._initSquareMatrix(); this._initPlayerSquare(); this._initGameOverLine(); x = new CInterface; x.initBestScoreText(); CHelpPanel() }; this._resetVariables = function() { w = t = null; d = b = c = !1; g = m = f = e = 0; h = s_iTotalScore; setVolume("soundtrack", SOUNDTRACK_VOLUME_IN_GAME) }; this._initSquareMatrix = function() { q = new CSquareMatrix(n); for (var z = 0; z < SQUARE_LINES_MINIMUM; z++) this.createNewSquareLine() }; this._initGameOverLine = function() { p = new createjs.Shape; p.graphics.beginFill("red"); p.graphics.drawRoundRect(0, 250, 900, 5, 1); p.graphics.endFill(); p.alpha = .8; n.addChild(p) }; this.createNewSquareLine = function() { q.createSquareLine(e); e++ }; this._getRandomColour = function() { return Math.floor(Math.random() * SQUARE_LINE_NUMBER) }; this._initPlayerSquare = function() { for (var z = this._getRandomColour(); q.returnColumnColour(PLAYER_START_COLUMN) === z;) z = this._getRandomColour(); A = new CPlayerSquare(e, PLAYER_START_COLUMN, z, q.getContainer()) }; this._checkForGameOver = function() { A.getGlobalY() < GAMEOVER_LIMIT || (c = !1, q.setUpdate(!1), A.destroySquare(), this._gameOver()) }; this.onClickedSquare = function(z) { !1 !== c && !1 !== q.isUpdate() && !0 !== A.isLockedMovement() && A.moveSquareToNewColumn(z) }; this.onPlayerSquareMoved = function() { !1 !== this._checkForSameColour() && this._onSameColourFound() }; this._onSameColourFound = function() { !1 === soundPlaying("destroy_row") && playSound("destroy_row", 1, !1); q.destroyTopRow(); A.moveSquareDown(); this._addScore(); this._checkForMotivationalText(); !1 === this._checkForSameColour() && g++; g === COLOUR_CHANGE_OCCURRANCE && (g = 0, this._changePlayerColour()) }; this.isDisableEvents = function() { return b }; this.setDisableEvents = function(z) { b = z }; this._initMotivationalText = function() { null === w && (!1 === soundPlaying("bonus") && playSound("bonus", 1, !1), w = new CMotivationalText(n)) }; this.removeMotivationalText = function() { w = null }; this._changePlayerColour = function() { for (var z = this._getRandomColour(); !0 === this._checkForSameColour() || z === A.getColour();) z = this._getRandomColour(); !1 === soundPlaying("change_colour") && playSound("change_colour", 1, !1); A.changeColour(z) }; this._checkForMotivationalText = function() { !1 === d ? d = !0 : (m < MOTIVATIONAL_TIMER_LIMIT && (d = !1, this._initMotivationalText()), m = 0) }; this._checkForSameColour = function() { var z = A.getColumn(); return q.returnColumnColour(z) === A.getColour() ? !0 : !1 }; this._addScore = function() { f++; A.updateValueTest(f) }; this.unload = function() { q.unload(); x.unload(); createjs.Tween.removeAllTweens(); s_oStage.removeAllChildren(); s_oGame = null }; this.onExit = function() { setVolume("soundtrack", 1); s_oGame.unload(); s_oMain.gotoMenu(); $(s_oMain).trigger("end_session"); $(s_oMain).trigger("show_interlevel_ad") }; this.restart = function() { setVolume("soundtrack", SOUNDTRACK_VOLUME_IN_GAME); $(s_oMain).trigger("restart_level"); q.unload(); this._resetVariables(); x.updateBestScoreText(); this._initSquareMatrix(); this._initPlayerSquare(); this._onExitHelp() }; this._onExitHelp = function() { c = !0; b = !1; A.startTween() }; this.startMatrixMovement = function() { q.setSquareMatrixUpdate(!0) }; this._updateScore = function() { s_iTotalScore = h += f; saveItem("slidingbricks_total_score", f) }; this._gameOver = function() { c = !1; null === t && (this._updateScore(), playSound("game_over", 1, !1), stopSound("soundtrack"), setTimeout(function() { playSound("soundtrack", .5, !1) }, 3E3), t = new CEndPanel(f), b = !0, f > s_iBestScore && (s_iBestScore = f, saveItem("slidingbricks_best_score", s_iBestScore), $(s_oMain).trigger("save_score", f)), $(s_oMain).trigger("share_event", f)) }; this.setStartGame = function(z) { c = z }; this.update = function() { p.y = s_iOffsetY + GAMEOVER_LINE_DIFFERENCE; c && (d && (m += s_iTimeElaps), q.setAccellerate(!1), A.getGlobalY() < PLAYER_BOTTOM_LIMIT + s_iOffsetY && q.setAccellerate(!0), q.update(), A.update(), !0 === q.isUpdate() && this._checkForGameOver()) }; s_oGame = this; MATRIX_VERTICAL_SPEED = a.matrix_vertical_speed; MATRIX_SPEED_VARIABLE = a.matrix_speed_variable; MAX_MATRIX_SPEED_LIMIT = a.max_matrix_speed_limit; COLOUR_CHANGE_OCCURRANCE = a.colour_change_occurance; this._init() } var s_oGame, s_oTweenController; function CSquareMatrix(a) { var c, b, d, h, e, f, g, m, n; this._init = function() { c = new createjs.Container; a.addChild(c); n = !1; m = []; g = h = MATRIX_VERTICAL_SPEED; this.resetTweenSettings() }; this.resetTweenSettings = function() { d = 0; b = c.y; f = c.y - 100 }; this.setSquareMatrixUpdate = function(p) { e = p }; this.createSquareLine = function(p) { var x = [0, 1, 2, 3, 4]; shuffle(x); for (var t = [], q = 0; q < SQUARE_LINE_NUMBER; q++) { var A = new CSquare(p, q, x[q], c); t.push(A) } m.push(t) }; this.getSquareMatrix = function() { return m }; this.getContainer = function() { return c }; this.returnColumnColour = function(p) { return m[0][p].getColour() }; this.destroyTopRow = function() { for (var p = 0; p < SQUARE_LINE_NUMBER; p++) m[0][p].destroySquare(); m.splice(0, 1); m.length < SQUARE_LINES_MINIMUM && s_oGame.createNewSquareLine() }; this.unload = function() { for (var p = 0; p < m.length; p++) { for (var x = 0; x < m[p].length; x++) m[p][x].unload(); m.splice(p, 1) } c.removeAllChildren() }; this.getY = function() { return c.y }; this.resetMovement = function() { this.resetTweenSettings(); h -= MATRIX_SPEED_VARIABLE; h < MAX_MATRIX_SPEED_LIMIT && (h = MAX_MATRIX_SPEED_LIMIT); g = n ? MAX_MATRIX_SPEED_LIMIT / 4 : h; e = !0 }; this.setAccellerate = function(p) { n = p }; this.setUpdate = function(p) { e = p }; this.isUpdate = function() { return e }; this.update = function() { if (e) if (d += s_iTimeElaps, d >= g) e = !1, this.resetMovement(); else { var p = s_oTweenController.easeLinear(d, 0, 1, g); p = s_oTweenController.tweenValue(b, f, p); c.y = p } }; this._init() } function CSquare(a, c, b, d) { var h, e, f, g, m, n, p, x; this._init = function() { h = d; e = new createjs.Container; h.addChild(e); x = b; g = c; m = a; n = MATRIX_OFFSET_X + (SQUARE_SIZE + SQUARE_OFFSET) * g; p = MATRIX_OFFSET_Y + (SQUARE_SIZE + SQUARE_OFFSET) * m; var t = { images: [s_oSpriteLibrary.getSprite("box")], frames: { width: SQUARE_SIZE, height: SQUARE_SIZE, regX: 0, regY: 0 }, animations: { idle: [0, 4] } }; t = new createjs.SpriteSheet(t); f = createSprite(t, "idle", 0, 0, SQUARE_SIZE, SQUARE_SIZE); f.gotoAndStop(x); f.regX = f.regY = .5 * SQUARE_SIZE; e.addChild(f); e.x = n; e.y = p; e.scaleX = e.scaleY = SQUARE_SCALE_VAR; e.on("mousedown", function() { s_oGame.onClickedSquare(g) }); s_bMobile || (e.cursor = "pointer") }; this.destroySquare = function() { createjs.Tween.get(f).to({ alpha: 0 }, 500, createjs.Ease.backOut).call(this.unload) }; this.getColour = function() { return x }; this.unload = function() { h.removeChild(e); createjs.Tween.removeTweens(f) }; this._init() } function CPlayerSquare(a, c, b, d) { var h, e, f, g, m, n, p, x, t, q, A, w, z, I, l, v, C, B, D, M, y; this._init = function() { h = d; e = new createjs.Container; h.addChild(e); q = !1; z = !0; w = A = !1; C = PLAYER_SQUARE_HORIZONTAL_SPEED; y = PLAYER_SQUARE_VERTICAL_SPEED; this._resetHorizontalTweenSettings(0); this._resetVerticalTweenSettings(); m = START_PLAYER_VALUE; t = b; n = c; p = MATRIX_OFFSET_X + (SQUARE_SIZE + SQUARE_OFFSET) * n; x = MATRIX_OFFSET_Y - (SQUARE_SIZE + SQUARE_OFFSET); var E = { images: [s_oSpriteLibrary.getSprite("box")], frames: { width: SQUARE_SIZE, height: SQUARE_SIZE, regX: 0, regY: 0 }, animations: { idle: [0, 4] } }; E = new createjs.SpriteSheet(E); f = createSprite(E, "idle", 0, 0, SQUARE_SIZE, SQUARE_SIZE); f.gotoAndStop(t); f.regX = f.regY = .5 * SQUARE_SIZE; g = new createjs.Text(m, "40px " + PRIMARY_FONT, PRIMARY_FONT_COLOUR); g.textAlign = "center"; g.textBaseline = "alphabetic"; g.y = 15; e.addChild(f, g); e.x = p; e.y = -SQUARE_SIZE; e.scaleX = e.scaleY = SQUARE_SCALE_VAR }; this.startTween = function() { createjs.Tween.get(e).to({ y: x }, 1500, createjs.Ease.bounceOut).call(function() { createjs.Tween.removeTweens(e); s_oGame.startMatrixMovement(); z = !1 }) }; this.getColumn = function() { return n }; this.getColour = function() { return t }; this.changeColour = function(E) { var V = this; q = !0; createjs.Tween.get(e).to({ alpha: .8, scaleX: 1.2, scaleY: 1.2 }, 50, createjs.Ease.quadIn).to({ alpha: 1, scaleX: SQUARE_SCALE_VAR, scaleY: SQUARE_SCALE_VAR }, 50, createjs.Ease.quadOut).to({ alpha: .8, scaleX: 1.2, scaleY: 1.2 }, 50, createjs.Ease.quadIn).to({ alpha: 1, scaleX: SQUARE_SCALE_VAR, scaleY: SQUARE_SCALE_VAR }, 50, createjs.Ease.quadOut).to({ alpha: .8, scaleX: 1.2, scaleY: 1.2 }, 50, createjs.Ease.quadIn).to({ alpha: 1, scaleX: SQUARE_SCALE_VAR, scaleY: SQUARE_SCALE_VAR }, 50, createjs.Ease.quadOut).to({ alpha: .8, scaleX: 1.2, scaleY: 1.2 }, 50, createjs.Ease.quadIn).to({ alpha: 1, scaleX: SQUARE_SCALE_VAR, scaleY: SQUARE_SCALE_VAR }, 50, createjs.Ease.quadOut).to({ alpha: .8, scaleX: 1.2, scaleY: 1.2 }, 50, createjs.Ease.quadIn).to({ alpha: 1, scaleX: SQUARE_SCALE_VAR, scaleY: SQUARE_SCALE_VAR }, 50, createjs.Ease.quadOut).call(function() { createjs.Tween.removeTweens(e); V._onChangeColourAnimationFinished(E) }) }; this._onChangeColourAnimationFinished = function(E) { q = !1; e.alpha = 1; e.scaleX = e.scaleY = SQUARE_SCALE_VAR; t = E; f.gotoAndStop(E); s_oGame.onPlayerSquareMoved() }; this.moveSquareDown = function() { w || (this._resetVerticalTweenSettings(), w = !0) }; this.moveSquareToNewColumn = function(E) { A || (this._resetHorizontalTweenSettings(E), n = E, A = !0) }; this.updateValueTest = function(E) { g.text = E }; this.getGlobalY = function() { return f.globalToLocal(f.x, f.y).y + s_iOffsetY }; this.isLockedMovement = function() { var E = !1; if (z || A || w || q) E = !0; return E }; this._resetHorizontalTweenSettings = function(E) { E = MATRIX_OFFSET_X + (SQUARE_SIZE + SQUARE_OFFSET) * E; I = 0; l = e.x; v = E }; this._resetVerticalTweenSettings = function() { var E = e.y + SQUARE_SIZE + SQUARE_OFFSET; B = 0; D = e.y; M = E }; this.destroySquare = function() { createjs.Tween.get(e).to({ alpha: 0 }, 1E3, createjs.Ease.backOut).call(this.unload) }; this.unload = function() { h.removeChild(e); createjs.Tween.removeTweens(f) }; this.update = function() { if (A || w) { if (A) if (I += s_iTimeElaps, I >= C) A = !1, s_oGame.onPlayerSquareMoved(); else { var E = s_oTweenController.easeOutCubic(I, 0, 1, C); E = s_oTweenController.tweenValue(l, v, E); e.x = E } w && (B += s_iTimeElaps, B >= y ? (w = !1, s_oGame.onPlayerSquareMoved()) : (E = s_oTweenController.easeOutCubic(B, 0, 1, y), E = s_oTweenController.tweenValue(D, M, E), e.y = E)) } }; this._init() } function CMotivationalText(a) { var c, b, d, h; this._init = function() { c = a; b = new createjs.Container; c.addChild(b); var e = CANVAS_HEIGHT_HALF - 200; h = [TEXT_MOTIVATIONAL_1, TEXT_MOTIVATIONAL_2, TEXT_MOTIVATIONAL_3, TEXT_MOTIVATIONAL_4, TEXT_MOTIVATIONAL_5, TEXT_MOTIVATIONAL_6, TEXT_MOTIVATIONAL_7, TEXT_MOTIVATIONAL_8, TEXT_MOTIVATIONAL_9]; d = new CTLText(b, -500, e, 500, 70, 70, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, h[Math.floor(Math.random() * h.length)], !0, !0, !1, !1); this._initMovementTween() }; this._initMovementTween = function() { var e = this; createjs.Tween.get(b).to({ x: 650 }, .5 * MOTIVATIONAL_TEXT_SPEED, createjs.Ease.quintIn).call(function() { e._initPulseTween() }) }; this._initPulseTween = function() { var e = this; createjs.Tween.get(d).to({ scaleX: 1.2, scaleY: 1.2 }, MOTIVATIONAL_TEXT_PULSE_TIME, createjs.Ease.cubicIn).to({ scaleX: 1, scaleY: 1 }, MOTIVATIONAL_TEXT_PULSE_TIME, createjs.Ease.cubicIn).to({ scaleX: 1.2, scaleY: 1.2 }, MOTIVATIONAL_TEXT_PULSE_TIME, createjs.Ease.cubicIn).to({ scaleX: 1, scaleY: 1 }, MOTIVATIONAL_TEXT_PULSE_TIME, createjs.Ease.cubicIn).call(function() { e._initExitTween() }) }; this._initExitTween = function() { var e = this; createjs.Tween.get(b).to({ x: 1300 }, MOTIVATIONAL_TEXT_SPEED, createjs.Ease.quintOut).call(function() { e.unload() }) }; this.unload = function() { s_oGame.removeMotivationalText(); createjs.Tween.removeTweens(b); c.removeChild(b) }; this._init() } function CToggle(a, c, b, d, h) { var e, f, g, m, n; this._init = function(p, x, t, q, A) { n = void 0 !== A ? A : s_oStage; f = []; g = []; A = new createjs.SpriteSheet({ images: [t], frames: { width: t.width / 2, height: t.height, regX: t.width / 2 / 2, regY: t.height / 2 }, animations: { state_true: [0], state_false: [1] } }); e = q; m = createSprite(A, "state_" + e, t.width / 2 / 2, t.height / 2, t.width / 2, t.height); m.x = p; m.y = x; m.stop(); s_bMobile || (m.cursor = "pointer"); n.addChild(m); this._initListener() }; this.unload = function() { m.off("mousedown", this.buttonDown); m.off("pressup", this.buttonRelease); n.removeChild(m) }; this._initListener = function() { m.on("mousedown", this.buttonDown); m.on("pressup", this.buttonRelease) }; this.addEventListener = function(p, x, t) { f[p] = x; g[p] = t }; this.setCursorType = function(p) { m.cursor = p }; this.setActive = function(p) { e = p; m.gotoAndStop("state_" + e) }; this.buttonRelease = function() { m.scaleX = 1; m.scaleY = 1; playSound("click", 1, !1); e = !e; m.gotoAndStop("state_" + e); f[ON_MOUSE_UP] && f[ON_MOUSE_UP].call(g[ON_MOUSE_UP], e) }; this.buttonDown = function() { m.scaleX = .9; m.scaleY = .9; f[ON_MOUSE_DOWN] && f[ON_MOUSE_DOWN].call(g[ON_MOUSE_DOWN]) }; this.setPosition = function(p, x) { m.x = p; m.y = x }; this._init(a, c, b, d, h) } function CGfxButton(a, c, b, d) { var h, e, f, g, m, n, p, x; this._init = function(q, A, w) { h = !1; e = []; f = []; m = []; g = createBitmap(w); g.x = q; g.y = A; n = 1; g.regX = w.width / 2; g.regY = w.height / 2; s_bMobile || (g.cursor = "pointer"); t.addChild(g); this._initListener() }; this.getSprite = function() { return g }; this.unload = function() { g.off("mousedown", p); g.off("pressup", x); t.removeChild(g) }; this.setVisible = function(q) { g.visible = q }; this.setCursorType = function(q) { g.cursor = q }; this._initListener = function() { p = g.on("mousedown", this.buttonDown); x = g.on("pressup", this.buttonRelease) }; this.addEventListener = function(q, A, w) { e[q] = A; f[q] = w }; this.addEventListenerWithParams = function(q, A, w, z) { e[q] = A; f[q] = w; m[q] = z }; this.enable = function() { h = !1 }; this.disable = function() { h = !0 }; this.buttonRelease = function() { h || (g.scaleX = 0 < n ? 1 : -1, g.scaleY = 1, playSound("click", 1, !1), e[ON_MOUSE_UP] && e[ON_MOUSE_UP].call(f[ON_MOUSE_UP], m[ON_MOUSE_UP])) }; this.buttonDown = function() { h || (g.scaleX = 0 < n ? .9 : -.9, g.scaleY = .9, e[ON_MOUSE_DOWN] && e[ON_MOUSE_DOWN].call(f[ON_MOUSE_DOWN], m[ON_MOUSE_DOWN])) }; this.rotation = function(q) { g.rotation = q }; this.getButton = function() { return g }; this.setPosition = function(q, A) { g.x = q; g.y = A }; this.setX = function(q) { g.x = q }; this.setY = function(q) { g.y = q }; this.getButtonImage = function() { return g }; this.setScaleX = function(q) { n = g.scaleX = q }; this.getX = function() { return g.x }; this.getY = function() { return g.y }; this.removeAllTweens = function() { createjs.Tween.removeTweens(g) }; var t = void 0 !== d ? d : s_oStage; this._init(a, c, b); return this } function CTextButton(a, c, b, d, h, e, f, g) { var m, n, p, x, t, q, A, w, z, I; this._init = function(l, v, C, B, D, M, y) { m = !1; n = 1; p = []; x = []; I = createBitmap(C); w = new createjs.Container; w.x = l; w.y = v; w.regX = C.width / 2; w.regY = C.height / 2; s_bMobile || (w.cursor = "pointer"); w.addChild(I, z); g.addChild(w); z = new CTLText(w, 10, 5, C.width - 20, C.height - 10, y, "center", M, D, 1, 0, 0, B, !0, !0, !1, !1); this._initListener() }; this.unload = function() { w.off("mousedown", t); w.off("pressup", q); g.removeChild(w) }; this.setVisible = function(l) { w.visible = l }; this.setAlign = function(l) { z.textAlign = l }; this.setTextX = function(l) { z.x = l }; this.setScale = function(l) { n = w.scaleX = w.scaleY = l }; this.enable = function() { m = !1 }; this.disable = function() { m = !0 }; this._initListener = function() { t = w.on("mousedown", this.buttonDown); q = w.on("pressup", this.buttonRelease) }; this.addEventListener = function(l, v, C) { p[l] = v; x[l] = C }; this.addEventListenerWithParams = function(l, v, C, B) { p[l] = v; x[l] = C; A = B }; this.buttonRelease = function() { m || (playSound("click", 1, !1), w.scaleX = n, w.scaleY = n, p[ON_MOUSE_UP] && p[ON_MOUSE_UP].call(x[ON_MOUSE_UP], A)) }; this.buttonDown = function() { m || (w.scaleX = .9 * n, w.scaleY = .9 * n, p[ON_MOUSE_DOWN] && p[ON_MOUSE_DOWN].call(x[ON_MOUSE_DOWN])) }; this.setPosition = function(l, v) { w.x = l; w.y = v }; this.tweenPosition = function(l, v, C, B, D, M, y) { createjs.Tween.get(w).wait(B).to({ x: l, y: v }, C, D).call(function() { void 0 !== M && M.call(y) }) }; this.changeText = function(l) { z.refreshText(l) }; this.setX = function(l) { w.x = l }; this.setY = function(l) { w.y = l }; this.getButtonImage = function() { return w }; this.getX = function() { return w.x }; this.getY = function() { return w.y }; this.getSprite = function() { return w }; this.getScale = function() { return w.scaleX }; this._init(a, c, b, d, h, e, f) } function CInterface() { var a, c, b, d, h, e, f, g, m, n, p = null, x = null, t, q, A, w; this._init = function() { f = new createjs.Container; s_oStage.addChild(f); var z = s_oSpriteLibrary.getSprite("but_exit"); a = CANVAS_WIDTH - z.width / 2 - 20; c = z.height / 2 + 10; t = new CGfxButton(a, c, z, f); t.addEventListener(ON_MOUSE_UP, this._onExit, this); if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) { var I = s_oSpriteLibrary.getSprite("audio_icon"); h = a - z.width / 2 - I.width / 4; e = c; g = new CToggle(h, e, I, s_bAudioActive, f); g.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this); b = 20 + I.width / 4; d = I.height / 2 + 10 } else b = a - z.width - 10, d = c; z = window.document; I = z.documentElement; p = I.requestFullscreen || I.mozRequestFullScreen || I.webkitRequestFullScreen || I.msRequestFullscreen; x = z.exitFullscreen || z.mozCancelFullScreen || z.webkitExitFullscreen || z.msExitFullscreen; !1 === ENABLE_FULLSCREEN && (p = !1); p && screenfull.isEnabled && (I = s_oSpriteLibrary.getSprite("but_fullscreen"), n = new CToggle(b, d, I, s_bFullscreen, f), n.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this)); this.refreshButtonPos() }; this.initBestScoreText = function() { q = new createjs.Container; f.addChild(q); w = new createjs.Shape; w.graphics.beginFill("#222222").drawRoundRect(0, 0, 350, 50, 10); w.regX = 169; w.regY = 37; w.alpha = .9; q.addChild(w); A = new CTLText(q, 4, -26, w.regX, 32, 32, "left", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_BEST_SCORE + " " + s_iBestScore, !0, !0, !1, !1); this.refreshButtonPos() }; this.updateBestScoreText = function() { A.refreshText(TEXT_BEST_SCORE + " " + s_iBestScore); this.refreshButtonPos() }; this.refreshButtonPos = function() { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || g.setPosition(h - s_iOffsetX, e + s_iOffsetY); p && screenfull.isEnabled && n.setPosition(b + s_iOffsetX, d + s_iOffsetY); t.setPosition(a - s_iOffsetX, c + s_iOffsetY); m = CANVAS_HEIGHT - s_iOffsetY - 50; void 0 !== A && (q.y = m) }; this.unload = function() { if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) g.unload(), g = null; p && screenfull.isEnabled && n.unload(); t.unload(); s_oInterface = null; s_oGame.setDisableEvents(!1); s_oGame.setStartGame(!0) }; this._onExit = function() { s_oGame.isDisableEvents() || (new CAreYouSurePanel(f), s_oGame.setDisableEvents(!0), s_oGame.setStartGame(!1)) }; this._onAudioToggle = function() { Howler.mute(s_bAudioActive); s_bAudioActive = !s_bAudioActive }; this._onFullscreenRelease = function() { s_bFullscreen ? x.call(window.document) : p.call(window.document.documentElement); sizeHandler() }; this.resetFullscreenBut = function() { p && screenfull.isEnabled && n.setActive(s_bFullscreen) }; s_oInterface = this; this._init(); return this } var s_oInterface = null; function CCreditsPanel() { var a, c, b, d, h, e, f, g, m, n, p, x, t; this._init = function() { var q = s_oSpriteLibrary.getSprite("msg_box"); p = new createjs.Container; s_oStage.addChild(p); f = new createjs.Shape; f.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, 2 * CANVAS_HEIGHT); f.alpha = 0; p.addChild(f); createjs.Tween.get(f).to({ alpha: .7 }, 500); t = CANVAS_HEIGHT + q.height / 2; x = new createjs.Container; x.y = t; p.addChild(x); c = createBitmap(q); c.regX = q.width / 2; c.regY = q.height / 2; c.x = CANVAS_WIDTH_HALF; c.y = CANVAS_HEIGHT_HALF; x.addChild(c); g = new createjs.Shape; g.graphics.beginFill("#0f0f0f").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); g.alpha = .01; a = g.on("click", this._onLogoButRelease); x.addChild(g); s_bMobile || (g.cursor = "pointer"); q = s_oSpriteLibrary.getSprite("but_exit"); d = new CGfxButton(610, 570, q, x); d.addEventListener(ON_MOUSE_UP, this.unload, this); h = new createjs.Text(TEXT_CREDITS_DEVELOPED, "44px " + PRIMARY_FONT, SECONDARY_FONT_COLOUR); h.textAlign = "center"; h.textBaseline = "alphabetic"; h.x = CANVAS_WIDTH_HALF; h.y = CANVAS_HEIGHT_HALF - 80; h.outline = 5; x.addChild(h); e = new createjs.Text(TEXT_CREDITS_DEVELOPED, "44px " + PRIMARY_FONT, PRIMARY_FONT_COLOUR); e.textAlign = "center"; e.textBaseline = "alphabetic"; e.x = CANVAS_WIDTH_HALF; e.y = CANVAS_HEIGHT_HALF - 80; x.addChild(e); q = s_oSpriteLibrary.getSprite("logo_ctl"); b = createBitmap(q); b.regX = q.width / 2; b.regY = q.height / 2; b.x = CANVAS_WIDTH_HALF; b.y = CANVAS_HEIGHT_HALF; x.addChild(b); m = new createjs.Text("www.codethislab.com", "38px " + PRIMARY_FONT, SECONDARY_FONT_COLOUR); m.textAlign = "center"; m.textBaseline = "alphabetic"; m.x = CANVAS_WIDTH_HALF; m.y = CANVAS_HEIGHT_HALF + 100; m.outline = 5; x.addChild(m); n = new createjs.Text("www.codethislab.com", "38px " + PRIMARY_FONT, PRIMARY_FONT_COLOUR); n.textAlign = "center"; n.textBaseline = "alphabetic"; n.x = CANVAS_WIDTH_HALF; n.y = CANVAS_HEIGHT_HALF + 100; x.addChild(n); createjs.Tween.get(x).to({ y: 0 }, 1E3, createjs.Ease.backOut) }; this.unload = function() { createjs.Tween.get(f).to({ alpha: 0 }, 500); createjs.Tween.get(p).to({ y: t }, 400, createjs.Ease.backIn).call(function() { g.off("click", a); d.unload(); d = null; s_oStage.removeChild(p); s_oMenu.exitFromCredits() }) }; this._onLogoButRelease = function() { window.open("http://www.codethislab.com/index.php?&l=en", "_blank") }; this._init() } function CAreYouSurePanel() { var a, c, b, d, h, e; this._init = function() { c = new createjs.Container; s_oStage.addChild(c); e = new createjs.Container; s_oStage.addChild(e); h = new createjs.Shape; h.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); h.alpha = 0; h.on("mousedown", function() {}); c.addChild(h); createjs.Tween.get(h).to({ alpha: .7 }, 500); var g = s_oSpriteLibrary.getSprite("msg_box"), m = createBitmap(g); m.regX = g.width / 2; m.regY = g.height / 2; m.x = CANVAS_WIDTH_HALF; m.y = CANVAS_HEIGHT_HALF; e.addChild(m); e.y = CANVAS_HEIGHT + g.height / 2; a = e.y; createjs.Tween.get(e).to({ y: 0 }, 1E3, createjs.Ease.backOut); new CTLText(e, CANVAS_WIDTH / 2 - 250, CANVAS_HEIGHT_HALF - 160, 500, 150, 36, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_ARE_SURE, !0, !0, !0, !1); b = new CGfxButton(CANVAS_WIDTH_HALF + 195, 790, s_oSpriteLibrary.getSprite("but_yes"), e); b.addEventListener(ON_MOUSE_UP, this._onButYes, this); d = new CGfxButton(CANVAS_WIDTH_HALF - 195, 790, s_oSpriteLibrary.getSprite("but_no"), e); d.addEventListener(ON_MOUSE_UP, this._onButNo, this) }; this._onButYes = function() { d.disable(); b.disable(); createjs.Tween.get(h).to({ alpha: 0 }, 500); createjs.Tween.get(e).to({ y: a }, 400, createjs.Ease.backIn).call(function() { f.unload(); s_oGame.onExit() }) }; this._onButNo = function() { d.disable(); b.disable(); createjs.Tween.get(h).to({ alpha: 0 }, 500); createjs.Tween.get(e).to({ y: a }, 400, createjs.Ease.backIn).call(function() { f.unload() }) }; this.unload = function() { d.unload(); b.unload(); s_oGame.setDisableEvents(!1); s_oGame.setStartGame(!0); c.removeChild(h); s_oStage.removeChild(e); h.off("mousedown", function() {}) }; var f = this; this._init() } function CHelpPanel() { var a, c, b, d; this._init = function() { var h = CANVAS_HEIGHT_HALF - 150, e = CANVAS_HEIGHT_HALF - 40, f = CANVAS_HEIGHT_HALF + 70, g = s_oSpriteLibrary.getSprite("msg_box"); b = createBitmap(g); b.x = CANVAS_WIDTH_HALF; b.y = CANVAS_HEIGHT_HALF; b.regX = .5 * g.width; b.regY = .5 * g.height; a = new createjs.Shape; a.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); a.alpha = .7; a.on("mousedown", function() {}); s_oStage.addChild(a); d = new createjs.Container; d.addChild(b); d.y = CANVAS_HEIGHT; s_oStage.addChild(d); new CTLText(d, CANVAS_WIDTH / 2 - 250, h, 500, 64, 32, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_HELP1, !0, !0, !0, !1); new CTLText(d, CANVAS_WIDTH / 2 - 250, e, 500, 64, 32, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_HELP2, !0, !0, !0, !1); new CTLText(d, CANVAS_WIDTH / 2 - 250, f, 500, 64, 32, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_HELP3, !0, !0, !0, !1); c = new createjs.Shape; c.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); s_oStage.addChild(c); (new createjs.Tween.get(d)).to({ y: 0 }, 1E3, createjs.Ease.backOut); createjs.Tween.get(c).to({ alpha: 0 }, 1E3).call(function() { c.visible = !1 }); var m = this; d.on("pressup", function() { m._onExitHelp() }); s_oGame.setDisableEvents(!0); s_bMobile || (d.cursor = "pointer") }; this.unload = function() { createjs.Tween.get(a).to({ alpha: 0 }, 500).call(function() { s_oStage.removeChild(a) }); createjs.Tween.get(d).to({ y: CANVAS_HEIGHT }, 400, createjs.Ease.backIn).call(function() { s_oStage.removeChild(d); var h = this; d.off("pressup", function() { h._onExitHelp() }) }) }; this._onExitHelp = function() { this.unload(); setTimeout(s_oGame._onExitHelp, 500) }; this._init() } function CEndPanel(a) { var c, b, d, h, e, f, g; this._init = function() { g = a; c = new createjs.Container; s_oStage.addChild(c); var m = s_oSpriteLibrary.getSprite("msg_box_big"); h = createBitmap(m); h.x = CANVAS_WIDTH_HALF; h.y = CANVAS_HEIGHT_HALF; h.regX = .5 * m.width; h.regY = .5 * m.height; d = new createjs.Shape; d.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); d.alpha = 0; d.on("mousedown", function() {}); s_oStage.addChild(d); b = new createjs.Container; b.addChild(h); b.y = CANVAS_HEIGHT; b.on; s_oStage.addChild(b); new CTLText(b, CANVAS_WIDTH / 2 - 250, CANVAS_HEIGHT_HALF - 160, 500, 42, 42, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_GAMEOVER, !0, !0, !1, !1); new CTLText(b, CANVAS_WIDTH / 2 - 250, CANVAS_HEIGHT_HALF - 60, 500, 36, 36, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_SCORE + ": " + g, !0, !0, !1, !1); new CTLText(b, CANVAS_WIDTH / 2 - 250, CANVAS_HEIGHT_HALF, 500, 36, 36, "center", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_BEST_SCORE + ": " + s_iBestScore, !0, !0, !1, !1); e = new CGfxButton(CANVAS_WIDTH_HALF - 200, 840, s_oSpriteLibrary.getSprite("but_home"), b); e.addEventListener(ON_MOUSE_UP, this._onExit, this); f = new CGfxButton(CANVAS_WIDTH_HALF + 200, 840, s_oSpriteLibrary.getSprite("but_restart"), b); f.addEventListener(ON_MOUSE_UP, this._onRestart, this); createjs.Tween.get(d).to({ alpha: .7 }, 1E3, createjs.Ease.quadOut); createjs.Tween.get(b).to({ y: 0 }, 1E3, createjs.Ease.backOut).call(function() { $(s_oMain).trigger("show_interlevel_ad") }) }; this.unload = function() { e.unload(); f.unload(); s_oStage.removeChild(d); s_oStage.removeChild(c); s_oStage.removeChild(b); s_oEndPanel = null }; this._onExit = function() { this.unload(); s_oGame.onExit() }; this._onRestart = function() { this.unload(); s_oGame.restart() }; s_oEndPanel = this; this._init() } var s_oEndPanel = null; function CMsgBox(a, c) { var b, d; this._init = function(e) { d = new createjs.Container; h.addChild(d); e = new createjs.Shape; e.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); e.alpha = .5; e.on("click", function() {}); d.addChild(e); e = s_oSpriteLibrary.getSprite("msg_box_big"); var f = createBitmap(e); f.x = .5 * CANVAS_WIDTH; f.y = .5 * CANVAS_HEIGHT; f.regX = .5 * e.width; f.regY = .5 * e.height; d.addChild(f); new CTLText(d, CANVAS_WIDTH / 2 - 260, CANVAS_HEIGHT / 2 - 190, 520, 180, 26, "left", PRIMARY_FONT_COLOUR, PRIMARY_FONT, 1, 0, 0, TEXT_ERR_LS, !0, !0, !0, !1); b = new CGfxButton(CANVAS_WIDTH / 2, 820, s_oSpriteLibrary.getSprite("but_yes"), d); b.addEventListener(ON_MOUSE_UP, this._onButOk, this) }; this._onButOk = function() { this.unload() }; this.unload = function() { b.unload(); h.removeChild(d) }; var h = c; this._init(a) } CTLText.prototype = { constructor: CTLText, __autofit: function() { if (this._bFitText) { for (var a = this._iStartingFontSize; (this._oText.getBounds().height > this._iHeight - 2 * this._iPaddingV || this._oText.getBounds().width > this._iWidth - 2 * this._iPaddingH) && !(a--, this._oText.font = a + "px " + this._szFont, this._oText.lineHeight = Math.round(a * this._fLineHeightFactor), this.__updateY(), this.__verticalAlign(), 8 > a);); this._iFontSize = a } }, __verticalAlign: function() { if (this._bVerticalAlign) { var a = this._oText.getBounds().height; this._oText.y -= (a - this._iHeight) / 2 + this._iPaddingV } }, __updateY: function() { this._oText.y = this._y + this._iPaddingV; switch (this._oText.textBaseline) { case "middle": this._oText.y += this._oText.lineHeight / 2 + (this._iFontSize * this._fLineHeightFactor - this._iFontSize) } }, __createText: function(a) { this._bDebug && (this._oDebugShape = new createjs.Shape, this._oDebugShape.graphics.beginFill("rgba(255,0,0,0.5)").drawRect(this._x, this._y, this._iWidth, this._iHeight), this._oContainer.addChild(this._oDebugShape)); this._oText = new createjs.Text(a, this._iFontSize + "px " + this._szFont, this._szColor); this._oText.textBaseline = "middle"; this._oText.lineHeight = Math.round(this._iFontSize * this._fLineHeightFactor); this._oText.textAlign = this._szAlign; this._oText.lineWidth = this._bMultiline ? this._iWidth - 2 * this._iPaddingH : null; switch (this._szAlign) { case "center": this._oText.x = this._x + this._iWidth / 2; break; case "left": this._oText.x = this._x + this._iPaddingH; break; case "right": this._oText.x = this._x + this._iWidth - this._iPaddingH } this._oContainer.addChild(this._oText); this.refreshText(a) }, setVerticalAlign: function(a) { this._bVerticalAlign = a }, setOutline: function(a) { null !== this._oText && (this._oText.outline = a) }, setShadow: function(a, c, b, d) { null !== this._oText && (this._oText.shadow = new createjs.Shadow(a, c, b, d)) }, setColor: function(a) { this._oText.color = a }, setAlpha: function(a) { this._oText.alpha = a }, removeTweens: function() { createjs.Tween.removeTweens(this._oText) }, getText: function() { return this._oText }, getY: function() { return this._y }, getFontSize: function() { return this._iFontSize }, getBounds: function() { return this._oText.getBounds() }, refreshText: function(a) { "" === a && (a = " "); null === this._oText && this.__createText(a); this._oText.text = a; this._oText.font = this._iStartingFontSize + "px " + this._szFont; this._oText.lineHeight = Math.round(this._iStartingFontSize * this._fLineHeightFactor); this.__autofit(); this.__updateY(); this.__verticalAlign() } }; function CTLText(a, c, b, d, h, e, f, g, m, n, p, x, t, q, A, w, z) { this._oContainer = a; this._x = c; this._y = b; this._iWidth = d; this._iHeight = h; this._bMultiline = w; this._iFontSize = this._iStartingFontSize = e; this._szAlign = f; this._szColor = g; this._szFont = m; this._iPaddingH = p; this._iPaddingV = x; this._bVerticalAlign = A; this._bFitText = q; this._bDebug = z; this._oDebugShape = null; this._fLineHeightFactor = n; this._oText = null; t && this.__createText(t) } function extractHostname(a) { a = -1 < a.indexOf("://") ? a.split("/")[2] : a.split("/")[0]; a = a.split(":")[0]; return a = a.split("?")[0] } function extractRootDomain(a) { a = extractHostname(a); var c = a.split("."), b = c.length; 2 < b && (a = c[b - 2] + "." + c[b - 1]); return a } var getClosestTop = function() { var a = window, c = !1; try { for (; a.parent.document !== a.document;) if (a.parent.document) a = a.parent; else { c = !0; break } } catch (b) { c = !0 } return { topFrame: a, err: c } }, getBestPageUrl = function(a) { var c = a.topFrame, b = ""; if (a.err) try { try { b = window.top.location.href } catch (h) { var d = window.location.ancestorOrigins; b = d[d.length - 1] } } catch (h) { b = c.document.referrer } else b = c.location.href; return b }, TOPFRAMEOBJ = getClosestTop(), PAGE_URL = getBestPageUrl(TOPFRAMEOBJ); function seekAndDestroy() { for (var a = extractRootDomain(PAGE_URL), c = [String.fromCharCode(99, 111, 100, 101, 116, 104, 105, 115, 108, 97, 98, 46, 99, 111, 109), String.fromCharCode(101, 110, 118, 97, 116, 111, 46, 99, 111, 109), String.fromCharCode(99, 111, 100, 101, 99, 97, 110, 121, 111, 110, 46, 99, 111, 109), String.fromCharCode(99, 111, 100, 101, 99, 97, 110, 121, 111, 110, 46, 110, 101, 116)], b = 0; b < c.length; b++) if (c[b] === a) return !0; return !1 };
| ver. 1.4 |
Github
|
.
| PHP 8.2.29 | Генераци� �траницы: 0 |
proxy
|
phpinfo
|
�а�тройка