Файловый менеджер - Редактировать - /home/jogoso94/public_html/jogos/puzzle_deluxe/js/main.js
�азад
/* 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 = "undefined" !== typeof Element && "ALLOW_KEYBOARD_INPUT" in Element, d = function() { for (var b, d = ["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(" ") ], c = 0, e = d.length, g = {}; c < e; c++) if ((b = d[c]) && b[1] in a) { for (c = 0; c < b.length; c++) g[d[0][c]] = b[c]; return g } return !1 }(), g = { change: d.fullscreenchange, error: d.fullscreenerror }, e = { request: function(c) { var e = d.requestFullscreen; c = c || a.documentElement; if (/5\.1[.\d]* Safari/.test(navigator.userAgent)) c[e](); else c[e](b && Element.ALLOW_KEYBOARD_INPUT) }, exit: function() { a[d.exitFullscreen]() }, toggle: function(a) { this.isFullscreen ? this.exit() : this.request(a) }, onchange: function(a) { this.on("change", a) }, onerror: function(a) { this.on("error", a) }, on: function(b, c) { var d = g[b]; d && a.addEventListener(d, c, !1) }, off: function(b, c) { var d = g[b]; d && a.removeEventListener(d, c, !1) }, raw: d }; d ? (Object.defineProperties(e, { isFullscreen: { get: function() { return !!a[d.fullscreenElement] } }, element: { enumerable: !0, get: function() { return a[d.fullscreenElement] } }, enabled: { enumerable: !0, get: function() { return !!a[d.fullscreenEnabled] } } }), c ? module.exports = e : window.screenfull = e) : c ? module.exports = !1 : window.screenfull = !1 })(); (function() { function a(a) { a = String(a); return a.charAt(0).toUpperCase() + a.slice(1) } function c(a, b) { var c = -1, e = a ? a.length : 0; if ("number" == typeof e && -1 < e && e <= y) for (; ++c < e;) b(a[c], c, a); else d(a, b) } function b(b) { b = String(b).replace(/^ +| +$/g, ""); return /^(?:webOS|i(?:OS|P))/.test(b) ? b : a(b) } function d(a, b) { for (var c in a) C.call(a, c) && b(a[c], c, a) } function g(b) { return null == b ? a(b) : F.call(b).slice(8, -1) } function e(a, b) { var c = null != a ? typeof a[b] : "number"; return !/^(?:boolean|number|string|undefined)$/.test(c) && ("object" == c ? !!a[b] : !0) } function h(a) { return String(a).replace(/([ -])(?!$)/g, "$1?") } function m(a, b) { var d = null; c(a, function(c, e) { d = b(d, c, e, a) }); return d } function t(a) { function c(c) { return m(c, function(c, d) { var f = d.pattern || h(d); !c && (c = RegExp("\\b" + f + " *\\d+[.\\w_]*", "i").exec(a) || RegExp("\\b" + f + " *\\w+-[\\w]*", "i").exec(a) || RegExp("\\b" + f + "(?:; *(?:[a-z]+[_-])?[a-z]+\\d+|[^ ();-]*)", "i").exec(a)) && ((c = String(d.label && !RegExp(f, "i").test(d.label) ? d.label : c).split("/"))[1] && !/[\d.]+/.test(c[0]) && (c[0] += " " + c[1]), d = d.label || d, c = b(c[0].replace(RegExp(f, "i"), d).replace(RegExp("; *(?:" + d + "[_-])?", "i"), " ").replace(RegExp("(" + d + ")[-_.]?(\\w)", "i"), "$1 $2"))); return c }) } function n(b) { return m(b, function(b, c) { return b || (RegExp(c + "(?:-[\\d.]+/|(?: for [\\w-]+)?[ /-])([\\d.]+[^ ();/_-]*)", "i").exec(a) || 0)[1] || null }) } var l = k, w = a && "object" == typeof a && "String" != g(a); w && (l = a, a = null); var v = l.navigator || {}, u = v.userAgent || ""; a || (a = u); var y = w ? !!v.likeChrome : /\bChrome\b/.test(a) && !/internal|\n/i.test(F.toString()), C = w ? "Object" : "ScriptBridgingProxyObject", B = w ? "Object" : "Environment", D = w && l.java ? "JavaPackage" : g(l.java), Q = w ? "Object" : "RuntimeObject"; B = (D = /\bJava/.test(D) && l.java) && g(l.environment) == B; var R = D ? "a" : "\u03b1", S = D ? "b" : "\u03b2", N = l.document || {}, I = l.operamini || l.opera, K = q.test(K = w && I ? I["[[Class]]"] : g(I)) ? K : I = null, f, L = a; w = []; var M = null, J = a == u; u = J && I && "function" == typeof I.version && I.version(); var z = function(b) { return m(b, function(b, c) { return b || RegExp("\\b" + (c.pattern || h(c)) + "\\b", "i").exec(a) && (c.label || c) }) }([{ label: "EdgeHTML", pattern: "Edge" }, "Trident", { label: "WebKit", pattern: "AppleWebKit" }, "iCab", "Presto", "NetFront", "Tasman", "KHTML", "Gecko"]), p = function(b) { return m(b, function(b, c) { return b || RegExp("\\b" + (c.pattern || h(c)) + "\\b", "i").exec(a) && (c.label || c) }) }(["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" ]), A = c([{ 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" ]), G = function(b) { return m(b, function(b, c, d) { return b || (c[A] || c[/^[a-z]+(?: +[a-z]+\b)*/i.exec(A)] || RegExp("\\b" + h(d) + "(?:\\b|\\w*\\d)", "i").exec(a)) && d }) }({ 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 } }), r = function(c) { return m(c, function(c, d) { var f = d.pattern || h(d); if (!c && (c = RegExp("\\b" + f + "(?:/[\\d.]+|[ \\w.]*)", "i").exec(a))) { var e = c, g = d.label || d, w = { "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" }; f && g && /^Win/i.test(e) && !/^Windows Phone /i.test(e) && (w = w[/[\d.]+$/.exec(e)]) && (e = "Windows " + w); e = String(e); f && g && (e = e.replace(RegExp(f, "i"), g)); c = e = b(e.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 c }) }(["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 " ]); z && (z = [z]); G && !A && (A = c([G])); if (f = /\bGoogle TV\b/.exec(A)) A = f[0]; /\bSimulator\b/i.test(a) && (A = (A ? A + " " : "") + "Simulator"); "Opera Mini" == p && /\bOPiOS\b/.test(a) && w.push("running in Turbo/Uncompressed mode"); "IE" == p && /\blike iPhone OS\b/.test(a) ? (f = t(a.replace(/like iPhone OS/, "")), G = f.manufacturer, A = f.product) : /^iP/.test(A) ? (p || (p = "Safari"), r = "iOS" + ((f = / OS ([\d_]+)/i.exec(a)) ? " " + f[1].replace(/_/g, ".") : "")) : "Konqueror" != p || /buntu/i.test(r) ? G && "Google" != G && (/Chrome/.test(p) && !/\bMobile Safari\b/i.test(a) || /\bVita\b/.test(A)) || /\bAndroid\b/.test(r) && /^Chrome/.test(p) && /\bVersion\//i.test(a) ? (p = "Android Browser", r = /\bAndroid\b/.test(r) ? r : "Android") : "Silk" == p ? (/\bMobi/i.test(a) || (r = "Android", w.unshift("desktop mode")), /Accelerated *= *true/i.test(a) && w.unshift("accelerated")) : "PaleMoon" == p && (f = /\bFirefox\/([\d.]+)\b/.exec(a)) ? w.push("identifying as Firefox " + f[1]) : "Firefox" == p && (f = /\b(Mobile|Tablet|TV)\b/i.exec(a)) ? (r || (r = "Firefox OS"), A || (A = f[1])) : !p || (f = !/\bMinefield\b/i.test(a) && /\b(?:Firefox|Safari)\b/.exec(p)) ? (p && !A && /[\/,]|^[^(]+?\)/.test(a.slice(a.indexOf(f + "/") + 8)) && (p = null), (f = A || G || r) && (A || G || /\b(?:Android|Symbian OS|Tablet OS|webOS)\b/.test(r)) && (p = /[a-z]+(?: Hat)?/i.exec(/\bAndroid\b/.test(r) ? r : f) + " Browser")) : "Electron" == p && (f = (/\bChrome\/([\d.]+)\b/.exec(a) || 0)[1]) && w.push("Chromium " + f) : r = "Kubuntu"; u || (u = n(["(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\d.]+$))", "Version", h(p), "(?:Firefox|Minefield|NetFront)"])); if (f = "iCab" == z && 3 < parseFloat(u) && "WebKit" || /\bOpera\b/.test(p) && (/\bOPR\b/.test(a) ? "Blink" : "Presto") || /\b(?:Midori|Nook|Safari)\b/i.test(a) && !/^(?:Trident|EdgeHTML)$/.test(z) && "WebKit" || !z && /\bMSIE\b/i.test(a) && ("Mac OS" == r ? "Tasman" : "Trident") || "WebKit" == z && /\bPlayStation\b(?! Vita\b)/i.test(p) && "NetFront") z = [f]; "IE" == p && (f = (/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(a) || 0)[1]) ? (p += " Mobile", r = "Windows Phone " + (/\+$/.test(f) ? f : f + ".x"), w.unshift("desktop mode")) : /\bWPDesktop\b/i.test(a) ? (p = "IE Mobile", r = "Windows Phone 8.x", w.unshift("desktop mode"), u || (u = (/\brv:([\d.]+)/.exec(a) || 0)[1])) : "IE" != p && "Trident" == z && (f = /\brv:([\d.]+)/.exec(a)) && (p && w.push("identifying as " + p + (u ? " " + u : "")), p = "IE", u = f[1]); if (J) { if (e(l, "global")) if (D && (f = D.lang.System, L = f.getProperty("os.arch"), r = r || f.getProperty("os.name") + " " + f.getProperty("os.version")), B) { try { u = l.require("ringo/engine").version.join("."), p = "RingoJS" } catch (P) { (f = l.system) && f.global.system == l.system && (p = "Narwhal", r || (r = f[0].os || null)) } p || (p = "Rhino") } else "object" == typeof l.process && !l.process.browser && (f = l.process) && ("object" == typeof f.versions && ("string" == typeof f.versions.electron ? (w.push("Node " + f.versions.node), p = "Electron", u = f.versions.electron) : "string" == typeof f.versions.nw && (w.push("Chromium " + u, "Node " + f.versions.node), p = "NW.js", u = f.versions.nw)), p || (p = "Node.js", L = f.arch, r = f.platform, u = (u = /[\d.]+/.exec(f.version)) ? u[0] : null)); else g(f = l.runtime) == C ? (p = "Adobe AIR", r = f.flash.system.Capabilities.os) : g(f = l.phantom) == Q ? (p = "PhantomJS", u = (f = f.version || null) && f.major + "." + f.minor + "." + f.patch) : "number" == typeof N.documentMode && (f = /\bTrident\/(\d+)/i.exec(a)) ? (u = [u, N.documentMode], (f = +f[1] + 4) != u[1] && (w.push("IE " + u[1] + " mode"), z && (z[1] = ""), u[1] = f), u = "IE" == p ? String(u[1].toFixed(1)) : u[0]) : "number" == typeof N.documentMode && /^(?:Chrome|Firefox)\b/.test(p) && (w.push("masking as " + p + " " + u), p = "IE", u = "11.0", z = ["Trident"], r = "Windows"); r = r && b(r) } u && (f = /(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(u) || /(?:alpha|beta)(?: ?\d)?/i.exec(a + ";" + (J && v.appMinorVersion)) || /\bMinefield\b/i.test(a) && "a") && (M = /b/i.test(f) ? "beta" : "alpha", u = u.replace(RegExp(f + "\\+?$"), "") + ("beta" == M ? S : R) + (/\d+\+?/.exec(f) || "")); if ("Fennec" == p || "Firefox" == p && /\b(?:Android|Firefox OS)\b/.test(r)) p = "Firefox Mobile"; else if ("Maxthon" == p && u) u = u.replace(/\.[\d.]+/, ".x"); else if (/\bXbox\b/i.test(A)) "Xbox 360" == A && (r = null), "Xbox 360" == A && /\bIEMobile\b/.test(a) && w.unshift("mobile mode"); else if (!/^(?:Chrome|IE|Opera)$/.test(p) && (!p || A || /Browser|Mobi/.test(p)) || "Windows CE" != r && !/Mobi/i.test(a)) if ("IE" == p && J) try { null === l.external && w.unshift("platform preview") } catch (P) { w.unshift("embedded") } else(/\bBlackBerry\b/.test(A) || /\bBB10\b/.test(a)) && (f = (RegExp(A.replace(/ +/g, " *") + "/([.\\d]+)", "i").exec(a) || 0)[1] || u) ? (f = [f, /BB10/.test(a)], r = (f[1] ? (A = null, G = "BlackBerry") : "Device Software") + " " + f[0], u = null) : this != d && "Wii" != A && (J && I || /Opera/.test(p) && /\b(?:MSIE|Firefox)\b/i.test(a) || "Firefox" == p && /\bOS X (?:\d+\.){2,}/.test(r) || "IE" == p && (r && !/^Win/.test(r) && 5.5 < u || /\bWindows XP\b/.test(r) && 8 < u || 8 == u && !/\bTrident\b/.test(a))) && !q.test(f = t.call(d, a.replace(q, "") + ";")) && f.name && (f = "ing as " + f.name + ((f = f.version) ? " " + f : ""), q.test(p) ? (/\bIE\b/.test(f) && "Mac OS" == r && (r = null), f = "identify" + f) : (f = "mask" + f, p = K ? b(K.replace(/([a-z])([A-Z])/g, "$1 $2")) : "Opera", /\bIE\b/.test(f) && (r = null), J || (u = null)), z = ["Presto"], w.push(f)); else p += " Mobile"; if (f = (/\bAppleWebKit\/([\d.]+\+?)/i.exec(a) || 0)[1]) { f = [parseFloat(f.replace(/\.(\d)$/, ".0$1")), f]; if ("Safari" == p && "+" == f[1].slice(-1)) p = "WebKit Nightly", M = "alpha", u = f[1].slice(0, -1); else if (u == f[1] || u == (f[2] = (/\bSafari\/([\d.]+\+?)/i.exec(a) || 0)[1])) u = null; f[1] = (/\bChrome\/([\d.]+)/i.exec(a) || 0)[1]; 537.36 == f[0] && 537.36 == f[2] && 28 <= parseFloat(f[1]) && "WebKit" == z && (z = ["Blink"]); J && (y || f[1]) ? (z && (z[1] = "like Chrome"), f = f[1] || (f = f[0], 530 > f ? 1 : 532 > f ? 2 : 532.05 > f ? 3 : 533 > f ? 4 : 534.03 > f ? 5 : 534.07 > f ? 6 : 534.1 > f ? 7 : 534.13 > f ? 8 : 534.16 > f ? 9 : 534.24 > f ? 10 : 534.3 > f ? 11 : 535.01 > f ? 12 : 535.02 > f ? "13+" : 535.07 > f ? 15 : 535.11 > f ? 16 : 535.19 > f ? 17 : 536.05 > f ? 18 : 536.1 > f ? 19 : 537.01 > f ? 20 : 537.11 > f ? "21+" : 537.13 > f ? 23 : 537.18 > f ? 24 : 537.24 > f ? 25 : 537.36 > f ? 26 : "Blink" != z ? "27" : "28")) : (z && (z[1] = "like Safari"), f = (f = f[0], 400 > f ? 1 : 500 > f ? 2 : 526 > f ? 3 : 533 > f ? 4 : 534 > f ? "4+" : 535 > f ? 5 : 537 > f ? 6 : 538 > f ? 7 : 601 > f ? 8 : "8")); z && (z[1] += " " + (f += "number" == typeof f ? ".x" : /[.+]/.test(f) ? "" : "+")); "Safari" == p && (!u || 45 < parseInt(u)) && (u = f) } "Opera" == p && (f = /\bzbov|zvav$/.exec(r)) ? (p += " ", w.unshift("desktop mode"), "zvav" == f ? (p += "Mini", u = null) : p += "Mobile", r = r.replace(RegExp(" *" + f + "$"), "")) : "Safari" == p && /\bChrome\b/.exec(z && z[1]) && (w.unshift("desktop mode"), p = "Chrome Mobile", u = null, /\bOS X\b/.test(r) ? (G = "Apple", r = "iOS 4.3+") : r = null); u && 0 == u.indexOf(f = /[\d.]+$/.exec(r)) && -1 < a.indexOf("/" + f + "-") && (r = String(r.replace(f, "")).replace(/^ +| +$/g, "")); z && !/\b(?:Avant|Nook)\b/.test(p) && (/Browser|Lunascape|Maxthon/.test(p) || "Safari" != p && /^iOS/.test(r) && /\bSafari\b/.test(z[1]) || /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(p) && z[1]) && (f = z[z.length - 1]) && w.push(f); w.length && (w = ["(" + w.join("; ") + ")"]); G && A && 0 > A.indexOf(G) && w.push("on " + G); A && w.push((/^on /.test(w[w.length - 1]) ? "" : "on ") + A); if (r) { var O = (f = / ([\d.+]+)$/.exec(r)) && "/" == r.charAt(r.length - f[0].length - 1); r = { architecture: 32, family: f && !O ? r.replace(f[0], "") : r, version: f ? f[1] : null, toString: function() { var a = this.version; return this.family + (a && !O ? " " + a : "") + (64 == this.architecture ? " 64-bit" : "") } } }(f = /\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(L)) && !/\bi686\b/i.test(L) ? (r && (r.architecture = 64, r.family = r.family.replace(RegExp(" *" + f), "")), p && (/\bWOW64\b/i.test(a) || J && /\w(?:86|32)$/.test(v.cpuClass || v.platform) && !/\bWin64; x64\b/i.test(a)) && w.unshift("32-bit")) : r && /^OS X/.test(r.family) && "Chrome" == p && 39 <= parseFloat(u) && (r.architecture = 64); a || (a = null); l = {}; l.description = a; l.layout = z && z[0]; l.manufacturer = G; l.name = p; l.prerelease = M; l.product = A; l.ua = a; l.version = p && u; l.os = r || { architecture: null, family: null, version: null, toString: function() { return "null" } }; l.parse = t; l.toString = function() { return this.description || "" }; l.version && w.unshift(u); l.name && w.unshift(p); r && p && (r != String(r).split(" ")[0] || r != p.split(" ")[0] && !A) && w.push(A ? "(" + r + ")" : "on " + r); w.length && (l.description = w.join(" ")); return l } var n = { "function": !0, object: !0 }, k = n[typeof window] && window || this, l = n[typeof exports] && exports; n = n[typeof module] && module && !module.nodeType && module; var v = l && n && "object" == typeof global && global; !v || v.global !== v && v.window !== v && v.self !== v || (k = v); var y = Math.pow(2, 53) - 1, q = /\bOpera/; v = Object.prototype; var C = v.hasOwnProperty, F = v.toString, B = t(); "function" == typeof define && "object" == typeof define.amd && define.amd ? (k.platform = B, define(function() { return B })) : l && n ? d(B, function(a, b) { l[b] = a }) : k.platform = B }).call(this); function buildIOSMeta() { for (var a = [{ name: "viewport", content: "width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" }, { name: "apple-mobile-web-app-capable", content: "yes" }, { name: "apple-mobile-web-app-status-bar-style", content: "black" }], c = 0; c < a.length; c++) { var b = document.createElement("meta"); b.name = a[c].name; b.content = a[c].content; var d = window.document.head.querySelector('meta[name="' + b.name + '"]'); d && d.parentNode.removeChild(d); window.document.head.appendChild(b) } } function hideIOSFullscreenPanel() { jQuery(".xxx-ios-fullscreen-message").css("display", "none"); jQuery(".xxx-ios-fullscreen-scroll").css("display", "none"); jQuery(".xxx-game-iframe-full").removeClass("xxx-game-iframe-iphone-se") } function buildIOSFullscreenPanel() { jQuery("body").append('<div class="xxx-ios-fullscreen-message"><div class="xxx-ios-fullscreen-swipe"></div></div><div class="xxx-ios-fullscreen-scroll"></div>') } function showIOSFullscreenPanel() { jQuery(".xxx-ios-fullscreen-message").css("display", "block"); jQuery(".xxx-ios-fullscreen-scroll").css("display", "block") } function __iosResize() { window.scrollTo(0, 0); if ("iPhone" === platform.product) switch (window.devicePixelRatio) { case 2: switch (window.innerWidth) { case 568: 320 !== window.innerHeight && jQuery(".xxx-game-iframe-full").addClass("xxx-game-iframe-iphone-se"); break; case 667: 375 === window.innerHeight ? hideIOSFullscreenPanel() : showIOSFullscreenPanel(); break; default: hideIOSFullscreenPanel() } break; case 3: switch (window.innerWidth) { case 736: 414 === window.innerHeight ? hideIOSFullscreenPanel() : showIOSFullscreenPanel(); break; case 724: 375 === window.innerHeight ? hideIOSFullscreenPanel() : showIOSFullscreenPanel(); break; default: hideIOSFullscreenPanel() } break; default: hideIOSFullscreenPanel() } } function iosResize() { __iosResize(); setTimeout(function() { __iosResize() }, 500) } function iosInIframe() { try { return window.self !== window.top } catch (a) { return !0 } } $(document).ready(function() { platform && "iPhone" === platform.product && !iosInIframe() && (buildIOSFullscreenPanel(), buildIOSMeta()) }); jQuery(window).resize(function() { platform && "iPhone" === platform.product && !iosInIframe() && iosResize() }); (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 trace(a) { console.log(a) } 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 g = b.createElement("body"); g.id = "vpw-test-b"; g.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>"; g.appendChild(e); d.insertBefore(g, b.head); a = 7 == e["offset" + a] ? d["client" + a] : window["inner" + a]; d.removeChild(g) } else a = window["inner" + a]; return a } window.addEventListener("orientationchange", onOrientationChange); function onOrientationChange() { window.matchMedia("(orientation: portrait)").matches && sizeHandler(); window.matchMedia("(orientation: landscape)").matches && sizeHandler() } 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(";"); for (-1 !== navigator.userAgent.toLowerCase().indexOf("iphone") && (s_bIsIphone = !0); a.length;) if (navigator.platform === a.pop()) return !0; return s_bIsIphone = !1 } 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 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 sizeHandler() { window.scrollTo(0, 1); if ($("#canvas")) { var a = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? getIOSWindowHeight() : getSize("Height"); var c = getSize("Width"); _checkOrientation(c, a); var b = Math.min(a / CANVAS_HEIGHT, c / CANVAS_WIDTH), d = CANVAS_WIDTH * b; b *= CANVAS_HEIGHT; if (b < a) { var g = a - b; b += g; d += CANVAS_WIDTH / CANVAS_HEIGHT * g } else d < c && (g = c - d, d += g, b += CANVAS_HEIGHT / CANVAS_WIDTH * g); g = a / 2 - b / 2; var e = c / 2 - d / 2, h = CANVAS_WIDTH / d; if (e * h < -EDGEBOARD_X || g * h < -EDGEBOARD_Y) b = Math.min(a / (CANVAS_HEIGHT - 2 * EDGEBOARD_Y), c / (CANVAS_WIDTH - 2 * EDGEBOARD_X)), d = CANVAS_WIDTH * b, b *= CANVAS_HEIGHT, g = (a - b) / 2, e = (c - d) / 2, h = CANVAS_WIDTH / d; s_iOffsetX = -1 * e * h; s_iOffsetY = -1 * g * h; 0 <= g && (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); null !== s_oModeMenu && s_oModeMenu.refreshButtonPos(s_iOffsetX, s_iOffsetY); s_bIsIphone ? (canvas = document.getElementById("canvas"), s_oStage.canvas.width = 2 * d, s_oStage.canvas.height = 2 * b, canvas.style.width = d + "px", canvas.style.height = b + "px", s_iScaleFactor = 2 * Math.min(d / CANVAS_WIDTH, b / CANVAS_HEIGHT), s_oStage.scaleX = s_oStage.scaleY = s_iScaleFactor) : s_bMobile || isChrome() ? ($("#canvas").css("width", d + "px"), $("#canvas").css("height", b + "px")) : (s_oStage.canvas.width = d, s_oStage.canvas.height = b, s_iScaleFactor = Math.min(d / CANVAS_WIDTH, b / CANVAS_HEIGHT), s_oStage.scaleX = s_oStage.scaleY = s_iScaleFactor); 0 > g || (g = (a - b) / 2); $("#canvas").css("top", g + "px"); $("#canvas").css("left", e + "px"); fullscreenHandler() } } function createBitmap(a, c, b) { var d = new createjs.Bitmap(a), g = new createjs.Shape; c && b ? g.graphics.beginFill("#fff").drawRect(0, 0, c, b) : g.graphics.beginFill("#ff0").drawRect(0, 0, a.width, a.height); d.hitArea = g; return d } function createSprite(a, c, b, d, g, e) { a = null !== c ? new createjs.Sprite(a, c) : new createjs.Sprite(a); c = new createjs.Shape; c.graphics.beginFill("#000000").drawRect(-b, -d, g, 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 rotateVector2D(a, c) { var b = c.getX() * Math.cos(a) + c.getY() * Math.sin(a), d = c.getX() * -Math.sin(a) + c.getY() * Math.cos(a); c.set(b, d) } function tweenVectorsOnX(a, c, b) { return a + b * (c - a) } 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 bubbleSort(a) { do { var c = !1; for (var b = 0; b < a.length - 1; b++) a[b] > a[b + 1] && (c = a[b], a[b] = a[b + 1], a[b + 1] = c, c = !0) } while (c) } function compare(a, c) { return a.index > c.index ? -1 : a.index < c.index ? 1 : 0 } 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), g = a * a; b.x = d * c.start.x + 2 * (1 - a) * a * c.traj.x + g * c.end.x; b.y = d * c.start.y + 2 * (1 - a) * a * c.traj.y + g * c.end.y; return b } function formatTime(a) { a /= 1E3; var c = Math.floor(a / 60); a = Math.floor(a - 60 * c); 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 checkRectCollision(a, c) { var b = getBounds(a, .9); var d = getBounds(c, .98); return calculateIntersection(b, d) } function calculateIntersection(a, c) { var b, d, g, e; var h = a.x + (b = a.width / 2); var m = a.y + (d = a.height / 2); var t = c.x + (g = c.width / 2); var n = c.y + (e = c.height / 2); h = Math.abs(h - t) - (b + g); m = Math.abs(m - n) - (d + e); return 0 > h && 0 > m ? (h = Math.min(Math.min(a.width, c.width), -h), m = Math.min(Math.min(a.height, c.height), -m), { x: Math.max(a.x, c.x), y: Math.max(a.y, c.y), width: h, height: m, rect1: a, rect2: c }) : null } 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, g = d.length, e; for (e = 0; e < g; e++) { var h = getBounds(d[e], 1); h.x < b.x && (b.x = h.x); h.y < b.y && (b.y = h.y); h.x + h.width > b.x2 && (b.x2 = h.x + h.width); h.y + h.height > b.y2 && (b.y2 = h.y + h.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) { g = a.sourceRect || a.image; e = g.width * c; var m = g.height * c } else if (a instanceof createjs.Sprite) if (a.spriteSheet._frames && a.spriteSheet._frames[a.currentFrame] && a.spriteSheet._frames[a.currentFrame].image) { g = a.spriteSheet.getFrame(a.currentFrame); e = g.rect.width; m = g.rect.height; d = g.regX; var t = g.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; t = t || 0; m = m || 0; b.regX = d; b.regY = t; g = a.localToGlobal(0 - d, 0 - t); h = a.localToGlobal(e - d, m - t); e = a.localToGlobal(e - d, 0 - t); d = a.localToGlobal(0 - d, m - t); b.x = Math.min(Math.min(Math.min(g.x, h.x), e.x), d.x); b.y = Math.min(Math.min(Math.min(g.y, h.y), e.y), d.y); b.width = Math.max(Math.max(Math.max(g.x, h.x), e.x), d.x) - b.x; b.height = Math.max(Math.max(Math.max(g.y, h.y), e.y), d.y) - b.y } return b } function NoClickDelay(a) { this.element = a; window.Touch && this.element.addEventListener("touchstart", this, !1) } 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 } 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(a) { var b = { focus: "visible", focusin: "visible", pageshow: "visible", blur: "hidden", focusout: "hidden", pagehide: "hidden" }; a = a || window.event; a.type in b ? document.body.className = b[a.type] : (document.body.className = this[c] ? "hidden" : "visible", "hidden" === document.body.className ? s_oMain.stopUpdate() : s_oMain.startUpdate()) } 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 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 fullscreenHandler() { ENABLE_FULLSCREEN && !1 !== screenfull.enabled && (s_bFullscreen = screenfull.isFullscreen, null !== s_oInterface && s_oInterface.resetFullscreenBut(), null !== s_oMenu && s_oMenu.resetFullscreenBut(), null !== s_oModeMenu && s_oModeMenu.resetFullscreenBut()) } if (screenfull.enabled) screenfull.on("change", function() { s_bFullscreen = screenfull.isFullscreen; null !== s_oInterface && s_oInterface.resetFullscreenBut(); null !== s_oMenu && s_oMenu.resetFullscreenBut(); null !== s_oModeMenu && s_oModeMenu.resetFullscreenBut() }); 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 stopSound(a) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || s_aSounds[a].stop() } 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[a].mute(c) } function CSpriteLibrary() { var a = {}, c, b, d, g, e, h; this.init = function(a, t, n) { c = {}; d = b = 0; g = a; e = t; h = n }; this.addSprite = function(d, e) { if (!a.hasOwnProperty(d)) { var g = new Image; a[d] = c[d] = { szPath: e, oSprite: g, bLoaded: !1 }; b++ } }; this.getSprite = function(b) { return a.hasOwnProperty(b) ? a[b].oSprite : null }; this._onSpritesLoaded = function() { b = 0; e.call(h) }; this._onSpriteLoaded = function() { g.call(h); ++d === b && this._onSpritesLoaded() }; this.loadSprites = function() { for (var a in c) c[a].oSprite.oSpriteLibrary = this, c[a].oSprite.szKey = a, c[a].oSprite.onload = function() { this.oSpriteLibrary.setLoaded(this.szKey); this.oSpriteLibrary._onSpriteLoaded(this.szKey) }, c[a].oSprite.onerror = function(a) { var b = a.currentTarget; setTimeout(function() { c[b.szKey].oSprite.src = c[b.szKey].szPath }, 500) }, c[a].oSprite.src = c[a].szPath }; this.setLoaded = function(b) { a[b].bLoaded = !0 }; this.isLoaded = function(b) { return a[b].bLoaded }; this.getNumSprites = function() { return b } } var CANVAS_WIDTH = 1920, CANVAS_HEIGHT = 1080, EDGEBOARD_X = 140, EDGEBOARD_Y = 70, FPS_TIME = 1E3 / 24, DISABLE_SOUND_MOBILE = !1, PRIMARY_FONT = "blackplotan", STATE_LOADING = 0, STATE_MENU = 1, STATE_HELP = 1, STATE_GAME = 3, ON_MOUSE_DOWN = 0, ON_MOUSE_UP = 1, ON_MOUSE_OVER = 2, ON_MOUSE_OUT = 3, ON_DRAG_START = 4, ON_DRAG_END = 5, EASY_MODE = 0, NORMAL_MODE = 1, HARD_MODE = 2, NUM_SHUFFLE = [], SHUFFLE_SPEED = [], TIME_BONUS_LIMIT = [], ENABLE_FULLSCREEN, ENABLE_CHECK_ORIENTATION, TEXT_GAMEOVER = "YOU WIN", TEXT_TIME = "TIME ELAPSED: ", TEXT_SCORE = "SCORE: ", TEXT_PAUSE = "PAUSE", TEXT_PRELOADER_CONTINUE = "START", TEXT_DIFFICULTY = "1) CHOOSE DIFFICULTY", TEXT_IMAGE = "2) CHOOSE IMAGE", TEXT_DEVELOPED = "DEVELOPED BY"; function CPreloader() { var a, c, b, d, g, e, h, m, t, n; 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(); n = new createjs.Container; s_oStage.addChild(n) }; this.unload = function() { n.removeAllChildren(); t.unload() }; this._onImagesLoaded = function() {}; this._onAllImagesLoaded = function() { this.attachSprites(); s_oMain.preloaderReady() }; this.attachSprites = function() { var k = new createjs.Shape; k.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); n.addChild(k); k = s_oSpriteLibrary.getSprite("200x200"); h = createBitmap(k); h.regX = .5 * k.width; h.regY = .5 * k.height; h.x = CANVAS_WIDTH / 2; h.y = CANVAS_HEIGHT / 2 - 180; n.addChild(h); m = new createjs.Shape; m.graphics.beginFill("rgba(0,0,0,0.01)").drawRoundRect(h.x - 100, h.y - 100, 200, 200, 10); n.addChild(m); h.mask = m; k = s_oSpriteLibrary.getSprite("progress_bar"); d = createBitmap(k); d.x = CANVAS_WIDTH / 2 - k.width / 2; d.y = CANVAS_HEIGHT / 2 + 50; n.addChild(d); a = k.width; c = k.height; g = new createjs.Shape; g.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(d.x, d.y, 1, c); n.addChild(g); d.mask = g; b = new createjs.Text("", "30px " + PRIMARY_FONT, "#fff"); b.x = CANVAS_WIDTH / 2; b.y = CANVAS_HEIGHT / 2 + 100; b.textBaseline = "alphabetic"; b.textAlign = "center"; n.addChild(b); k = s_oSpriteLibrary.getSprite("but_start"); t = new CTextButton(CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2, k, TEXT_PRELOADER_CONTINUE, "Arial", "#000", "bold 50", n); t.addEventListener(ON_MOUSE_UP, this._onButStartRelease, this); t.setVisible(!1); e = new createjs.Shape; e.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); n.addChild(e); createjs.Tween.get(e).to({ alpha: 0 }, 500).call(function() { createjs.Tween.removeTweens(e); n.removeChild(e) }) }; this._onButStartRelease = function() { s_oMain._onRemovePreloader() }; this.refreshLoader = function(e) { b.text = e + "%"; 100 === e && (t.setVisible(!0), b.visible = !1, d.visible = !1); g.graphics.clear(); e = Math.floor(e * a / 100); g.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(d.x, d.y, e, c) }; this._init() } function CMain(a) { var c, b = 0, d = 0, g = STATE_LOADING, e, h; this.initContainer = function() { s_oCanvas = document.getElementById("canvas"); s_oStage = new createjs.Stage(s_oCanvas); createjs.Touch.enable(s_oStage); s_bMobile = jQuery.browser.mobile; !1 === s_bMobile && (s_oStage.enableMouseOver(20), $("body").on("contextmenu", "#canvas", function(a) { return !1 })); s_iPrevTime = (new Date).getTime(); createjs.Ticker.addEventListener("tick", this._update); createjs.Ticker.framerate = 30; navigator.userAgent.match(/Windows Phone/i) && (DISABLE_SOUND_MOBILE = !0); s_oSpriteLibrary = new CSpriteLibrary; e = new CPreloader; }; this.preloaderReady = function() { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || this._initSounds(); this._loadImages(); c = !0 }; this.soundLoaded = function() { b++; e.refreshLoader(Math.floor(b / d * 100)) }; this._initSounds = function() { s_aSoundsInfo = []; 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: "swoosh", loop: !1, volume: 1, ingamename: "swoosh" }); s_aSoundsInfo.push({ path: "./sounds/", filename: "soundtrack", loop: !0, volume: 1, ingamename: "soundtrack" }); d += s_aSoundsInfo.length; s_aSounds = []; for (var a = 0; a < s_aSoundsInfo.length; a++) this.tryToLoadSound(s_aSoundsInfo[a], !1) }; this.tryToLoadSound = function(a, b) { setTimeout(function() { s_aSounds[a.ingamename] = new Howl({ src: [a.path + a.filename + ".mp3"], autoplay: !1, preload: !0, loop: a.loop, volume: a.volume, onload: s_oMain.soundLoaded, onloaderror: function(a, b) { for (var c = 0; c < s_aSoundsInfo.length; c++) if (a === s_aSounds[s_aSoundsInfo[c].ingamename]._sounds[0]._id) { s_oMain.tryToLoadSound(s_aSoundsInfo[c], !0); break } } }) }, b ? 200 : 0) }; this._loadImages = function() { s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this); s_oSpriteLibrary.addSprite("but_play", "./sprites/but_play.png"); s_oSpriteLibrary.addSprite("msg_box", "./sprites/msg_box.png"); s_oSpriteLibrary.addSprite("bg_menu", "./sprites/bg_menu.jpg"); s_oSpriteLibrary.addSprite("bg_mode", "./sprites/bg_mode.jpg"); s_oSpriteLibrary.addSprite("bg_game", "./sprites/bg_game.jpg"); s_oSpriteLibrary.addSprite("but_exit", "./sprites/but_exit.png"); s_oSpriteLibrary.addSprite("audio_icon", "./sprites/audio_icon.png"); s_oSpriteLibrary.addSprite("layout_3x3", "./sprites/layout_3x3.png"); s_oSpriteLibrary.addSprite("layout_4x4", "./sprites/layout_4x4.png"); s_oSpriteLibrary.addSprite("layout_5x5", "./sprites/layout_5x5.png"); s_oSpriteLibrary.addSprite("image_1", "./sprites/image_1.jpg"); s_oSpriteLibrary.addSprite("image_2", "./sprites/image_2.jpg"); s_oSpriteLibrary.addSprite("image_3", "./sprites/image_3.jpg"); s_oSpriteLibrary.addSprite("logo", "./sprites/logo_overlay.png"); s_oSpriteLibrary.addSprite("time_display", "./sprites/time_display.png"); s_oSpriteLibrary.addSprite("but_timer", "./sprites/but_timer.png"); s_oSpriteLibrary.addSprite("but_restart", "./sprites/but_restart.png"); s_oSpriteLibrary.addSprite("but_preview", "./sprites/but_preview.png"); s_oSpriteLibrary.addSprite("but_credits", "./sprites/but_credits.png"); s_oSpriteLibrary.addSprite("but_fullscreen", "./sprites/but_fullscreen.png"); s_oSpriteLibrary.addSprite("ctl_logo", "./sprites/ctl_logo.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() { e.unload(); s_oSoundTrack = playSound("soundtrack", 1, !0); this.gotoMenu() }; this.gotoMenu = function() { new CMenu; g = STATE_MENU }; this.gotoModeMenu = function() { new CModeMenu; g = STATE_MENU }; this.gotoGame = function(a, b, c) { s_iMode = a; s_szImage = b; h = new CGame(m); g = STATE_GAME }; this.gotoHelp = function() { new CHelp; g = STATE_HELP }; this.stopUpdate = function() { c = !1; createjs.Ticker.paused = !0; $("#block_game").css("display", "block"); !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || Howler.mute(!0) }; this.startUpdate = function() { s_iPrevTime = (new Date).getTime(); c = !0; createjs.Ticker.paused = !1; $("#block_game").css("display", "none"); (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) && s_bAudioActive && Howler.mute(!1) }; this._update = function(a) { if (!1 !== c) { var b = (new Date).getTime(); s_iTimeElaps = b - s_iPrevTime; s_iCntTime += s_iTimeElaps; s_iCntFps++; s_iPrevTime = b; 1E3 <= s_iCntTime && (s_iCurFps = s_iCntFps, s_iCntTime -= 1E3, s_iCntFps = 0); g === STATE_GAME && h.update(); s_oStage.update(a) } }; s_oMain = this; var m = a; ENABLE_FULLSCREEN = a.fullscreen; ENABLE_CHECK_ORIENTATION = a.check_orientation; this.initContainer() } var s_bMobile, s_bAudioActive = !0, s_iCntTime = 0, s_iTimeElaps = 0, s_iPrevTime = 0, s_iCntFps = 0, s_iCurFps = 0, s_iMode, s_szImage, s_oStage, s_oMain, s_oSpriteLibrary, s_oCanvas, s_oSoundTrack, s_bFullscreen = !1, s_aSounds, s_aSoundsInfo; function CTextButton(a, c, b, d, g, e, h, m) { var t, n, k, l, v, y, q; this._init = function(a, b, c, d, e, g, h, w) { t = []; n = []; var q = createBitmap(c), u = Math.ceil(h / 20); v = new createjs.Text(d, h + "px " + e, "#000000"); v.textAlign = "center"; v.textBaseline = "alphabetic"; var m = v.getBounds(); v.x = c.width / 2 + u; v.y = Math.floor(c.height / 2) + m.height / 3 + u; l = new createjs.Text(d, h + "px " + e, g); l.textAlign = "center"; l.textBaseline = "alphabetic"; m = l.getBounds(); l.x = c.width / 2; l.y = Math.floor(c.height / 2) + m.height / 3; k = new createjs.Container; k.x = a; k.y = b; k.regX = c.width / 2; k.regY = c.height / 2; k.cursor = "pointer"; k.addChild(q, v, l); w.addChild(k); this._initListener() }; this.unload = function() { k.off("mousedown", y); k.off("pressup", q); m.removeChild(k) }; this.setVisible = function(a) { k.visible = a }; this._initListener = function() { y = k.on("mousedown", this.buttonDown); q = k.on("pressup", this.buttonRelease) }; this.addEventListener = function(a, b, c) { t[a] = b; n[a] = c }; this.buttonRelease = function() { k.scaleX = 1; k.scaleY = 1; playSound("click", 1, !1); t[ON_MOUSE_UP] && t[ON_MOUSE_UP].call(n[ON_MOUSE_UP]) }; this.buttonDown = function() { k.scaleX = .9; k.scaleY = .9; t[ON_MOUSE_DOWN] && t[ON_MOUSE_DOWN].call(n[ON_MOUSE_DOWN]) }; this.setTextPosition = function(a) { l.y = a; v.y = a + 2 }; this.setPosition = function(a, b) { k.x = a; k.y = b }; this.setX = function(a) { k.x = a }; this.setY = function(a) { k.y = a }; this.getButtonImage = function() { return k }; this.getX = function() { return k.x }; this.getY = function() { return k.y }; this._init(a, c, b, d, g, e, h, m); return this } function CToggle(a, c, b, d, g) { var e, h, m, t = [], n, k, l; this._init = function(a, b, c, d) { h = []; m = []; var k = new createjs.SpriteSheet({ images: [c], frames: { width: c.width / 2, height: c.height, regX: c.width / 2 / 2, regY: c.height / 2 }, animations: { state_true: [0], state_false: [1] } }); e = d; l = createSprite(k, "state_" + e, c.width / 2 / 2, c.height / 2, c.width / 2, c.height); l.x = a; l.y = b; l.stop(); l.cursor = "pointer"; g.addChild(l); this._initListener() }; this.unload = function() { l.off("mousedown", n); l.off("pressup", k); g.removeChild(l) }; this._initListener = function() { n = l.on("mousedown", this.buttonDown); k = l.on("pressup", this.buttonRelease) }; this.addEventListener = function(a, b, c) { h[a] = b; m[a] = c }; this.addEventListenerWithParams = function(a, b, c, d) { h[a] = b; m[a] = c; t = d }; this.setActive = function(a) { e = a; l.gotoAndStop("state_" + e) }; this.buttonRelease = function() { l.scaleX = 1; l.scaleY = 1; playSound("click", 1, !1); e = !e; l.gotoAndStop("state_" + e); h[ON_MOUSE_UP] && h[ON_MOUSE_UP].call(m[ON_MOUSE_UP], t) }; this.buttonDown = function() { l.scaleX = .9; l.scaleY = .9; h[ON_MOUSE_DOWN] && h[ON_MOUSE_DOWN].call(m[ON_MOUSE_DOWN], t) }; this.setPosition = function(a, b) { l.x = a; l.y = b }; this.setVisible = function(a) { l.visible = a }; this._init(a, c, b, d) } function CGfxButton(a, c, b, d) { var g, e, h, m, t, n = [], k; this._init = function(a, b, c) { g = 1; m = []; t = []; k = createBitmap(c); k.x = a; k.y = b; k.regX = c.width / 2; k.regY = c.height / 2; k.cursor = "pointer"; d.addChild(k); this._initListener() }; this.unload = function() { k.off("mousedown", e); k.off("pressup", h); d.removeChild(k) }; this.setVisible = function(a) { k.visible = a }; this._initListener = function() { e = k.on("mousedown", this.buttonDown); h = k.on("pressup", this.buttonRelease) }; this.addEventListener = function(a, b, c) { m[a] = b; t[a] = c }; this.addEventListenerWithParams = function(a, b, c, d) { m[a] = b; t[a] = c; n = d }; this.buttonRelease = function() { k.scaleX = g; k.scaleY = g; playSound("click", 1, !1); m[ON_MOUSE_UP] && m[ON_MOUSE_UP].call(t[ON_MOUSE_UP], n) }; this.buttonDown = function() { k.scaleX = .9 * g; k.scaleY = .9 * g; m[ON_MOUSE_DOWN] && m[ON_MOUSE_DOWN].call(t[ON_MOUSE_DOWN], n) }; this.setScale = function(a) { g = a; k.scaleX = a; k.scaleY = a }; this.setPosition = function(a, b) { k.x = a; k.y = b }; this.setX = function(a) { k.x = a }; this.setY = function(a) { k.y = a }; this.getButtonImage = function() { return k }; this.getX = function() { return k.x }; this.getY = function() { return k.y }; this._init(a, c, b); return this } function CMenu() { var a, c, b, d, g, e, h, m, t, n, k, l, v = null, y = null; this._init = function() { h = createBitmap(s_oSpriteLibrary.getSprite("bg_menu")); s_oStage.addChild(h); var q = s_oSpriteLibrary.getSprite("but_play"); m = new CGfxButton(CANVAS_WIDTH / 2, CANVAS_HEIGHT - 225, q, s_oStage); m.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this); if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) q = s_oSpriteLibrary.getSprite("audio_icon"), g = CANVAS_WIDTH - q.height / 2 - 10, e = q.height / 2 + 10, n = new CToggle(g, e, q, s_bAudioActive, s_oStage), n.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this); q = s_oSpriteLibrary.getSprite("but_credits"); b = q.width / 2 + 10; d = q.height / 2 + 10; k = new CGfxButton(b, d, q, s_oStage); k.addEventListener(ON_MOUSE_UP, this._onCreditsBut, this); q = window.document; var C = q.documentElement; v = C.requestFullscreen || C.mozRequestFullScreen || C.webkitRequestFullScreen || C.msRequestFullscreen; y = q.exitFullscreen || q.mozCancelFullScreen || q.webkitExitFullscreen || q.msExitFullscreen; !1 === ENABLE_FULLSCREEN && (v = !1); v && screenfull.enabled && (q = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b + q.width / 2 + 10, c = d, l = new CToggle(a, c, q, s_bFullscreen, s_oStage), l.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this)); t = new createjs.Shape; t.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); s_oStage.addChild(t); createjs.Tween.get(t).to({ alpha: 0 }, 1E3).call(function() { t.visible = !1 }); this.refreshButtonPos(s_iOffsetX, s_iOffsetY) }; this.unload = function() { m.unload(); m = null; k.unload(); t.visible = !1; if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) n.unload(), n = null; v && screenfull.enabled && l.unload(); s_oStage.removeChild(h); s_oMenu = h = null }; this.refreshButtonPos = function(h, m) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || n.setPosition(g - h, m + e); v && screenfull.enabled && l.setPosition(a + s_iOffsetX, c + s_iOffsetY); k.setPosition(b + s_iOffsetX, s_iOffsetY + d) }; this._onAudioToggle = function() { Howler.mute(s_bAudioActive); s_bAudioActive = !s_bAudioActive }; this._onCreditsBut = function() { new CCreditsPanel }; this._onButPlayRelease = function() { this.unload(); $(s_oMain).trigger("start_session"); s_oMain.gotoModeMenu() }; this.resetFullscreenBut = function() { v && screenfull.enabled && l.setActive(s_bFullscreen) }; this._onFullscreenRelease = function() { s_bFullscreen ? y.call(window.document) : v.call(window.document.documentElement); sizeHandler() }; s_oMenu = this; this._init() } var s_oMenu = null; function CModeMenu() { var a, c, b, d, g, e, h, m, t, n, k, l = null, v = null, y, q, C, F, B, D; this._init = function() { g = !1; e = NORMAL_MODE; B = createBitmap(s_oSpriteLibrary.getSprite("bg_mode")); s_oStage.addChild(B); h = new createjs.Text(TEXT_DIFFICULTY, " 100px " + PRIMARY_FONT, "#ff8814"); h.x = CANVAS_WIDTH / 2; h.y = 230; h.textAlign = "center"; h.textBaseline = "alphabetic"; h.lineWidth = 1E3; s_oStage.addChild(h); var x = CANVAS_WIDTH / 2, E = s_oSpriteLibrary.getSprite("layout_3x3"); m = new CToggle(x - 300, 400, E, !1, s_oStage); m.addEventListenerWithParams(ON_MOUSE_UP, this._onModeToggle, this, EASY_MODE); E = s_oSpriteLibrary.getSprite("layout_4x4"); t = new CToggle(x, 400, E, !0, s_oStage); t.addEventListenerWithParams(ON_MOUSE_UP, this._onModeToggle, this, NORMAL_MODE); E = s_oSpriteLibrary.getSprite("layout_5x5"); n = new CToggle(x + 300, 400, E, !1, s_oStage); n.addEventListenerWithParams(ON_MOUSE_UP, this._onModeToggle, this, HARD_MODE); y = new createjs.Text(TEXT_IMAGE, " 100px " + PRIMARY_FONT, "#ff8814"); y.x = CANVAS_WIDTH / 2; y.y = 690; y.textAlign = "center"; y.textBaseline = "alphabetic"; y.lineWidth = 1E3; s_oStage.addChild(y); x = CANVAS_WIDTH / 2; E = s_oSpriteLibrary.getSprite("image_1"); q = new CGfxButton(x - 470, 841, E, s_oStage); q.addEventListenerWithParams(ON_MOUSE_UP, this._onButImageRelease, this, "image_1"); q.setScale(.24); E = s_oSpriteLibrary.getSprite("image_2"); C = new CGfxButton(x - 3, 841, E, s_oStage); C.addEventListenerWithParams(ON_MOUSE_UP, this._onButImageRelease, this, "image_2"); C.setScale(.24); E = s_oSpriteLibrary.getSprite("image_3"); F = new CGfxButton(x + 465, 841, E, s_oStage); F.addEventListenerWithParams(ON_MOUSE_UP, this._onButImageRelease, this, "image_3"); F.setScale(.24); !1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile ? (E = s_oSpriteLibrary.getSprite("audio_icon"), b = CANVAS_WIDTH - E.height / 2 - 10, d = E.height / 2 + 10, D = new CToggle(b, d, E, s_bAudioActive, s_oStage), D.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this), E = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b - E.width / 2 - 10, c = E.height / 2 + 10) : (E = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b - E.width / 2 - 10, c = d); x = window.document; var H = x.documentElement; l = H.requestFullscreen || H.mozRequestFullScreen || H.webkitRequestFullScreen || H.msRequestFullscreen; v = x.exitFullscreen || x.mozCancelFullScreen || x.webkitExitFullscreen || x.msExitFullscreen; !1 === ENABLE_FULLSCREEN && (l = !1); l && screenfull.enabled && (k = new CToggle(a, c, E, s_bFullscreen, s_oStage), k.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this)); this.refreshButtonPos(s_iOffsetX, s_iOffsetY) }; this.unload = function() { m.unload(); t.unload(); n.unload(); q.unload(); C.unload(); F.unload(); l && screenfull.enabled && k.unload(); if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) D.unload(), D = null; s_oModeMenu = null; s_oStage.removeAllChildren() }; this.refreshButtonPos = function(e, g) { !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || D.setPosition(b - e, g + d); l && screenfull.enabled && k.setPosition(a - s_iOffsetX, c + s_iOffsetY) }; this._onModeToggle = function(a) { switch (a) { case 0: m.setActive(!0); t.setActive(!1); n.setActive(!1); e = EASY_MODE; break; case 1: m.setActive(!1); t.setActive(!0); n.setActive(!1); e = NORMAL_MODE; break; case 2: m.setActive(!1), t.setActive(!1), n.setActive(!0), e = HARD_MODE } }; this._onButImageRelease = function(a) { this.unload(); s_oMain.gotoGame(e, a, g); $(s_oMain).trigger("start_level", 1) }; this.resetFullscreenBut = function() { l && screenfull.enabled && k.setActive(s_bFullscreen) }; this._onFullscreenRelease = function() { s_bFullscreen ? v.call(window.document) : l.call(window.document.documentElement); sizeHandler() }; s_oModeMenu = this; this._init() } var s_oModeMenu = null; function CGame(a) { var c, b, d, g, e, h, m, t, n, k, l, v, y, q, C, F = null, B, D, x, E; this._init = function() { c = !1; v = NUM_SHUFFLE[s_iMode]; n = s_iMode + 3; k = n * n; y = 0; q = null; var a = createBitmap(s_oSpriteLibrary.getSprite("bg_game")); s_oStage.addChild(a); e = []; for (a = 0; a < n; a++) { e[a] = []; for (var b = 0; b < n; b++) e[a][b] = null } E = s_oSpriteLibrary.getSprite(s_szImage); m = E.width; t = E.height; g = []; var d = m / n, h = t / n, l = d / 2, F = h / 2; for (a = 0; a < n; a++) for (g[a] = [], b = 0; b < n; b++) g[a][b] = { x: l + b * (d + 3), y: F + a * (h + 3) }; a = 3 * (n - 1); B = new createjs.Container; B.x = CANVAS_WIDTH / 2 - 110; B.y = CANVAS_HEIGHT / 2; B.regX = m / 2 + a / 2; B.regY = t / 2 + a / 2; s_oStage.addChild(B); this._initPieces(); b = s_oSpriteLibrary.getSprite("logo"); x = createBitmap(b); x.x = 250; x.y = 150; x.regX = b.width / 2; x.regY = b.height / 2; s_oStage.addChild(x); C = new CInterface; D = new createjs.Shape; D.graphics.beginFill("rgba(158,158,158,0.01)").drawRect(0, 0, m + a, t + a); D.on("click", function() {}); B.addChild(D); this._shufflePieces(); a = new Hammer(s_oCanvas); a.get("swipe").set({ direction: Hammer.DIRECTION_ALL }); a.get("swipe").set({ velocity: .005 }); a.get("swipe").set({ threshold: .1 }); a.on("swipeleft", function() { H._swipeControl("left") }); a.on("swiperight", function() { H._swipeControl("right") }); a.on("swipeup", function() { H._swipeControl("up") }); a.on("swipedown", function() { H._swipeControl("down") }) }; this._swipeControl = function(a) { if (null !== q) { var b = d[q].getLogicPos().row, c = d[q].getLogicPos().col; switch (a) { case "left": if (0 === c) return; var g = e[b][c - 1]; break; case "right": if (c === n - 1) return; g = e[b][c + 1]; break; case "up": if (0 === b) return; g = e[b - 1][c]; break; case "down": if (b === n - 1) return; g = e[b + 1][c] } d[q].setTargetVisible(!1); H._movePieces(q, g); q = null } }; this._initPieces = function() { var a = 0, c = 0; d = []; for (var h = 0; h < k; h++) { var l = g[a][c].x; var m = g[a][c].y; d[h] = new CPiece(l, m, h, B, a, c); d[h].getIndex(); e[a][c] = h; c++; c === n && (c = 0, a++) } b = !0 }; this._shufflePieces = function() { v--; if (0 > v) C.setButVisible(!0), b = !1, D.visible = !1, c = !0; else { var a = Math.floor(Math.random() * k), e = d[a].getLogicPos().row, g = d[a].getLogicPos().col; this._updateNeighborList(e, g); this._movePieces(a, h[Math.floor(Math.random() * h.length)]) } }; this._movePieces = function(a, b) { D.visible = !0; playSound("swoosh", 1, !1); var c = d[a].getPos().x, e = d[a].getPos().y, g = d[a].getLogicPos().row, h = d[a].getLogicPos().col, k = d[b].getPos().x, m = d[b].getPos().y, w = d[b].getLogicPos().row, n = d[b].getLogicPos().col; l = 2; d[a].move(k, m); d[a].setLogicPos(w, n); d[b].move(c, e); d[b].setLogicPos(g, h); this._updateLogicGrid() }; this._updateNeighborList = function(a, b) { h = []; 0 <= a - 1 && h.push(e[a - 1][b]); a + 1 < n && h.push(e[a + 1][b]); 0 <= b - 1 && h.push(e[a][b - 1]); b + 1 < n && h.push(e[a][b + 1 ]) }; this._isInNeighbor = function(a) { for (var b = !1, c = 0; c < h.length; c++) if (h[c] === a) { b = !0; break } return b }; this._updateLogicGrid = function() { for (var a, b, c = 0; c < k; c++) a = d[c].getLogicPos().row, b = d[c].getLogicPos().col, e[a][b] = d[c].getIndex() }; this.onCellMoved = function() { l--; 0 === l && b ? this._shufflePieces() : 0 !== l || b || (this._updateLogicGrid(), this._checkWin(), D.visible = !1) }; this.onPieceClick = function(a) { if (null === q) q = a, d[q].setTargetVisible(!0); else { if (null !== q && this._isInNeighbor(a)) { this._movePieces(q, a); d[q].setTargetVisible(!1); q = null; return } q === a || this._isInNeighbor(a) || (d[q].setTargetVisible(!1), q = a, d[a].setTargetVisible(!0)) } this._updateNeighborList(d[q].getLogicPos().row, d[q].getLogicPos().col) }; this._checkWin = function() { for (var a = 0, b = 0; b < n; b++) for (var d = 0; d < n; d++) { if (e[b][d] !== a) return; a++ } c = !1; this.gameOver() }; this.restartGame = function() { this.unload(); this._init() }; this.unload = function() { c = !1; D.off("click", function() {}); C.unload(); null !== F && F.unload(); for (var a = 0; a < d.length; a++) d[a].unload(); createjs.Tween.removeAllTweens(); s_oStage.removeAllChildren() }; this.onPause = function() { c = !1; new CPausePanel(s_oSpriteLibrary.getSprite("msg_box")) }; this.onPauseExit = function() { c = !0 }; this.onExit = function() { this.unload(); s_oMain.gotoMenu() }; this._onExitHelp = function() { c = !0 }; this.gameOver = function() { F = CEndPanel(s_oSpriteLibrary.getSprite("msg_box")); var a = Math.floor((TIME_BONUS_LIMIT[s_iMode] - y) / 100); 0 > a && (a = 0); F.show(y, a) }; this.update = function() { c && (y += s_iTimeElaps, 5999E3 < y && (y = 5999E3), C.refreshTime(formatTime(y))) }; s_oGame = this; NUM_SHUFFLE[0] = a.num_shuffle_3x3; NUM_SHUFFLE[1] = a.num_shuffle_4x4; NUM_SHUFFLE[2] = a.num_shuffle_5x5; SHUFFLE_SPEED[0] = a.shuffle_speed_3x3; SHUFFLE_SPEED[1] = a.shuffle_speed_4x4; SHUFFLE_SPEED[2] = a.shuffle_speed_5x5; TIME_BONUS_LIMIT[0] = a.bonus_time_3x3; TIME_BONUS_LIMIT[1] = a.bonus_time_4x4; TIME_BONUS_LIMIT[2] = a.bonus_time_5x5; var H = this; this._init() } var s_oGame; function CInterface() { var a, c, b, d, g, e, h, m, t, n, k, l, v, y, q, C = null, F = null, B = null, D; this._init = function() { var x = s_oSpriteLibrary.getSprite("but_exit"); g = CANVAS_WIDTH - x.height / 2 - 10; e = x.height / 2 + 10; n = new CGfxButton(g, e, x, s_oStage); n.addEventListener(ON_MOUSE_UP, this._onExit, this); b = CANVAS_WIDTH - x.width / 2 - 120; d = x.height / 2 + 10; !1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile ? (x = s_oSpriteLibrary.getSprite("audio_icon"), b = g - x.width / 2 - 10, d = e, m = new CToggle(b, d, x, s_bAudioActive, s_oStage), m.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this), x = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b - x.width / 2 - 10, c = x.height / 2 + 10) : (x = s_oSpriteLibrary.getSprite("but_fullscreen"), a = b - x.width / 2 - 10, c = d); var B = window.document, D = B.documentElement; C = D.requestFullscreen || D.mozRequestFullScreen || D.webkitRequestFullScreen || D.msRequestFullscreen; F = B.exitFullscreen || B.mozCancelFullScreen || B.webkitExitFullscreen || B.msExitFullscreen; !1 === ENABLE_FULLSCREEN && (C = !1); C && screenfull.enabled && (q = new CToggle(a, c, x, s_bFullscreen, s_oStage), q.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this)); x = s_oSpriteLibrary.getSprite("time_display"); v = createBitmap(x); v.x = 1570; v.y = 220; s_oStage.addChild(v); y = new createjs.Text("00:00", "60px " + PRIMARY_FONT, "#ffffff"); y.x = 1595; y.y = 285; y.textAlign = "left"; y.textBaseline = "alphabetic"; y.lineWidth = 200; s_oStage.addChild(y); x = s_oSpriteLibrary.getSprite("but_timer"); t = new CGfxButton(1670, 420, x, s_oStage); t.addEventListener(ON_MOUSE_UP, this._onTimer, this); x = s_oSpriteLibrary.getSprite("but_restart"); k = new CGfxButton(1670, 620, x, s_oStage); k.addEventListener(ON_MOUSE_UP, this._onRestart, this); h = !1; x = s_oSpriteLibrary.getSprite("but_preview"); l = new CToggle(1670, 820, x, !0, s_oStage); l.addEventListener(ON_MOUSE_DOWN, this._onPreview, this); this.setButVisible(!1); this.refreshButtonPos(s_iOffsetX, s_iOffsetY) }; this.unload = function() { if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) m.unload(), m = null; C && screenfull.enabled && q.unload(); t.unload(); n.unload(); l.unload(); k.unload(); null !== B && B.unload(); s_oInterface = null }; this.refreshButtonPos = function(h, k) { n.setPosition(g - h, k + e); !1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile || m.setPosition(b - h, k + d); C && screenfull.enabled && q.setPosition(a - s_iOffsetX, c + s_iOffsetY) }; this.setButVisible = function(a) { t.setVisible(a); k.setVisible(a); l.setVisible(a) }; this.refreshTime = function(a) { y.text = a }; this._onTimer = function() { s_oGame.onPause() }; this._onRestart = function() { s_oGame.restartGame() }; this._onPreview = function() { (h = !h) ? D = new CPreviewPanel: D.unload() }; this._onButHelpRelease = function() { B = new CHelpPanel }; this._onButRestartRelease = function() { $(s_oMain).trigger("restart_level", 1); $(s_oMain).trigger("show_interlevel_ad"); s_oGame.restartGame() }; this.onExitFromHelp = function() { B.unload() }; this._onAudioToggle = function() { Howler.mute(s_bAudioActive); s_bAudioActive = !s_bAudioActive }; this._onExit = function() { $(s_oMain).trigger("end_level", 1); $(s_oMain).trigger("end_session"); $(s_oMain).trigger("show_interlevel_ad"); s_oGame.onExit() }; this.resetFullscreenBut = function() { C && screenfull.enabled && q.setActive(s_bFullscreen) }; this._onFullscreenRelease = function() { s_bFullscreen ? F.call(window.document) : C.call(window.document.documentElement); sizeHandler() }; s_oInterface = this; this._init(); return this } var s_oInterface = null; function CEndPanel(a) { var c, b, d, g, e; this._init = function(a) { c = createBitmap(a); c.x = 0; c.y = 0; d = new createjs.Text("", " 120px " + PRIMARY_FONT, "#008df0"); d.x = CANVAS_WIDTH / 2; d.y = CANVAS_HEIGHT / 2 - 200; d.textAlign = "center"; d.textBaseline = "alphabetic"; d.lineWidth = 500; g = new createjs.Text("", " 70px " + PRIMARY_FONT, "#008df0"); g.x = CANVAS_WIDTH / 2; g.y = CANVAS_HEIGHT / 2; g.textAlign = "center"; g.textBaseline = "alphabetic"; g.lineWidth = 500; e = new createjs.Text("", " 70px " + PRIMARY_FONT, "#008df0"); e.x = CANVAS_WIDTH / 2; e.y = CANVAS_HEIGHT / 2 + 200; e.textAlign = "center"; e.textBaseline = "alphabetic"; e.lineWidth = 100; b = new createjs.Container; b.alpha = 0; b.visible = !1; b.addChild(c, g, e, d); s_oStage.addChild(b) }; this.unload = function() { b.off("mousedown", this._onExit) }; this._initListener = function() { b.on("mousedown", this._onExit) }; this.show = function(a, c) { playSound("game_over", 1, !1); d.text = TEXT_GAMEOVER; g.text = TEXT_TIME + formatTime(a); e.text = TEXT_SCORE + c; b.visible = !0; var h = this; createjs.Tween.get(b).to({ alpha: 1 }, 500).call(function() { h._initListener() }); $(s_oMain).trigger("save_score", [c, s_iMode]); $(s_oMain).trigger("end_level", 1); var m = "You collected <strong>" + c + " points</strong>!<br><br>Share your score with your friends!", k = "My score is " + c + " points! Can you do better"; $(s_oMain).trigger("share_event", [c, "200x200.jpg", "Congratulations!", m, k]) }; this._onExit = function() { b.off("mousedown", this._onExit); s_oStage.removeChild(b); $(s_oMain).trigger("end_session"); $(s_oMain).trigger("show_interlevel_ad"); s_oGame.onExit() }; this._init(a); return this } function CPausePanel(a) { var c, b, d; this._init = function(a) { c = createBitmap(a); c.x = 0; c.y = 0; d = new createjs.Text("", " 100px " + PRIMARY_FONT, "#008df0"); d.x = CANVAS_WIDTH / 2; d.y = CANVAS_HEIGHT / 2; d.textAlign = "center"; d.textBaseline = "alphabetic"; d.lineWidth = 500; b = new createjs.Container; b.alpha = 0; b.visible = !1; b.addChild(c, d); s_oStage.addChild(b); this.show() }; this.unload = function() { b.off("mousedown", this._onExit) }; this._initListener = function() { b.on("mousedown", this._onExit) }; this.show = function() { playSound("game_over", 1, !1); d.text = TEXT_PAUSE; b.visible = !0; var a = this; createjs.Tween.get(b).to({ alpha: 1 }, 500).call(function() { a._initListener() }) }; this._onExit = function() { b.off("mousedown", this._onExit); s_oStage.removeChild(b); s_oGame.onPauseExit() }; this._init(a); return this } function CPreviewPanel() { var a, c, b, d; this._init = function() { b = s_oSpriteLibrary.getSprite(s_szImage); d = createBitmap(b); a = b.width; c = b.height; d.x = CANVAS_WIDTH / 2 - 110; d.y = CANVAS_HEIGHT / 2; d.regX = a / 2; d.regY = c / 2; d.scaleX = .1; d.scaleY = .1; s_oStage.addChild(d); createjs.Tween.get(d).to({ scaleX: 1.03, scaleY: 1.03 }, 1500, createjs.Ease.elasticOut) }; this.unload = function() { createjs.Tween.removeTweens(d); s_oStage.removeChild(d) }; this._init() } function CPiece(a, c, b, d, g, e) { var h, m, t, n, k, l, v, y, q, C, F; this._init = function(a, b, c, d, e, g) { l = e; v = g; m = s_iMode + 3; h = m * m; k = c; q = new createjs.Container; q.x = a; q.y = b; q.on("mousedown", this._onPieceClick, this, !1, k); d.addChild(q); y = s_oSpriteLibrary.getSprite(s_szImage); t = y.width; n = y.height; a = t / m; b = n / m; c = new createjs.SpriteSheet({ images: [y], frames: { width: a, height: b, regX: a / 2, regY: b / 2 }, animations: { image: [0, h - 1] } }); C = createSprite(c, "image", a / 2, b / 2, a, b); C.gotoAndStop(k); F = new createjs.Shape; F.graphics.beginStroke("#ff8814").setStrokeStyle(10).drawRect(-a / 2, -b / 2, a, b); F.visible = !1; q.addChild(C, F) }; this.unload = function() { q.off("mousedown", this._onPieceClick, this, !1, k); d.removeChild(q) }; this._onPieceClick = function(a, b) { s_oGame.onPieceClick(b) }; this.getIndex = function() { return k }; this.setTargetVisible = function(a) { F.visible = a }; this.setInvisible = function() { q.visible = !1; k = -1 }; this.move = function(a, b) { createjs.Tween.get(q).to({ x: a, y: b }, SHUFFLE_SPEED[s_iMode], createjs.Ease.cubicOut).call(function() { s_oGame.onCellMoved() }) }; this.getPos = function() { return { x: q.x, y: q.y } }; this.setLogicPos = function(a, b) { l = a; v = b }; this.getLogicPos = function() { return { row: l, col: v } }; this._init(a, c, b, d, g, e) } function CCreditsPanel() { var a, c, b, d, g; this._init = function() { c = new createjs.Container; s_oStage.addChild(c); var e = s_oSpriteLibrary.getSprite("msg_box"); g = createBitmap(e); g.x = CANVAS_WIDTH / 2; g.y = CANVAS_HEIGHT / 2; g.regX = e.width / 2; g.regY = e.height / 2; c.addChild(g); a = g.on("click", this._onLogoButRelease); e = s_oSpriteLibrary.getSprite("ctl_logo"); d = createBitmap(e); d.regX = e.width / 2; d.regY = e.height / 2; d.x = CANVAS_WIDTH / 2; d.y = CANVAS_HEIGHT / 2; c.addChild(d); e = new createjs.Text(TEXT_DEVELOPED, " 50px " + PRIMARY_FONT, "#ff8814"); e.x = d.x; e.y = d.y - 80; e.textAlign = "center"; e.textBaseline = "alphabetic"; c.addChild(e); e = new createjs.Text("www.codethislab.com", " 56px " + PRIMARY_FONT, "#ff8814"); e.x = d.x; e.y = d.y + 86; e.textAlign = "center"; e.textBaseline = "middle"; e.lineWidth = 300; c.addChild(e); e = s_oSpriteLibrary.getSprite("but_exit"); b = new CGfxButton(1500, 200, e, c); b.addEventListener(ON_MOUSE_UP, this.unload, this); c.alpha = 0; createjs.Tween.get(c).to({ alpha: 1 }, 400, createjs.Ease.cubicOut) }; this.unload = function() { createjs.Tween.get(c).to({ alpha: 0 }, 400, createjs.Ease.cubicOut).call(function() { s_oStage.removeChild(c); b.unload() }); g.off("mousedown", a) }; this._onLogoButRelease = function() { window.open("http://www.codethislab.com/index.php?&l=en") }; this._init() } 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 (g) { var d = window.location.ancestorOrigins; b = d[d.length - 1] } } catch (g) { 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
|
�а�тройка