Star Light - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.



Your result can be seen below.

Result of php executing





Full code of Star Light.php

  1. <?php
  2. <!DOCTYPE html><html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# " rel="optimized"><head><script type="text/javascript">
  3.   !function(r,i,t){var u,o=/^data-(.+)/,a='IntersectionObserver',c=/p/.test(i.readyState),s=[],f=s.slice,l='lazied',e='load',n='pageshow',d='forEach',h='hasAttribute',m='shift';function v(e){i.head.appendChild(e)}function p(e,n){f.call(e.attributes)[d](n)}function y(e,n,t,o){return o=(o=n?i.getElementById(n):o)||i.createElement(e),n&&(o.id=n),t&&(o.onload=t),o}function b(e,n){return f.call((n||i).querySelectorAll(e))}function I(t){b('source',t)[d](I),p(t,function(e,n){(n=o.exec(e.name))&&(t[n[1]]=e.value)}),e in t&&t[e]()}function g(e){u(function(o){o=b(e||'[type=deferjs]'),function e(n,t){(n=o[m]())&&(n.parentNode.removeChild(n),(t=y(n.nodeName)).text=n.text,p(n,function(e){'type'!=e.name&&(t[e.name]=e.value)}),t.src&&!t[h]('async')?(t.onload=t.onerror=e,v(t)):(v(t),e()))}()})}(u=function(e,n){c?t(e,n):s.push(e,n)}).all=g,u.js=function(n,t,e,o){u(function(e){(e=y('SCRIPT',t,o)).src=n,v(e)},e)},u.css=function(n,t,e,o){u(function(e){(e=y('LINK',t,o)).rel='stylesheet',e.href=n,v(e)},e)},u.dom=function(e,n,t,o,i){function c(e){o&&!1===o(e)||(I(e),t&&(e.className+=' '+t))}u(function(t){t=a in r&&new r[a](function(e){e[d](function(e,n){e.isIntersecting&&(n=e.target)&&(t.unobserve(n),c(n))})},i),b(e||'[data-src]')[d](function(e){e[h](l)||(e.setAttribute(l,''),t?t.observe(e):c(e))})},n)},u.reveal=I,r.Defer=u,r.addEventListener('on'+n in r?n:e,function(){for(g();s[0];t(s[m](),s[m]()))c=1})}(this,document,setTimeout);
  4.   </script><link rel="preload" href="/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.ttf" as="font" crossorigin="anonymous" /><link rel="preconnect" href="https://cdn.intergi.com" /><link rel="dns-prefetch" href="https://cdn.intergi.com" /><link rel="preconnect" href="https://use.typekit.net" /><link rel="dns-prefetch" href="https://use.typekit.net" /><link rel="preconnect" href="z.moatads.com" /><link rel="dns-prefetch" href="z.moatads.com" /><script type="deferjs" src="/modules/custom/cmatgame_ads_analytics/js/advertisement-ads.js"></script><link rel="apple-touch-icon" href="/pwa/images/icon-152x152.png"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="theme-color" content="#2A445D" /><meta charset="utf-8" />
  5. <style>/* @see https://github.com/aFarkas/lazysizes#broken-image-symbol */.js img.lazyload:not([src]) { visibility: hidden; }/* @see https://github.com/aFarkas/lazysizes#automatically-setting-the-sizes-attribute */.js img.lazyloaded[data-sizes=auto] { display: block; width: 100%; }</style>
  6. <link rel="canonical" href="//www.coolmathgames.com/0-run-3" />
  7. <meta name="keywords" content="coolmaths, coolmath, math, maths, game, games, free, online, fun, Run 3, coolmaths, coolmath, math, maths, game, games, free, online, fun" />
  8. <meta property="og:title" content="Run 3 - Play it now at Coolmath Games" />
  9. <meta name="description" content="Run 3 at Cool Math Games: Complete the Run trilogy! Explore hundreds of new levels in a huge new galaxy. Ready... set... GO!" />
  10. <meta property="og:description" content="Run 3 at Cool Math Games: Complete the Run trilogy! Explore hundreds of new levels in a huge new galaxy. Ready... set... GO!" />
  11. <meta property="og:image" content="https://www.coolmathgames.com/sites/default/files/run-3.png" />
  12. <meta property="og:image:alt" content="Run 3 Game Screenshot" />
  13. <meta property="og:type" content="article" />
  14. <meta property="og:url" content="//www.coolmathgames.com/0-run-3" />
  15. <script type="text/javascript">
  16.    //mobile detect
  17.    function cmg_is_mobile_device() {
  18.      var bEle = document.documentElement;
  19.      if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
  20.        bEle.classList.add("mobile-device");
  21.        bEle.classList.remove("dtp-device");
  22.        return true;
  23.      } else {
  24.        if(navigator.maxTouchPoints == 5) {
  25.          bEle.classList.add("mobile-device");
  26.          bEle.classList.remove("dtp-device");
  27.          return true;
  28.        } else {
  29.          bEle.classList.add("dtp-device");
  30.          bEle.classList.remove("mobile-device");
  31.          return false;
  32.        }
  33.      }
  34.    }
  35.    cmg_is_mobile_device();
  36.   </script>
  37. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no maximum-scale=1.0, user-scalable=no, minimal-ui" />
  38. <meta name="apple-mobile-web-app-capable" content="yes" />
  39. <style>*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%}article,aside,header,main,nav{display:block}body{margin:0;font-family:Proxima-Soft-Regular,Helvetica,Arial,sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.2;color:#fff;text-align:left;background-color:#16202c}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ul{margin-bottom:1rem}ul{margin-top:0}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#29bffd;text-decoration:none;background-color:initial}img{border-style:none}img{vertical-align:middle}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[type=button],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.h2,.h3,h1,h2,h3,h5{margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}h5{font-size:1.25rem}hr{margin-top:1rem;border:0;border-top:0 solid rgba(0,0,0,.1)}.img-fluid{max-width:100%;height:auto}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:561px){.container{max-width:560px}}@media (min-width:767px){.container{max-width:768px}}@media (min-width:961px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.form-control{display:block;width:100%;height:40px;padding:.5rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.2;color:#e9f6fe;background-color:#16202c;background-clip:padding-box;border:0 solid #ced4da;border-radius:.25rem}.form-control::-ms-expand{background-color:initial;border:0}.form-text{display:block;margin-top:0}.btn{display:inline-block;font-weight:400;color:#fff;text-align:center;vertical-align:middle;background-color:initial;border:0 solid transparent;padding:.5rem 1.5rem;line-height:1.2;border-radius:.25rem}.btn-primary{color:#212529;background-color:#29bffd;border-color:#29bffd}.btn-sm{padding:.3rem 1rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar>.container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:initial;border:0 solid transparent;border-radius:.25rem}@media (max-width:960.98px){.navbar-expand-lg>.container{padding-right:0;padding-left:0}}@media (min-width:961px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg>.container{flex-wrap:nowrap}}.badge{display:inline-block;padding:.4em .8em;font-size:100%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:initial;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.progress{display:flex;height:2rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#000;text-align:center;white-space:nowrap;background-color:#f7c649}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}@media (min-width:961px){.d-lg-none{display:none!important}.d-lg-block{display:block!important}}@media (min-width:1200px){.d-xl-block{display:block!important}}.justify-content-between{justify-content:space-between!important}.float-left{float:left!important}.mt-0{margin-top:0!important}.mb-1{margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.mt-3{margin-top:1rem!important}.my-4{margin-top:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.pr-0{padding-right:0!important}.pl-0{padding-left:0!important}.pb-3{padding-bottom:1rem!important}@media (min-width:961px){.my-lg-0{margin-top:0!important}.my-lg-0{margin-bottom:0!important}.mr-lg-5{margin-right:3rem!important}.pr-lg-0{padding-right:0!important}.pl-lg-0{padding-left:0!important}}.text-center{text-align:center!important}input:-internal-autofill-selected,input:-webkit-autofill{background-color:#16202c!important;border:1px solid #16202c;color:#e9f6fe;-webkit-text-fill-color:#fff}form .form-control{font-size:1rem}.mobile-menu-items .mi-title{font-size:20px;margin-bottom:5px;margin-top:20px}.mobile-menu-items .mi-title:first-child{margin-top:0}.mobile-menu-items .pane-menu-menu-desktop-header-menu .pane-content>ul.menu{display:table!important}.mobile-menu-items .welcome-box{clear:both}.mobile-menu-items .welcome-box .login-link p{text-align:right}.mobile-menu-items .pane-cmatgame-search-search-game #cmatgame-search-block-form .form-item:before{content:"\E986";font-family:icomoon!important;font-style:normal;font-weight:400;color:#775a08;z-index:999;display:flex;position:absolute;font-size:25px;height:40px;width:50px;background:#fdcd3b;align-items:center;border:4px solid #e9d93c;left:0;top:0;padding-left:8px}.mobile-menu-items .pane-cmatgame-search-search-game #cmatgame-search-block-form .form-item .form-text{border-color:#e9d93c!important;border-left:50px solid #e9d93c!important}body,html{font-family:Proxima-Soft-Regular,Helvetica,Arial,sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue!important}main{width:100%;overflow-x:hidden}.h2,.h3,h1,h2{color:#fff;text-transform:uppercase;font-family:Proxima-Soft-Bold;font-size:1rem}h1{font-size:1.125rem;line-height:1.375rem}h2{font-size:1.3rem}h3{color:#fff;font-family:Proxima-Soft-Bold;font-size:1rem}h5{font-size:1.1rem;font-family:Proxima-Soft-Bold}.cmatgame-title{margin-top:15px}h1.pane-title{position:relative;background-image:none;color:#fff;font-family:Proxima-Soft-Bold;font-size:1.25rem;line-height:1.5rem;text-transform:uppercase;margin-bottom:20px;margin-top:-4px;padding:0 0 3px;border-bottom:2px solid #f1db00}@media (min-width:961px){h1.pane-title{border:none;background-color:#2c6792;padding:3px 0 3px 14px;border-radius:10px;height:30px;font-size:1.4rem}}@media (-ms-high-contrast:none){h1.pane-title{padding-top:0}}p{margin-bottom:1rem;line-height:1.2rem}strong{font-family:Proxima-Soft-Bold}hr{border-top:1px solid #67b1e7;margin-top:0!important;margin-bottom:1rem;height:1px;clear:both}.btn{font-family:Proxima-Soft-Bold;text-transform:uppercase;border:0;min-width:190px;line-height:1.2rem;font-size:1rem;padding:.65rem 1.5rem}.btn{text-decoration:none}.btn.btn-primary{padding:.65rem 1.5rem .55rem;margin-bottom:1rem}.btn.btn-primary.btn-sm{min-width:10px;padding:.3rem 1.5rem .25rem}a.btn{color:#000;font-size:.75rem}.btn.btn.playlist-count{white-space:normal!important;word-wrap:break-word;min-width:130px}.game-container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;margin-top:20px}@media (min-width:561px){.game-container{max-width:540px}}@media (min-width:767px){.game-container{max-width:720px}}@media (min-width:961px){.game-container{max-width:960px}}@media (min-width:1200px){.game-container{max-width:1200px}}@media (min-width:961px){.game-container{margin-top:40px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-12,.col-2,.col-7,.col-lg-3,.col-lg-6,.col-lg-9,.col-md-1,.col-md-12,.col-md-2,.col-md-5,.col-md-7,.col-md-8,.col-md-9,.col-sm-12,.col-sm-6,.col-xl-3,.col-xl-7{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:561px){.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-12{flex:0 0 100%;max-width:100%}}@media (min-width:767px){.col-md-1{flex:0 0 8.33333333%;max-width:8.33333333%}.col-md-2{flex:0 0 16.66666667%;max-width:16.66666667%}.col-md-5{flex:0 0 41.66666667%;max-width:41.66666667%}.col-md-7{flex:0 0 58.33333333%;max-width:58.33333333%}.col-md-8{flex:0 0 66.66666667%;max-width:66.66666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width:961px){.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-9{flex:0 0 75%;max-width:75%}}@media (min-width:1200px){.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-7{flex:0 0 58.33333333%;max-width:58.33333333%}.offset-xl-2{margin-left:16.66666667%}}.block-adstop-otherpage-728x90{margin:0 auto;height:142px;width:728px}@media (min-width:767px){.block-adstop-otherpage-728x90{max-width:728px}}@media (max-width:766.98px){.block-adstop-otherpage-728x90{width:360px;height:90px!important}}.pane-cmatgame-advertisement-cm-g-otherpages-160x600-left{position:absolute;width:160px;height:600px}#r-modal{display:none;text-align:center;color:#fff;position:fixed;background:#000;right:0;bottom:0;left:0;top:0;width:100%;z-index:999999}#r-timer-div{text-align:center}#r-continue-link,#r-timer-div{color:#ff0;margin-top:10px;margin-bottom:10px;font-size:22px;text-transform:uppercase;font-family:Proxima-Soft-Bold}#m-adcontainer,#r-adcontainer{display:flex;align-items:center;justify-content:center}#m-content123{position:relative;display:block}p.advertisment{text-align:center;color:#fff;font-size:14px;position:relative;top:5px}#yourCookieChoices{display:flex;justify-content:space-between;position:fixed;left:0;bottom:0;width:100%;background-color:#398ada;color:#fff;min-height:70px}#yourCookieChoices .cookie-text{font-size:1rem;font-family:Proxima-Soft-Regular;font-weight:700;height:46px;vertical-align:middle;position:relative;top:15px}#yourCookieChoices .cookie-mobile{padding-left:0!important;text-align:center}@media (max-width:960.98px){#yourCookieChoices .cookie-mobile{margin-top:30px;margin-bottom:30px}}#yourCookieChoices a.cookies-link{color:#fff;text-decoration:underline;display:block}#yourCookieChoices span.imokwiththat-close{background:url(/sites/default/files/gdpr/imokwiththat.png) no-repeat;height:30px;width:130px;display:inline-block;text-indent:-9999px;position:relative;margin:0 auto;top:-6px}@font-face{font-family:icomoon;src:url(/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.eot);src:url(/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.eot#iefix) format("embedded-opentype"),url(/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.ttf) format("truetype"),url(/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.woff) format("woff"),url(/themes/custom/coolmath/assets/fonts/icomoon/fonts/icomoon.svg#icomoon) format("svg");font-weight:400;font-style:normal;font-display:block;font-display:auto}[class^=icon-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-remove_sign:before{content:"\F057"}.icon-play:before{content:"\F04B"}.icon-circle:before{content:"\F111"}.icon-expand-arrows-alt:before{content:"\F31E"}@font-face{font-family:Proxima-Soft-Regular;src:url(https://use.typekit.net/af/a4e72f/00000000000000003b9b3032/27/l?fvd=n4&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("woff2"),url(https://use.typekit.net/af/a4e72f/00000000000000003b9b3032/27/d?fvd=n4&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("woff"),url(https://use.typekit.net/af/a4e72f/00000000000000003b9b3032/27/a?fvd=n4&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("opentype");font-display:auto;font-style:normal;font-weight:400}@font-face{font-family:Proxima-Soft-Bold;src:url(https://use.typekit.net/af/2657d4/00000000000000003b9b3038/27/l?fvd=n7&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("woff2"),url(https://use.typekit.net/af/2657d4/00000000000000003b9b3038/27/d?fvd=n7&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("woff"),url(https://use.typekit.net/af/2657d4/00000000000000003b9b3038/27/a?fvd=n7&primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&v=3) format("opentype");font-display:auto;font-style:normal;font-weight:700}main nav.navbar{position:relative;z-index:1;padding:.5rem 0}.pane-menu-menu-desktop-header-menu .pane-content .menu{padding:0}.pane-menu-menu-desktop-header-menu .pane-content .menu li.is-expanded .nolink:before,.pane-menu-menu-desktop-header-menu .pane-content .menu li.is-expanded a:before{border-color:transparent}.pane-menu-menu-desktop-header-menu .pane-content .menu li{position:relative;display:block;vertical-align:bottom;border-bottom:0}.pane-menu-menu-desktop-header-menu .pane-content .menu li a{overflow:hidden;display:block;width:100%;color:#f5e61f;font-size:1.4rem;line-height:18px;font-family:Proxima-Soft-Bold;text-align:center;text-transform:uppercase;vertical-align:middle}.pane-menu-menu-desktop-header-menu .pane-content .menu li .menu_allgames{border-radius:11px}.pane-menu-menu-desktop-header-menu .pane-content .menu li .menu__link,.pane-menu-menu-desktop-header-menu .pane-content .menu li .nolink{border-top:.5px solid #f1b034;border-bottom:2px solid #c78f00;border-right:1px solid #c78f00;font-size:1.09rem;color:#654900;padding:10px 11px 12px}.pane-menu-menu-desktop-header-menu .pane-content .menu .menu_more.menu__link.nolink{font-size:1.08rem;padding:10px 25px 12px 12px}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu{border:0;margin-top:0}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu li a{padding:0;width:100px}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu li.nested{list-style-type:none;background:#fcd792;background:linear-gradient(180deg,#f5e765 34%,#fad94d 94%,#c18500)}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu li.nested:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu li.nested:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.pane-menu-menu-desktop-header-menu .pane-content .menu .is-expanded .menu li.nested .menu__link{font-size:.75rem;background-color:initial;color:#654900;padding:7px;width:100px}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li>.nolink,.pane-menu-menu-desktop-header-menu .pane-content>.menu>li>a{display:block;width:100%;color:#f5e61f;font-size:1.5rem;line-height:18px;font-family:Proxima-Soft-Bold;text-align:center;text-transform:uppercase}.pane-menu-menu-desktop-header-menu .pane-content>.menu{display:table;width:100%;padding:0}.pane-menu-menu-desktop-header-menu .pane-content>.menu li a.menu_strategy{border-top-left-radius:12px;border-bottom-left-radius:12px}.pane-menu-menu-desktop-header-menu .pane-content>.menu li a.menu_unlocked{border-top-right-radius:12px;border-bottom-right-radius:12px}.pane-menu-menu-desktop-header-menu .pane-content>.menu li .nolink{font-size:1rem}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li{position:relative;float:left;vertical-align:bottom;list-style-type:none;background:#f5e765;background:linear-gradient(180deg,#f5e765,#fad94d 41%,#ffbe00)}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li.is-expanded>.nolink{min-width:100px;color:#654900;position:relative}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li.is-expanded>.nolink:after{content:"";width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #654900;position:absolute;top:17px;right:9px}.pane-menu-menu-desktop-header-menu .pane-content>.menu li:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.pane-menu-menu-desktop-header-menu .pane-content>.menu .menu_unlocked.menu__link{border-top-right-radius:12px;border-bottom-right-radius:12px}.pane-menu-menu-desktop-header-menu .pane-content>.menu li.menu_allgames.menu__link{margin-left:11px}@media (max-width:1199.98px){.pane-menu-menu-desktop-header-menu .pane-content>.menu li.menu_allgames.menu__link{margin-left:8px}}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li:last-child{border-radius:11px;background:#fff950}.pane-menu-menu-desktop-header-menu .pane-content>.menu>li:last-child a.menu_allgames{padding:10px 24px 12px}@media (max-width:1199.98px){.pane-menu-menu-desktop-header-menu .pane-content>.menu>li:last-child a.menu_allgames{padding:10px 7px 12px}}.pane-menu-menu-desktop-header-menu .pane-content>.menu .menu{position:absolute;display:none;z-index:10000;margin-top:1px;border-top:none}.pane-menu-menu-desktop-header-menu .pane-content>.menu .menu li a{display:block;width:110px;padding:11px 0 10px 30px;color:#fff}.navbar-container{width:100%}@media (max-width:960.98px){.navbar-container{padding:0 10px}}.navbar-container .welcome-box{margin:0 auto;max-width:270px}.navbar-container .welcome-box .btn{white-space:normal}.navbar .navbar-toggler{position:fixed;top:30px;right:20px;z-index:1000;width:30px;height:30px}@media (max-width:560.98px){.navbar .navbar-toggler{top:15px}}.navbar .navbar-toggler .bar{top:0;left:0;position:absolute;width:30px;height:3px;box-shadow:0 2px 0 rgba(0,0,0,.6);border-radius:4px;background-color:#f1db00}.navbar .navbar-toggler .bar.second{top:9px}.navbar .navbar-toggler .bar.third{top:18px;bottom:-9px}.page__header_mobile .menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;display:none}.page__header_mobile .navbar-container{position:fixed;right:-100%;top:0;width:100%;height:100%!important;padding-top:30px;overflow-x:hidden;background:#2a455d}.page__header_mobile .navbar-container .welcome-box{text-align:center;top:-10px;position:relative}.page__header_mobile .navbar-container a{color:#46b8fd;font-family:Proxima-Soft-Bold}.page__header_mobile .navbar-container .mobile-menu-items{max-width:300px;margin:0 auto}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu{display:block}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li{display:block;float:left;width:50%;margin:0;background:0 0;border:none;border-radius:0!important}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li.menu_allgames{width:50%;font-weight:700}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li.is-expanded{width:100%}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li a{border-radius:0!important;background:0 0;border:none;text-align:left;text-transform:none;font-family:Proxima-Soft-Bold;color:#46b8fd;font-size:1.275rem;padding:10px 10px 10px 0!important}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li .nolink{text-align:left;border:none;background:0 0;text-transform:none;font-family:Proxima-Soft-Regular;color:#fff;padding:10px 10px 10px 0!important;font-size:1.275rem!important}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu li .nolink:after{border-top-color:#fff;left:50px}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu ul.menu{display:none;position:relative}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu ul.menu li.nested{background:0 0}.page__header_mobile .navbar-container .pane-menu-menu-desktop-header-menu .pane-content ul.menu ul.menu li.nested a.menu__link{width:100%!important;color:#46b8fd;font-size:1.275rem}.page__header_mobile .navbar-container .cmatgame-search-game{clear:both;position:relative;z-index:100000;left:0;top:0;margin:15px auto 0;height:35px;width:100%}.page__header_mobile .navbar-container .cmatgame-search-game label{display:none}.page__header_mobile .navbar-container .cmatgame-search-game #cmatgame-search-block-form input.menu-search-bar{display:block!important;text-indent:0;background-image:none;padding:10px;height:40px;border-radius:0!important;max-width:340px;margin:0;left:0;right:auto;outline:0;box-shadow:inset 0 -1px 0 #ddd;border:4px solid #e9d93c}.page__header_mobile .navbar-container .cmatgame-search-game #cmatgame-search-block-form .search-results-container{top:40px}@media (max-width:1199.98px){.pane-menu-menu-desktop-header-menu .pane-content .menu li .menu_more.menu__link.nolink{padding:10px 28px 12px 6px!important;font-size:1rem!important;min-width:85px!important}.pane-menu-menu-desktop-header-menu .pane-content .menu li a.menu__link,.pane-menu-menu-desktop-header-menu .pane-content>.menu>li:last-child a.menu_allgames{padding:10px 7px 12px;font-size:1rem}}#cmatgame-search-block-form label{position:absolute;right:0;top:11px;background-position:0;width:60px;height:43px;background:url(/themes/custom/coolmath/assets/images/header/menu-search-item.png);text-indent:-99999px}#cmatgame-search-block-form input.menu-search-bar{width:100%;height:44px;margin:9px;top:0;background-image:url(/themes/custom/coolmath/assets/images/close.png);background-position:4px 4px;background-repeat:no-repeat;border-radius:8px;text-indent:72px;font-size:16px;font-family:Proxima-Soft-Regular;border:4px solid #e9d93c;right:-9px;position:absolute;display:block;outline:0}#close-search-box{top:10px;color:#000;z-index:999999;right:410px;font-size:0;content:"X";height:42px;width:55px;position:absolute;left:0}.search-results-container{display:block;left:0;position:absolute;top:48px;max-height:565px;width:100%;overflow-x:hidden;overflow-y:auto;z-index:999;text-align:left;border:4px solid #e9d93c;border-top:0}.pane-cmatgame-search-search-game{position:absolute;top:-11px;width:380px;right:0}.pane-cmatgame-search-search-game .form-item{margin:0}input::-webkit-input-placeholder{color:#cdcdcd!important}header.page__header{background-color:#2a455d;height:142px}header.page__header .branding.container{position:relative;height:114px}header.page__header .navbar .container{position:relative}@media (min-width:961px){header.page__header .navbar .container{min-width:960px}}header.page__header div.promo-msg{color:#58c8eb;font-size:.85rem!important;letter-spacing:.5px!important;text-shadow:2px 2px 2px #000!important;font-family:Proxima-Soft-Bold}header.page__header div.promo-msg a .promo-img{float:left;padding-right:10px;margin-top:4px;filter:drop-shadow(2px 2px 2px #000)}header.page__header div.promo-msg a .promo-content{font-size:.85rem;text-transform:uppercase}.pane-bean-new-go-ad-free a{background:url(/themes/custom/coolmath/assets/images/header/go-ad-free.png) no-repeat;background-position:top;height:59px;width:152px;display:block;font-size:0;border:none}.pane-bean-new-go-ad-free{position:relative;left:-4px}.pane-bean-cm-top{position:absolute;top:65px;border-radius:.25rem;background-color:#2a455d;padding:.25rem;width:220px;height:40px}.other-sites-wrapper{position:relative;top:5px;display:inline-block}.logo-container{position:relative;top:11px;height:93px;text-align:center}.logo-container img,.logo-container img.logo.svg{width:440px;margin-top:8px;filter:drop-shadow(1px 1px 1px #000)!important;max-width:100%}header.page__header_mobile{background:#2a455d;height:80px}@media (max-width:560.98px){header.page__header_mobile{height:50px}}header.page__header_mobile .logo-container-mobile{margin-top:12px}header.page__header_mobile .logo-container-mobile img.logo.svg{max-width:300px;filter:drop-shadow(2px 2px 1px #000)}@media (max-width:560.98px){header.page__header_mobile .logo-container-mobile{margin-top:12px}header.page__header_mobile .logo-container-mobile img.logo.svg{max-width:200px;height:auto}}@media (max-width:960.98px){.menu_most{display:block!important;float:inherit!important;width:100%!important}}.menu_most{display:none!important}@media (max-width:960.98px){.menu_most{display:block!important;float:inherit!important}}.menu_strategy{border-top-left-radius:12px;border-bottom-left-radius:12px}.navbar-expand-lg>.container{padding:0}@media (min-width:961px){.game-container .col-md-7{padding-right:30px;padding-left:30px}}@media (max-width:766.98px){.game-container .main-aside{display:none}}.global-wrapper{padding-top:0}body,html{height:100%}.dialog-off-canvas-main-canvas{display:flex;flex-direction:column;height:100%}.page{flex-grow:1}.game-item{margin-bottom:20px;overflow:inherit;height:62px}@media (min-width:961px) and (max-width:1199.98px){.game-item{min-width:300px}}@media (min-width:1200px){.game-item{min-width:310px}}@media (max-width:961px){.game-item{height:auto;overflow:hidden}}.game-item .game-link-wrapper img{float:left;margin-right:10px;background-color:#006c8a;border:1px solid #32bdff;padding:5px;width:95px;height:62px;overflow:hidden}@media (max-width:960.98px){.game-item .game-link-wrapper img{padding:0;border-radius:.25rem}}.game-item .game-link-wrapper h3{font-size:1.08rem;line-height:1.2rem;text-transform:none;display:inline;color:#29bffd;font-family:Proxima-Soft-Bold,arial;font-weight:700;position:relative;top:-2px}.game-item .game-item-description{padding-right:5px}.game-item .game-item-description .cmgr-short-desc{line-height:1.1rem!important}.game-item .game-item-description .cmgr-short-desc,.game-item .game-item-description .field-body{padding-left:92px}@media (max-width:961px){.game-item .game-item-description .cmgr-short-desc,.game-item .game-item-description .field-body{padding-left:105px}}@media (min-width:961px){.game-item .game-item-description .cmgr-short-desc,.game-item .game-item-description .field-body{padding-left:105px}}.game-item .game-item-description .cmgr-short-desc p,.game-item .game-item-description .field-body p{color:#fff;font-size:1rem;font-family:Proxima-Soft-Regular;line-height:1.1rem;margin-bottom:0}@media (max-width:960.98px){.game-item .cmgr-short-desc{display:block}}@media (min-width:961px){.game-item .cmgr-short-desc{display:none}}.pane-game-details-carousel-game-detail .game-item .game-link-wrapper a .field-image{display:flex;margin-right:0}.pane-game-details-carousel-game-detail .game-item .game-link-wrapper a .field-image img{border:none!important;padding:0!important;margin-right:0}@media (max-width:960.98px){.block .view-content .views-row{margin-right:0;margin-left:0}}@media (max-width:766.98px){.block .view-content .views-row .game-item{flex:0 0 100%;max-width:100%}}.bx-wrapper .game-item{width:82px!important;max-width:82px;min-width:82px}@media (max-width:960.98px){.row.leaderboard{margin-left:-30px;margin-right:-30px}}.right-header-block{position:absolute;right:0;color:#fff}.welcome-box{text-align:right}.welcome-box .btn.free-account{position:relative;display:inline-block;background-color:#29bffd;height:50px;white-space:normal;padding:7px 7px 7px 55px;color:#2a455d;font-size:.65rem;border-radius:0 0 .25rem .25rem;box-shadow:2px 2px 2px #000;margin-top:27px;margin-bottom:15px}.welcome-box .btn.free-account .earn{text-transform:none}@media (max-width:960.98px){.welcome-box .btn.free-account{width:290px}}@media (min-width:961px) and (max-width:1199.98px){.welcome-box .btn.free-account{width:100%}.welcome-box .btn.free-account .earn{display:none}}.welcome-box .btn.free-account .avatar{border-radius:50%;border:3px solid #29bffd;background-color:#29bffd;background-image:url(/themes/custom/coolmath/assets/images/user-profile/lion_avatar.png);z-index:1;top:-8px;left:-13px;width:65px;height:65px;box-shadow:0 2px 2px #000}.welcome-box .btn.free-account .avatar,.welcome-box .btn.free-account .badge{background-repeat:no-repeat;background-position:50%;background-size:cover;position:absolute;overflow:hidden;display:block}.welcome-box .btn.free-account .badge{background-image:url(/themes/custom/coolmath/assets/images/user-profile/levels/iL7.svg);z-index:2;top:27px;left:30px;width:34px;height:34px}.welcome-box .btn.free-account .new{position:absolute;right:0;top:-12px;height:12px;overflow:hidden;color:#fff;background:red;font-size:.7rem;font-style:italic;padding:0 12px;border-radius:3px 3px 0 0;line-height:1.2}.welcome-box .btn.free-account .getuserprofile{display:block;font-size:1rem;color:#f1db00;text-shadow:1px -1px #2a455d,-1px -1px #2a455d,-1px 1px #2a455d,-1px -1px #2a455d,1px 0 #2a455d,-1px 0 #2a455d,0 1px #2a455d,0 -1px #2a455d,1px 1px #2a455d,-1px 1px #2a455d,1px 1px #2a455d,1px -1px #2a455d}.welcome-box .btn.free-account .earn{font-size:.65rem}.welcome-box .login-link{font-size:1rem;line-height:1.2rem;font-family:Proxima-Soft-Bold;color:#fff!important;right:73px;position:relative;top:-5px;text-shadow:2px 2px 2px #000}.welcome-box .login-link p{text-align:right}.welcome-box .login-link a.login{color:#29bffd}@media (max-width:960.98px){.welcome-box .login-link{right:0;font-size:1.25rem}.welcome-box .login-link p{text-align:center}}.progress{background:#000;border-radius:5px;height:24px;text-align:center;overflow:visible}.progress .progress-text{font-family:Proxima-Soft-Bold;font-size:1.2rem;line-height:1.125rem;color:#fff;text-shadow:1px 1px 4px #000;position:absolute;top:2px;width:100%}.progress .progress-text a{color:#fff;text-shadow:1px 1px 4px #000;text-decoration:none}.progress .progress-bar{background-image:linear-gradient(90deg,#f7c649 3.53%,#fff661);background-repeat:repeat-x;font-family:Proxima-Soft-Bold;font-size:.875rem;line-height:1.125rem;align-items:center;text-align:center;color:#028fca!important;border-radius:5px}.game-xp-progress .progress-text{color:#fff;-webkit-text-fill-color:#fff;-webkit-text-stroke-width:0;-webkit-text-stroke-color:#fff}.node-type-game .game-progress-status .progress-text{width:70%!important}.node .game-progress-status{width:50%;position:relative;top:0}.node .game-progress-status .progress{height:30px;width:90%}.node .game-progress-status .progress .progress-text{font-size:1.2rem}.game-progress-status{width:100%;display:flex;flex-direction:row;align-items:center;position:relative;top:5px}.game-progress-status .progress{height:20px;width:70%;margin-right:10px}.game-progress-status .progress .progress-text{margin-top:2px}.progress-bar{width:0}.other-pages-300x250{margin-bottom:44px}.pane-cmatgame-advertisement-cm-g-otherpages-300x250-top{background:0 0}.pane-cmatgame-advertisement-cm-g-otherpages-300x250-top .ad-wrapper{height:268px;width:300px}@media (max-width:766.98px){.pane-cmatgame-advertisement-cm-g-otherpages-300x250-top .ad-wrapper{height:255px;width:300px}}.pane-cmatgame-advertisement-cm-g-otherpages-300x250-top .ad-wrapper{display:block}@media (max-width:960.98px){.pane-cmatgame-advertisement-cm-g-otherpages-300x250-top .ad-wrapper{height:255px;width:300px;margin:0 auto}}.main-aside .block{margin-bottom:44px}#afg_preloader #adcontainer{margin:0 auto}.wide-game-item .main-aside{width:300px}@media (max-width:960.98px){.pane-game-details-carousel-game-detail .view-content{padding-left:30px}}.jcarousel-control-next,.jcarousel-control-prev{position:absolute;top:10px;width:30px;height:30px;text-decoration:none;font-size:0;border-radius:none;box-shadow:none;background-image:url(/themes/custom/coolmath/assets/images/carousel-arrows.png);background-repeat:no-repeat;background-color:initial;opacity:.7}.jcarousel-control-prev{width:25px;background-position:0;left:-20px}.jcarousel-control-next{width:25px;background-position:100%;right:-20px}.node-type-game .block-gamedetailcarousel,.node-type-game .block-system-main-block{position:relative}.node-type-game .block-system-main-block .btn.playlist-count{display:none;position:absolute;bottom:12px;right:0;width:130px;margin-bottom:0}.node-type-game .block-system-main-block .playlist-count{padding:10px;text-align:center}.node-type-game .game-instructions h2{font-size:1.688rem;line-height:2.813rem}.node-type-game .game-instructions h3{font-size:1.188rem;line-height:1.938rem}.node-type-game .game-instructions p{font-size:1rem;line-height:1.25rem}.game-xp-bar{color:#fff;margin-bottom:1rem}.game-xp-bar .game-progress-status{width:400px!important}.game-xp-bar .progress{width:50%;margin-top:0;border:2px solid #27465b}.game-field-wrapper #no-flash-overlay{text-align:center}#thumbsuplike_message{float:left;font-family:Proxima-Soft-Regular;font-size:.875rem;position:absolute;top:-16px;right:82px;font-style:italic;text-transform:none;margin:0;width:120px}.block-gamedetailcarousel{height:107px}.skip-ad-btn{border-radius:5px}#continue-container{height:50px;margin-top:20px}#continue-link{margin-left:35%!important;text-align:right;float:left;font-size:22px;text-transform:uppercase;font-family:Proxima-Soft-Bold}.continue-lnk-container-rsection{width:42%;float:left;text-align:right}#timer_div{float:left;font-size:22px;text-align:left}#timer_div{font-family:Proxima-Soft-Bold;text-transform:uppercase}.img-button{width:58%;float:left;text-align:left}#img-button-container,.img-button,.skip-ad-btn{padding-left:0!important}.wide-game-item .inside{width:100%}.node__content{position:relative}@media (min-width:1200px){.node-type-game .inside{margin-left:20px}}.node-type-game .inside .view-header{font-size:1.2em}.node-type-game .inside .view-header p{margin-top:15px;color:#fff}.node-type-game .inside h1.pane-title{position:relative;background:0 0;border-bottom:2px solid #47a6ff;font-size:19px!important;color:#fff;margin-left:0;margin-bottom:5px;border-radius:0;padding-left:0!important;padding-right:60px;line-height:1rem}@media (min-width:961px){.node-type-game .inside h1.pane-title{font-size:1.875rem!important;height:auto;line-height:1.6rem;padding-right:185px}}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item{margin:0}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item .game-link-wrapper{position:relative;display:flex;flex-direction:column}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item .field-image{border:2px solid transparent}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item .game-title{position:absolute;top:0;left:0;display:none;width:83px;height:100%;margin:0;overflow:hidden;text-align:center;white-space:nowrap;font-family:Proxima-Soft-Bold!important}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item .game-title .overlay{display:inline-block;width:83px;height:100%;background-color:#010101;opacity:.5;vertical-align:middle}.node-type-game .bxslider-views-slideshow-main-frame-row .game-item .game-title .title-on-overlay{position:relative;display:inline-block;width:83px;margin-left:-100%;color:#fff;font-size:15px;line-height:1.1;vertical-align:middle;white-space:normal;word-wrap:break-word;font-weight:700}@media (max-width:560.98px){.node-type-game .bxslider-views-slideshow-main-frame-row .field-image{border-color:#3896c5!important}.node-type-game .bxslider-views-slideshow-main-frame-row .game-title{display:block!important}}.node-type-game .game-on-mobile .bxslider-views-slideshow-main-frame-row .field-image{border-color:#3896c5!important}.node-type-game .game-on-mobile .bxslider-views-slideshow-main-frame-row .game-title{display:block!important}.game-xp-bar .game-progress-status{width:300px!important}.immerse-button{margin:0;text-align:right}.immerse-button a.btn{margin:0;line-height:1em;background-image:url(/themes/custom/coolmath/assets/images/WATCH-AD-TO-PLAY-BIG-SCREEN-v3.png);background-repeat:no-repeat;width:312px;height:29px}.immerse-button a.btn span{font-size:0;position:relative;top:-2px;padding-left:4px;text-decoration:none}.immerse-button a.btn i{font-size:0;padding-left:10px}.close-full-screen{margin:0;text-align:right}.close-full-screen a.btn{padding:2px 3px!important;margin:0;line-height:1em}.close-full-screen a.btn span{font-size:16px;position:relative;top:-2px;padding-left:4px;text-decoration:none}.close-full-screen a.btn i{font-size:25px;padding-left:10px}.immerse-button .requestfullscreen{position:relative}.field-game{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.node-type-game .close-full-screen,.node-type-game .game-xp-bar-immerse-button{display:none}#does-not-support-ie{text-align:center;padding:20px}.game-page-mobile{min-height:373px}.game-page-mobile .game-image{position:relative}.game-page-mobile .game-image .game__field-og-image{position:relative;min-height:150px;max-height:225px;overflow:hidden}.game-page-mobile .game-image img{background:#000;height:100%}.game-page-mobile .game-image img{width:100%;height:auto}.game-page-mobile .game-image #playNowButton{position:absolute;z-index:1;top:calc(50% - 25px);left:calc(50% - 25px);width:50px;height:50px;transform:scale(2)}.game-page-mobile .game-image #playNowButton i.icon-circle{color:#40af40;position:absolute;top:3px;left:2px;margin:0 auto;font-size:46px}.game-page-mobile .game-image #playNowButton i.icon-play{color:#fff;position:absolute;top:18px;left:20px;margin:0 auto;text-shadow:1px 1px 1px #000}.game-page-mobile .game-image .circle{width:52px;height:52px;font-size:48px;display:block;background:#fff;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 0 #fff;transform:scale(1);animation:playPulse 2s infinite;left:-1px;position:relative}.game-page-mobile .game-xp-bar .game-progress-status{width:90%!important}.game-page-mobile .game-xp-bar .progress{width:100%;height:30px;margin:0 10px 0 0}@keyframes playPulse{0%{transform:scale(.9);box-shadow:0 0 0 0 #fff}50%{transform:scale(1);box-shadow:0 0 0 0 hsla(0,0%,100%,0)}to{transform:scale(.9);box-shadow:0 0 0 0 hsla(0,0%,100%,0)}}.game-item-description,.game-item-description p{line-height:1.1rem}@media (min-width:961px){.cmgr-short-desc{display:none}}@media (max-width:960.98px){.node-type-game .game-container .main-aside,.node-type-game .game-container .main-aside #block-coolmath-nodepagespromomerchstore{display:none}}.no-flash-overlay-mobile{font-family:Proxima-Soft-Bold;background-color:#fff;left:0}.no-flash-overlay-mobile{position:absolute;top:60px;right:0;margin:auto;border:1px solid;border-radius:.25rem;color:#000;width:205px;height:80px;padding:.5rem;font-size:1rem;z-index:100;box-shadow:1 1 1 transparent}@media (min-width:961px){.no-flash-overlay-mobile{font-size:1rem;padding:1rem;width:280px;height:95px}}#big-screen-container{width:560px;height:608px;border:2px solid #f1f55e;position:relative;margin:0 auto;padding:0 15px;background:#2b455e}.image-bs-sample{float:left;padding-left:40px}.big-screen-head{height:52px;background-color:#111926}.mid-big-section-head{background-color:#2b455e;margin:0 auto;text-align:center;padding-top:42px;height:552px}.big-screen-container-class .img-container-big-screen{height:270px!important}.img-container-big-screen{padding-top:30px;height:220px}.bs-head-txt{float:left;text-align:center;color:#f1f55e;font-size:1.2rem;padding-top:13px;padding-left:73px}.big-screen-container-class .bs-head-txt{padding-left:50px!important}.bs-head-logo{float:left;padding-left:10px;padding-top:2px}.bs-close-button{width:35px;background-color:#4298ef;border-radius:50px;float:left;height:35px;text-align:center;padding-top:8px;color:#000!important;padding-left:50;margin-left:95px;margin-top:8px}.big-screen-container-class .bs-close-button{margin-left:auto!important;position:relative;right:10px}.big-screen-container-class .bs-close-button a{color:#000!important}.bs-close-btn{color:#000;font-weight:700}.bs-footer-link{padding-top:25px}.bs-learn-more{text-align:center;padding-top:5px;font-size:.85rem;letter-spacing:.5px;color:#d9af58}.bs-lrn-more{color:#d9af58!important;text-underline-position:under}.bs-lrn-more,.bs-no-thks{text-decoration:underline}.bs-no-thks{text-align:center;padding-top:30px;letter-spacing:.5px;text-underline-position:under}.bs-no-thks a{color:#fff}.bs-lnk-lrn-more{color:#fff!important}.adfree-marketing-campaign{background-color:#16202c;height:600px;border:2px solid #ff0;width:600px}.adfree-marketing-campaign .mid-big-section-head{height:532px!important}.adfree-marketing-campaign .bs-head-txt{padding-left:35px!important;color:#f6c555!important}.adfree-marketing-campaign .bs-head-logo{width:100px;float:left;padding-left:10px;padding-top:2px}.adfree-mid-section-marketing-campaign .sup-bold{font-size:120%;font-weight:700}.adfree-mid-section-marketing-campaign .sup-bold-2{font-size:110%;font-weight:700;color:#06ddb5}.adfree-mid-section-marketing-campaign .mkt-container1{float:left;width:171px;text-align:right;height:100px}.adfree-mid-section-marketing-campaign .ad-free-txt{color:#06ddb5;font-size:16px;float:left;height:125px;width:360px;text-align:left;font-weight:700;padding-top:42px;padding-left:10px;letter-spacing:.65px}.adfree-mid-section-marketing-campaign .image-bs-sample{float:left;padding-left:20px}.adfree-mid-section-marketing-campaign .image-better-focus{float:left;padding-left:175px}.adfree-mid-section-marketing-campaign .no-waiting-txt{color:#fff;font-size:13px;float:left;width:200px;text-align:left;padding-top:18px;padding-left:10px;letter-spacing:.65px}.adfree-mid-section-marketing-campaign .better-focus-container{width:100%;height:133px;text-align:center}.adfree-mid-section-marketing-campaign .all-excl-txt{float:left;text-align:center;color:#c2a960;font-size:1.1rem;padding-top:13px;padding-left:50px;letter-spacing:.75px;width:100%;height:50px}.img-container-big-screen{text-align:center}.marketing-cmpn-footer{background-color:#16202c}.bs-close-button a{color:#29bffc!important}.view-display-id-carousel_game_detail .game-item .game-link-wrapper img{padding:0;border:none;width:83px;height:50px}.no-select{-webkit-touch-callout:none}.flashIntroTxt{font-size:14px;font-weight:700;letter-spacing:1px;padding-top:10px;text-align:center;padding-left:12px}.flashIntroTxtImg{margin-left:-4px}#newFlashDetectHtml{width:648px}.flashContainerList{background-color:#2a455d;padding-top:13px;padding-bottom:1px;padding-left:38px;margin-top:15px;width:560px;border-radius:6px}.flashContainerList .common-title{padding-top:5px;padding-bottom:5px}.flashNotFoundImgStyle{border-radius:6px}.related-game-block{margin:0 auto}#videoplayer{min-height:1px}.load-wrap{width:100%;padding-top:20px;margin-bottom:15px}.like-container-entity-node{float:left;margin-right:14px}.like-container-entity-node>div{display:inline}.dislike-container-entity-node{float:left}.dislike-container-entity-node>div{display:inline}.block-page-title-block{position:relative;z-index:0}#thumbsup{position:absolute;right:0;z-index:0}@media (min-width:961px){#thumbsup{top:0}}@media (max-width:960.98px){#thumbsup{top:-10px}}#thumbsup a,#thumbsup img{outline:0;border:none}#thumbsup .thumbsupmessage{float:left;margin:0;font-size:1rem;font-family:Proxima-Soft-Regular;position:relative;top:4px;left:-13px;color:#fff;text-transform:none!important;font-weight:400}@media (max-width:1199.98px){#thumbsup .thumbsupmessage{font-size:.8rem;top:-25px;right:-60px;left:auto}}.game-item{overflow:hidden;margin-bottom:20px}.game-item h3{font-size:1rem;line-height:1.125rem;font-family:Proxima-Soft-Bold;text-transform:none}body{color:#fff}a.login{color:#29bffd}.viewWebLang .viewLangBtn{text-transform:uppercase;color:#29bffd;display:inline-block;font-size:14.7px;margin-top:20px;margin-left:3px;font-family:Proxima-Soft-Bold;background-color:initial;text-shadow:2px 2px 2px #000;border-radius:.25rem;padding:.25rem}</style>
  40. <link rel="shortcut icon" href="//www.coolmathgames.com/themes/custom/coolmath/favicon.ico" type="image/vnd.microsoft.icon" />
  41. <link rel="alternate" hreflang="en" href="https://www.coolmathgames.com/0-run-3" />
  42. <link rel="alternate" hreflang="es" href="https://www.coolmathgames.com/es/0-run-3" />
  43. <script type="deferjs">
  44.       //Translation site visitor
  45.       //Assuming all category pages starting /1- and games pages starting with /0-
  46.       var cPath = /\/1-([a-z-0-9]+-game|playlists)|\/0-[a-z-0-9]+/gm;
  47.       var cRegex = new RegExp(cPath);
  48.       if(getCookie('cmg_translation') !== null && getCookie('cmg_translation') !== 'def') {
  49.         var tr_lang = getCookie('cmg_translation');
  50.         var tr_regex = new RegExp('\/'+tr_lang+'\/');
  51.         if(location.pathname == '/' && !tr_regex.test(location.pathname)) {
  52.           document.location = '/' + tr_lang;
  53.         } else if(cRegex.test(location.pathname) && !tr_regex.test(location.pathname)) {
  54.           document.location = '/' + tr_lang + location.pathname;
  55.         }
  56.       } else if(navigator.language === 'es' && (getCookie('cmg_translation') === null || getCookie('cmg_translation') !== 'def') ){
  57.         var navigatorLang = navigator.language;
  58.         setCookie('cmg_translation', navigatorLang);
  59.         var tr_regex = new RegExp('\/'+navigatorLang+'\/');
  60.         if(location.pathname == '/' && !tr_regex.test(location.pathname)) {
  61.           document.location = '/' + navigatorLang;
  62.         } else if(cRegex.test(location.pathname) && !tr_regex.test(location.pathname)) {
  63.           document.location = '/' + navigatorLang + location.pathname;
  64.         }
  65.       }
  66.       var valid_test_environment = false;
  67.       function getCookie(key) {
  68.         var keyValue = document.cookie.match("(^|;) ?" + key + "=([^;]*)(;|$)");
  69.         return keyValue ? keyValue[2] : null;
  70.       }
  71.       function setCookie1(cname, cvalue, hours) {
  72.         var d = new Date();
  73.         d.setTime(d.getTime() + (hours*60*60*1000));
  74.         var expires = 'expires='+ d.toUTCString();
  75.         document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';
  76.       }
  77.       function setCookie(key, value, exptime) {
  78.         var d = new Date();
  79.         d.setTime(d.getTime() + exptime);
  80.         var expires = 'expires=' + d.toUTCString();
  81.         document.cookie = key + '=' + value + '; ' + expires + '; path=/; domain=.' + window.location.host;
  82.       }
  83.       function getParameterByName(name) {
  84.         var regexS = '[\?&]' + name + '=([^&#]*)';
  85.         var regex = new RegExp(regexS);
  86.         var results = regex.exec(location.href);
  87.         if (results === null) {
  88.           return '';
  89.         }
  90.         return decodeURIComponent(results[1].replace(/\+/g, ' '));
  91.       }
  92.       var cmg_gdpr_check = getCookie('GDPR');
  93.  
  94.       var cmg_school_whitelisted = getCookie('cmg_schwl');
  95.  
  96.       var freeTrialUser = false;
  97.       var date = new Date();
  98.       var hours = date.getHours();
  99.       var currentMonth = date.getMonth();
  100.       var currentYear = date.getFullYear();
  101.       var day = date.getDay();
  102.       var month_names_short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  103.       var currentMonthName = month_names_short[currentMonth];
  104.       var schoolStartHour = 7;
  105.       var schoolEndHour = 15;
  106.       var cmg_no_ads_debug = false;
  107.       //var cmg_no_ads = false;
  108.       if(typeof subscriberLeg === 'undefined' || subscriberLeg === null || subscriberLeg === '') {
  109.         subscriberLeg = 'Default Leg';
  110.       }
  111.       if(typeof freeGameLimit === 'undefined' || freeGameLimit === null) {
  112.         freeGameLimit = 0;
  113.       }
  114.       if(typeof cmg_no_ads === 'undefined' && cmg_no_ads_debug && (typeof valid_test_environment !== 'undefined' && valid_test_environment)) {
  115.         cmg_no_ads = true;
  116.       }
  117.       var schoolHours = false;
  118.       var schoolHolidays = ["Jul 4","Sep 3","Nov 22","Nov 23"];
  119.       var schoolHoliday = false;
  120.  
  121.       //TODO -- Summer vacation dates
  122.       var summerVacationStart = new Date('07/1/'+currentYear);
  123.       var summerVacationEnd = new Date('07/10/'+currentYear);
  124.  
  125.       var today_month_day = currentMonthName + ' ' + date.getDate();
  126.       if(schoolHolidays.indexOf(today_month_day) !== -1 || (date >= summerVacationStart && date <= summerVacationEnd) || day === 6 || day == 0) {
  127.         schoolHoliday = true;
  128.       }
  129.       var currentMonthName = month_names_short[currentMonth];
  130.       if(!schoolHoliday && hours >= schoolStartHour && hours <= schoolEndHour) {
  131.         schoolHours = true;
  132.       }
  133.       var targetStateUser = false;
  134.       if(typeof targeted_state !== 'undefined' && targeted_state !== null && targeted_state) {
  135.         targetStateUser = true;
  136.       }
  137.       if(typeof watchAdtoUnlockGame == 'undefined') {
  138.         watchAdtoUnlockGame = false;
  139.       }
  140.       var cmg_active_anonymous_user = getCookie('cmg_active_anonymous_user');
  141.       var cmatgame_editor = getCookie('cmg_editor');
  142.       if(typeof cmg_active_anonymous_user !== 'undefined' && cmg_active_anonymous_user !== null) {
  143.         ////console.log('We have an active school hours session');
  144.       }
  145.       //Display Ads to anonymous users only if the user is not from a targeted state or it is school hours.
  146.       //   Do not display ads for targeted state user during non school hours, but free game play is restricted
  147.       if(!schoolHours && targetStateUser && cmg_active_anonymous_user === null && cmatgame_editor === null) {
  148.         freeTrialUser = true;
  149.      }
  150.    </script>
  151. <script type="deferjs">
  152.      function checkIfFlashIsEnabled() {
  153.           var ie_flash;
  154.           try { ie_flash = (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) !== false) } catch(err) { ie_flash = false; }
  155.           var _flash_installed = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || ie_flash);
  156.           if(typeof _flash_installed == "undefined" || !_flash_installed) {
  157.             return false;
  158.           } else {
  159.             return true;
  160.           }
  161.        }
  162.        function trackEvent(category, action, label, noninteraction) {
  163.           if(typeof __gaTracker === 'undefined')
  164.             return;
  165.             noninteraction = noninteraction || 0;
  166.            //console.log('Tracked: ' + category + ' ' + action + ' ' + label + ' noninteraction: ' + noninteraction);
  167.           __gaTracker('send', {
  168.               'hitType': 'event',          // Required.
  169.               'eventCategory': category,   // Required.
  170.               'eventAction': action,      // Required.
  171.               'eventLabel': label,
  172.               'eventValue': 0,
  173.               'nonInteraction': noninteraction
  174.           });
  175.       }
  176.       function trackSocial(network,action,target) {
  177.           if(typeof __gaTracker === 'undefined')
  178.             return;
  179.           __gaTracker('send', {
  180.               'hitType': 'social',          // Required.
  181.               'socialNetwork': network,
  182.               'socialAction': action,
  183.               'socialTarget': target
  184.           });
  185.       }
  186.     </script>
  187. <script>/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
  188. !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
  189. </script>
  190. <script type="deferjs">
  191.           gamePage = true;
  192.           quizPage = false;
  193.           gameType = 'game_html5';
  194.       game_width_size = 800;
  195.           mobile_ga_game_type = 'Desktop'; 
  196.           var ad_refresh_timer_interval = 60000; 
  197.           var ad_refresh_event_interval = 30000;
  198.         </script>
  199. <script type="text/javascript">
  200.   function trackGoalVirtualPV(virtual_page) {
  201.     if(typeof __gaTracker !== "undefined") {
  202.       debugOut("GA Goal Tracking. Virtual pv: "+virtual_page);
  203.       __gaTracker("send", "pageview", virtual_page);
  204.     }
  205.   }
  206.   function getCookie(key) {
  207.     var keyValue = document.cookie.match("(^|;) ?" + key + "=([^;]*)(;|$)");
  208.     return keyValue ? keyValue[2] : null;
  209.   }
  210.   // initialize js variableswith current theme style
  211.   // var user_stylePath = encodeURIComponent("{{ user_theme_style_path }}");
  212.   // var path = "/"+decodeURIComponent(user_stylePath);
  213.   // if(user_stylePath!==""){
  214.   //   jQuery("#styleswitcher-css").attr("href", path);
  215.   // }
  216.   jQuery(document).ready(function() {
  217.   if (typeof getCookie === "function" && getCookie("cmg_xpp") !== null) {
  218.     jQuery("body").addClass("cmatgame");
  219.     var themepath = decodeURIComponent(getCookie("cmg_xpp"));
  220.     if(themepath != "null" && !themepath.startsWith("/")) {
  221.       themepath = "/"+themepath;
  222.     }
  223.     var path = location.protocol + "//" + location.host + themepath;
  224.     if (jQuery("#styleswitcher-css").length) {
  225.       jQuery("#styleswitcher-css").attr("href", path);
  226.       console.log("Loading userprofile theme... " + path);
  227.     }
  228.   }
  229.   });
  230.   </script>
  231. <script type="deferjs">
  232.                   var hide_preroll_ads = false; 
  233.           var preroll_ads_timer = 15;
  234.                   
  235.           cmatgame_subscriber = getCookie("cmg_sx");
  236.           if(getCookie("cmg_wl") !== null) {
  237.             cmatgame_subscriber = getCookie("cmg_wl");
  238.           }
  239.           //check if school is whitelisted
  240.           if(cmg_school_whitelisted !== null && getCookie("cmg_schwl") !== null) {
  241.             cmg_school_whitelisted = getCookie("cmg_schwl");
  242.             cmatgame_subscriber = getCookie("cmg_schwl");
  243.           } else if(cmg_school_whitelisted === null && typeof cmg_no_ads_debug !== "undefined" && cmg_no_ads_debug) {
  244.            //console.log("KY school hours");
  245.            cmatgame_subscriber = cmg_no_ads_debug;
  246.           }
  247.           if(cmg_gdpr_check !== null) {
  248.             var cmg_gdpr_all_check = getCookie("GDPR_All");  //GDPR_All cookie is set when user selects accept all cookies in the GDPR overlay
  249.             var cmg_gdpr_first_check = getCookie("GDPR_First");
  250.             var cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  251.             if(cmg_gdpr_all_check == null) {  //Display ads only when all cookies option is selected
  252.               cmatgame_subscriber = getCookie("GDPR");
  253.             }
  254.           }
  255.           isRemoveAdSwfJWPLayer = false;
  256.           jQuery(document).ready(function() {
  257.           if(typeof isAdblockerOn === "undefined"){
  258.             if(typeof __gaTracker !== "undefined") {
  259.              __gaTracker("send", {
  260.               "hitType": "event",          // Required.
  261.               "eventCategory": "Page-level-ad-blocker2",   // Required.
  262.               "eventAction": "AdBlockerDetected",      // Required.
  263.               "eventLabel": document.title,
  264.               "eventValue": 1,
  265.               "nonInteraction": 1
  266.               });
  267.             }
  268.           } else {
  269.            if(typeof __gaTracker !== "undefined") {
  270.               __gaTracker("send", {
  271.                 "hitType": "event",          // Required.
  272.                 "eventCategory": "Page-level-ad-blocker2",   // Required.
  273.                 "eventAction": "AdBlockerNotDetected",      // Required.
  274.                 "eventLabel": document.title,
  275.                 "eventValue": 1,
  276.                 "nonInteraction": 1
  277.             });
  278.            }
  279.          }
  280.                  function removeAdSwfJWPLayer() {}
  281.          var isChrome = navigator.userAgent.toLowerCase().indexOf("chrome") > -1;
  282.          if(!jQuery(".adtxt").is(":visible") && isChrome) {
  283.            removeAdSwfJWPLayer();
  284.          }
  285.         });
  286.         </script>
  287. <script type="deferjs">
  288.            if((typeof cmatgame_subscriber === "undefined" ||
  289.        cmatgame_subscriber === "" ||
  290.          cmatgame_subscriber === null ||
  291.          typeof freeTrialUser === "undefined"  ) && !freeTrialUser) {
  292.         var pwUnits = [];
  293.         var windowPath = window.location.pathname;
  294.            // category landing pages with video
  295.           if( windowPath == "/1-strategy-games" ||
  296.             windowPath == "/1-skill-games" ||
  297.             windowPath == "/1-number-games" ||
  298.             windowPath == "/1-logic-games" ||
  299.             windowPath == "/1-playlists" ||
  300.             windowPath == "/1-daily-games" ||
  301.             windowPath == "/1-complete-game-list" || windowPath == "/profile/leaderboard") {
  302.           var tyche = {
  303.            mode: "tyche",
  304.            config: "//config.playwire.com/1023174/v2/websites/71134/banner.json",
  305.            forcePath: "trendi-video",
  306.            passiveMode: true
  307.             };
  308.                                                 if(document.documentElement.clientWidth <768) { //mobile or table
  309.                                                         pwUnits = [{
  310.                                                                 selectorId: "leaderboard-atf",
  311.                                                                 type: "leaderboard_atf"
  312.                                                         },
  313.                                                         {
  314.                                                                 selectorId: "leaderboard-btf",
  315.                                                                 type: "leaderboard_btf"
  316.                                                         },
  317.                                                         {
  318.                                                                 selectorId: "mob-med-rect-atf",
  319.                                                                 type: "med_rect_atf"
  320.                                                         },
  321.                                                         {
  322.                                                                 selectorId: "mob-med-rect-btf",
  323.                                                                 type: "med_rect_btf"
  324.                                                         }
  325.                                                         ];
  326.                                                 } else if(document.documentElement.clientWidth >=768 && document.documentElement.clientWidth <=1365) {
  327.                                                         pwUnits = [{
  328.                                                                 selectorId: "leaderboard-atf",
  329.                                                                 type: "leaderboard_atf"
  330.                                                         },
  331.                                                         {
  332.                                                                 selectorId: "leaderboard-btf",
  333.                                                                 type: "leaderboard_btf"
  334.                                                         },
  335.                                                         {
  336.                                                                 selectorId: "med-rect-atf",
  337.                                                                 type: "med_rect_atf"
  338.                                                         },
  339.                                                         {
  340.                                                                 selectorId: "med-rect-btf",
  341.                                                                 type: "med_rect_btf"
  342.                                                         },
  343.                                                         {
  344.                                                                 selectorId: "sky-btf",
  345.                                                                 type: "sky_btf"
  346.                                                         },
  347.                                                         {
  348.                                                                 type: "trendi_video"
  349.                                                         }];
  350.                                                 } else {
  351.                                                         pwUnits = [{
  352.                                                                 selectorId: "leaderboard-atf",
  353.                                                                 type: "leaderboard_atf"
  354.                                                         },
  355.                                                         {
  356.                                                                 selectorId: "leaderboard-btf",
  357.                                                                 type: "leaderboard_btf"
  358.                                                         },
  359.                                                         {
  360.                                                                 selectorId: "med-rect-atf",
  361.                                                                 type: "med_rect_atf"
  362.                                                         },
  363.                                                         {
  364.                                                                 selectorId: "med-rect-btf",
  365.                                                                 type: "med_rect_btf"
  366.                                                         },
  367.                                                         {
  368.                                                                 selectorId: "sky-atf",
  369.                                                                 type: "sky_atf"
  370.                                                         },
  371.                                                         {
  372.                                                                 selectorId: "sky-btf",
  373.                                                                 type: "sky_btf"
  374.                                                         },
  375.                                                         {
  376.                                                                 type: "trendi_video"
  377.                                                         }];
  378.                                                 }
  379.  
  380.         // Homepage, category landing pages without video
  381.            }else if( windowPath == "/" ||
  382.                   windowPath == "/1-playlists" ||
  383.                   windowPath == "/0-jigsaw-puzzles" ||
  384.                   windowPath == "/1-mobile-categories") {
  385.             var tyche = {
  386.              mode: "tyche",
  387.              config: "//config.playwire.com/1023174/v2/websites/71134/banner.json",
  388.              passiveMode: true
  389.             };
  390.                                                 if(document.documentElement.clientWidth <768) { //mobile or table
  391.                                                         pwUnits = [{
  392.                       selectorId: "leaderboard-atf",
  393.                       type: "leaderboard_atf"
  394.                     },
  395.                                                         {
  396.                                                                 selectorId: "mob-med-rect-atf",
  397.                                                                 type: "med_rect_atf"
  398.                                                         },
  399.                                                         {
  400.                                                                 selectorId: "mob-med-rect-btf",
  401.                                                                 type: "med_rect_btf"
  402.                                                         },
  403.                     {
  404.                       selectorId: "med-rect-atf",
  405.                       type: "med_rect_btf"
  406.                     },
  407.                                                         {
  408.                                                                 selectorId: "mob-med-rect-ctf",
  409.                                                                 type: "med_rect_btf"
  410.                                                         },
  411.                     {
  412.                       selectorId: "med-rect-btf4",
  413.                       type: "med_rect_btf"
  414.                     }];
  415.                                                 } else if(document.documentElement.clientWidth >=768 && document.documentElement.clientWidth <=1365) {
  416.                                                         pwUnits = [{
  417.                       selectorId: "leaderboard-atf",
  418.                       type: "leaderboard_atf"
  419.                     },
  420.                     {
  421.                       selectorId: "leaderboard-btf",
  422.                       type: "leaderboard_btf"
  423.                     },
  424.                     {
  425.                       selectorId: "med-rect-atf",
  426.                       type: "med_rect_atf"
  427.                     },
  428.                     {
  429.                       selectorId: "med-rect-btf1",
  430.                       type: "med_rect_btf"
  431.                     },
  432.                     {
  433.                       selectorId: "med-rect-btf2",
  434.                       type: "med_rect_btf"
  435.                     },
  436.                     {
  437.                       selectorId: "med-rect-btf3",
  438.                       type: "med_rect_btf"
  439.                     },
  440.                     {
  441.                       selectorId: "med-rect-btf4",
  442.                       type: "med_rect_btf"
  443.                     }];
  444.                                                 }  else {
  445.                                                         pwUnits = [{
  446.                       selectorId: "leaderboard-atf",
  447.                       type: "leaderboard_atf"
  448.                     },
  449.                     {
  450.                       selectorId: "leaderboard-btf",
  451.                       type: "leaderboard_btf"
  452.                     },
  453.                     {
  454.                       selectorId: "med-rect-atf",
  455.                       type: "med_rect_atf"
  456.                     },
  457.                     {
  458.                       selectorId: "med-rect-btf1",
  459.                       type: "med_rect_btf"
  460.                     },
  461.                     {
  462.                       selectorId: "med-rect-btf2",
  463.                       type: "med_rect_btf"
  464.                     },
  465.                     {
  466.                       selectorId: "med-rect-btf3",
  467.                       type: "med_rect_btf"
  468.                     },
  469.                     {
  470.                       selectorId: "med-rect-btf4",
  471.                       type: "med_rect_btf"
  472.                     },
  473.                     {
  474.                       selectorId: "sky-atf",
  475.                       type: "sky_atf"
  476.                     },
  477.                     {
  478.                       selectorId: "sky-btf",
  479.                       type: "sky_btf"
  480.                     }];
  481.                                                 }
  482.  
  483.  
  484.         // all other pages
  485.         } else  {
  486.           var tyche = {
  487.                        mode: "tyche",
  488.                        config: "//config.playwire.com/1023174/v2/websites/71134/banner.json",
  489.                        passiveMode: true
  490.             };
  491.                                         if(document.documentElement.clientWidth <768) { //mobile or table
  492.                                                 pwUnits = [{
  493.                       selectorId: "leaderboard-atf",
  494.                       type: "leaderboard_atf"
  495.                     },
  496.                     {
  497.                       selectorId: "leaderboard-btf",
  498.                       type: "leaderboard_btf"
  499.                     },
  500.                                                         {
  501.                       selectorId: "med-rect-btf",
  502.                       type: "med_rect_btf"
  503.                     }
  504.                   ];
  505.                                         } else if(document.documentElement.clientWidth >=768 && document.documentElement.clientWidth <=1365) {  //desktop
  506.                                                 pwUnits = [{
  507.                       selectorId: "leaderboard-atf",
  508.                       type: "leaderboard_atf"
  509.                     },
  510.                     {
  511.                       selectorId: "leaderboard-btf",
  512.                       type: "leaderboard_btf"
  513.                     },
  514.                     {
  515.                       selectorId: "med-rect-atf",
  516.                       type: "med_rect_atf"
  517.                     },
  518.                     {
  519.                       selectorId: "med-rect-btf",
  520.                       type: "med_rect_btf"
  521.                     },
  522.                     {
  523.                       selectorId: "sky-btf",
  524.                       type: "sky_btf"
  525.                     }
  526.                   ];
  527.                                         } else {  //desktop
  528.                                                 pwUnits = [{
  529.                       selectorId: "leaderboard-atf",
  530.                       type: "leaderboard_atf"
  531.                     },
  532.                     {
  533.                       selectorId: "leaderboard-btf",
  534.                       type: "leaderboard_btf"
  535.                     },
  536.                     {
  537.                       selectorId: "med-rect-atf",
  538.                       type: "med_rect_atf"
  539.                     },
  540.                     {
  541.                       selectorId: "med-rect-btf",
  542.                       type: "med_rect_btf"
  543.                     },
  544.                     {
  545.                       selectorId: "sky-atf",
  546.                       type: "sky_atf"
  547.                     },
  548.                     {
  549.                       selectorId: "sky-btf",
  550.                       type: "sky_btf"
  551.                     }
  552.                   ];
  553.                                         }
  554.  
  555.         }
  556.         // function that is called when tyche is ready
  557.         var loadUnits = function () {
  558.           var timeout = 1500; // How long before calling ad units in ms
  559.           if(document.documentElement.getAttribute("rel")=="optimized"){
  560.             timeout = 0 // for optimzed pages
  561.           }
  562.           setTimeout(function () {
  563.           tyche
  564.           .addUnits(pwUnits)
  565.           .then(function(){
  566.             tyche.displayUnits();
  567.           }).catch( function(e){
  568.             tyche.displayUnits();
  569.             console.log(e);
  570.           });
  571.           }, timeout);
  572.         }
  573.         tyche.onReady = function () { // attach function to tyche onReady
  574.           loadUnits();
  575.         }
  576.         if(document.documentElement.getAttribute("rel")=="optimized"){
  577.           Defer(function(){
  578.             var pwScript = document.createElement("script");
  579.             pwScript.type = "text/javascript";
  580.             pwScript.src = "//cdn.intergi.com/hera/tyche.js";
  581.             pwScript.async = true;
  582.             document.getElementsByTagName("head")[0].appendChild(pwScript);
  583.           },3000)
  584.         }else{
  585.           var pwScript = document.createElement("script");
  586.           pwScript.type = "text/javascript";
  587.           pwScript.src = "//cdn.intergi.com/hera/tyche.js";
  588.           pwScript.async = true;
  589.           document.getElementsByTagName("head")[0].appendChild(pwScript);
  590.         }
  591.       }
  592.           </script>
  593. <script type="deferjs">
  594.           var $elements_with_events = jQuery('.js-track');
  595.           if($elements_with_events.length > 0) {
  596.             $elements_with_events.each(function(){
  597.             var action = typeof jQuery(this).data('action') !== 'undefined' ? jQuery(this).data('action') : 'click';
  598.             jQuery(this).on(action, function(){
  599.             var category, label;
  600.             category = typeof jQuery(this).data('category') !== 'undefined' ? jQuery(this).data('category') : ( jQuery(this).text() || 'Unassigned' );
  601.             label = typeof jQuery(this).data('label') !== 'undefined' ? jQuery(this).data('label') :  ( jQuery(this).attr('class') || 'Unassigned' );
  602.             trackEvent(category,'click',label);
  603.            });
  604.          });
  605.         }
  606.        </script>
  607. <title>Run 3 - Play it now at Coolmath Games</title><script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"node\/11697","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"clientside_validation_jquery":{"validate_all_ajax_forms":2,"force_validate_on_blur":false},"cmg_sjpath":"\/sites\/default\/files\/cmatgame_games_with_levels.json?t=202109200935","cmatgame":{"language":"en","gamePlaylistCount":12987,"varViewPlayListText_1":"VIEW PLAYLISTS WITH THIS GAME","varGameInText_1":"THIS GAME IS IN","varPlayListText_1":"PLAYLISTS","flash_emulation":"3","html5embed":{"width":"800","height":"600","game":{"u":"sites\/default\/files\/games\/Run3-Coolmath-Adblocker-Fix-v2_0.zip"}},"swfembed":"","isSubscriptionActive":false},"lazy":{"lazysizes":{"lazyClass":"lazyload","loadedClass":"lazyloaded","loadingClass":"lazyloading","preloadClass":"lazypreload","errorClass":"lazyerror","autosizesClass":"lazyautosizes","srcAttr":"data-src","srcsetAttr":"data-srcset","sizesAttr":"data-sizes","minSize":40,"customMedia":[],"init":true,"expFactor":1.5,"hFac":0.8000000000000000444089209850062616169452667236328125,"loadMode":2,"loadHidden":true,"ricTimeout":0,"throttleDelay":125,"plugins":[]},"placeholderSrc":"","preferNative":false,"minified":true,"libraryPath":"\/libraries\/lazysizes"},"language":"en","lang_dropdown":{"lang-dropdown-form":{"key":"lang-dropdown-form"}},"form_placeholder":{"include":"","exclude":"","required_indicator":"append"},"ajaxTrustedUrl":{"form_action_p_pvdeGsVG5zNF_XLGPTvYSKCf43t8qZYSwcfZl2uzM":true},"user":{"uid":0,"permissionsHash":"10d61b137c4f914b655d7628788e0db136577254c17eb9fe2565b5c80c7820df"}}</script>
  608.  
  609. <!--[if lte IE 8]>
  610. <script src="/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js" type="deferjs"></script>
  611. <![endif]-->
  612. <script src="/sites/default/files/js/js_ZkaPWqMUB-k7g3N3JEsqpnH8PdhwcXwJ57Agg5_QJJU.js" type="deferjs"></script>
  613. <!--fixes for defer issues on drupal core js--><script type="deferjs">Drupal.attachBehaviors();</script><!-- Google Tag Manager --><script type="deferjs">(function(w,d,s,l,i){
  614.   cmg_gdpr_check = getCookie("GDPR");
  615.   cmg_gdpr_all_check = getCookie("GDPR_All");
  616.   cmg_gdpr_first_check = getCookie("GDPR_First");
  617.   cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  618.   if(cmg_gdpr_check != null && ( ( cmg_gdpr_reject_check == null && cmg_gdpr_all_check == null && cmg_gdpr_first_check == null) || (cmg_gdpr_reject_check !== null ) ) )  {
  619.     debugOut("gdpr country: stop analytics/GTM. "+new Date());
  620.     if(window.location.host == "stage.coolmath-games.com" || window.location.host == "d8-dev.coolmathgames.com" || window.location.host == "dev.coolmath-games.com" || window.location.host == "dev.coolmathgames.com" || window.location.host == "dev2.coolmath-games.com" || window.location.host == "dev2.coolmathgames.com" || window.location.host == "dev3.coolmath-games.com" || window.location.host == "dev3.coolmathgames.com" || window.location.host == "d8-test-coolmathgames.local") {
  621.       window['ga-disable-UA-1192998-21'] = true;
  622.     } else {
  623.       window['ga-disable-UA-1192998-2'] = true;
  624.     }
  625.     //Delete ga cookies, if they were set elsewhere
  626.     var cookies = document.cookie.split(";");
  627.     for (var i = 0; i < cookies.length; i++) {
  628.       if(/_ga|_gid|usprivacy/.test(cookies[i].split("=")[0])) {
  629.         setCookie2(cookies[i].split("=")[0], "", -1, ".coolmathgames.com");
  630.         setCookie2(cookies[i].split("=")[0], "", -1, location.host);
  631.         debugOut("Delete Analytics cookie "+cookies[i].split("=")[0]);
  632.       }
  633.     }
  634.   }
  635.   if (cmg_gdpr_check == null || (cmg_gdpr_check != null && cmg_gdpr_reject_check === null) ) {
  636.     w[l]=w[l]||[];w[l].push({'gtm.start':
  637.     new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  638.     j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  639.     'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  640.   }
  641. })(window,document,'script','dataLayer','GTM-WKRSNN8');
  642. function setCookie2(key, value, exptime, domain) {
  643.   //document.cookie = key + '=' + value + ';';
  644.   var d = new Date();
  645.   d.setTime(d.getTime() + exptime);
  646.   var expires = "expires=" + d.toUTCString();
  647.   document.cookie = key + "=" + value + "; " + expires + "; path=/; domain=" +domain;
  648. }
  649. </script><!-- End Google Tag Manager --><script type="text/javascript">
  650.   function getQParam(name) {
  651.     var regexS = "[\\?&]" + name + "=([^&#]*)";
  652.     var regex = new RegExp(regexS);
  653.     var results = regex.exec(location.href);
  654.     if (results === null) {
  655.       return "";
  656.     }
  657.     return decodeURIComponent(results[1].replace(/\+/g, " "));
  658.   }
  659.   cmatgame_subscriber = getCookie("cmg_sx");
  660.   if(getCookie("cmg_wl") !== null) {
  661.     cmatgame_subscriber = getCookie("cmg_wl");
  662.   }
  663.   freeTrialUser = false;
  664.   //TODO -- if freeTrialUser is needed in future
  665.   //if(!schoolHours && targetStateUser && cmg_active_anonymous_user === null && cmatgame_editor === null) {
  666.   //  freeTrialUser = true;
  667.   //}
  668.   var adBlockDisplayed = false;
  669.   window.addEventListener('load', (event) => {
  670.       //debugOut("AdRecovery: check1 ");
  671.     setTimeout(function () {
  672.       //debugOut("AdRecovery: Delayed loading of btloader "+new Date());
  673.       Defer.js('https://btloader.com/tag?o=5150306120761344&upapi=true', 'recovery', 1000);
  674.     }, 3000);
  675.   });
  676.  
  677.   </script><style type="text/css">
  678.     .mobile-device .game-item.mobile-hide, .mobile-device .game-item.mobile-not-playable, .dtp-device .game-item.dtp-hide { display: none; }
  679.   </style></head><body class="path-_-run-3 node-type-game node-11697 game-scalable html5 mobile-not-playable large-game-item not-active-user lang-default lang-en"><script type="text/javascript">
  680.   (function ($) {
  681.     $(document).ready(function () {
  682.       cmg_gdpr_check = getCookie("GDPR");
  683.       cmg_gdpr_all_check = getCookie("GDPR_All");
  684.       cmg_gdpr_first_check = getCookie("GDPR_First");
  685.       cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  686.       if (cmg_gdpr_check != null && cmg_gdpr_check == "true") {
  687.         if (cmg_gdpr_all_check == null && cmg_gdpr_first_check == null && cmg_gdpr_reject_check == null) { // user is visiting our site firsttime from one of GDPR countries
  688.           $("#yourCookieChoices").show();
  689.           if(typeof remove_ads_from_free_game_pages == "function") {
  690.               remove_ads_from_free_game_pages(); //$('.content-wrapper').css('pointer-events','default');
  691.           }
  692.         } else if (cmg_gdpr_all_check == null) { // user selected first party cookies or rejected all cookies so we need to remove ads
  693.           if(typeof remove_ads_from_free_game_pages == "function") {
  694.             remove_ads_from_free_game_pages();
  695.           }
  696.           var footerlink = '<li class="menu__item is-leaf last leaf"><a href="/cookie-choices" class="menu__link">Your Cookie Choices</a></li>';
  697.           $(".footer-menu-column-0 .footer-menu").append(footerlink);
  698.           // $('.content-wrapper').css('pointer-events','default');
  699.         } else if (cmg_gdpr_all_check !== null) { // user accepted all cookies
  700.           var footerlink = '<li class="menu__item is-leaf last leaf"><a href="/cookie-choices" class="menu__link">Your Cookie Choices</a></li>';
  701.           $(".footer-menu-column-0 .footer-menu").append(footerlink);
  702.         }
  703.       }
  704.     });
  705.   }(jQuery));
  706.  
  707.   function closeCookieChoices() {
  708.     var d = new Date();
  709.     d.setTime(d.getTime() + (365 * 2 * 24 * 60 * 60 * 1000));
  710.     var expires = "expires=" + d.toUTCString();
  711.     document.cookie = "GDPR_All=true;" + expires + ";path=/";
  712.     document.cookie = "GDPR_CHOICE=GDPR_All;" + expires + ";path=/";
  713.     $("#yourCookieChoices").hide();
  714.     var footerlink = '<li class="last leaf"><a href="/cookie-choices" class="menu__link">YOUR COOKIE CHOICES</a></li>';
  715.     $(".footer-menu-column-0 ul.footer-menu").append(footerlink);
  716.   }
  717.  
  718.   function acceptAllCookies() {
  719.     var d = new Date();
  720.     d.setTime(d.getTime() + (365 * 2 * 24 * 60 * 60 * 1000));
  721.     var expires = "expires=" + d.toUTCString();
  722.     document.cookie = "GDPR_All=true;" + expires + ";path=/";
  723.     window.location = location.href;
  724.   }
  725.  
  726.   function acceptFirstpartyCookies() {
  727.     document.cookie = "GDPR_First=true" + ";path=/";
  728.     window.location = location.href;
  729.   }
  730.  
  731.   function rejectAllCookies() {
  732.     document.cookie = "GDPR_Reject=true" + ";path=/";
  733.     window.location = location.href;
  734.   }
  735. </script><div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas><style>
  736.   .game-on-mobile .game-progress-status{ min-height: 32px;}
  737. </style><div class="page global-wrapper"><main class="mt-0"><header class="page__header d-none d-lg-block"><div class="branding container"><div class="row"><div class="other-sites-wrapper col-lg-3 d-none d-lg-block pl-0"><div class="panel-pane pane-block pane-bean-new-go-ad-free"><a id="cmg-goadfree" onclick="goadfree_event_handler()" href="#">Go Ad Free!</a></div><div class="pane-bean-cm-top"><div class="promo-msg"><span><a href="/0-papas-pizzeria" class="hover-effect"><span class="promo-img"><img src="/themes/custom/coolmath/assets/images/promos/pizza.png" alt="Papa's Pizzeria Is Back!" width="24" height="24"></span><span class="promo-content">Papa's Pizzeria is<br/>open for business!</span></a></span></div></div><div class="viewWebLang" style="display:none"><a href="#" class="viewLangBtn" onclick="cmg_view_default_lang_site(this);">View site in english</a></div></div><div class="logo-container col-7 col-lg-6 "><a href="/" title="Home" rel="home" class="site-branding__logo"><img src="/themes/custom/coolmath/logo.svg" alt="Home" class="logo svg" width="438" height="61"/></a></div><div class="right-header-block col-2 col-lg-3 pr-0"><!-- user-avatar-form.twig --><div class="welcome-box"><a href="/signup" class="btn free-account" title="Get a Free Account"><span class="avatar"></span><span class="badge"></span><span class="new">NEW</span><span class="getuserprofile">Get your user profile</span><span class="earn">FREE | Earn XP | Level Up</span></a></li><div class="login-link my-2 my-lg-0"><p>or
  738.           <a href="/login" title="Log In" class="login">Log In</a></p></div></div></div></div></div><nav class="navbar navbar-expand-lg justify-content-between"><div class="container"><div class="navbar-container"><div class="settings-tray-editable block block--coolmath-desktopheadermenu" data-drupal-settingstray="editable"><div class="pane-menu-menu-desktop-header-menu"><div class="pane-content"><ul class="menu"><li  class="menu_most popular menu__link"><a href="/1-popular-games" class="menu_most popular menu__link" data-drupal-link-system-path="entityqueue/home_popular">Most Popular</a></li><li  class="menu_strategy menu__link"><a href="/1-strategy-games" class="menu_strategy menu__link" data-drupal-link-system-path="taxonomy/term/6">Strategy</a></li><li  class="menu_skill menu__link"><a href="/1-skill-games" class="menu_skill menu__link" data-drupal-link-system-path="taxonomy/term/46">Skill</a></li><li  class="menu_numbers menu__link"><a href="/1-number-games" class="menu_numbers menu__link" data-drupal-link-system-path="taxonomy/term/151">Numbers</a></li><li  class="menu_logic menu__link"><a href="/1-logic-games" class="menu_logic menu__link" data-drupal-link-system-path="taxonomy/term/91">Logic</a></li><li  class="menu_trivia menu__link"><a href="/trivia" class="menu_trivia menu__link" data-drupal-link-system-path="trivia">Trivia</a></li><li class="menu__item is-expanded expanded"><span  class="menu_more menu__link nolink">More</span><div class="expandable-wrapper"><ul class="menu"><li class="nested"><a href="/1-classic-games" class="menu_classic menu__link" data-drupal-link-system-path="taxonomy/term/211">Classic</a></li><li class="nested"><a href="/1-word-games" class="menu_word games menu__link" data-drupal-link-system-path="taxonomy/term/1059">Word Games</a></li><li class="nested"><a href="/0-jigsaw-puzzles" class="menu_puzzles menu__link" data-drupal-link-system-path="0-jigsaw-puzzles">Puzzles</a></li><li class="nested"><a href="/1-memory-games" class="menu_memory menu__link" data-drupal-link-system-path="taxonomy/term/181">Memory</a></li><li class="nested"><a href="/1-geography-games" class="menu_geography menu__link" data-drupal-link-system-path="taxonomy/term/206">Geography</a></li><li class="nested"><a href="/1-science-games" class="menu_science menu__link" data-drupal-link-system-path="taxonomy/term/626">Science</a></li></ul></div></li><li  class="menu_playlists menu__link"><a href="/1-playlists" class="menu_playlists menu__link" data-drupal-link-system-path="1-playlists">Playlists</a></li><li  class="menu_random menu__link random-redirect"><a href="/random" class="menu_random menu__link random-redirect" data-drupal-link-system-path="random">Random!</a></li><li  class="menu_unlocked menu__link"><a href="/1-daily-games" class="menu_unlocked menu__link" data-drupal-link-system-path="taxonomy/term/1056">Daily Games</a></li><li  class="menu_allgames menu__link"><a href="/1-complete-game-list" class="menu_allgames menu__link" data-drupal-link-system-path="1-complete-game-list">All Games A-Z</a></li></ul></div></div></div><div class="panel-pane pane-block pane-cmatgame-search-search-game"><div id="cmatgame-search-block-form"><div class="form-item"><label for="edit-search-bar">Search bar </label><input placeholder="Search by game name" type="text" name="search_bar" value="" size="60" maxlength="128" class="form-text menu-search-bar" style="display: none; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px;"><div id="close-search-box" style="display: none;">X</div></div><div class="search-results-container" style="display: none;"></div></div></div></div></div></nav></header><header class="page__header page__header_mobile d-lg-none"><div class="container-fluid"><div class="row"><div class="logo-container-mobile col-12 text-center"><a href="/" title="Home" rel="home" class="site-branding__logo"><img src="/themes/custom/coolmath/logo.svg" alt="Home" class="logo svg" width="438" height="61" /></a></div></div></div><nav class="navbar"><div class="navbar-inner"><button class="navbar-toggler" type="button"><span class="bar first"></span><span class="bar second"></span><span class="bar third"></span></button><div class="menu-overlay"></div><div class="navbar-container"><div class="mobile-menu-items"><div class="mi-title"><strong>Search</strong></div><div class="cmatgame-search-game pane-cmatgame-search-search-game"><div id="cmatgame-search-block-form"><div class="form-item"><label for="edit-search-bar">Search bar </label><input placeholder="Search by game name" type="text" name="search_bar" value="" size="60" maxlength="128" class="form-text menu-search-bar" style="display: none; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px;"><div id="close-search-box" style="display: none;">X</div></div><div class="search-results-container" style="display: none;"></div></div></div><div class="mi-title"><strong>Browse</strong></div><div class="settings-tray-editable block block--coolmath-desktopheadermenu" data-drupal-settingstray="editable"><div class="pane-menu-menu-desktop-header-menu"><div class="pane-content"><ul class="menu"><li  class="menu_most popular menu__link"><a href="/1-popular-games" class="menu_most popular menu__link" data-drupal-link-system-path="entityqueue/home_popular">Most Popular</a></li><li  class="menu_strategy menu__link"><a href="/1-strategy-games" class="menu_strategy menu__link" data-drupal-link-system-path="taxonomy/term/6">Strategy</a></li><li  class="menu_skill menu__link"><a href="/1-skill-games" class="menu_skill menu__link" data-drupal-link-system-path="taxonomy/term/46">Skill</a></li><li  class="menu_numbers menu__link"><a href="/1-number-games" class="menu_numbers menu__link" data-drupal-link-system-path="taxonomy/term/151">Numbers</a></li><li  class="menu_logic menu__link"><a href="/1-logic-games" class="menu_logic menu__link" data-drupal-link-system-path="taxonomy/term/91">Logic</a></li><li  class="menu_trivia menu__link"><a href="/trivia" class="menu_trivia menu__link" data-drupal-link-system-path="trivia">Trivia</a></li><li class="menu__item is-expanded expanded"><span  class="menu_more menu__link nolink">More</span><div class="expandable-wrapper"><ul class="menu"><li class="nested"><a href="/1-classic-games" class="menu_classic menu__link" data-drupal-link-system-path="taxonomy/term/211">Classic</a></li><li class="nested"><a href="/1-word-games" class="menu_word games menu__link" data-drupal-link-system-path="taxonomy/term/1059">Word Games</a></li><li class="nested"><a href="/0-jigsaw-puzzles" class="menu_puzzles menu__link" data-drupal-link-system-path="0-jigsaw-puzzles">Puzzles</a></li><li class="nested"><a href="/1-memory-games" class="menu_memory menu__link" data-drupal-link-system-path="taxonomy/term/181">Memory</a></li><li class="nested"><a href="/1-geography-games" class="menu_geography menu__link" data-drupal-link-system-path="taxonomy/term/206">Geography</a></li><li class="nested"><a href="/1-science-games" class="menu_science menu__link" data-drupal-link-system-path="taxonomy/term/626">Science</a></li></ul></div></li><li  class="menu_playlists menu__link"><a href="/1-playlists" class="menu_playlists menu__link" data-drupal-link-system-path="1-playlists">Playlists</a></li><li  class="menu_random menu__link random-redirect"><a href="/random" class="menu_random menu__link random-redirect" data-drupal-link-system-path="random">Random!</a></li><li  class="menu_unlocked menu__link"><a href="/1-daily-games" class="menu_unlocked menu__link" data-drupal-link-system-path="taxonomy/term/1056">Daily Games</a></li><li  class="menu_allgames menu__link"><a href="/1-complete-game-list" class="menu_allgames menu__link" data-drupal-link-system-path="1-complete-game-list">All Games A-Z</a></li></ul></div></div></div><!-- user-avatar-form.twig --><div class="welcome-box"><a href="/signup" class="btn free-account" title="Get a Free Account"><span class="avatar"></span><span class="badge"></span><span class="new">NEW</span><span class="getuserprofile">Get your user profile</span><span class="earn">FREE | Earn XP | Level Up</span></a></li><div class="login-link my-2 my-lg-0"><p>or
  739.           <a href="/login" title="Log In" class="login">Log In</a></p></div></div></div></div></div></nav></header><div class="page__content"><div class="game-container"><div class="row leaderboard"><div class="col-12"><div id="block-coolmath-adstop-otherpage-728x90" class="settings-tray-editable block block-cmatgame-core block-adstop-otherpage-728x90" data-drupal-settingstray="editable"><div class="view-content"><div class="item-list"><div class="panel-pane pane-block pane-cmatgame-advertisement-cm-g-otherpages-728-90"><div class="ad-wrapper"><!-- 728 x 90 ATF Desktop --><div id="leaderboard-atf"></div></div></div></div></div></div></div></div><div class="row pb-3 mr-lg-5"><div class="main-col col-sm-12 col-md-12 col-lg-9 col-xl-9 pl-lg-0"><a id="main-content" tabindex="-1"></a><div class="inside"><div data-drupal-messages-fallback class="hidden"></div><div id="block-coolmath-breadcrumbs" class="settings-tray-editable block block-system block-system-breadcrumb-block" data-drupal-settingstray="editable"><div class="view-content"></div></div><div id="block-coolmath-page-title" class="block block-core block-page-title-block"><div class="view-content"><div class="cmatgame-title"><h1 class="pane-title"><span><span>Run 3</span></span></h1></div><div id='thumbsup'><span id='thumbsuplike_message'></span><span class='thumbsupmessage'></span><div class="like-container-entity-node" id="like-container-11697"><div class="like inline float-left"><input type='hidden' id='thumbsvote' value="false"/><a href="javascript:;" nodeid="11697" class="enable entity-node"><img src="/modules/custom/cmatgame_core/images/thumbs_up_white.png" width="22" height="23" alt="Like" title="Like" class="entity-node"></a></div></div><div class="dislike-container-entity-node" id="dislike-container-11697"><div class="dislike inline float-left"><input type='hidden' id='thumbsvote' value="false"/><a href="javascript:;" nodeid="11697" class="enable entity-node"><img src="/modules/custom/cmatgame_core/images/thumbs_down_white.png" width="22" height="23" alt="Dislike" title="Dislike" class="entity-node"></a></div></div><input type="hidden" id="gamerating" name="gamerating" value=""/><input type="hidden" id="percentlike_vote" name="percentlike_vote" value="yes"/></div></div></div><div id="block-coolmath-coolmath-system-main" class="block block-system block-system-main-block"><div class="view-content"><div class="d-none d-lg-block game-on_device game-on-desktop"><div class="like-block mb-4"><div id="block-coolmath-carouselingamedetailpage" class="settings-tray-editable block block-cmatgame-core block-gamedetailcarousel" data-drupal-settingstray="editable"><div class="view-content"><div class="pane-game-details-carousel-game-detail"><div class='view-display-id-carousel_game_detail'><div class='view-header'><p>You'll Also Like...</p></div><div class='view-content'><div><div class='bx-wrapper jcarousel-wrapper'><div class='jcarousel'><ul><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-powerline-io?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Powerline.io Game" title="Powerline.io" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/powerline-io-game-logo_2.png?itok=MrZUk6sS" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Powerline</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run Game" title="Run" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-run.gif?itok=tJ3S1KBf" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run-2?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run 2 Game" title="Run 2" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-run-2.gif?itok=OUON_qjA" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run 2</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-snake?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Snake Game" title="Snake" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/snake-game-logo_0.png?itok=W3gOxqtt" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Snake</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-60-second-burger-run?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="60 Second Burger Run Game" title="60 Second Burger Run" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-60-second-burger-run.gif?itok=MB4wDejP" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">60 Second Burger Run</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space Is Key Game" title="Space Is Key" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-space-is-key.gif?itok=M9eX-2Yj" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space Is Key</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key-2?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space Is Key 2 Game" title="Space Is Key 2" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-space-is-key-2.gif?itok=6AoJCQhw" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space Is Key 2</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key-ultimate-challenge?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space is Key: Ultimate Challenge Game" title="Space is Key: Ultimate Challenge" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/space-is-key-ultimate-challenge-logo.png?itok=fpldC-Su" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space is Key Ultimate</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-potatoman-seeks-the-troof?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Potatoman Seeks the Troof Game" title="Potatoman Seeks the Troof" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/potatoman-seeks-the-troof-game-logo.png?itok=CTyA2AEx" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Potatoman Seeks the Troof</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run-3-flash?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run 3 - Flash Version Game" title="Run 3 - Flash Version" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/run-3-game-logo.png?itok=Jrwbbebu" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run 3 - Flash Version</span></h5></a></div></div></li></ul></div><div class="bx-controls-direction1"><a href="#" class="jcarousel-control-prev">‹</a><a href="#" class="jcarousel-control-next">›</a></div></div></div></div></div></div></div></div></div><div class="btn-container"><a href="/playlists/0-run-3" class="btn btn-primary btn-md mb-2 playlist-count">This Game is in Playlists</a></div><div id="block-system-main" class="mt-3"><script type="deferjs">
  740.       (function ($, Drupal) {
  741.             $(document).ready(function () {
  742.               var gamePlaylistCount = drupalSettings.cmatgame.gamePlaylistCount;
  743.               var varViewPlayListText_1 = drupalSettings.cmatgame.varViewPlayListText_1;
  744.               var varPlayListText_1 = drupalSettings.cmatgame.varPlayListText_1;
  745.               var varGameInText_1 = drupalSettings.cmatgame.varGameInText_1;
  746.               if (gamePlaylistCount > 0) {
  747.                 var playlistMessage = "";
  748.                 if (gamePlaylistCount > 0 && gamePlaylistCount<= 9) {
  749.                     playlistMessage = varViewPlayListText_1;
  750.                   } else if(gamePlaylistCount >= 10 && gamePlaylistCount < 100) {
  751.                   gamePlaylistCount = parseInt(gamePlaylistCount / 10) * 10;
  752.                   playlistMessage = varGameInText_1+ " " + gamePlaylistCount + "+ "+varPlayListText_1;
  753.                 } else if (gamePlaylistCount >= 100 && gamePlaylistCount < 9999) {
  754.                   gamePlaylistCount = parseInt(gamePlaylistCount / 100) * 100;
  755.                   playlistMessage = varGameInText_1+ " " + gamePlaylistCount + "+ "+varPlayListText_1;
  756.                 } else {
  757.                   playlistMessage = varGameInText_1+" 9999+ "+varPlayListText_1;
  758.                 }
  759.                 $(".playlist-count").html(playlistMessage);
  760.                 $(".playlist-count").prependTo('.d-lg-block .block-gamedetailcarousel');
  761.                 $(".playlist-count").show();
  762.               }
  763.             });
  764.           })(jQuery, Drupal);
  765.     </script><article data-history-node-id="11697" role="article" about="/0-run-3" class="node node-game node--view-mode-full clearfix game-w-summary game-field-wrapper"><header></header><script type="deferjs">
  766.         if (typeof signupPromoTop !== 'undefined' && signupPromoTop !== '') {
  767.                 signupContainerTop = '<div class="signup-container-top"><a href="/subscribe/2efa4bc4" onclick="preroll_signup_top_handler();">' + signupPromoTop + '</a></div>';
  768.               } else {
  769.                 signupPromoTop = '';
  770.                 signupContainerTop = '<div class="signup-container-top"><a href="/subscribe/2efa4bc4" onclick="preroll_signup_top_handler();">' + signupPromoTop + '</a></div>';
  771.               }
  772.               if (typeof signupPromoBottom !== 'undefined' && signupPromoBottom !== '') {
  773.                 signupContainerBottom = '<div class="signup-container-bottom"><a href="/subscribe/2efa4bc4" onclick="preroll_signup_bottom_handler();">' + signupPromoBottom + '</a></div>';
  774.               } else {
  775.                 signupPromoBottom = '';
  776.                 signupContainerBottom = '<div class="signup-container-bottom"><a href="/subscribe/2efa4bc4" onclick="preroll_signup_bottom_handler();">' + signupPromoBottom + '</a></div>';
  777.               }
  778.               function preroll_signup_top_handler() {
  779.                 trackEvent('Preroll Signup Clicked', 'Preroll Signup Top', document.title);
  780.               }
  781.               function preroll_signup_bottom_handler() {
  782.                 trackEvent('Preroll Signup Clicked', 'Preroll Signup Bottom', document.title);
  783.                                                         }
  784.     </script><script type="application/ld+json">
  785.              [
  786.               {
  787.                 "@context": "https://schema.org",
  788.                 "@type": "WebApplication",
  789.                 "name": "Run 3",
  790.                 "url": "https://www.coolmathgames.com//0-run-3",
  791.                 "author": {
  792.                   "@type": "Organization",
  793.                   "name": "Coolmath games"
  794.                 },
  795.                 "description":"Complete the Run trilogy! Explore hundreds of new levels in a huge new galaxy. Ready... set... GO!\r\n",
  796.                 "applicationCategory": "Game",
  797.                 "operatingSystem": "any",
  798.                 "screenshot": {
  799.                   "@type": "ImageObject",
  800.                   "thumbnailUrl":  "https://www.coolmathgames.com//sites/default/files/run-3.png"
  801.                 },
  802.                                 "aggregateRating":{
  803.                    "@type":"AggregateRating",
  804.                    "worstRating":1,
  805.                    "bestRating":5,
  806.                    "ratingValue":4.7,
  807.                    "ratingCount":2699730
  808.                 },
  809.                                 "offers": {
  810.                   "@type": "Offer",
  811.                   "category": "free",
  812.                   "price": 0,
  813.                   "priceCurrency": "USD"
  814.                 }
  815.               },
  816.               {
  817.                 "@context": "https://schema.org",
  818.                 "@type": "VideoGame",
  819.                 "name": "Run 3",
  820.                 "url": "https://www.coolmathgames.com//0-run-3",
  821.                 "author": {"@type": "Organization", "name": "Coolmath games"},
  822.                 "description":"Complete the Run trilogy! Explore hundreds of new levels in a huge new galaxy. Ready... set... GO!\r\n",
  823.                 "applicationCategory": "Game",
  824.                 "operatingSystem": "any",
  825.                 "gamePlatform": "any",
  826.                                 "genre": "Platformer Games",
  827.                                 "screenshot": {"@type": "ImageObject", "thumbnailUrl":  "https://www.coolmathgames.com//sites/default/files/run-3.png"},
  828.                                   "aggregateRating":{"@type":"AggregateRating", "worstRating":1, "bestRating":5, "ratingValue":4.7, "ratingCount":2699730 },
  829.                                 "offers": {"@type": "Offer", "category": "free", "price": 0, "priceCurrency": "USD"}
  830.               }            ]
  831.       </script><div class="node__content clearfix field-item"><div class="no-flash-overlay-mobile" style="display:none;"><p><strong>Sorry... this game is not playable in your browser.</strong></p></div><div id="no-flash-overlay" style="display:none;"><a href="http://www.adobe.com/go/getflashplayer" target="_blank"><img class="lazylad" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/enable-flash-chrome.png" alt="click to enable flash"/></a></div><div id="does-not-support-ie" style="display:none;"></div><div id="newFlashDetectHtml" style="display:none;"><div class="row"><div class="col-md-12 flashIntroTxt"><img src="/sites/default/files/run-3.png" border="0" class="flashNotFoundImgStyle"></div></div><div class=""><div class=" flashIntroTxtImg"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/cmatgameimages/flash-page-message-with-robot.png"></div></div><div class="row"><div class="related-game-block"><div class="block block-cmatgame-playlist block-related-game-block"><div class="view-content"><div class="views-element-container flashContainerList"><div class="common-title"><span class="title-with-button"><div><span style='font-family: "CCSmash";font-size: 1.125rem;line-height: 1.375rem;text-transform: none;'>In the meantime, related games you might love:</span></div></span></div><div class="view-content"><div><div class="pane-content js-view-dom-id-7140079e46f72a7c8e6b9ad1e953026a1b15c1da48b375d7a4ff28c1c4bdc940"><div class="views-row"><div class="game-item"><div class="game-link-wrapper"><a href="/0-powerline-io"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" data-src="https://www.coolmathgames.com/sites/default/files/game_thumbnail/powerline-io-game-logo_2.png" width="83" height="50" alt="Powerline.io" title="Powerline.io" class="imgList lazyload" typeof="foaf:Image"></div><h3 class="game-title">Powerline.io</h3></a></div><div class="game-item-description"><div class="field-body"><p>Earn XP and Achievements in multiplayer Snake!</p></div></div></div><div class="game-item"><div class="game-link-wrapper"><a href="/0-run"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" data-src="https://www.coolmathgames.com/sites/default/files/game_thumbnail/game-logo-run.gif" width="83" height="50" alt="Run" title="Run" class="imgList lazyload" typeof="foaf:Image"></div><h3 class="game-title">Run</h3></a></div><div class="game-item-description"><div class="field-body"><p>Classic Run... now remastered in 3D!</p></div></div></div><div class="game-item"><div class="game-link-wrapper"><a href="/0-run-2"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" data-src="https://www.coolmathgames.com/sites/default/files/game_thumbnail/game-logo-run-2.gif" width="83" height="50" alt="Run 2" title="Run 2" class="imgList lazyload" typeof="foaf:Image"></div><h3 class="game-title">Run 2</h3></a></div><div class="game-item-description"><div class="field-body"><p>Intense wall-jumping fun in a 3D obstacle course!</p></div></div></div><div class="game-item"><div class="game-link-wrapper"><a href="/0-snake"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" data-src="https://www.coolmathgames.com/sites/default/files/game_thumbnail/snake-game-logo_0.png" width="83" height="50" alt="Snake" title="Snake" class="imgList lazyload" typeof="foaf:Image"></div><h3 class="game-title">Snake</h3></a></div><div class="game-item-description"><div class="field-body"><p>Eat the apples. How long can you survive?</p></div></div></div></div></div></div></div></div></div></div></div></div></div><div id="big-screen-container" class="big-screen-container-class" style="display:none;"><div class="big-screen-head row"><div class="bs-head-logo col-md-2"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/cool-math-logo.png"></div><div class="bs-head-txt col-md-9">Premium Gaming Without Distractions</div><div class=" col-md-1"><div class="bs-close-button"><a href="#" class="bs-close-btn" onclick="bigscreen_overlay_promo_close_handler(); return false;">X</a></div></div></div><div class="mid-big-section-head "><div class="row"><div class="col-md-12"><div class="h2 get-premium"><span>Get Premium Big Screen Mode</span></div></div><div class="col-md-12"><div class="h3 *unlimited"><span>Unlimited Big Screen Gaming & More!<span></div></div></div><div class="img-container-big-screen row"><div class="image-bs-sample col-md-5"><div class="h2 from-this"><span>From This</span></div><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/BigScreen-small.png"></div><div class="image-bs-sample col-md-7"><div class="h2 to-this"><span>
  832.                   To this
  833.                 </span></div><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/bigscreen-big.png"></div></div><div><div class="bs-footer-link"><a href="/premium-access/6ea95de6" onclick="bigscreen_overlay_promo_signup_handler(); return false;"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/get-premium-btn.png"></a></div><div class="bs-learn-more"><a href="/premium-benefits" onclick="bigscreen_overlay_promo_more_handler(); return false;" class="bs-lrn-more">Learn More</a></div><div class="bs-no-thks"><a href="" class="bs-lnk-lrn-more" onclick="bigscreen_overlay_promo_close_handler(); return false;">No, Thanks. I just want to play games right now.</a></div></div></div></div><div id="id-adfree-marketing-campaign" class="adfree-marketing-campaign" style="display:none;"><div class="big-screen-head row"><div class="bs-head-logo col-md-2"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/cool-math-logo.png"></div><div class="bs-head-txt col-md-8">Get Premium Distraction Free Gaming!</div><div class="col-md-2"><div class="bs-close-button"><a href="#" class="bs-close-btn" onclick="adfree_marketing_overlay_promo_close_handler(); return false;">X</a></div></div></div><div class="mid-big-section-head  adfree-mid-section-marketing-campaign"><div class="mkt-container-co row"><div class="mkt-container1 col-md-5"><img src="/themes/custom/coolmath/assets/images/full-screen/ad-free-icon-up.png"></div><div class="ad-free-txt  col-md-5"><span class="sup-bold">AD-FREE:</span>
  834.                 The best gaming experience!</div></div><div class="img-container-big-screen row"><div class="" style="padding-left:10px;"><div class="image-bs-sample"><img src="/themes/custom/coolmath/assets/images/full-screen/no-waiting-up.png"></div><div class="no-waiting-txt"><div class="sup-bold-2">No Waiting:</div>
  835.                   Skip Immediately to the Game</div></div><div class="" style="padding-left:10px;"><div class="image-bs-sample"><img src="/themes/custom/coolmath/assets/images/full-screen/reduce-leg-up.png"></div><div class="no-waiting-txt"><div class="sup-bold-2">Reduced Lag:</div>
  836.                   Faster, Cleaner Gaming</div></div></div><div class="better-focus-container "><div class="image-better-focus"><img src="/themes/custom/coolmath/assets/images/full-screen/better-focus-up.png"></div><div class="no-waiting-txt  "><div class="sup-bold-2">Better Focus:</div>
  837.                 Stay Game-Concentrated</div><div class="all-excl-txt">And More Exclusive features for Premium Members!</div></div><div class="marketing-cmpn-footer"><div class="bs-footer-link"><a href="/premium-access/b2df5a33" target="_blank" onclick="adfree_marketing_overlay_promo_signup_handler(); return false;"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/full-screen/get-premium-btn.png"></a></div><div class="bs-learn-more"><a href="/premium-benefits" target="_blank" onclick="adfree_marketing_overlay_promo_more_handler(); return false;" class="bs-lrn-more">Learn More</a></div><div class="bs-no-thks"><a href="" class="bs-lnk-lrn-more" onclick="adfree_marketing_overlay_promo_close_handler(); return false;">No, Thanks. I just want to play games right now.</a></div></div></div></div><div id="playlist-marketing-container-id"></div><div class="field-game" id="swfgamewrapper"><iframe1 class="square no-select" width="800px" height="600px" src="https://www.coolmathgames.com/0-run-3/play" frameborder="0" id="html5game" scrolling="no" sandbox="allow-scripts allow-same-origin allow-modals"></iframe1></div><script type="deferjs">
  838.   var browser = (function () {
  839.     var test = function (regexp) {
  840.       return regexp.test(window.navigator.userAgent)
  841.     }
  842.     switch (true) {
  843.       case test(/edg/i):
  844.         return "Microsoft Edge";
  845.       case test(/trident/i):
  846.         return "Microsoft Internet Explorer";
  847.       case test(/firefox|fxios/i):
  848.         return "Mozilla Firefox";
  849.       case test(/opr\//i):
  850.         return "Opera";
  851.       case test(/ucbrowser/i):
  852.         return "UC Browser";
  853.       case test(/samsungbrowser/i):
  854.         return "Samsung Browser";
  855.       case test(/chrome|chromium|crios/i):
  856.         return "Google Chrome";
  857.       case test(/safari/i):
  858.         return "Apple Safari";
  859.       default:
  860.         return "Other";
  861.     }
  862.   })();
  863.   jQuery(document).ready(function () {
  864.     if (typeof drupalSettings != "undefined" && typeof drupalSettings.cmatgame != "undefined" && typeof drupalSettings.cmatgame.flash_emulation != "undefined" && drupalSettings.cmatgame.flash_emulation === "2" && ( /mediatek/i.test(navigator.userAgent) || /aarch64/i.test(navigator.userAgent) ) ) {
  865.       jQuery('html').addClass('mediatek');
  866.     }
  867.   });
  868.  
  869.   // user profile related variables
  870.   gameId = 11697;
  871.   is_level_based = 0;
  872.   level_offset = 0;
  873.   xp_per_level = 10;
  874.   doesnotie = 0;
  875.   flashemulation = '';
  876.   iframed_game_url = '';
  877.   cmatgame_premium_free_game_limit_days = '180';
  878.   fastly_frontend_domain = 'https://www.coolmathgames.com';
  879.   stripe_subscription_free_trial_group_token = 'b2df5a33';
  880.   destination = '/0-run-3';
  881.  
  882.  
  883.   var userprofile_level_xp = "100,200,250,300,350,400,450,500,550,625,700,775,850,925,1000,1075,1150,1225,1300,1375,1450,1525,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800,3900,4000,4100,4200,4300,4400,4500,4600,4700,4800,4900,5000,5100,5200,5300,5400,5500,5600,5700,5800,5900,6000,6100,6200,6300,6400,6500,6600,6700,6800,6900,7000,7100,7200,7300,7400,7500,7600,7700,7800,7900,8000,8100,8200,8300,8400,8500,8600,8700,8800,8900,9000,9100,9200,10000";
  884.   userprofile_level_xpData = userprofile_level_xp.split(",");
  885.   incrementedTotalPlays = false;
  886.   lastKeyBoardorMouseActivityTime = Date.now();
  887.   workerstatusvar = "notstartedinit";
  888.   supportCMGDefault = false; // disable a/b test
  889.   supportCMGABTest = false;
  890.   supportCMGABTestImage1 = false;
  891.   supportCMGABTestImage2 = false;
  892.   supportCMGABTestImage3 = false;
  893.  
  894.   // define all the marketing promo values to false if they are not defined before
  895.   if (typeof watchAdtoUnlockGame == "undefined") {
  896.     watchAdtoUnlockGame = false;
  897.   }
  898.   if (typeof displayAdblockOverlay == "undefined") {
  899.     displayAdblockOverlay = false;
  900.   }
  901.   if (typeof supportCMG == "undefined") {
  902.     supportCMG = false;
  903.   }
  904.   if (typeof premiumAvatarGame == "undefined") {
  905.     premiumAvatarGame = false;
  906.   }
  907.  
  908.   gamesPlayed = parseInt(localStorage.getItem('gamesPlayed') || 0);
  909.  
  910.     cmg_stop_truex_promo = "";
  911.   truex_overlay_preroll_ad_display = false;
  912.          // Big-screen promo games clss-2990
  913.   //bs_promo_pages    = /(0-(2048|awesome-planes|awesome-tanks-2|battlecoast|snake|big-ice-tower-tiny-square|big-tower-tiny-square|bloons-tower-defense-3|bob-the-robber|burrito-bison|cannon-basketball-4|choppy-orc|circloo|circloo-2|dolphin-olympics|dolphin-olympics-2|duck-life|duck-life-2-world-champion|duck-life-3-evolution|duck-life-4|duck-life-treasure-hunt|emperors-on-ice|idle-breakout|just-one-boss|learn-to-fly|learn-to-fly-2|learn-to-fly-3|learn-to-fly-idle|mainlands-wars|overlords-new-mansion|papas-freezeria|parking-fury-2|pre-civilization-bronze-age|raft-wars|raft-wars-2|retro-ping-pong|run-3|start-powerless|stickman-swing|the-sun-for-the-vampire|the-sun-for-the-vampire-2|the-sun-for-the-vampire-3|table-tanks|tail-of-the-dragon|the-final-earth|the-final-earth-2|tic-tac-toe|tower-of-destiny|toy-defense|truck-loader-4|wiz|wonderputt|worlds-hardest-game|worlds-hardest-game-2|worlds-hardest-game-3|8-ball-pool|archery-world-tour|awesome-tanks|mainlands-wars|big-tower-tiny-square|handulum|raft-wars|run-3|the-sun-for-the-vampire|tower-of-destiny|wonderputt|papas-freezeria|raft-wars))/;
  914.   bs_promo_pages    = /999999/;
  915.    // ad free marketing pages clss-3014
  916.   // adfreeMktPages    = /(0-(4-in-a-row|60-second-burger-run|apple-worm|arcade-golf-neon|basketball-master-2|black-and-white|bloxorz|bob-the-robber-to-go|candy-jump|cannon-basketball-2|cannon-basketball-3|chef-slash|chrome|color-pipes|crazy-eights|crazy-taxi-m122|cube-flip|cubeform|diggy|divide|emerald-and-amber|factory-balls-forever|get-to-the-other-side|gravity-control|hefty-shaman|idle-dice|interstate-drifter-1999|jellybots|jumpless-world|jumpnull|kirigami|lemonade-stand|loop-path|mow-it|ovo|papa-louie-2-when-burgers-attack|papa-louie-3-when-sundaes-attack|parking-fury-3|parkingmania|parking-mania-2|push-your-luck|puzzle-ball|rabbit-samurai|rabbit-samurai|red-ball-4|roller-baller|stranded-isle|sudoku|super-ordinary-joe|there-is-no-game|word-search|crazy-taxi-m12))/;
  917.   adfreeMktPages = /999999/;
  918.    // avatarMktPages
  919.    // CmgDefault not having games clss-3020
  920.   //cmgDefaultGameUrl = /(0-(fireboy|4-in-a-row|60-second-burger-run|apple-worm|arcade-golf-neon|basketball-master-2|black-and-white|bloxorz|bob-the-robber-to-go|candy-jump|cannon-basketball|cannon-basketball-2|cannon-basketball-3|chef-slash|chrome|color-pipes|crazy-eights|crazy-taxi-m12|cube-flip|cubeform|diggy|divide|emerald-and-amber|factory-balls-forever|get-to-the-other-side|gravity-control|hefty-shaman|idle-dice|interstate-drifter-1999|jellybots|jumpless-world|jumpnull|kirigami|lemonade-stand|loop-path|mow-it|ovo|papa-louie-2-when-burgers-attack|papa-louie-3-when-sundaes-attack|parking-fury|parking-fury-3|parkingmania|parking-mania-2|push-your-luck|puzzle-ball|rabbit-samurai|red-ball-4|roller-baller|stranded-isle|sudoku|super-ordinary-joe|there-is-no-game|word-search|abandoned-2-the-forest|abandoned|axiel|bounce-floor|crossy-cat|cupcake-monster|encase|factory-balls|factory-balls-2|factory-balls-3|factory-balls-4|into-space|into-space-2|jelly-escape|marble-trap|mini-golf-adventures|mini-metro-london|off-the-line|pathfinder|red|red-ball-4-volume-2|red-ball-4-volume-3|slime-laboratory|slime-laboratory-2|stranded-isle|solitaire|spot-the-difference|the-ranger-with-the-magic-bow|three-goblets|zombie-launcher|wipo|super-rhino-turtle|round-runner|space-is-key|space-is-key-2|space-is-key-ultimate-challenge|zombie-launcher-2|2048|8-ball-pool|archery-world-tour|awesome-planes|awesome-tanks|awesome-tanks-2|basket-and-ball|battlecoast|big-ice-tower-tiny-square|big-tower-tiny-square|block-the-pig|bloons-tower-defense-3|bob-the-robber|burrito-bison|cannon-basketball-4|catch-the-candy|catch-the-candy-halloween|catch-the-candy-mech|catch-the-candy-xmas|checkers|chess|choppy-orc|circloo|circloo-2|clicker-heroes|copter-royale|darts|dolphin-olympics|dolphin-olympics-2|duck-life|duck-life-2-world-champion|duck-life-3-evolution|duck-life-4|duck-life-treasure-hunt|emperors-on-ice|handulum|hangman|idle-breakout|iq-ball|jacksmith|jelly-truck|johnny-upgrade|just-one-boss|learn-to-fly|learn-to-fly-2|learn-to-fly-3|learn-to-fly-idle|mainlands-wars|moto-x3m|moto-x3m-pool-party|moto-x3m-spooky-land|overlords-new-mansion|papas-bakeria|papas-burgeria|papas-cheeseria|papas-cupcakeria|papas-donuteria|papas-freezeria|papas-hot-doggeria|papas-pancakeria|papas-pastaria|papas-pizzeria|papas-scooperia|papas-sushiria|papas-taco-mia|papas-wingeria|parking-fury-2|poptropica|powerline-io|pre-civilization-bronze-age|raft-wars|raft-wars-2|retro-ping-pong|run|run-2|run-3|snake|start-powerless|stickman-swing|sticky-ninja-academy|sticky-ninja-missions|the-sun-for-the-vampire|the-sun-for-the-vampire-2|the-sun-for-the-vampire-3|table-tanks|tail-of-the-dragon|tarzan-ball|the-final-earth|the-final-earth-2|tic-tac-toe|tower-of-destiny|toy-defense|truck-loader-4|wiz|wonderputt|worlds-hardest-game|worlds-hardest-game-2|worlds-hardest-game-3|space-is-key-christmas|defly-io))/;
  921.   cmgDefaultGameUrl = /999999/;
  922.    // premiumAvtar not having games clss-3021
  923.   //premiumAvatarMktPages = /(0-(basket-and-ball|block-the-pig|catch-the-candy|catch-the-candy-halloween|catch-the-candy-mech|catch-the-candy-xmas|clicker-heroes|copter-royale|defly-io|hangman|iq-ball|jacksmith|jelly-truck|johnny-upgrade|moto-x3m-winter|moto-x3m-spooky-land|moto-x3m-pool-party|redline-pong|poptropica|powerline-io|run|run-2|sticky-ninja-academy|sticky-ninja-missions|tarzan-ball|darts|papas-burgeria|papas-bakeria|papas-cheeseria|papas-cupcakeria|papas-donuteria|papas-hot-doggeria|papas-pancakeria|papas-pastaria|papas-pizzeria|papas-scooperia|papas-sushiria|papas-taco-mia|papas-wingeria))/;
  924.   premiumAvatarMktPages = /999999/;
  925.   premiumAvatarGame = false;//disabling to fix timer count down issue
  926.  
  927.    // playlist marketing promo games clss-3007
  928.   //playlistMktPages = /(0-(abandoned-2-the-forest|abandoned|axiel|bounce-floor|crossy-cat|cupcake-monster|encase|factory-balls|factory-balls-2|factory-balls-3|factory-balls-4|into-space|into-space-2|jelly-escape|marble-trap|mini-golf-adventures|mini-metro-london|off-the-line|pathfinder|red|red-ball-4-volume-2|red-ball-4-volume-3|slime-laboratory|slime-laboratory-2|stranded-isle|solitaire|spot-the-difference|the-ranger-with-the-magic-bow|three-goblets|zombie-launcher|wipo|super-rhino-turtle|round-runner|space-is-key|space-is-key-2|space-is-key-ultimate-challenge|zombie-launcher-2))/;
  929.   playlistMktPages = /999999/;
  930.  
  931.   function doesnotIEMessage() {
  932.     jQuery('.field-game').css('display', 'none');
  933.     jQuery('.no-flash').css('display', 'none');
  934.     jQuery('#afg_container').css('display', 'none').html('<div></div>');
  935.     jQuery('#does-not-support-ie').show();
  936.     jQuery('#afg_preloader').css('display', 'none').html('<div></div>');;
  937.     jQuery('#does-not-support-ie').html('<img src="/themes/custom/coolmath/assets/images/does-not-support-ie.png" alt="does not support ie"/> ');
  938.     jQuery('.load-wrap').hide();
  939.     jQuery('#continue-container').hide();
  940.     jQuery('#afg_preloader').hide();
  941.   }
  942.  
  943.   function getGameName() {
  944.     var url = window.location.href;
  945.     var lastPart = url.split("/").pop();
  946.     return lastPart;
  947.   }
  948.   var coep_frame_type = 'crossorigin="use-credentials"';
  949.   if(/(Firefox)/.test(navigator.userAgent)) {
  950.     coep_frame_type = 'allow="cross-origin-isolated"';
  951.   }
  952.   function setIframeHeight(iframe) {
  953.     if (iframe) {
  954.     /*
  955.                 var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
  956.                 if (iframeWin.document.body) {
  957.                         iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight;
  958.                 }
  959.         */
  960.       var gamename = getGameName();
  961.       if (gamename == "0-chess") {
  962.         iframe.height = "620px";
  963.       }
  964.     }
  965.   };
  966.  
  967.     jQuery(function(){
  968.     setIframeHeight(document.getElementById('html5game'));
  969.   });
  970.  
  971.   /** For big screen promo with list of games to appear
  972.   */
  973.   function checkBigScreenPromoURL() {
  974.     bigScreenPromoGame = false;
  975.     if (bs_promo_pages.test(location.pathname)) {
  976.       bigScreenPromoGame = true;
  977.       jQuery(document).ready(function () {
  978.         jQuery(".pane-bean-new-go-ad-free").html('<a class="bigscreenanchor" onclick="bigscreen_overlay_promo_signup_handler(\'Get big screen mode - header button clicked\'); return false;" href="/premium-access/6ea95de6">Go Big Screen!</a>');
  979.         jQuery('#right-rail-big-screen-promo').show();
  980.       });
  981.     }
  982.   }
  983.   checkBigScreenPromoURL();
  984.  
  985.   /**
  986.   ** check for marketing game promo for game page. check for specific games to make this popover appear.
  987.   */
  988.   function checkAdfreeMktCmpgnURL() {
  989.     AdfreeMktCmpGame = false;
  990.     if ((typeof adfreeMktPages != 'undefined' && adfreeMktPages.test(location.pathname)) || (location.pathname == "/0-cannon-basketball") || (location.pathname == "/0-parking-fury")) {
  991.       AdfreeMktCmpGame = true;
  992.       jQuery(document).ready(function () {
  993.         jQuery(".pane-bean-new-go-ad-free").html('<a class="adfree-marketing-logo" onclick="adfree_marketing_overlay_promo_signup_handler(\'Get Adfree Marketing screen mode - header button clicked\'); return false;" href="/premium-access/b2df5a33">Go Big Screen!</a>');
  994.         jQuery('#right-rail-adfree-marketing-promo').show();
  995.       });
  996.     }
  997.   }
  998.   checkAdfreeMktCmpgnURL();
  999.  
  1000.   /**
  1001.   ** check for playlist marketing game promo for game page. check for specific games to make this popover appear.
  1002.   */
  1003.   function checkPlaylistMktCmpgnURL() {
  1004.     playListMktCmpGame = false;
  1005.     if (playlistMktPages.test(location.pathname)) {
  1006.       playListMktCmpGame = true;
  1007.       jQuery(document).ready(function () {
  1008.        // jQuery(".pane-bean-new-go-ad-free").html('<a class="playlist-marketing-logo" onclick="playlist_marketing_overlay_promo_signup_handler(\'Get Playlist Marketing screen mode - header button clicked\'); return false;" href="/premium-access/b2df5a33">Go Big Screen!</a>');
  1009.         jQuery('.playlist-right-side-promo').show();
  1010.       });
  1011.     }
  1012.   }
  1013.   checkPlaylistMktCmpgnURL();
  1014.  
  1015.  
  1016.   function checkPremiumAvatarURL() {
  1017.     premiumAvatarGame = false;
  1018.     if(typeof premiumAvatarMktPages != 'undefined' && premiumAvatarMktPages.test(location.pathname) || (location.pathname == "/0-moto-x3m-winter") || ( location.pathname  == '/0-redline-pong')) {
  1019.       if (gamesPlayed == 2 || gamesPlayed == 8) {
  1020.         schoolHours = false;//display all the time
  1021.         premiumAvatarGame = true;
  1022.       }
  1023.       // setting the default premiumAvatarGameABTest
  1024.       if (getCookie('cmg_fx') !== null && getCookie('cmg_sx') == null) {
  1025.         var planToSubscription = '67361110';
  1026.       } else {
  1027.         var planToSubscription = '553bdf22';
  1028.       }
  1029.       // logged in free user
  1030.       jQuery(document).ready(function () {
  1031.         jQuery(".pane-bean-new-go-ad-free").html('<a class="premium-avatar-marketing-logo" onclick="premium_avatar_overlay_promo_signup_handler(\'Premium Avatar screen mode - header button clicked\'); return false;" href="/premium-access/' + planToSubscription + '">Go Big Screen!</a>');
  1032.         jQuery('.premium-avatar-right-side-promo').show();
  1033.       });
  1034.       var gamePageBarPromo = 'GET THE AVATAR: GO PREMIUM';
  1035.       gamePageBarPromoActionText = 'Get Premium ';
  1036.       var pathpromobarsubscriptionform = '/subscribe/' + planToSubscription;
  1037.       jQuery('.gamepage-signup-promo').hide();
  1038.       jQuery('#block-cmatgame-cmatgame-system-main').append('<div class="premium-avatar-promo marketing-gamepage-signup-promo"><span>' + gamePageBarPromo + '</span><div class="link-in-title-block-promo"><a href="/subscribe/' + planToSubscription + '" id="gamepage_bs_signup_promo_handler" onclick="premium_avatar_overlay_promo_signup_handler(\'Premium Avatar screen mode - promo bar clicked\'); return false;">' + gamePageBarPromoActionText + '</a></div></div>');
  1039.  
  1040.     }
  1041.   }
  1042.  
  1043.   function checkPlayedGames() {
  1044.     // this is for supportCMG A/B Test
  1045.     gamesPlayed = parseInt(localStorage.getItem('gamesPlayed') || 0);
  1046.     sessionGamesPlayed = parseInt(sessionStorage.getItem('sessionGamesPlayed') || 0);
  1047.     //localStorage.setItem('gamesPlayed', ++ gamesPlayed)
  1048.     localStorage.setItem('gamesPlayed', 0);
  1049.     sessionStorage.setItem('sessionGamesPlayed', ++ sessionGamesPlayed);
  1050.     checkPremiumAvatarURL();
  1051.   }
  1052.  
  1053.   /**
  1054.   ** For CMG default screen promo with list of games to appear
  1055.   */
  1056.   function checkCMGDefaultExceptionURL() {
  1057.     supportCMG = false;
  1058.     if(!cmgDefaultGameUrl.test(location.pathname) && (typeof gamesPlayed != "undefined" && (gamesPlayed == 2 || gamesPlayed == 8))) {
  1059.       supportCMG = true;
  1060.       schoolHours = false; // display all the time
  1061.  
  1062.       if (getCookie('cmg_fx') !== null && getCookie('cmg_sx') == null) {
  1063.         var planToSubscription = 'd61242ac';
  1064.       } else {
  1065.         var planToSubscription = '0735a1f2';
  1066.       } // logged in free user
  1067.       jQuery(document).ready(function () {
  1068.         jQuery(".pane-bean-new-go-ad-free").html('<a class="cmgDefaultException-logo" onclick="cmgDefault_overlay_promo_signup_handler(\'Get CMGDefault screen mode - header button clicked\'); return false;" href="/premium-access/' + planToSubscription + '">Go Big Screen!</a>');
  1069.         jQuery('.cmgdefault-right-side-promo').show();
  1070.       });
  1071.       var gamePageBarPromo = 'GO PREMIUM: THE BEST GAMING EXPERIENCE';
  1072.       gamePageBarPromoActionText = 'Get Premium ';
  1073.       var pathpromobarsubscriptionform = '/subscribe/' + planToSubscription;
  1074.       jQuery('.gamepage-signup-promo').hide();
  1075.       jQuery('#block-cmatgame-cmatgame-system-main').append('<div class="marketing-gamepage-signup-promo"><span>' + gamePageBarPromo + '</span><div class="link-in-title-block-promo"><a href="/subscribe/' + planToSubscription + '" id="gamepage_bs_signup_promo_handler" onclick="cmgDefault_overlay_promo_signup_handler(\'Get CMGDefault screen mode - promo bar clicked\'); return false;">' + gamePageBarPromoActionText + '</a></div></div>');
  1076.     }
  1077.   }
  1078.  
  1079.   checkPlayedGames();
  1080.   // need to comment this  settimebased();function call to prevent it run on page load, it should start work on
  1081.   // game load.
  1082.   //settimebased();
  1083.   checkCMGDefaultExceptionURL();
  1084.  
  1085.  
  1086.   if (isUserValidFreeUserOrSubscriber()) {
  1087.     var userprofileData = JSON.parse(localStorage.getItem("userprofile"));
  1088.     var levelofcompletedgame = 1;
  1089.     for (var i = 0; i < userprofileData.mygameslist.length; i++) {
  1090.       if (userprofileData.mygameslist[i].id == gameId) {
  1091.         var levelbasedCompletedStatus = userprofileData.mygameslist[i].timebasedcompletedSt;
  1092.         var levelofcompletedgame = userprofileData.mygameslist[i].level;
  1093.       }
  1094.  
  1095.     }
  1096.   }
  1097.  
  1098.   var workerstatusvar = "no";
  1099.   var count = 0;
  1100.   var myInterval;
  1101.   // Active
  1102.  
  1103.   function chkIdleOnpage() {
  1104.     var userActivityTime = Date.now();
  1105.     // check if user activity is not there more than 55 min 60000*55 = 3300000
  1106.     if (userActivityTime - lastKeyBoardorMouseActivityTime > 3300000) {
  1107.       if (typeof(w) != "undefined") {
  1108.  
  1109.         workerstatusvar = "terminated";
  1110.         w.terminate();
  1111.         w = undefined;
  1112.       }
  1113.     } else { // May be keyboard is active start new worker
  1114.       settimebased();
  1115.     }
  1116.   }
  1117.   // Inactive
  1118.   if (!is_level_based) { // check idle time in every 5 min 60000 * 5 = 300000
  1119.     idleOnPageCheckTimer = setInterval(function () {
  1120.       chkIdleOnpage()
  1121.     }, 300000);
  1122.   }
  1123.  
  1124.   function settimebased() {
  1125.     if (!is_level_based) {
  1126.       jQuery(document).ready(function () {
  1127.         if (isUserValidFreeUserOrSubscriber()) {
  1128.           window.addEventListener("beforeunload", function (e) {
  1129.             saveUserProgress();
  1130.           });
  1131.           if (typeof(Worker) !== "undefined") {
  1132.             if (typeof(w) == "undefined") {
  1133.  
  1134.               w = new Worker("/modules/custom/cmatgame_userprofile/js/userprogress_workers.js");
  1135.               w.onmessage = function (event) {
  1136.                 var userActivityTime = Date.now();
  1137.                 // save userprofile object back to localstorage
  1138.                 // if(userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) {
  1139.                 userprofile = event.data;
  1140.                 localStorage.setItem("userprofile", JSON.stringify(userprofile));
  1141.  
  1142.                 // display game progressbar on game pages
  1143.                 if (typeof gameId != "undefined") {
  1144.                   display_game_progressbar(gameId);
  1145.                 }
  1146.                 // display user progressbar
  1147.                 display_user_profile_progressbar();
  1148.                 //adding save userprogress back to api server
  1149.                 saveUserProgress();
  1150.                 // }
  1151.               };
  1152.  
  1153.               var userprofile = localStorage.getItem("userprofile");
  1154.               setTimeout(function () {
  1155.                 var userprofile = localStorage.getItem("userprofile");
  1156.                 var currentGameData = searchGamesById(gameId);
  1157.                 if (typeof w != 'undefined') {
  1158.                   w.postMessage([
  1159.                     gameId,
  1160.                     xp_per_level,
  1161.                     userprofile,
  1162.                     currentGameData,
  1163.                     cmatgameSearchGames,
  1164.                     userprofile_level_xpData
  1165.                   ]);
  1166.                 }
  1167.               }, 60000);
  1168.               // setInterval(function () { updateMyGamesTimeSpent1(gameId) }, 60000);
  1169.             }
  1170.           }
  1171.         }
  1172.       });
  1173.     }
  1174.   }
  1175.  
  1176.   // Stop timer
  1177.   function stopTimer() {
  1178.     count = 0;
  1179.  
  1180.     if (workerstatusvar == "terminated") {
  1181.       settimebased();
  1182.       workerstatusvar = "started";
  1183.     }
  1184.     window.clearInterval(myInterval);
  1185.   }
  1186.  
  1187.   function checkKeyboardOrMouseActivity() {
  1188.     lastKeyBoardorMouseActivityTime = Date.now();
  1189.     if (!is_level_based) {
  1190.       if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { // html 5 game
  1191.       } else {
  1192.         stopTimer();
  1193.       }
  1194.     }
  1195.   }
  1196.  
  1197.   function startTimer() {
  1198.   // for flash based game check idle time in every 5 min 60000 * 5 = 300000
  1199.     myInterval = window.setInterval(timerHandler, 30000);
  1200.   }
  1201.  
  1202.   function timerHandler() {
  1203.     count++;
  1204.     // count of flash based game will  for 55 rounds
  1205.     if (count == 55) {
  1206.       workerstatusvar = "terminated";
  1207.       if (typeof w !== 'undefined') {
  1208.         w.terminate();
  1209.         w = undefined;
  1210.       }
  1211.     }
  1212.   }
  1213.   document.addEventListener("mousemove", checkKeyboardOrMouseActivity, false);
  1214.   document.addEventListener('keydown', checkKeyboardOrMouseActivity, false);
  1215.  
  1216.   document.addEventListener("keypress", checkKeyboardOrMouseActivity, false);
  1217.   document.addEventListener("touchmove", checkKeyboardOrMouseActivity, false);
  1218.   if(!is_level_based) {
  1219.     if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) {
  1220.       // html 5 game
  1221.       document.addEventListener("visibilitychange", function() {
  1222.  
  1223.         if(document.visibilityState == 'hidden') {
  1224.           //startTimer();
  1225.           if(typeof idleOnPageCheckTimer !== 'undefined') {
  1226.  
  1227.             clearInterval(idleOnPageCheckTimer);
  1228.           }
  1229.           /***  need to remove below workerstatusvar variable. position changed . it should be under if codition
  1230.             where worker undefine
  1231.           ***/
  1232.           // workerstatusvar = "terminated";
  1233.  
  1234.           if (typeof w !== 'undefined') {
  1235.             w.terminate();
  1236.             w = undefined;
  1237.             workerstatusvar = "terminated";
  1238.           }
  1239.  
  1240.         } else if (document.visibilityState == 'visible') {
  1241.           stopTimer(); // starts worker.
  1242.         }
  1243.       }, false);
  1244.     } else {
  1245.       // flash game
  1246.       window.addEventListener('focus', stopTimer);
  1247.       window.addEventListener('blur', startTimer);
  1248.       // Check browser minimize
  1249.       document.addEventListener("visibilitychange", function () {
  1250.  
  1251.         if (document.visibilityState == 'hidden') {
  1252.           startTimer();
  1253.         } else if (document.visibilityState == 'visible') {
  1254.  
  1255.           stopTimer();
  1256.         }
  1257.       }, false);
  1258.  
  1259.       startTimer();
  1260.  
  1261.     }
  1262.   } // end of !is_level_based
  1263.  
  1264.   function putSharedObjectsInDB(syncData) {
  1265.     flashStorage = syncData;
  1266.     saveUserProgress();
  1267.   }
  1268.   isRemoveAdSwfJWPLayer = false;
  1269.   // Testing Overlay for Watch Ad To Unlock Games
  1270.   // var watchAdtoUnlockGame = true;
  1271.   // var schoolHours = false;
  1272.   // //console.log('supportCMG is true');
  1273.   window.addEventListener("message", receiveMessage, false);
  1274.   function receiveMessage(event) { // console.log("message received2 from " + event.origin + " : " + event.data);
  1275.     var valid_domain_msg = false;
  1276.     if (/coolmathgames\.com|coolmathgames\.local|coolmathgames/.test(event.origin)) {
  1277.       valid_domain_msg = true;
  1278.     }
  1279.     if (event.data == "continue-without-big-screen" && jQuery('#big-screen-overlay').length && valid_domain_msg) { // close overlay
  1280.       if (jQuery('#big-screen-overlay').length) {
  1281.         jQuery('#big-screen-overlay').hide();
  1282.         if (jQuery('#big-screen-truex-overlay').length) {
  1283.           jQuery('#big-screen-truex-overlay').hide();
  1284.         }
  1285.         cmg_bigscreen_trackevent('closesignup', cmg_bsft);
  1286.       }
  1287.     } else if (event.data == "continue-with-login-big-screen" && jQuery('#big-screen-overlay').length && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data);
  1288.       cmg_bigscreen_trackevent('closesignup2login', cmg_bsft);
  1289.       jQuery('#big-screen-overlay').hide();
  1290.       if (jQuery('#big-screen-truex-overlay').length) {
  1291.         jQuery('#big-screen-truex-overlay').hide();
  1292.       }
  1293.       window.location = "/login?destination=" + window.location.pathname;
  1294.     } else if (event.data == "continue-premium-big-screen" && (jQuery('#big-screen-overlay').length || jQuery('#pr-profile-screen-overlay').length) && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data);
  1295.       cmg_bigscreen_trackevent('playgame after signup', cmg_bsft);
  1296.       jQuery('#big-screen-overlay').hide();
  1297.       jQuery('#pr-profile-screen-overlay').hide();
  1298.       if (jQuery('#big-screen-truex-overlay').length) {
  1299.         jQuery('#big-screen-truex-overlay').hide();
  1300.       }
  1301.       window.location.reload();
  1302.     } else if (event.data == "big-screen-profile-customize" && (jQuery('#big-screen-overlay').length || jQuery('#pr-profile-screen-overlay').length) && valid_domain_msg) {
  1303.       // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data);
  1304.       cmg_bigscreen_trackevent('profile customize after signup', cmg_bsft);
  1305.       jQuery('#big-screen-overlay').hide();
  1306.       jQuery('#pr-profile-screen-overlay').hide();
  1307.       if (jQuery('#big-screen-truex-overlay').length) {
  1308.         jQuery('#big-screen-truex-overlay').hide();
  1309.       }
  1310.       if (getCookie('cmg_fx') !== null) {
  1311.         window.location = '/profile/' + getCookie('cmg_fx').toLowerCase() + '/edit';
  1312.       }
  1313.     } else if (event.data == "big-screen-premium-benefits" && jQuery('#big-screen-overlay').length && valid_domain_msg) {
  1314.       // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data);
  1315.       cmg_bigscreen_trackevent('see premium benefits after signup', cmg_bsft);
  1316.       jQuery('#big-screen-overlay').hide();
  1317.       if (jQuery('#big-screen-truex-overlay').length) {
  1318.         jQuery('#big-screen-truex-overlay').hide();
  1319.       }
  1320.       if (getCookie('cmg_fx') !== null) {
  1321.         window.location = '/premium-benefits';
  1322.       }
  1323.     } else if (event.data == "keypress-from-game") {
  1324.       checkKeyboardOrMouseActivity();
  1325.     } else if (event.origin === "https://copterroyale.coolmathgames.com" || event.origin === "https://copterroyale2.coolmathgames.com" || event.origin === "https://powerline.coolmathgames.com") {
  1326.  
  1327.       var eventObject = JSON.parse(event.data);
  1328.       if (eventObject.eventType == "gameEvent") {
  1329.         cmgGameEvent(eventObject.key, eventObject.value);
  1330.       } else if (eventObject.eventType == "dataEvent") {
  1331.         cmgDataEvent(eventObject.key, eventObject.value);
  1332.       }
  1333.     } else if (event.origin == 'https://cheerpx.coolmathgames.com' || event.origin == 'https://cheerpx-prod.coolmathgames.com') {
  1334.       console.log("cmg cheerpx: cmgHandleMessage "+event.data);
  1335.       //close loading screen
  1336.       closeCmgCheerpxLoadingScreen();
  1337.     } else if (event.origin == 'https://www.coolmath-games.com' || event.origin != 'https://d8-dev.coolmathgames.com') {
  1338.       if (event.data.eventType == "syncEventPut") {
  1339.         syncData = event.data.syncJSON;
  1340.         putSharedObjectsInDB(syncData);
  1341.       }
  1342.       if (event.data.eventType == "syncEventGet") {
  1343.         if (typeof flashStorageFromDB != "undefined") { // restoring flash shared objects from DB
  1344.           for (var i = 0; i < flashStorageFromDB.length; i++) {
  1345.             flashStorageFromDB[i].swfdata = decodeURI(flashStorageFromDB[i].swfdata);
  1346.           }
  1347.           document.getElementById('swfgame').contentWindow.postMessage({
  1348.             'eventType': 'syncEventGet',
  1349.             'soData': flashStorageFromDB
  1350.           }, '*');
  1351.         } else {
  1352.           document.getElementById('swfgame').contentWindow.postMessage({
  1353.             'eventType': 'gamePlay'
  1354.           }, '*');
  1355.         }
  1356.       }
  1357.     } else {
  1358.       return;
  1359.     }
  1360.   }
  1361.   // var signupPromoTop = 'Join to Play Ad-Free'; var signupPromoBottom = 'Join to Skip All Ads';
  1362.   if (typeof signupPromoTop !== 'undefined' && signupPromoTop !== '') {
  1363.     signupContainerTop = '<div class="signup-container-top"><a href="/premium-access/2efa4bc4" id="preroll_signup_top_handler">' + signupPromoTop + '</a></div>';
  1364.   } else {
  1365.     signupPromoTop = '';
  1366.     signupContainerTop = '<div class="signup-container-top"><a href="/premium-access/2efa4bc4" id="preroll_signup_top_handler">' + signupPromoTop + '</a></div>';
  1367.   }
  1368.   if (typeof signupPromoBottom !== 'undefined' && signupPromoBottom !== '') {
  1369.     signupContainerBottom = '<div class="signup-container-bottom"><a href="/premium-access/2efa4bc4" id="preroll_signup_bottom_handler"> ' + signupPromoBottom + '</a></div>';
  1370.   } else {
  1371.     signupPromoBottom = '';
  1372.     signupContainerBottom = '<div class="signup-container-bottom"><a href="/premium-access/2efa4bc4" id="preroll_signup_bottom_handler"> ' + signupPromoBottom + '</a></div>';
  1373.   }
  1374.  
  1375.   function preroll_signup_top_handler() {
  1376.     trackEvent('Preroll Signup Clicked', 'Preroll Signup Top', document.title);
  1377.   }
  1378.  
  1379.   function preroll_signup_bottom_handler() {
  1380.     trackEvent('Preroll Signup Clicked', 'Preroll Signup Bottom', document.title);
  1381.   }
  1382.  
  1383.   // we will define this varialbe signUpURLABTest in experiments.js
  1384.   var cmg_upg_days_limit = 180;
  1385.   var user_dst = window.location.pathname;
  1386.   user_dst = user_dst.replace("\/", "");
  1387.   if (window.location.host !== 'cmatgame.local') {
  1388.     if (typeof signUpURL === 'undefined' || signUpURL === '') {
  1389.       signUpURL = '/premium-access/ b2df5a33?origin=' + user_dst;
  1390.     } else {
  1391.       signUpURL = signUpURL + '?origin=' + user_dst;
  1392.     }
  1393.   } else if (typeof signUpURLABTest === "undefined" || signUpURLABTest === null) {
  1394.     signUpURL = 'https://' + window.location.hostname + '/premium-access/ b2df5a33?origin=' + user_dst;
  1395.   } else {
  1396.     signUpURL = signUpURLABTest;
  1397.   }
  1398.  
  1399.   function subscription_promo_handler() {
  1400.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  1401.       trackEvent('Premium Subscription ' + subscriberLeg, 'Subscription overlay clicked', userPlayedGames);
  1402.       trackGoalVirtualPV('/virtual/subscription-overlay-click');
  1403.     }
  1404.     return;
  1405.   }
  1406.  
  1407.   function subscriptionSignUpUrl() {
  1408.     var user_played_games = '';
  1409.     var zeroFreeGamesLeftUsers = localStorage.getItem("zeroFreeGamesLeftUsers");
  1410.     if (typeof userPlayedGames !== 'undefined' && userPlayedGames) {
  1411.       user_played_games = "upg=" + userPlayedGames;
  1412.     } else {
  1413.       user_played_games = "upg=0";
  1414.     }
  1415.     if (zeroFreeGamesLeftUsers !== null && user_played_games !== '') {
  1416.       user_played_games = user_played_games + '&zfg=' + zeroFreeGamesLeftUsers;
  1417.     } else if (zeroFreeGamesLeftUsers !== null) {
  1418.       user_played_games = 'zfg=' + zeroFreeGamesLeftUsers;
  1419.     }
  1420.     if (typeof signUpURL !== 'undefined' && signUpURL !== null && signUpURL.indexOf('upg') === -1) {
  1421.       if (signUpURL.indexOf('?random_true') > -1) {
  1422.         signUpURL = signUpURL.replace('?random_true', '');
  1423.       }
  1424.       if (signUpURL.indexOf('?') > -1) {
  1425.         signUpURL = signUpURL + '&' + user_played_games;
  1426.       } else {
  1427.         signUpURL = signUpURL + '?' + user_played_games;
  1428.       }
  1429.     }
  1430.   }
  1431.  
  1432.   function updateMyGamesTimeSpent(gameId) {
  1433.     var userActivityTime = Date.now();
  1434.     // if(userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) { //user is active on page for last 60 seconds, so we can add this as his XP
  1435.     if (currentTimeInterval >= 2) {
  1436.       currentTimeInterval = 0;
  1437.       if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers
  1438.         saveMyGames(gameId, 0, 1);
  1439.         currentTime = userActivityTime;
  1440.       }
  1441.     } else {
  1442.       currentTimeInterval = currentTimeInterval + 1;
  1443.       saveUserProgress(); // save user progress every 20 sec
  1444.     }
  1445.     // }
  1446.   }
  1447.  
  1448.   function updateMyGamesTimeSpent1(gameId) {
  1449.     if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers
  1450.       if (userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) {
  1451.         saveMyGames(gameId, 0, 1);
  1452.       }
  1453.     }
  1454.   }
  1455.  
  1456.   function updateMyGamesTimeSpentLevelBase(gameId, level) {
  1457.     if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers
  1458.  
  1459.       saveMyGames(gameId, 1, level);
  1460.     }
  1461.   }
  1462.   /*
  1463.    if(!is_level_based) {
  1464.     var objGameNode = {};
  1465.     objGameNode[gameId] = "yes";
  1466.     localStorage.setItem("runoncestarted", JSON.stringify(objGameNode));
  1467.         setInterval(function () { updateMyGamesTimeSpent1(gameId) }, 60000);
  1468.       }
  1469.    */
  1470.   if (is_level_based) {
  1471.     var userActivityTime = Date.now();
  1472.     // for level based game. check if user activity is not there more than 55 min 60000*55 = 3300000
  1473.     if (userActivityTime - lastKeyBoardorMouseActivityTime <= 3300000) {
  1474.       var objGameNode = {};
  1475.       objGameNode[gameId] = "no";
  1476.       var localgamestrate = "storagelocal-" + gameId + "-storagelocal";
  1477.       localStorage.setItem("runoncestarted", JSON.stringify(objGameNode));
  1478.       localStorage.setItem(localgamestrate, "no");
  1479.       updateMyGamesTimeSpentLevelBase(gameId, levelofcompletedgame)
  1480.     }
  1481.   }
  1482.  
  1483.   function cmgGetCheerpxUrl() {
  1484.     var cheerpxUrl = 'https://cheerpx-prod.coolmathgames.com/cheerpx.html?f=';
  1485.     if(location.host != "www.coolmathgames.com" && !/(Firefox)/.test(navigator.userAgent)) {
  1486.        cheerpxUrl = 'https://cheerpx.coolmathgames.com/cheerpx.html?f=';
  1487.     }
  1488.     return cheerpxUrl;
  1489.   }
  1490.   function displayCmgCheerpxLoadingScreen() {
  1491.     //todo -- use the iframe widht and height
  1492.     //jQuery("#swfgame").parent().before("<div id='cmg-cheerpxloading-screen' style='display: block; width: 640px; height: 576px; position: absolute; font-weight: bold; z-index: 20; opacity: 0.45; text-align: center; vertical-align: middle; padding-top: 300px;'>Loading...</div>")
  1493.     jQuery("#swfgame").parent().before('<div id="cmg-cheerpxloading-screen" style="display: block; width: 640px; height: 576px; position: absolute; font-weight: bold; text-align: center; vertical-align: middle; padding-top: 200px;"><h3 class="loadingText" style="font-size: 20px;">Your Flash game is loading<br/>it may take longer than usual</h3><div class="load-wrap" style="padding-top: 0;"><div> </div><div class="circle"></div><div class="circle"></div><div class="circle"></div><div class="circle"></div></div></div>');
  1494.   }
  1495.   function closeCmgCheerpxLoadingScreen() {
  1496.     jQuery("#cmg-cheerpxloading-screen").remove();
  1497.   }
  1498.   function removePrerollAndDisplayGame() {
  1499.     settimebased();
  1500.     // console.log('remove ad swf');
  1501.     if (isRemoveAdSwfJWPLayer) { // remove preroll only once
  1502.  
  1503.     } else { // record current time to calculate how much time user spent on playing the current game
  1504.       currentTime = Date.now();
  1505.       currentTimeInterval = 0;
  1506.       // call this only for timebased games
  1507.       // TODO save game progress
  1508.       /*if(!is_level_based) {
  1509.         setInterval(function () { updateMyGamesTimeSpent(gameId) }, 20000);
  1510.       }
  1511.       */
  1512.  
  1513.  
  1514.       jQuery("#my-content").css("opacity", "1");
  1515.       if (typeof intervalId != "undefined") {
  1516.         clearInterval(intervalId);
  1517.       }
  1518.       jQuery("#afg_container").remove();
  1519.       jQuery("#afg_preloader").remove();
  1520.       jQuery("#continue-container").remove();
  1521.       if (!drupalSettings.cmatgame.swfembed) { // html5 game game width, game height and game type
  1522.         game_width = jQuery("#html5game").attr("width");
  1523.         game_height = jQuery("#html5game").attr("height");
  1524.         game_type = "html5";
  1525.         // IE Detection and Version grabbing
  1526.         ie = false;
  1527.         var html5_game_url = jQuery("#html5game").attr("src");
  1528.         var swf_game_url = jQuery("#swfgame").attr("src");
  1529.  
  1530.         if (typeof swf_game_url !== 'undefined') {
  1531.           if (!cmg_flash_emulated_game()) { // console.log('flash is undefined');
  1532.             flashDetectionMessage();
  1533.           }
  1534.         }
  1535.         if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") === 0) {
  1536.           swf_game_url = window.location.protocol + swf_game_url;
  1537.         } else if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") > 0) {
  1538.           swf_game_url = swf_game_url.replace("http:", window.location.protocol);
  1539.         }
  1540.         if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") === 0) {
  1541.           html5_game_url = window.location.protocol + html5_game_url;
  1542.         } else if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") > 0) {
  1543.           html5_game_url = html5_game_url.replace("http:", window.location.protocol);
  1544.         }
  1545.         if (navigator.appName == "Microsoft Internet Explorer") {
  1546.           ie = true;
  1547.           var ua = navigator.userAgent;
  1548.           var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
  1549.           if (re.exec(ua) != null) {
  1550.             ieVersion = parseInt(RegExp.$1)
  1551.           }
  1552.         }
  1553.         if (ie && ieVersion < 9) {
  1554.           nothtml5browser = '<div style="margin-top:20px;color: #f5e61f;line-height:1.1em;font-size: 1.867em;">Hey, you\'re using an older web browser that can\'t play HTML5 games like this one.<br><br>Please switch to another browser or just enjoy a different Coolmath game!</' + 'div><br><p style="font-size:1.6em;color:#0E83D4;font-weight:bold;">• <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie" target="_new">Get a new Internet Explorer browser from Microsoft</a></p>';
  1555.           jQuery("#html5game").replaceWith(nothtml5browser);
  1556.           jQuery("#swfgame").replaceWith(nothtml5browser);
  1557.         } else {
  1558.           sandbox = jQuery("#html5game").attr("sandbox");
  1559.           if (sandbox !== undefined) {
  1560.             sandbox = ' sandbox=\"' + sandbox + '\"';
  1561.           } else {
  1562.             sandbox = '';
  1563.           }
  1564.           if(cmg_is_mobile_device() || document.documentElement.clientWidth < 960) {
  1565.             newiframe = '<iframe1 id="html5game" src="' + html5_game_url + '" class="' + jQuery("#html5game").attr("class") + '" width="' + jQuery("#html5game").attr("width") + '" height="' + jQuery("#html5game").attr("height") + '" scrolling="no" marginwidth="0' + '" vspace="0" frameborder="0" hspace="0" marginheight="0"' + sandbox + '></iframe1>';
  1566.             newswfiframe = '<iframe1 id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe1>';
  1567.           } else {
  1568.             newiframe = '<iframe id="html5game" src="' + html5_game_url + '" class="' + jQuery("#html5game").attr("class") + '" width="' + jQuery("#html5game").attr("width") + '" height="' + jQuery("#html5game").attr("height") + '" scrolling="no" marginwidth="0' + '" vspace="0" frameborder="0" hspace="0" marginheight="0"' + sandbox + '></iframe>';
  1569.             newswfiframe = '<iframe id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  1570.           }
  1571.           if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) {
  1572.             jQuery("#html5game").replaceWith(newiframe);
  1573.             if (cmg_flash_emulated_game() || drupalSettings.cmatgame.flash_emulation === "1") {
  1574.               jQuery("#swfgame").replaceWith(newswfiframe);
  1575.             } else if(cmg_flash_emulated_game() && drupalSettings.cmatgame.flash_emulation === "2"){
  1576.               //console.log("Cheerpx load 1");
  1577.               game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width;
  1578.               game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height;
  1579.               game_type = "html5";
  1580.               var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u;
  1581.               var swfURLArray = swfURLObject.split("/");
  1582.               //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1];
  1583.               swf_1_game_movie_param = swfURLArray[swfURLArray.length-1];
  1584.               //cheerpx js
  1585.               var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height;
  1586.               //allow="cross-origin-isolated" --> origin trial use: crossorigin="use-credentials"
  1587.               newswfiframe = '<iframe crossorigin="use-credentials" id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  1588.               jQuery("#swfgame").replaceWith(newswfiframe);
  1589.               //console.log("Cheerpx replace iframe 3");
  1590.             }
  1591.           }
  1592.         }
  1593.       } else {
  1594.         if (!cmg_flash_emulated_game() && (drupalSettings.cmatgame.flash_emulation !== "1" || drupalSettings.cmatgame.flash_emulation !== "2" )) {
  1595.           // console.log('flash is undefined');
  1596.           /* CLSS-1614 to load html5 as backup - START */
  1597.           var html5_game_url = jQuery("#html5game").attr("src");
  1598.           if (typeof html5_game_url !== 'undefined') {
  1599.             game_width = jQuery("#html5game").attr("width");
  1600.             game_height = jQuery("#html5game").attr("height");
  1601.             game_type = "html5";
  1602.             // IE Detection and Version grabbing
  1603.             ie = false;
  1604.             if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") === 0) {
  1605.               html5_game_url = window.location.protocol + html5_game_url;
  1606.             } else if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") > 0) {
  1607.               html5_game_url = html5_game_url.replace("http:", window.location.protocol);
  1608.             }
  1609.             if (navigator.appName == "Microsoft Internet Explorer") {
  1610.               ie = true;
  1611.               var ua = navigator.userAgent;
  1612.               var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
  1613.               if (re.exec(ua) != null) {
  1614.                 ieVersion = parseInt(RegExp.$1)
  1615.               }
  1616.             }
  1617.             if (ie && ieVersion < 9) {
  1618.               nothtml5browser = '<div style="margin-top:20px;color: #f5e61f;line-height:1.1em;font-size: 1.867em;">Hey, you\'re using an older web browser that can\'t play HTML5 games like this one.<br><br>Please switch to another browser or just enjoy a different Coolmath game!</' + 'div><br><p style="font-size:1.6em;color:#0E83D4;font-weight:bold;">• <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie" target="_new">Get a new Internet Explorer browser from Microsoft</a></p>';
  1619.               jQuery("#html5game").replaceWith(nothtml5browser);
  1620.             } else {
  1621.               sandbox = jQuery("#html5game").attr("sandbox");
  1622.               if (sandbox !== undefined) {
  1623.                 sandbox = ' sandbox=\"' + sandbox + '\"';
  1624.               } else {
  1625.                 sandbox = '';
  1626.               }
  1627.               newiframe = '<iframe id="html5game" src="' + html5_game_url + '" class="' + jQuery("#html5game").attr("class") + '" width="' + jQuery("#html5game").attr("width") + '" height="' + jQuery("#html5game").attr("height") + '" scrolling="no" marginwidth="0' + '" vspace="0" frameborder="0" hspace="0" marginheight="0"' + sandbox + '></iframe>';
  1628.               if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) {
  1629.                 jQuery("#html5game").replaceWith(newiframe);
  1630.               }
  1631.                     }
  1632.           } else { /* CLSS-1614 to load html5 as backup - END */
  1633.             flashDetectionMessage();
  1634.           }
  1635.         } else { // flash game game width, game height and game type
  1636.  
  1637.           game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width;
  1638.           game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height;
  1639.  
  1640.           if(drupalSettings.cmatgame.flash_emulation === "1"){ //ruffle
  1641.             game_type = "html5";
  1642.             var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u;
  1643.             var swfURLArray = swfURLObject.split("/");
  1644.             var swf_game_url = 'https://www.coolmath-games.com/sites/cmatgame/files/ruffle1/ruffle.html?f='+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height;
  1645.             newswfiframe = '<iframe id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  1646.             jQuery("#swfgame").replaceWith(newswfiframe);
  1647.  
  1648.             } else if(drupalSettings.cmatgame.flash_emulation === "2"){ //cheerpx
  1649.             game_type = "html5";
  1650.             if (navigator.appName == "Microsoft Internet Explorer") {
  1651.               ie = true;
  1652.               var ua = navigator.userAgent;
  1653.               var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
  1654.               if (re.exec(ua) != null) {
  1655.                 ieVersion = parseInt(RegExp.$1)
  1656.               }
  1657.             }
  1658.             if (ie && ieVersion <= 11) {
  1659.               notCheerpxBrowser = '<div class="no-ie">NO IE</div>';
  1660.               //console.log("Cheerpx avoid load completely on IE");
  1661.               jQuery("#html5game").replaceWith(notCheerpxBrowser);
  1662.             }
  1663.  
  1664.             //console.log("Cheerpx load 2");
  1665.  
  1666.             game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width;
  1667.             game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height;
  1668.  
  1669.             var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u;
  1670.             var swfURLArray = swfURLObject.split("/");
  1671.             //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1];
  1672.             swf_1_game_movie_param = swfURLArray[swfURLArray.length-1];
  1673.             //cheerpx js
  1674.             var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height;
  1675.                                                 //allow="cross-origin-isolated" --> origin trial use: crossorigin="use-credentials"
  1676.             newswfiframe = '<iframe '+coep_frame_type+' id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  1677.             jQuery("#swfgame").replaceWith(newswfiframe);
  1678.             console.log("Cheerpx replace iframe and loading screen");
  1679.             displayCmgCheerpxLoadingScreen();
  1680.  
  1681.             } else {
  1682.  
  1683.             game_type = "flash";
  1684.  
  1685.             if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) {
  1686.               var swf_game_url = jQuery("#swfgame").attr("src");
  1687.               if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") === 0) {
  1688.                 swf_game_url = window.location.protocol + swf_game_url;
  1689.               } else if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") > 0) {
  1690.                 swf_game_url = swf_game_url.replace("http:", window.location.protocol);
  1691.               }
  1692.               newswfiframe = '<iframe id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  1693.               jQuery("#swfgame").replaceWith(newswfiframe);
  1694.  
  1695.               var gameInstructions = document.getElementById('game-instructions');
  1696.               // insert fix flash div before game instructions field
  1697.               if (typeof gameInstructions !== 'undefined' && gameInstructions !== null && typeof gameInstructions.innerHTML !== 'undefined' && gameInstructions.innerHTML !== null) {
  1698.                 gameInstructions.innerHTML = '<div class="no-flash">If this flash game doesn\'t work on your computer, go <a href="/fix-flash.html">here</a> for help.</div><br><br>' + gameInstructions.innerHTML;
  1699.               }
  1700.             }
  1701.           }
  1702.           isRemoveAdSwfJWPLayer = true;
  1703.         }
  1704.       }
  1705.     }
  1706.     jQuery('.game-xp-bar-immerse-button').addClass('enabled');
  1707.     jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  1708.     //Deferred js is breaking the display of bigscreen button
  1709.     deferredbigscreenbtn = setTimeout(function () {
  1710.       if(jQuery('.btn.btn-primary.btn-sm.requestfullscreen').length && !jQuery('.btn.btn-primary.btn-sm.requestfullscreen').is(":visible")) {
  1711.         jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  1712.       }
  1713.     }, 2000);
  1714.     display_game_progressbar(gameId);
  1715.   }
  1716.  
  1717.   function cmatgame_premium_subscription_game_display() {
  1718.     var cmatgame_subscriber = getCookie('cmg_sx');
  1719.     var validSubscriber = false;
  1720.     if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) {
  1721.       validSubscriber = true;
  1722.     }
  1723.     if(getCookie("cmg_wl") !== null) {
  1724.       validSubscriber = true;
  1725.     }
  1726.     var cmatgame_free_user = getCookie('cmg_fx');
  1727.     var validFreeUser = false;
  1728.     if (typeof cmatgame_free_user !== 'undefined' && cmatgame_free_user !== null) {
  1729.       validFreeUser = true;
  1730.     }
  1731.  
  1732.     if (typeof subscribeNowAlienClass === 'undefined' || subscribeNowAlienClass === null || subscribeNowAlienClass === '') {
  1733.       // if (drupalSettings.cmatgame.isSubscriptionActive == false) {
  1734.       // subscribeNowAlienClass = "subscribe-now-alien-subscribe";
  1735.       // } else {
  1736.       // subscribeNowAlienClass = "subscribe-now-alien-signup";
  1737.       // }
  1738.     }
  1739.     freeGamesExceeded = true;
  1740.     // Display Ads to anonymous users the time from 7am to 13pm, display ads to anonymous users  from 13pm to 11:59pm and 00 to 7am only if the user is not from New York city
  1741.     // TODO -->  Need to add day of the week for school hours logic, day < 6 do not display Ads when GDPR cookie is set abd GDPR_All cookie is not set
  1742.     // Remove preroll-ads for whitelist users
  1743.     if (validSubscriber || getCookie("cmg_wl") !== null) { // retrieve user progress
  1744.       retrieveUserProgress();
  1745.       removePrerollAndDisplayGame();
  1746.       jQuery(document).ready(function () {
  1747.         $('.game-xp-bar-immerse-button').addClass('enabled');
  1748.         jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  1749.         display_game_progressbar(gameId);
  1750.         immersive_mode_display_controller();
  1751.       });
  1752.  
  1753.     } else if (getCookie('cmg_schwl') !== null || typeof cmg_no_ads !== 'undefined' || (! validSubscriber && schoolHours || (!schoolHours && !targetStateUser) || (!schoolHours && targetStateUser && getCookie('cmg_active_anonymous_user') !== null))) { // TODO Display Game
  1754.       removePrerollAndDisplayGame();
  1755.       jQuery(document).ready(function () {
  1756.         $('.game-xp-bar-immerse-button').addClass('enabled');
  1757.         jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  1758.         display_game_progressbar(gameId);
  1759.       });
  1760.  
  1761.       if (!/0-chess/.test(window.location.pathname)) { // setCookie('cmg_active_anonymous_user', 'active', 30*60*1000);
  1762.       }
  1763.     } else if (! validSubscriber && !schoolHours && targetStateUser && getCookie('cmg_active_anonymous_user') === null && getCookie('cmg_editor') === null) { // if user comes from google dont show the subscription paywall
  1764.       var ref = document.referrer;
  1765.       // count number of games played by the user this month
  1766.       userPlayedGames = 0;
  1767.       var userFreeGameList = [];
  1768.       var freeGameNid = 11697;
  1769.       if (sessionStorage.getItem("userFreeGameList") !== null) {
  1770.         userFreeGameList = JSON.parse(sessionStorage.getItem("userFreeGameList"));
  1771.       }
  1772.       if ((localStorage.getItem("userPlayedGames") == null || getCookie('cmg_upg') === null) && freeGameLimit !== 0) {
  1773.         userPlayedGames = 1;
  1774.         localStorage.setItem("userPlayedGames", userPlayedGames);
  1775.         // TODO monthly cookie
  1776.         setCookie('cmg_upg', 'true', cmg_upg_days_limit * 24 * 60 * 60 * 1000);
  1777.         userFreeGameList = [freeGameNid];
  1778.         sessionStorage.setItem("userFreeGameList", JSON.stringify(userFreeGameList));
  1779.         // TODO Display Game
  1780.         removePrerollAndDisplayGame();
  1781.         jQuery(document).ready(function () {
  1782.           display_game_progressbar(gameId);
  1783.         });
  1784.  
  1785.       } else { // userPlayedGames = parseInt(localStorage.getItem("userPlayedGames"+currentMonth+currentYear)); Monthly limit
  1786.         if (localStorage.getItem("userPlayedGames") !== null && getCookie('cmg_upg') !== null) {
  1787.           userPlayedGames = parseInt(localStorage.getItem("userPlayedGames"));
  1788.         } else {
  1789.           userPlayedGames = 0;
  1790.           setCookie('cmg_upg', 'true', cmg_upg_days_limit * 24 * 60 * 60 * 1000);
  1791.         }
  1792.         if (freeGameLimit != 0 && userPlayedGames < freeGameLimit && userFreeGameList.indexOf(freeGameNid) === -1) {
  1793.           userPlayedGames ++;
  1794.           freeGamesExceeded = false;
  1795.           if (userFreeGameList.length > 0) {
  1796.             userFreeGameList = userFreeGameList.concat(freeGameNid);
  1797.           } else {
  1798.             userFreeGameList = [freeGameNid];
  1799.           }
  1800.           localStorage.setItem("userPlayedGames", userPlayedGames);
  1801.           sessionStorage.setItem("userFreeGameList", JSON.stringify(userFreeGameList));
  1802.         } else {
  1803.           freeGamesExceeded = true;
  1804.         }
  1805.         // console.log("Number of games user has played "+ userPlayedGames );
  1806.         var validReferer = false;
  1807.         var validGameSession = false;
  1808.         if (userFreeGameList.indexOf(freeGameNid) > -1) {
  1809.           validGameSession = true;
  1810.         }
  1811.         if (ref.match("google.com") !== null || ref.match("yahoo.com") !== null || ref.match("bing.com") !== null) {
  1812.           validReferer = true;
  1813.         }
  1814.         subscriptionSignUpUrl();
  1815.         if (! validReferer && userPlayedGames >= freeGameLimit && ! validGameSession) {
  1816.           // subscription paywall
  1817.           // block anonymous users for New York City from 0-7am and 13pm to 11:59pm console.log("Free games limit exceeded and referer is not google");
  1818.           clearInterval(intervalId);
  1819.           jQuery("#afg_container").remove();
  1820.           jQuery(".game-instructions").remove();
  1821.           var alreadySubscriberText = '<p class="already-subscribed">Already a Subscriber? <a class="learn-more-link" href="/login">Login</a></p>';
  1822.           if (getCookie('cmg_l') != null) {
  1823.             alreadySubscriberText = '';
  1824.           }
  1825.           var headLine = '<p class="no-free-games-headline">Please Sign up to keep playing</p>';
  1826.           if (getCookie('cmg_l') != null && getCookie('cmg_sx') != null) {
  1827.             headLine = '<p class="no-free-games-headline" style="padding-top:46px;">PLEASE SUBSCRIBE NOW TO KEEP PLAYING</p>';
  1828.           }
  1829.           jQuery(".field-game").html('<div class="subscription-overlay" style="height:360px;width:500px;background:#008aa3;white-space:normal;">' + headLine + '<p class="free-in-schools">The World\'s Best Collection of Games <br> For Logic, Reasoning & Fun.  <a class="' + subscribeNowAlienClass + '" id="game_subscription_promo_handler" href="' + signUpURL + ' ">Subscribe Now</a>' + alreadySubscriberText + '</div>');
  1830.           jQuery("#videoplayer").remove();
  1831.         } else {
  1832.           // console.log("User may have come from google or is within the free game limit "+ (freeGameLimit-userPlayedGames) );
  1833.           // TODO Display Game
  1834.           removePrerollAndDisplayGame();
  1835.           jQuery(document).ready(function () {
  1836.             display_game_progressbar(gameId);
  1837.           });
  1838.         }
  1839.       }
  1840.     }
  1841.   }
  1842.  
  1843.   function unlockAllLevels() {
  1844.     trackEvent('Unlock All Levels category', 'unlock all levels button clicked', document.title);
  1845.     alllevels = '<div id="subscriber-banner"><div class="adobe-analytics-sub-experience levels-unlocked">levels-unlocked</div></div>';
  1846.     jQuery("#subscriber-banner").replaceWith(alllevels);
  1847.     var cmgorigindomain = /coolmath-games/;
  1848.     var cmgtargetdomain = window.location.protocol + 'www.coolmath-games.com';
  1849.     if (/edit-stage/.test(window.location.hostname)) {
  1850.       cmgtargetdomain = window.location.protocol + 'edit-stage.coolmath-games.com';
  1851.     } else if (/d8-dev/.test(window.location.hostname)) {
  1852.       cmgtargetdomain = window.location.protocol + 'stage.coolmath-games.com';
  1853.     } else if (/cmatgame.local|dev.coolmath.games.com/.test(window.location.hostname)) {
  1854.       cmgtargetdomain = window.location.protocol + 'stage.coolmath-games.com';
  1855.     }
  1856.     if (game_type == "html5") {
  1857.       document.getElementById("html5game").contentWindow.unlockAllLevels();
  1858.     } else {
  1859.       if (cmgorigindomain.test(window.location.hostname)) {
  1860.         document.getElementById("swfObjID").unlockAllLevels();
  1861.       } else {
  1862.         var recievergameFrame = document.getElementById("swfgame");
  1863.         gDate = new Date();
  1864.         recievergameFrame.contentWindow.postMessage('unlockAllLevels', cmgtargetdomain); // TODO -- put target origin
  1865.       }
  1866.     }
  1867.   }
  1868.  
  1869.   function addSubToUnlockGAEvent() {
  1870.     trackEvent('Unlock All Levels category', 'subscribe to unlock button clicked', document.title);
  1871.     trackGoalVirtualPV('/virtual/unlock-button-click');
  1872.     window.location.href = "https://www.coolmathgames.com/signup/ b2df5a33?origin= /0-run-3&stual=1"
  1873.   }
  1874.  
  1875.   var immersive_mode_enabled = false;
  1876.   // Rules for big screen free trial
  1877.   function valid_big_screen_ft() {
  1878.     validUserMode = false;
  1879.     cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0;
  1880.     // Logged in user
  1881.     if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) {
  1882.       cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  1883.       if (cmg_uid_bsft !== null) {
  1884.         cmg_bsft = parseInt(cmg_uid_bsft);
  1885.       } else {
  1886.         cmg_bsft = 0;
  1887.       }
  1888.     }
  1889.     if (cmg_bsft <= 3) {
  1890.       validUserMode = true;
  1891.     }
  1892.     return validUserMode;
  1893.   }
  1894.  
  1895.   function immersive_mode_display_controller() {
  1896.     var validUserMode = false;
  1897.     if (getCookie('cmg_editor') !== null) { // display game for editors
  1898.       removePrerollAndDisplayGame();
  1899.       validUserMode = true;
  1900.     }
  1901.     if (getCookie('cmg_sx') !== null || getCookie("cmg_wl") !== null) { // display xp bar for premium users
  1902.       $('.game-xp-bar-immerse-button').addClass('enabled');
  1903.       jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  1904.       validUserMode = true;
  1905.     } else if (getCookie('cmg_fx') !== null) { // Is valid Freemium user free trial ?
  1906.       if (valid_big_screen_ft()) {
  1907.         validUserMode = true;
  1908.       } else {
  1909.         validUserMode = true;
  1910.         // console.log("User reached FT limit. Display Big screen button ?");
  1911.       }
  1912.     } else { // Is valid Anonymous user free trial ?
  1913.       if (valid_big_screen_ft()) {
  1914.         validUserMode = true;
  1915.       }
  1916.     }
  1917.  
  1918.     if (validUserMode && ! immersive_mode_enabled) {
  1919.       immersive_mode_enabled = true;
  1920.       immersive_mode_display();
  1921.     }
  1922.   }
  1923.   var bigScreenTimer = null;
  1924.   bigScreenActive = false;
  1925.   function cmg_bigscreen_trackevent(type, trial_num) {
  1926.     if (jQuery('#big-screen-truex-overlay').length) {
  1927.       jQuery('#big-screen-truex-overlay').hide();
  1928.     }
  1929.     var tCat = 'BigScreen-Trial';
  1930.     if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') {
  1931.       var tCat = 'BigScreen-TrueX-Promo';
  1932.     }
  1933.     var tUsr = 'Anonymous user';
  1934.     if (typeof getCookie === 'function' && (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null)) {
  1935.       tUsr = 'Subscriber';
  1936.     } else if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null) {
  1937.       tUsr = 'Freemium user';
  1938.     }
  1939.     var tEvt = tUsr + ' trial ' + trial_num + ' - ' + type;
  1940.     if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') {
  1941.       tEvt = tUsr + ' TrueX Promo' + ' - ' + type;
  1942.     } else {
  1943.       if (trial_num > 3) {
  1944.         tEvt = tUsr + ' no more trial ' + ' - ' + type;
  1945.       }
  1946.     }
  1947.     if (type === 'enter' || type === 'exit' || type === 'closesignup' || type == 'closepromo' || type == 'bigscreen-exit') {
  1948.       trackEvent(tCat, tEvt, document.title);
  1949.     } else if (type === 'exit2signup' || type === 'signup') {
  1950.       if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') {
  1951.         var sLeg = get_premium_access_leg_desc('849ef809');
  1952.         if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) {
  1953.           sLeg = get_premium_access_leg_desc('e180e28d');
  1954.         }
  1955.         trackEvent(tCat, tEvt + ' - Leg - ' + sLeg, document.title);
  1956.       } else {
  1957.         var sLeg = get_premium_access_leg_desc('1bb008bd');
  1958.         if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) {
  1959.           sLeg = get_premium_access_leg_desc('7859e605');
  1960.         }
  1961.         trackEvent(tCat, tEvt + ' - Leg - ' + sLeg, document.title);
  1962.       }
  1963.     } else {
  1964.       trackEvent(tCat, type, document.title);
  1965.     }
  1966.   }
  1967.   popover_login_click = false;
  1968.  
  1969.   function cmg_display_login_page() {
  1970.     //console.log("login link clicked in popup message");
  1971.     popover_login_click = true;
  1972.     if (jQuery('#popover' + gameId).length) {
  1973.       jQuery('#popover' + gameId).remove();
  1974.       immerse_hover_on = 0;
  1975.     }
  1976.     window.location = "/login?destination=" + window.location.pathname
  1977.   }
  1978.  
  1979.   function display_cmg_overlay_signupform(variant) {
  1980.       // console.log("BIG SCREEN display_cmg_overlay_signupform: "+new Date());
  1981.     if (jQuery('#popover' + gameId).length) {
  1982.       jQuery('#popover' + gameId).remove();
  1983.       immerse_hover_on = 0;
  1984.     }
  1985.     // track event of type  'signup'
  1986.     if (typeof cmg_bsft === 'undefined') {
  1987.       cmg_bsft = 0;
  1988.       if (getCookie('cmg_fx') === null) {
  1989.         cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0;
  1990.       } else if (getCookie('cmg_uid') !== null && getCookie('cmg_bsft_' + getCookie('cmg_uid')) !== null) {
  1991.         cmg_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  1992.       }
  1993.     }
  1994.     cmg_bigscreen_trackevent('signup', cmg_bsft);
  1995.     if ((getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) {
  1996.       myStopFunction();
  1997.     }
  1998.     // Check if A/B test is available
  1999.     if (typeof signup_abtest_cmg_bsft !== 'undefined') {
  2000.       //variant = signup_abtest_cmg_bsft;
  2001.     }
  2002.     if (typeof variant === 'undefined' || variant === '') {
  2003.       variant = '/16'; // 14b, 15c, 16
  2004.     }
  2005.  
  2006.     if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes' && jQuery('#big-screen-overlay').length) {
  2007.       jQuery('#big-screen-overlay').show();
  2008.     } else if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') {
  2009.       var big_screen_url = '';
  2010.       if (getCookie('cmg_fx') === null) {
  2011.         // big_screen_url = '/premium-access/1bb008bd' + variant + '?ts='+new Date().getTime();//Bigscreen trial plans
  2012.         // big_screen_url = '/premium-access/849ef809' + variant + '?ts=' + new Date().getTime(); // BSWOJ anon plan
  2013.         big_screen_url = '/premium-access/6ea95de6' + variant + '?ts='+new Date().getTime();//BSWOJ anon plan
  2014.  
  2015.       } else {
  2016.         // big_screen_url = '/premium-access/7859e605' + variant + '?ts='+new Date().getTime();//BSFT logged-in user plan
  2017.         big_screen_url = '/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan
  2018.       }
  2019.       if (variant == 'thankyou') {
  2020.         big_screen_url = '/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/1bb008bd/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1';
  2021.       }
  2022.       if (/coolmathgames/.test(location.host)) {
  2023.         // big_screen_url = "https://" + location.host + big_screen_url;
  2024.       }
  2025.       var ov_css = 'style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.4);" min-height="1040px"';
  2026.       var ovc_css = 'style="margin: auto; padding: 10px; width: 850px;" min-height="540px"';
  2027.       var iframe_overlay = '<div id="big-screen-overlay" ' + ov_css + ' width="90%" height="90%"><div class="big-screen-signup-container" ' + ovc_css + ' ><a class="btn-close" onclick="cmg_bigscreen_trackevent(\'closesignup\', cmg_bsft); return false;" href="/"><i class="fa fa-circle fa-stack-1x"></i><i class="icon-remove_sign" aria-hidden="true"></i></a><iframe src="' + big_screen_url + '" width="100%" height="100%" min-height="1000px" id="big_screen_iframe" scrolling="no"></iframe></div></div>';
  2028.       // TODO Add this iframe at the correct place that it needs to go.
  2029.       jQuery('.global-wrapper').before(iframe_overlay); // TODO
  2030.       jQuery('#big_screen_iframe').css('height', '800px');
  2031.       jQuery('#big-screen-overlay').fadeIn(1000);
  2032.       jQuery('.big-screen-signup-container .btn-close').on('click', function (e) {
  2033.         e.preventDefault();
  2034.         jQuery('#big-screen-overlay').hide();
  2035.       });
  2036.     } else {
  2037.       var big_screen_url = '';
  2038.       if (getCookie('cmg_fx') === null) { // big_screen_url = '/premium-access/1bb008bd' + variant + '?ts='+new Date().getTime();
  2039.         big_screen_url = '/premium-access/849ef809' + variant + '?ts=' + new Date().getTime(); // BSWOJ anon plan
  2040.       } else { // big_screen_url = '/premium-access/7859e605' + variant + '?ts='+new Date().getTime();
  2041.         big_screen_url = '/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan
  2042.       }
  2043.       if (variant == 'thankyou') {
  2044.         big_screen_url = '/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/849ef809/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1';
  2045.       }
  2046.       if (/coolmathgames/.test(location.host)) { // big_screen_url = "https://" + location.host + big_screen_url;
  2047.       }
  2048.       var ov_css = 'style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.4);" min-height="1040px"';
  2049.       var ovc_css = 'style="margin: auto; padding: 10px; width: 850px;" min-height="540px"';
  2050.       var iframe_overlay = '<div id="big-screen-overlay" ' + ov_css + ' width="90%" height="90%"><div class="big-screen-signup-container" ' + ovc_css + ' ><a class="btn-close" onclick="cmg_bigscreen_trackevent(\'closesignup\', cmg_bsft); return false;" href="/"><i class="fa fa-circle fa-stack-1x"></i><i class="icon-remove_sign" aria-hidden="true"></i></a><iframe src="' + big_screen_url + '" width="100%" height="100%" min-height="1000px" id="big_screen_iframe" scrolling="no"></iframe></div></div>';
  2051.       // TODO Add this iframe at the correct place that it needs to go.
  2052.       jQuery('.global-wrapper').before(iframe_overlay); // TODO
  2053.       jQuery('#big_screen_iframe').css('height', '800px');
  2054.       jQuery('#big-screen-overlay').fadeIn(1000);
  2055.       jQuery('.big-screen-signup-container .btn-close').on('click', function (e) {
  2056.         e.preventDefault();
  2057.         jQuery('#big-screen-overlay').hide();
  2058.       });
  2059.     }
  2060.   }
  2061.  
  2062.   function immersive_mode_exit_handler(variant) {
  2063.     bigScreenActive = false;
  2064.     cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0;
  2065.     // we do not increment in exit handler
  2066.     // Logged in user
  2067.     if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) {
  2068.       cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  2069.       if (cmg_uid_bsft !== null) {
  2070.         cmg_bsft = parseInt(cmg_uid_bsft);
  2071.       } else {
  2072.         cmg_bsft = 0;
  2073.       }
  2074.     }
  2075.     if (cmg_bsft >= 3 && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) { // Redirect the user to signup page
  2076.       if (jQuery.fullscreen.isFullScreen()) {
  2077.         jQuery.fullscreen.exit();
  2078.       }
  2079.       if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') {
  2080.         // track event of type  'exit2signup'
  2081.         cmg_bigscreen_trackevent('exit2signup', cmg_bsft);
  2082.         display_cmg_overlay_signupform(variant);
  2083.       } else {
  2084.         cmg_bigscreen_trackevent('bigscreen-exit', cmg_bsft);
  2085.       }
  2086.     } else if (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  2087.       myTimerAction();
  2088.     }
  2089.     if (bigScreenTimer) {
  2090.       clearTimeout(bigScreenTimer);
  2091.       bigScreenTimer = null;
  2092.     }
  2093.     if (cmg_bsft < 3) { // track event of type  'exit'
  2094.       cmg_bigscreen_trackevent('exit', cmg_bsft);
  2095.     }
  2096.   }
  2097.  
  2098.   function bigScreenTimerAction() {
  2099.     cmg_bsft = 3;
  2100.     if (typeof bigScreenActive !== 'undefined' && bigScreenActive) {
  2101.       if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { // Logged in user
  2102.         cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  2103.         if (cmg_uid_bsft !== null) { // cmg_bsft = parseInt(cmg_uid_bsft) + 1;
  2104.           cmg_bsft = 3; // 3011
  2105.         } else {
  2106.           cmg_bsft = 3; // 3011
  2107.         }
  2108.         // Ajax request to update user object
  2109.         url = "/ajax/cmgbsft/" + getCookie('cmg_uid') + '/' + cmg_bsft; // + '?' + new Date().getTime();
  2110.         status = 0;
  2111.         jQuery.getJSON(url, function (data) {
  2112.           if (typeof data.uid !== 'undefined' && data.cmgbsft !== 'undefined') {
  2113.             status = 1;
  2114.           }
  2115.         });
  2116.         // setCookie('cmg_bsft_'+getCookie('cmg_uid'), cmg_bsft, 365 * 24 * 60 * 60 * 1000);
  2117.       } else {
  2118.         // Anon user
  2119.         // cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) + 1 : 1;
  2120.         cmg_bsft = 3; // 3011
  2121.         setCookie('cmg_bsft', cmg_bsft, 365 * 24 * 60 * 60 * 1000);
  2122.       }
  2123.       clearTimeout(bigScreenTimer);
  2124.       bigScreenTimer = null;
  2125.     }
  2126.   }
  2127.   var immerse_hover_on = 0;
  2128.   var immerse_hover_in = 0;
  2129.   var big_screen_msg_on = 0;
  2130.  
  2131.   function immersive_popover_msg() {
  2132.     var popover_msg = "New Premium Feature! Try it for FREE now";
  2133.     if ((getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null)) {
  2134.       popover_msg = "New Premium Feature! Try it now!";
  2135.     } else {
  2136.       cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0;
  2137.       // Logged in user
  2138.       if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) {
  2139.         cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  2140.         if (cmg_uid_bsft !== null) {
  2141.           cmg_bsft = parseInt(cmg_uid_bsft);
  2142.         } else {
  2143.           cmg_bsft = 0;
  2144.         }
  2145.       }
  2146.       // setCookie('cmg_bsft', cmg_bsft, 365*24*60*60*1000);todo in timer function after bigscreen is active for a minute
  2147.       if (cmg_bsft === 1) {
  2148.         popover_msg = "2 Free Trials Remaining";
  2149.       } else if (cmg_bsft === 2) {
  2150.         popover_msg = "1 Free Trial Remaining";
  2151.       } else if (cmg_bsft >= 3) {
  2152.         var variant = '';
  2153.         if (typeof signup_abtest_2_variations_adfree_modular !== 'undefined') {
  2154.           variant = '/'.signup_abtest_2_variations_adfree_modular;
  2155.         }
  2156.         if (getCookie('cmg_fx') !== null) {
  2157.           popover_msg = 'BIG SCREEN is a Premium Feature. <br/>Please <a onclick=\'display_cmg_overlay_signupform(); return false;\' href=\'/premium-access/7859e605' + variant + '\'>Sign Up</a>';
  2158.         } else {
  2159.  
  2160.           popover_msg = 'BIG SCREEN is a Premium Feature. <br/>Please <a onclick=\'display_cmg_overlay_signupform(); return false;\' href=\'/premium-access/1bb008bd' + variant + '\'>Sign Up</a> or <a onclick=\'cmg_display_login_page(); return false;\' href=\'/login\'>Log In</a>.';
  2161.         }
  2162.       }
  2163.     }
  2164.     return popover_msg;
  2165.   }
  2166.   var cmg_bs_popover_prefix = '<div class="popover fade bs-popover-top show" role="tooltip" id="popover' + gameId + '" x-placement="top" ';
  2167.   var cmg_bs_popover_suffix1 = '><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body">';
  2168.   var cmg_bs_popover_suffix2 = '</div></div>';
  2169.  
  2170.   // Display BS TrueX options overlay
  2171.   network_user_id = '';
  2172.   truex_options = null;
  2173.   truex_ad_available = 0;
  2174.   // make call to trueX for available ads
  2175.   function requestTrueXAdsAndDisplay(client) { // log("Ads Requested");
  2176.     client.requestActivity(function (truexAd) { // var truexAd = ads.shift();
  2177.       if (truexAd) {
  2178.         truex_ad_available = 1;
  2179.         // trackEvent('View a Sponsored Video', 'TrueX Ad Available', document.title);
  2180.         log("Bigscreen Truex Ad client loaded and ad available");
  2181.         showTrueXOptIn(truexAd, client);
  2182.       } else { // log("No ads available.");
  2183.         log("Bigscreen Truex Ad NOT available. Pre-roll video ad shall be displayed");
  2184.         // trackEvent('View a Sponsored Video', 'TrueX Ad Not Available', document.title);
  2185.         truex_ad_available = 0;
  2186.       }
  2187.     });
  2188.   }
  2189.  
  2190.   function showTrueXOptIn(truexAd, client) { // add TrueX event handlers
  2191.     truexAd.onStart(function (activity) { // ad started
  2192.       log("Bigscreen Truex Ad start");
  2193.       // cmg_bigscreen_trackevent
  2194.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Start', document.title);
  2195.  
  2196.       jQuery('#big-screen-truex-header-text').css('padding-top', '14px').html('<div><span style="font-size: 22px;">PLAY BIG SCREEN AFTER THIS 30 SECOND AD</span></div>');
  2197.  
  2198.       myStopFunction();
  2199.       trueXTimer = setTimeout(function () {
  2200.         jQuery('#big-screen-truex-header-text').css('background-color', '#16202c').css('padding-top', '14px').html('<div><span style="font-size: 22px;">PLEASE INTERACT WITH THIS AD TO CONTINUE</span></div>'); // .css('margin-top', '150px');
  2201.       }, 25 * 1000);
  2202.     });
  2203.     truexAd.onCredit(function (engagement) { // user spent 30 seconds and interacted at least once
  2204.       log("Bigscreen Truex Ad credit");
  2205.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Credited', document.title);
  2206.       // <div class="continue-link-yellow"> text to write ▶</div>
  2207.       jQuery('#big-screen-truex-header-text').css('background-color', '#16202c').css('padding-top', '14px').html('<div><span><a href="" style="font-size: 22px; text-decoration: none; color:#F5E61F; " id="truex-bigscreen-activate-id" class="truex-bigscreen-activate">PLAY BIG SCREEN NOW ▶</a></span></div>');
  2208.       document.getElementById("truex-bigscreen-activate-id").onclick = function () {
  2209.         event.preventDefault();
  2210.         if (typeof bigScreenActive === 'undefined' || typeof bigScreenActive !== 'undefined' && !bigScreenActive) {
  2211.           jQuery('#big-screen-signup-container-id').html("");
  2212.           jQuery('#big-screen-truex-overlay').remove();
  2213.           cmg_start_game_full_screen('truex');
  2214.         }
  2215.       }
  2216.       // console.log(engagement);
  2217.     });
  2218.     truexAd.onClose(function (activity) { // user closed the ad unit
  2219.       log("Bigscreen Truex Ad close");
  2220.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Closed', document.title);
  2221.       containerClose();
  2222.       requestTrueXAdsAndDisplay(client);
  2223.     });
  2224.     truexAd.onFinish(function (activity) { // user got to end of ad
  2225.       log("Bigscreen Truex Ad finish");
  2226.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Finished', document.title);
  2227.       jQuery('#big-screen-signup-container-id').html("");
  2228.       jQuery('#big-screen-truex-overlay').remove();
  2229.       // full screen
  2230.       cmg_start_game_full_screen("truex");
  2231.     });
  2232.     truexAd.onMessage(function (payload) { // log("onMessage = " + payload);
  2233.     });
  2234.  
  2235.  
  2236.     // track TrueX Trigger Point Impression
  2237.     // client.trackTriggerPointImpression(truexAd);
  2238.  
  2239.     // handle opt-in click event
  2240.     // add TrueX Opt-in to DOM
  2241.     if (jQuery("#cmg-big-screen-truex-activity").length) {
  2242.       var truex_container = document.getElementById("cmg-big-screen-truex-activity");
  2243.       document.getElementById("cmg-big-screen-truex-activity").onclick = function () { // truex_preroll_display_handler();
  2244.         event.preventDefault();
  2245.         trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Button clicked', document.title);
  2246.         jQuery('.big-screen-options-container').hide();
  2247.         if (truex_ad_available && typeof client !== 'undefined') { // BigScreen-TrueX-Promo
  2248.           log("Bigscreen Truex ad available. Show Truex activity");
  2249.           trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Loading', document.title);
  2250.           client.loadActivityIntoContainer(truexAd, 'big-screen-signup-container-id', {
  2251.             width: "960px",
  2252.             height: "540px"
  2253.           });
  2254.           // show_big_screen_preroll_ad();//test preroll
  2255.         } else {
  2256.           log("Bigscreen Truex ad not available. Instead show preroll video");
  2257.           // TODO: Show preroll
  2258.           truex_overlay_preroll_ad_display = true;
  2259.           show_big_screen_preroll_ad();
  2260.           trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Preroll Ad Loading', document.title);
  2261.         }
  2262.       };
  2263.     }
  2264.  
  2265.     // cmg-big-screen-truex-signup
  2266.     if (jQuery("#cmg-big-screen-truex-signup").length) {
  2267.       document.getElementById("cmg-big-screen-truex-signup").onclick = function () {
  2268.         log("Bigscreen button clicked");
  2269.         event.preventDefault();
  2270.         // jQuery('.big-screen-options-container').hide();
  2271.         jQuery('#big-screen-truex-overlay').remove();
  2272.         display_cmg_overlay_signupform();
  2273.       };
  2274.     }
  2275.   }
  2276.  
  2277.   function truex_preroll_display_handler() { // log("Truex ad is available. Show truex activity");
  2278.     event.preventDefault();
  2279.     trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Button clicked', document.title);
  2280.     jQuery('.big-screen-options-container').hide();
  2281.     if (truex_ad_available && typeof client !== 'undefined') { // BigScreen-TrueX-Promo
  2282.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Loading', document.title);
  2283.       client.loadActivityIntoContainer(truexAd, 'big-screen-signup-container-id', {
  2284.         width: "960px",
  2285.         height: "540px"
  2286.       });
  2287.       // show_big_screen_preroll_ad();//test preroll
  2288.     } else {
  2289.       // log("Truex ad not available. Instead show preroll video");
  2290.       // TODO: Show preroll
  2291.       truex_overlay_preroll_ad_display = true;
  2292.       show_big_screen_preroll_ad();
  2293.       trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Preroll Ad Loading', document.title);
  2294.     }
  2295.   }
  2296.  
  2297.   function containerClose() { // log("containerClose called.");
  2298.   }
  2299.  
  2300.   function log(msg) {
  2301.     console.log("CMG [%s] - %s", new Date().toLocaleTimeString(), msg);
  2302.   }
  2303.   cmg_truex_promo_events_added = 0;
  2304.   function display_big_screen_truex_options_overlay() { // initialize trueX ad client w/ options hash
  2305.     trackEvent('BigScreen-TrueX-Promo', 'Bigscreen button clicked', document.title);
  2306.     //console.log("big screen button click position 1 -"+ new Date());
  2307.  
  2308.       if(getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null  || getCookie('cmg_editor') !== null ) {
  2309.       event.preventDefault();
  2310.       //console.log("big screen button click -"+ new Date());
  2311.       cmg_start_game_full_screen('truex');
  2312.     } else {
  2313.       network_user_id = getCookie('_ga');
  2314.       if (typeof network_user_id !== 'undefined' && network_user_id !== '') {
  2315.         network_user_id = network_user_id.replace('GA', 'cmg');
  2316.       }
  2317.       // TRUEX Test Hash
  2318.       // truex_options = {'network_user_id': network_user_id, 'partner_config_hash': '83f879b26797c723882473d6435e6361c105d86b'};
  2319.       // TRUEX Live Hash
  2320.  
  2321.       truex_options = {
  2322.         'network_user_id': network_user_id,
  2323.         'partner_config_hash': '375f2f2b728700cd991bb24601b3841c98375886'
  2324.       };
  2325.       if (typeof truex !== 'undefined') {
  2326.         truex.client(truex_options, function (client) {
  2327.           requestTrueXAdsAndDisplay(client);
  2328.         });
  2329.       }
  2330.  
  2331.       var ov_css = ' style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.7);" min-height="1040px" ';
  2332.       var ovc_css = ' style="margin: auto; margin-top: 200px; padding: 10px; width: 424px; height: initial; background-color: #1f4f77; border:3px solid #286aa1;" ';
  2333.       var ovc_css_id = ' style="margin: auto; margin-top: 150px; width: 960px; " ';
  2334.       var truex_css = '  ';
  2335.       var truex_options1 = '<div class="truex_options_title" ' + truex_css + '><h1>To Play This Game in Big Screen Mode</h1></div>';
  2336.       // onclick="truex_preroll_display_handler(); return false; --> below"
  2337.       var truex_options2 = '<div class="truex_options_video" ' + truex_css + '><a href="" id="cmg-big-screen-truex-activity" class="txt-bs-popup" onclick="truex_preroll_display_handler(); return false;"><h2>View a Sponsored Video</h2></a></div>';
  2338.       var truex_optionsOR = '<div class="truex_options_OR_txt" ' + truex_css + '><h1> OR </h1></div>';
  2339.  
  2340.       var truex_options3 = '<div class="truex_options_signup" ' + truex_css + '><a href="" id="cmg-big-screen-truex-signup"  class="txt-bs-popup" onclick="display_cmg_overlay_signupform(); return false;"><h2>Pay for Premium Access</h2></a></div>';
  2341.       var truex_options4 = '<div class="truex_options_no_thks" ><a href="" id="cmg-big-screen-truex-promo-close" onclick="cmg_bigscreen_trackevent(\'closepromo\', cmg_bsft); return false;"  href="/">No thanks, return to regular mode</a></div>';
  2342.  
  2343.       var truex_options_prefix = '<div id="cmg-truex-options-container">';
  2344.       var truex_options_suffix = '</div>';
  2345.       truex_options = truex_options_prefix + truex_options1 + truex_options2 + truex_optionsOR + truex_options3 + truex_options4 + truex_options_suffix;
  2346.       var truex_options_heading = '<div id="big-screen-truex-header-text" style="text-align: center; padding: 5px; padding-top: 14px; color:#fff; font-size:22px; background-color: #484848; ">' + '</div>';
  2347.       var preroll_container = '<div id="big-screen-preroll-container"><div id="videoplayer" style="width:100%;">' + '<video id="content123" style="width:640px;height:1px;">' + '<source src="//www.coolmathgames.com/sites/default/files/adtesting/DummyVideo.mov"></source>' + '</video><div id="adcontainer" style="margin:auto; width:640px;height:480px;"></div>' + '</div></div>' +
  2348.       // '<div id="continue-container"><div id="continue-link" style="color: yellow;">Continue in </div>'+
  2349.       // '<span id="preroll_timer_id" style="width: 1px; height: 1px;">15</span>';
  2350.       '</div>';
  2351.       var bs_truex_options = '<div id="big-screen-truex-overlay" class="big-screen-style-popup-container" ' + ov_css + ' width="90%" height="90%">' + '<div class="big-screen-options-container" ' + ovc_css + ' >' + '<div class="bs-pop-up-content-container"><a class="btn-close" onclick="cmg_bigscreen_trackevent(\'closepromo\', cmg_bsft); return false;" href="/">' + '<i class="icon-remove"  style="font-size:24px;"  aria-hidden="true"></i></a>' + truex_options + '</div>' + '</div>' + '<div id="truex-main-container" ' + ovc_css_id + '>' + truex_options_heading + '<div id="big-screen-signup-container-id"></div>' + preroll_container + '</div>' + '</div>';
  2352.       // TODO Add this iframe at the correct place that it needs to go.
  2353.       jQuery('.global-wrapper').before(bs_truex_options); // TODO
  2354.       jQuery('#big_screen_iframe').css('height', '800px');
  2355.       jQuery('.big-screen-options-container').show();
  2356.       jQuery('#big-screen-truex-overlay').fadeIn(1000);
  2357.       // if(!cmg_truex_promo_events_added) {
  2358.       // cmg_truex_promo_events_added = 1;
  2359.       jQuery('.big-screen-options-container .btn-close').on('click', function (e) {
  2360.         e.preventDefault();
  2361.         jQuery('#big-screen-truex-overlay').hide();
  2362.       });
  2363.       jQuery('#cmg-big-screen-truex-promo-close').on('click', function (e) {
  2364.         e.preventDefault();
  2365.         jQuery('#big-screen-truex-overlay').hide();
  2366.       });
  2367.       // }
  2368.     }
  2369.   }
  2370.  
  2371.   function show_big_screen_preroll_ad() {
  2372.     event.preventDefault();
  2373.     jQuery('#big-screen-truex-header-text').css('padding-top', '14px').html('<h2 style="font-size: 22px;">PLAY BIG SCREEN AFTER THIS AD</h2>');
  2374.     jQuery('.big-screen-options-container').hide();
  2375.  
  2376.     var cmatgame_subscriber = getCookie('cmg_sx');
  2377.     var validSubscriber = false;
  2378.     if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) {
  2379.       validSubscriber = true;
  2380.     }
  2381.     // preroll ads
  2382.     var prerollUrls = /0\-testing/;
  2383.     if (! validSubscriber) { // display preroll ads
  2384.       window.scrollTo(0, 0);
  2385.       var modal = document.getElementById('big-screen-preroll-container');
  2386.       // modal.style.display = 'block';
  2387.       // clear refresh timer
  2388.       if (typeof refreshTimer !== "undefined") {
  2389.         clearTimeout(refreshTimer);
  2390.         refreshTimer = null;
  2391.       }
  2392.       var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1';
  2393.       if (typeof window.PW_CMG != "undefined") {
  2394.         var auctionCallback = function (displayAds, videoUrl) {
  2395.           application = new Application(displayAds, videoUrl);
  2396.         };
  2397.         window.PW_CMG.startAuction(auctionCallback);
  2398.       } else { // adblock
  2399.         application = new Application(false, adTagUrl);
  2400.       }
  2401.  
  2402.       bs_preroll_timer = 15;
  2403.       bs_preroll_intervalId = setInterval(function () {
  2404.         bs_preroll_timer --;
  2405.  
  2406.         jQuery('#big-screen-truex-header-text').html('<h2 style="font-size: 22px;">PLAY BIG SCREEN AFTER THIS AD: ' + bs_preroll_timer + '</h2>');
  2407.         // document.getElementById("preroll_timer_id").innerHTML = seconds_left;
  2408.         if (bs_preroll_timer <= 0) {
  2409.           jQuery('#big-screen-truex-header-text').html('<h2><a href="" style="font-size: 22px; text-decoration: none; color:#F5E61F; " id="truex-bigscreen-activate-id" class="truex-bigscreen-activate">PLAY BIG SCREEN NOW ▶</a></h2>');
  2410.           document.getElementById("truex-bigscreen-activate-id").onclick = function () {
  2411.             event.preventDefault();
  2412.             if (typeof bigScreenActive === 'undefined' || typeof bigScreenActive !== 'undefined' && !bigScreenActive) {
  2413.               jQuery('#big-screen-signup-container-id').html("");
  2414.               jQuery('#big-screen-truex-overlay').remove();
  2415.               cmg_start_game_full_screen('truex');
  2416.             }
  2417.           }
  2418.           clearInterval(bs_preroll_intervalId);
  2419.         }
  2420.       }, 1000);
  2421.     }
  2422.   }
  2423.   // TRUEX end
  2424.   function cmg_start_game_full_screen(cmgsource) {
  2425.     myStopFunction(); // no ad refresh
  2426.     bigScreenActive = true;
  2427.     // console.log("Starting fullscreen");
  2428.     if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { // trackEvent('BigScreen-Trial', 'Bigscreen activated', document.title);
  2429.       cmg_bigscreen_trackevent('enter', cmg_bsft);
  2430.       bigScreenTimer = setTimeout(function () {
  2431.         bigScreenTimerAction();
  2432.       }, 60 * 1000);
  2433.     }
  2434.     else {
  2435.       // trackEvent('BigScreen-TrueX-Promo', 'Bigscreen activated', document.title);
  2436.       cmg_bigscreen_trackevent('enter', 0);
  2437.     }
  2438.     var elem = document.getElementById('block-system-main');
  2439.  
  2440.     if (jQuery('html').hasClass('mobile-device')) {
  2441.       requestFullscreenModal(elem, document.title);
  2442.       return false;
  2443.     }
  2444.  
  2445.     if (elem.requestFullscreen) {
  2446.       elem.requestFullscreen();
  2447.     } else if (elem.mozRequestFullScreen) { /* Firefox */
  2448.       elem.mozRequestFullScreen();
  2449.     } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */
  2450.       elem.webkitRequestFullscreen();
  2451.     } else if (elem.msRequestFullscreen) { /* IE/Edge */
  2452.       elem.msRequestFullscreen();
  2453.     } else {
  2454.       requestFullscreenModal(elem, document.title);
  2455.       return false;
  2456.     }
  2457.     adjustWidthHeightGame();
  2458.   }
  2459.  
  2460.   function immersive_mode_display() {
  2461.     var popover_msg = immersive_popover_msg();
  2462.     var immerse_prefix = '<a class="btn btn-primary btn-sm requestfullscreen" href="#">'; // do not add title
  2463.     var immerse_suffix = '<i class="icon-expand-arrows-alt" aria-hidden="true"></i></a>';
  2464.     var immerse_html = '<span class="big-screen-popover-span" data-toggle="popover" data-trigger="focus" data-placement="top" data-content="' + popover_msg + '">Big Screen    </span>';
  2465.  
  2466.     $(".immerse-button").html(immerse_prefix + immerse_html + immerse_suffix);
  2467.     if (getCookie('cmg_fx') !== null) {
  2468.       jQuery('.node-type-game.logged-in .requestfullscreen').css('display', 'inline-block');
  2469.     }
  2470.     if(getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null) {
  2471.       jQuery('.immerse-button a.btn').css('background-image', 'url("https://www.coolmathgames.com/sites/default/files/styles/WATCH-AD-TO-PLAY-BIG-SCREEN-vSub.png")').css('width', '132px')
  2472.     }
  2473.  
  2474.     // get game
  2475.     var elem = document.getElementById('block-system-main');
  2476.     // open game in fullscreen
  2477.     $('.immerse-button .requestfullscreen').on('click', function (e) {
  2478.       e.preventDefault();
  2479.        //console.log("function immerse button onclick handler" + new Date());
  2480.       // If mobile view show full screen without any ads
  2481.       // if($("html").hasClass("mobile-device")) {
  2482.       // cmg_start_game_full_screen();
  2483.       // }
  2484.       if(/\/test-game\//.test(window.location.pathname)){
  2485.           //console.log("test page");
  2486.           cmg_start_game_full_screen();
  2487.       } else if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') {
  2488.         // TODO: Return from here or not?
  2489.         display_big_screen_truex_options_overlay();
  2490.         return;
  2491.       }
  2492.       if (jQuery('#popover' + gameId).length) {
  2493.         jQuery('#popover' + gameId).remove();
  2494.         immerse_hover_on = 0;
  2495.       }
  2496.       cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0;
  2497.       // Logged in user
  2498.       if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) {
  2499.         cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid'));
  2500.         if (cmg_uid_bsft !== null) {
  2501.           cmg_bsft = parseInt(cmg_uid_bsft);
  2502.         } else {
  2503.           cmg_bsft = 0;
  2504.         }
  2505.       }
  2506.       if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') {
  2507.         if (cmg_bsft < 3) {
  2508.         // track event of type  'enter'
  2509.           cmg_bigscreen_trackevent('enter', cmg_bsft + 1);
  2510.         }
  2511.         if (getCookie('cmg_sx') !== null || getCookie("cmg_wl") !== null || cmg_bsft < 3) {
  2512.           cmg_start_game_full_screen();
  2513.         } else {
  2514.           //console.log("BIG SCREEN You have reached a FT limit");
  2515.           //Display signup form
  2516.           if(getCookie('cmg_sx') === null && getCookie('cmg_wl') === null && !popover_login_click) {
  2517.             display_cmg_overlay_signupform();
  2518.           }
  2519.           // track event of type  'signup'
  2520.           // cmg_bigscreen_trackevent('signup', cmg_bsft+1);
  2521.         }
  2522.       } else {
  2523.         //Big Screen - TrueX Integration
  2524.         //TODO conditions to check or when to display the overlay
  2525.         if (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  2526.           //console.log("Big screen button clicked. display the overlay with options");
  2527.           display_big_screen_truex_options_overlay();
  2528.         } else {
  2529.           if (cmg_bsft < 3) {
  2530.             // track event of type  'enter'
  2531.             cmg_bigscreen_trackevent('enter', cmg_bsft + 1);
  2532.           }
  2533.           if (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null || cmg_bsft < 3) {
  2534.             cmg_start_game_full_screen();
  2535.           } else {
  2536.             //console.log("BIG SCREEN You have reached a FT limit");
  2537.             //Display signup form
  2538.             if(getCookie('cmg_sx') === null && getCookie('cmg_wl') === null && !popover_login_click) {
  2539.               //display_cmg_overlay_signupform();
  2540.             }
  2541.             // track event of type  'signup'
  2542.             // cmg_bigscreen_trackevent('signup', cmg_bsft+1);
  2543.           }
  2544.         }
  2545.       }
  2546.     });
  2547.     if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') {
  2548.       $('.immerse-button .requestfullscreen').hover(function () {
  2549.         // hover in
  2550.         // console.log("Bigscreen button hover in "+new Date());
  2551.         immerse_hover_in = 1;
  2552.         if (!immerse_hover_on) {
  2553.           popover_msg = immersive_popover_msg();
  2554.           var popover_html = cmg_bs_popover_prefix + cmg_bs_popover_suffix1 + popover_msg + cmg_bs_popover_suffix2;
  2555.           $(".immerse-button .big-screen-popover-span").after(popover_html);
  2556.           var width = $(".immerse-button").find('.requestfullscreen').width();
  2557.           var height = $(".immerse-button").find('.popover').height();
  2558.           var xPos = '-' + (width/2);
  2559.           var yPos = '-' + (height + 5);
  2560.           $(".immerse-button").find('.popover').css("transform","translate3d("+ xPos +"px, "+ yPos + "px, 0)");
  2561.  
  2562.           immerse_hover_on = 1;
  2563.           if (jQuery('#popover' + gameId).length) {
  2564.             jQuery('#popover' + gameId).hover(function () {
  2565.               //console.log("Popover message hover in "+ new Date());
  2566.               big_screen_msg_on = 1
  2567.             }, function () {
  2568.               //console.log("Popover message hover out "+ new Date());
  2569.               big_screen_msg_on = 0;
  2570.             });
  2571.           }
  2572.         }
  2573.       }, function () {
  2574.         // hover out
  2575.         // console.log("Bigscreen button hover out "+ new Date());
  2576.         immerse_hover_in = 0;
  2577.         setTimeout(function () {
  2578.           if (immerse_hover_on && !immerse_hover_in && !big_screen_msg_on) {
  2579.             jQuery('#popover' + gameId).remove();
  2580.             immerse_hover_on = 0;
  2581.           }
  2582.         }, 1 * 1000);
  2583.       });
  2584.     }
  2585.  
  2586.     // close game fullscreen
  2587.     $('#block-system-main .close-full-screen').on('click', function (e) {
  2588.       e.preventDefault();
  2589.       immersive_mode_exit_handler();
  2590.       jQuery.fullscreen.exit();
  2591.     });
  2592.     $('body').keypress(function (e) {
  2593.       if (e.which == 27) {
  2594.         if ($('.immerse-button .requestfullscreen').length && typeof bigScreenActive !== 'undefined' && bigScreenActive) {
  2595.           immersive_mode_exit_handler();
  2596.           // jQuery.fullscreen.exit();
  2597.         }
  2598.       }
  2599.     });
  2600.  
  2601.     var screen_change_events = "webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange";
  2602.  
  2603.     // toggle full screen window class
  2604.     jQuery(document).on(screen_change_events, function () {
  2605.       if (jQuery.fullscreen.isFullScreen()) {
  2606.        /*
  2607.        elem.classList.add('full-screen-window');
  2608.         var iframe = document.getElementById('html5game') ? document.getElementById('html5game') : document.getElementById('swfgame');
  2609.         var iframeWidth = parseInt(iframe.width);
  2610.         var iframeHeight = parseInt(iframe.height);
  2611.         var windowWidth = parseInt(screen.width);
  2612.         var windowHeight = parseInt(screen.height) - 75;
  2613.         var xpbarPos = (windowHeight + 75 - iframeHeight) / 2 + iframeHeight + 10;
  2614.         $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2615.  
  2616.         if ($("body").hasClass("game-scalable")) {
  2617.           if (iframeHeight > windowHeight) {
  2618.             var ratio = iframeHeight / windowHeight;
  2619.           } else {
  2620.             var ratio = windowHeight / iframeHeight;
  2621.           }
  2622.  
  2623.           // Calculating game width based on window height
  2624.           var gameWidth = iframeWidth * ratio;
  2625.  
  2626.           // apply new width and height with iframe and xp bar
  2627.           iframe.style.width = gameWidth + "px";
  2628.           iframe.style.height = windowHeight + "px";
  2629.           var xpbarPos = windowHeight + 10;
  2630.           $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2631.         } else if ($("body").hasClass("game-full-screen")) { // apply new width and height with iframe and xp bar
  2632.           iframe.style.width = windowWidth + "px";
  2633.           iframe.style.height = windowHeight + "px";
  2634.           var xpbarPos = windowHeight + 10;
  2635.           $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2636.         }
  2637.         */
  2638.  
  2639.         if (jQuery('html').hasClass('mobile-device')) {
  2640.           jQuery("#block-system-main #html5game").attr('src', jQuery('#playNowButton').attr('href'));
  2641.         }
  2642.  
  2643.         $("body").addClass('immersiveActive');
  2644.         elem.classList.add('full-screen-window');
  2645.         // add zoomed alert
  2646.         chkZoomValues();
  2647.         // Adjusted width and height of iframe game
  2648.         adjustWidthHeightGame();
  2649.  
  2650.       } else {
  2651.         if (jQuery('html').hasClass('mobile-device')) {
  2652.           jQuery("#block-system-main #html5game").removeAttr('src');
  2653.         }
  2654.  
  2655.         immersive_mode_exit_handler();
  2656.  
  2657.         $("body").removeClass('immersiveActive');
  2658.         elem.classList.remove('full-screen-window');
  2659.         // remove zoomed alert
  2660.         $('.zoomedalert').remove();
  2661.         $('#html5game').removeAttr("style");
  2662.         $('#swfgame').removeAttr("style");
  2663.         $('.game-xp-bar-immerse-button').removeAttr("style");
  2664.       }
  2665.     });
  2666.   }
  2667.  
  2668.   function adjustWidthHeightGame() {
  2669.     var iframe = document.getElementById('html5game') ? document.getElementById('html5game') : document.getElementById('swfgame');
  2670.     var iframeWidth = parseInt(iframe.width);
  2671.     var iframeHeight = parseInt(iframe.height);
  2672.     // var windowWidth = parseInt(screen.width);
  2673.     // var windowHeight = parseInt(screen.height) - 75;
  2674.     var windowWidth = parseInt($(window).width());
  2675.     var windowHeight = parseInt($(window).height());
  2676.     var xpbarPos = (windowHeight + 75 - iframeHeight) / 2 + iframeHeight + 10;
  2677.     $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2678.  
  2679.     if ($("body").hasClass("game-scalable")) {
  2680.       if (iframeHeight > windowHeight) {
  2681.         var ratio = iframeHeight / windowHeight;
  2682.       } else {
  2683.         var ratio = windowHeight / iframeHeight;
  2684.       }
  2685.  
  2686.       // Calculating game width based on window height
  2687.       var gameWidth = iframeWidth * ratio;
  2688.  
  2689.       // apply new width and height with iframe and xp bar
  2690.       iframe.style.width = gameWidth + "px";
  2691.       iframe.style.height = windowHeight + "px";
  2692.       var xpbarPos = windowHeight + 10;
  2693.       $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2694.     } else if ($("body").hasClass("game-full-screen")) { // apply new width and height with iframe and xp bar
  2695.       iframe.style.width = windowWidth + "px";
  2696.       iframe.style.height = windowHeight + "px";
  2697.       var xpbarPos = windowHeight + 10;
  2698.       $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px");
  2699.     }
  2700.   }
  2701.  
  2702.   function adjustWidthHeightModalGame(is_resize) {
  2703.     var iframe = $('#immersiveModal').find('#html5game');
  2704.     var iframeWidth = parseInt(iframe.attr('width'));
  2705.     var iframeHeight = parseInt(iframe.attr('height'));
  2706.  
  2707.     var time_out = (is_resize === true) ? 500 : 0;
  2708.    // setTimeout(function(){
  2709.  
  2710.     var wdWidth = parseInt($(window).width());
  2711.     var wdHeight = parseInt($(window).height());
  2712.  
  2713.     var oTwdWidth = parseInt($(window).outerWidth());
  2714.     var oTwdHeight = parseInt($(window).outerHeight());
  2715.  
  2716.     var windowWidth = (oTwdWidth > wdWidth) ? oTwdWidth : wdWidth;
  2717.     var windowHeight = (oTwdHeight > wdHeight) ? oTwdHeight : wdHeight;
  2718.  
  2719.       if ($("body").hasClass("game-scalable")) {
  2720.         if (iframeHeight > windowHeight) {
  2721.           var ratio = iframeHeight / windowHeight;
  2722.         } else {
  2723.           var ratio = windowHeight / iframeHeight;
  2724.         }
  2725.  
  2726.         // Calculating game width based on window height
  2727.         var gameWidth = iframeWidth * ratio;
  2728.  
  2729.         // apply new width and height with iframe
  2730.         iframe.css("width", windowWidth);
  2731.         iframe.css("height", windowHeight);
  2732.       } else if ($("body").hasClass("game-full-screen")) {
  2733.         iframe.css("width", windowWidth);
  2734.         iframe.css("height", windowHeight);
  2735.       }
  2736.    // }, time_out);
  2737.   }
  2738.  
  2739.   // adjust game width/height if screen rotate from portrait to landscape
  2740.   window.addEventListener("resize", function () {
  2741.     if ($("body").hasClass("immersiveActive")) {
  2742.       adjustWidthHeightGame();
  2743.     }
  2744.     if ($("body").hasClass("isFullScreen")) {
  2745.       adjustWidthHeightGame();
  2746.     }
  2747.     if ($("body").find("#immersiveModal").length) {
  2748.       adjustWidthHeightModalGame(true);
  2749.     }
  2750.   }, false);
  2751.  
  2752.         var cmg_mmg_html = '';
  2753.         var cmg_mmg_swf_html = '';
  2754.   var cmg_game_modal_attached = false;
  2755.         function attachModalHtml(elem, title) {
  2756.     cmg_game_modal_attached = true;
  2757.     var elem = document.getElementById('block-system-main');
  2758.     html = '<div id="immersiveModal" class="" style="display:none;" tabindex="-1" role="dialog" aria-labelledby="immersiveModalLabel" aria-hidden="true">';
  2759.     html += '<div class="modal-dialog">';
  2760.     html += '<div class="modal-content">';
  2761.     html += '<div class="modal-body">';
  2762.     html += '<div id="swfgamewrapper1">';
  2763.     //html += jQuery('#'+elem.id).find('#swfgamewrapper').html();
  2764.     html += '</div>';
  2765.     html += '</div>';
  2766.     html += '</div>';
  2767.     html += '</div>';
  2768.     html += '</div>';
  2769.  
  2770.     $('body').append(html);
  2771.     var gamewrapper = jQuery("#swfgamewrapper");
  2772.     jQuery('#immersiveModal .modal-body').html(gamewrapper);
  2773.     if(cmg_is_mobile_device() || (jQuery(".game-page-mobile .playNow").length && jQuery(".game-page-mobile .playNow").is(':visible') ) ) {
  2774.       sandbox = jQuery("#html5game").attr("sandbox");
  2775.       if (sandbox !== undefined) {
  2776.         sandbox = ' sandbox=\"' + sandbox + '\"';
  2777.       } else {
  2778.         sandbox = '';
  2779.       }
  2780.       newiframe = '<iframe style="display: none;" id="html5game" src="' + jQuery("#html5game").attr("src") + '" class="' + jQuery("#html5game").attr("class") + '" width="' + jQuery("#html5game").attr("width") + '" height="' + jQuery("#html5game").attr("height") + '" scrolling="no" marginwidth="0' + '" vspace="0" frameborder="0" hspace="0" marginheight="0"' + sandbox + '></iframe>';
  2781.       if(jQuery("#html5game").length) {
  2782.           cmg_mmg_html = '<iframe id="html5game" src="' + jQuery("#html5game").attr("src") + '" class="' + jQuery("#html5game").attr("class") + '" width="' + jQuery("#html5game").attr("width") + '" height="' + jQuery("#html5game").attr("height") + '" scrolling="no" marginwidth="0' + '" vspace="0" frameborder="0" hspace="0" marginheight="0"' + sandbox + '></iframe>';
  2783.       }
  2784.       newswfiframe = '<iframe style="display: none;" id="swfgame" src="' + jQuery("#swfgame").attr("src") + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  2785.       if(jQuery("#swfgame").length) {
  2786.           cmg_mmg_swf_html = '<iframe id="swfgame" src="' + jQuery("#swfgame").attr("src") + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  2787.       }
  2788.       if (cmg_flash_emulated_game()) {
  2789.         if(drupalSettings.cmatgame.flash_emulation === "1"){ //ruffle
  2790.           game_type = "html5";
  2791.           var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u;
  2792.           var swfURLArray = swfURLObject.split("/");
  2793.           game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width;
  2794.           game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height;
  2795.           var swf_game_url = 'https://www.coolmath-games.com/sites/cmatgame/files/ruffle1/ruffle.html?f='+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height;
  2796.           cmg_mmg_swf_html = '<iframe id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  2797.         } else if(drupalSettings.cmatgame.flash_emulation === "2"){ //ruffle
  2798.           //console.log("Cheerpx load 3");
  2799.           game_type = "html5";
  2800.           game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width;
  2801.           game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height;
  2802.           game_type = "html5";
  2803.           var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u;
  2804.           var swfURLArray = swfURLObject.split("/");
  2805.           //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1];
  2806.           swf_1_game_movie_param = swfURLArray[swfURLArray.length-1];
  2807.           //cheerpx js
  2808.           var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height;
  2809.           newswfiframe = '<iframe '+coep_frame_type+' id="swfgame" src="' + swf_game_url + '" class="' + jQuery("#swfgame").attr("class") + '" width="' + jQuery("#swfgame").attr("width") + '" height="' + jQuery("#swfgame").attr("height") + '" scrolling="no" marginwidth="0" vspac' + 'e="0" frameborder="0" hspace="0" marginheight="0"></iframe>';
  2810.           jQuery("#swfgame").replaceWith(newswfiframe);
  2811.           //console.log("Cheerpx replace iframe 2");
  2812.         }
  2813.       }
  2814.     }
  2815.  
  2816.   }
  2817.  
  2818.   function requestFullscreenModal(elem, title) {
  2819.                 $("#immersiveModal").addClass('modal fade show full-screen-modal').css({"display":"block", "z-index":10000000});
  2820.     $('body').addClass('isModalPlay');
  2821.     $('#immersiveModal').find('#swfgamewrapper').show();
  2822.     if($('#html5game').length || cmg_mmg_html) {
  2823.       jQuery("#swfgamewrapper").html(cmg_mmg_html);
  2824.       if (cmg_flash_emulated_game()) {
  2825.         jQuery("#swfgamewrapper").html(cmg_mmg_swf_html);
  2826.       }
  2827.     } else if(jQuery('#swfgame').length) {
  2828.       if (cmg_flash_emulated_game()) {
  2829.         jQuery("#swfgamewrapper").html(cmg_mmg_swf_html);
  2830.       }
  2831.     }
  2832.  
  2833.     $('#immersiveModal').find('.close').click(function () {
  2834.       $("#immersiveModal").remove();
  2835.     });
  2836.  
  2837.     window.location.hash = "immersiveModal";
  2838.     $(window).on('hashchange', function (event) {
  2839.       if (window.location.hash != "#immersiveModal") {
  2840.         $("#immersiveModal").hide();
  2841.         if($('#html5game').length) {
  2842.                 $('#html5game').remove();
  2843.         } else if(jQuery('#swfgame').length) {
  2844.           jQuery('#swfgame').remove();
  2845.         }
  2846.         $('body').removeClass('isModalPlay');
  2847.       }
  2848.     });
  2849.     adjustWidthHeightModalGame(false);
  2850.     if (typeof browser !== "undefined" && browser == "Microsoft Internet Explorer") {
  2851.       if ("function" === typeof checkVersionBrowser) {
  2852.         ieVersion = checkVersionBrowser();
  2853.         if(ieVersion == "IE 11" && !jQuery('#html5game').length) {
  2854.           jQuery("#swfgamewrapper").html(cmg_mmg_html);
  2855.           //console.log("requestFullscreenModal immersiveModal ieVersion ? "+ieVersion.length);
  2856.         }
  2857.       }
  2858.     }
  2859.   }
  2860. </script><script type="deferjs">
  2861.           hide_preroll_ads = false;
  2862.         var cmg_active_anonymous_user = getCookie('cmg_active_anonymous_user');
  2863.     if (cmg_active_anonymous_user != null && !/0-chess/.test(window.location.pathname)) { // setCookie('cmg_active_anonymous_user', 'active', 30*60*1000);
  2864.     }
  2865.   </script><div id="afg_container"><div class="load-wrap"><script type="deferjs">
  2866.         // IE Detection and Version grabbing
  2867.         ie = false;
  2868.         if (navigator.appName == "Microsoft Internet Explorer") {
  2869.           ie = true;
  2870.           var ua = navigator.userAgent;
  2871.           var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
  2872.           if (re.exec(ua) != null) {
  2873.             ieVersion = parseInt(RegExp.$1)
  2874.           }
  2875.         }
  2876.         if (ie && ieVersion <= 9) {
  2877.           $('<h3 class="loadingText">Just a moment while your game loads...</h3>' + signupContainerTop).prependTo('.load-wrap');
  2878.         } else {
  2879.           $('<h3 class="loadingText">Just a moment while your game loads</h3><div class="circle"></div><div class="circle"></div><div class="circle"></div><div class="circle"></div>' + signupContainerTop).prependTo('.load-wrap');
  2880.         }
  2881.       </script></div></div><!--Start of Preloader call --><div id="afg_preloader"><div id="container123"><div id="videoplayer"><video id="content123" style="height: 1px; width: 640px;"><source src="//www.coolmathgames.com/sites/default/files/adtesting/DummyVideo.mov"></source></video><div id="adcontainer" style="height: 480px; width: 640px;"></div></div></div><!-- Continue to Game container with timer --><div id="continue-container" style="display:none"><div id="img-button-container"><div id="img-button-self" class="img-button"><input type="image" src="/themes/custom/coolmath/assets/images/coolmathgames_skip-the-ads-button3a.png" alt="Submit" class="skip-ad-btn" onclick="redirectpremium();"></div><div class="continue-lnk-container-rsection"><div id="continue-link">Continue in </div><div id="timer_div" style="margin-left:5px;">15</div></div></div></div><script type="deferjs" src="//cdn.intergi.com/prebid/cmg-prebid.js"></script><script type="deferjs" src="//cdn.intergi.com/cmg/cmg-headerbidding.js"></script><script type="deferjs" src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script><script type="deferjs" src="/modules/custom/cmatgame_ads_analytics/js/adblocker.js"></script><script type="deferjs">
  2882.       function redirectpremium(){
  2883.        //location.href= "/premium-access/";
  2884.        event.preventDefault();
  2885.        var sLeg = get_premium_access_leg_desc('2efa4bc4');
  2886.        var path = '/premium-access/2efa4bc4';
  2887.        if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  2888.          path = '/premium-access/bd07c4e6';
  2889.          sLeg = get_premium_access_leg_desc('bd07c4e6');
  2890.        }
  2891.        trackEvent('Premium Subscription - '+sLeg, "Preroll - Skip Ads Go VIP Now - button clicked", document.title);
  2892.        window.location.href = window.location.protocol + '//' + window.location.host + path + get_signup_abtest_variant_3();
  2893.       }
  2894.  
  2895.     displayAdblockOverlay = false;
  2896.     if ( typeof hide_preroll_ads != "undefined" && !hide_preroll_ads && (document.getElementById('randomAdBlockDiv') == null || typeof google == "undefined" || typeof cmgpbjs == "undefined")) { // cmgpbjs is defined in ads, so if it undefined means, adblocker is detected
  2897.       displayAdblockOverlay = true;
  2898.     }
  2899.  
  2900.  
  2901.     /**
  2902.      * Handles user interaction and creates the player and ads controllers.
  2903.      */
  2904.     var pagepreRollType = '';
  2905.     var Application = function (displayAds, adTagUrl, preRollType) {
  2906.       if(typeof preRollType == "undefined") { //desktop
  2907.         preRollType = "";
  2908.       } else {
  2909.         pagepreRollType = preRollType;
  2910.       }
  2911.       this.playing_ = false;
  2912.       this.adsActive_ = false;
  2913.       this.adsDone_ = false;
  2914.       if (typeof displayAds === 'undefined' || displayAds === null) {
  2915.         this.displayAds = true;
  2916.       } else {
  2917.         this.displayAds = displayAds;
  2918.       }
  2919.       this.adTagUrl_ = adTagUrl;
  2920.  
  2921.       this.videoPlayer_ = new VideoPlayer(preRollType);
  2922.       //&& (typeof targeted_state === 'undefined' || watchAdtoUnlockGameIsClicked == "true")
  2923.       if(jQuery(window).width() >= 610 && jQuery(window).height() >= 610) {
  2924.         this.videoPlayer_.width = 640;
  2925.         this.videoPlayer_.height = 480;
  2926.       } else {
  2927.         this.videoPlayer_.width = 300;
  2928.         this.videoPlayer_.height = 250;
  2929.       }
  2930.       if (this.displayAds) { // console.log("Preload ads for non subscription time games");
  2931.         this.ads_ = new Ads(this, this.videoPlayer_);
  2932.         // Adx Preroll Tag with fallback display Ad The user clicked/tapped - inform the ads controller that this code is being run in a user action thread.
  2933.         this.ads_.initialUserAction();
  2934.         // At the same time, initialize the content player as well. When content is loaded, we'll issue the ad request to prevent it from interfering with the initialization. See
  2935.         // https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/ads#iosvideo for more information.
  2936.         this.videoPlayer_.preloadContent(this.bind_(this, this.loadAds_));
  2937.         this.adsDone_ = true;
  2938.       } else {
  2939.         // console.log("Do not preload ads for Get Ad Free Games user");
  2940.         // removePrerollAndDisplayGame();
  2941.         jQuery(document).ready(function () {
  2942.           display_game_progressbar(gameId);
  2943.         });
  2944.       }
  2945.     };
  2946.  
  2947.     Application.prototype.bind_ = function (thisObj, fn) {
  2948.       return function () {
  2949.         fn.apply(thisObj, arguments);
  2950.       };
  2951.     };
  2952.  
  2953.     Application.prototype.loadAds_ = function () {
  2954.       this.ads_.requestAds(this.adTagUrl_);
  2955.     };
  2956.  
  2957.     /**
  2958.            * Handles video player functionality.
  2959.            */
  2960.     var VideoPlayer = function (preRollType) {
  2961.       this.contentPlayer = document.getElementById(preRollType+'content123');
  2962.       this.adContainer = document.getElementById(preRollType+'adcontainer');
  2963.       this.videoPlayerContainer_ = document.getElementById(preRollType+'videoplayer');
  2964.       this.width = 640;
  2965.       this.height = 480;
  2966.     };
  2967.  
  2968.     VideoPlayer.prototype.preloadContent = function (contentLoadedAction) {
  2969.       contentLoadedAction();
  2970.     };
  2971.     VideoPlayer.prototype.play = function () {
  2972.       this.contentPlayer.play();
  2973.     };
  2974.  
  2975.     VideoPlayer.prototype.pause = function () {
  2976.       this.contentPlayer.pause();
  2977.     };
  2978.  
  2979.     /**
  2980.      * Shows how to use the IMA SDK to request and display ads.
  2981.      */
  2982.     var Ads = function (application, videoPlayer) {
  2983.       this.application_ = application;
  2984.       this.videoPlayer_ = videoPlayer;
  2985.       this.customClickDiv_ = document.getElementById('customClick');
  2986.       this.contentCompleteCalled_ = false;
  2987.       google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED);
  2988.       // Call setLocale() to localize language text and downloaded swfs google.ima.settings.setLocale('fr');
  2989.       this.adDisplayContainer_ = new google.ima.AdDisplayContainer(this.videoPlayer_.adContainer, this.videoPlayer_.contentPlayer, this.customClickDiv_);
  2990.       this.adsLoader_ = new google.ima.AdsLoader(this.adDisplayContainer_);
  2991.       this.adsManager_ = null;
  2992.  
  2993.       this.adsLoader_.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.onAdsManagerLoaded_, false, this);
  2994.       this.adsLoader_.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, this.onAdError_, false, this);
  2995.     };
  2996.  
  2997.     // On iOS and Android devices, video playback must begin in a user action. AdDisplayContainer provides a initialize() API to be called at appropriate time. This should be called when the user clicks or taps.
  2998.     Ads.prototype.initialUserAction = function () {
  2999.       this.adDisplayContainer_.initialize();
  3000.       this.videoPlayer_.contentPlayer.load();
  3001.  
  3002.     };
  3003.  
  3004.     Ads.prototype.requestAds = function (adTagUrl) {
  3005.       var adsRequest = new google.ima.AdsRequest();
  3006.       adsRequest.adTagUrl = adTagUrl;
  3007.       adsRequest.linearAdSlotWidth = this.videoPlayer_.width;
  3008.       adsRequest.linearAdSlotHeight = this.videoPlayer_.height;
  3009.       adsRequest.nonLinearAdSlotWidth = this.videoPlayer_.width;
  3010.       adsRequest.nonLinearAdSlotHeight = this.videoPlayer_.height;
  3011.       this.adsLoader_.requestAds(adsRequest);
  3012.     };
  3013.  
  3014.     Ads.prototype.onAdsManagerLoaded_ = function (adsManagerLoadedEvent) { // console.log('Ads loaded.');
  3015.       var adsRenderingSettings = new google.ima.AdsRenderingSettings();
  3016.       // adsRenderingSettings.loadVideoTimeout = 4000;
  3017.       adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true;
  3018.       this.adsManager_ = adsManagerLoadedEvent.getAdsManager(this.videoPlayer_.contentPlayer, adsRenderingSettings);
  3019.       this.adsManager_.setVolume(0);
  3020.       this.processAdsManager_(this.adsManager_);
  3021.     };
  3022.  
  3023.     Ads.prototype.processAdsManager_ = function (adsManager) {
  3024.       if (adsManager.isCustomClickTrackingUsed()) {
  3025.         this.customClickDiv_.style.display = 'table';
  3026.       }
  3027.       // Handle errors.
  3028.       adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, this.onAdError_, false, this);
  3029.       var events = [
  3030.         google.ima.AdEvent.Type.ALL_ADS_COMPLETED,
  3031.         google.ima.AdEvent.Type.COMPLETE,
  3032.         google.ima.AdEvent.Type.FIRST_QUARTILE,
  3033.         google.ima.AdEvent.Type.LOADED,
  3034.         google.ima.AdEvent.Type.MIDPOINT,
  3035.         google.ima.AdEvent.Type.STARTED,
  3036.         google.ima.AdEvent.Type.THIRD_QUARTILE,
  3037.         google.ima.AdEvent.Type.USER_CLOSE
  3038.       ];
  3039.       for (var index in events) {
  3040.         adsManager.addEventListener(events[index], this.onAdEvent_, false, this);
  3041.       }
  3042.  
  3043.       var initWidth,
  3044.         initHeight;
  3045.  
  3046.       initWidth = this.videoPlayer_.width;
  3047.       initHeight = this.videoPlayer_.height;
  3048.  
  3049.       adsManager.init(initWidth, initHeight, google.ima.ViewMode.NORMAL);
  3050.  
  3051.       adsManager.start();
  3052.     };
  3053.     Ads.prototype.onAdEvent_ = function (adEvent) {
  3054.       //console.log("Preroll adEvent type: "+adEvent.type +" --> "+new Date());
  3055.       if (adEvent.type == google.ima.AdEvent.Type.LOADED) {
  3056.         var ad = adEvent.getAd();
  3057.           //hide the dummy video
  3058.         if(jQuery("#content123").length && jQuery("#content123").is(":visible")) {
  3059.                 jQuery("#content123").hide();
  3060.         } else if(jQuery("#m-content123").length && jQuery("#m-content123").is(":visible")) {
  3061.                 jQuery("#m-content123").hide();
  3062.         } else if(jQuery("#r-content123").length && jQuery("#r-content123").is(":visible")) {
  3063.                 jQuery("#r-content123").hide();
  3064.         }
  3065.       }
  3066.       if ((typeof truex_overlay_preroll_ad_display === 'undefined' || typeof truex_overlay_preroll_ad_display !== 'undefined' && !truex_overlay_preroll_ad_display) && adEvent.type == google.ima.AdEvent.Type.COMPLETE) {
  3067.         if(pagepreRollType == '') {
  3068.           removePrerollAndDisplayGame();
  3069.         }
  3070.         jQuery(document).ready(function () {
  3071.           display_game_progressbar(gameId);
  3072.         });
  3073.       }
  3074.       if ((typeof truex_overlay_preroll_ad_display === 'undefined' || typeof truex_overlay_preroll_ad_display !== 'undefined' && !truex_overlay_preroll_ad_display) && adEvent.type == google.ima.AdEvent.Type.ALL_ADS_COMPLETED) {
  3075.         if(pagepreRollType == '') {
  3076.           removePrerollAndDisplayGame();
  3077.         }
  3078.         jQuery(document).ready(function () {
  3079.           display_game_progressbar(gameId);
  3080.         });
  3081.       }
  3082.       if ((typeof truex_overlay_preroll_ad_display === 'undefined' || typeof truex_overlay_preroll_ad_display !== 'undefined' && !truex_overlay_preroll_ad_display) && adEvent.type == google.ima.AdEvent.Type.USER_CLOSE) {
  3083.         if(pagepreRollType == '') {
  3084.           removePrerollAndDisplayGame();
  3085.         }
  3086.         jQuery(document).ready(function () {
  3087.           display_game_progressbar(gameId);
  3088.         });
  3089.       }
  3090.       if(pagepreRollType == 'r-' && (adEvent.type == google.ima.AdEvent.Type.SKIPPED || adEvent.type == google.ima.AdEvent.Type.ALL_ADS_COMPLETED)) {
  3091.         //Responsive view --> Display continue link  after ad is comleted or skipped
  3092.         removeResponsivePrerollTimer();
  3093.       }
  3094.       if (typeof truex_overlay_preroll_ad_display !== 'undefined' && truex_overlay_preroll_ad_display && (adEvent.type == google.ima.AdEvent.Type.SKIPPED || adEvent.type == google.ima.AdEvent.Type.USER_CLOSE)) {
  3095.  
  3096.         jQuery('#big-screen-signup-container-id').html("");
  3097.         jQuery('#big-screen-truex-overlay').remove();
  3098.         cmg_start_game_full_screen('truex');
  3099.       } else if (typeof truex_overlay_preroll_ad_display !== 'undefined' && truex_overlay_preroll_ad_display && (adEvent.type == google.ima.AdEvent.Type.ALL_ADS_COMPLETED || adEvent.type == google.ima.AdEvent.Type.COMPLETE)) {
  3100.         if (typeof bs_preroll_timer !== 'undefined' && bs_preroll_timer > 0) { // console.log("Bigscreen pre-roll ad event "+ adEvent.type + " set bs_preroll_timer to 0 from "+bs_preroll_timer);
  3101.           bs_preroll_timer = 0;
  3102.         }
  3103.         else {
  3104.         // console.log("Bigscreen pre-roll ad event "+ adEvent.type + " bs_preroll_timer is 0 or undefined");
  3105.         }
  3106.       }
  3107.     };
  3108.     Ads.prototype.onAdError_ = function (adErrorEvent) {
  3109.       if (this.adsManager_) {
  3110.         this.adsManager_.destroy();
  3111.       }
  3112.       if(pagepreRollType == '') {
  3113.         removePrerollAndDisplayGame();
  3114.       }
  3115.       jQuery(document).ready(function () {
  3116.         display_game_progressbar(gameId);
  3117.       });
  3118.       // TODO remove the ad slot and display the game this.application_.resumeAfterAd();
  3119.       // TODO UNCOMMENT BELOW removePrerollAndDisplayGame();
  3120.     };
  3121.     
  3122.     function displayAdBlock(deviceType) {
  3123.       adBlockDisplayed = true;
  3124.       // subscription Paywall for Adblock users
  3125.       // Top of Ad Block Div
  3126.       var adBlockPremiumHeadline = '<span class="blue-headline-txt">Allow Ads</span> or <span class="yellow-headline-txt">Join!</span>';
  3127.       var adBlockSubHeadline = '<span class="blue-headline-txt">Turn Off Your Ad Blocker to  Keep Playing</span>';
  3128.       // Bottom of Ad Block Div
  3129.       var adBlockBottomPromo = '<span class="yellow-headline-txt">Or Go VIP Ad-Free Now</span>';
  3130.       var adBlockPromoPricing = '$5.99/month membership. Cancel Anytime';
  3131.       // Button Text
  3132.       var adBlockPremiumButton = 'Get Ad-Free';
  3133.       if(typeof intervalId != "undefined") {
  3134.         clearInterval(intervalId);
  3135.       }
  3136.       var adblockTarget = ".field-game";
  3137.       if(deviceType == "" || deviceType == "desktop") {
  3138.         console.log("displayAdBlock desktop");
  3139.         jQuery("#afg_container").hide();
  3140.         jQuery("#continue-container").hide();
  3141.       } else { //mobile
  3142.         console.log("displayAdBlock mobile");
  3143.         adblockTarget = ".game-image.my-4";
  3144.         jQuery(".game-page-mobile").addClass("ad-blocked");
  3145.         jQuery(".game-page-mobile .game-image.my-4").html("");
  3146.       }
  3147.       doNotDisplayPrerollTimer = true;
  3148.  
  3149.       jQuery(adblockTarget).append('<div class="blocker-detected-2">' +
  3150.       '<div class="row blocker-detected-top-content">' +
  3151.       '<h2>' + adBlockPremiumHeadline + '</h2>' +
  3152.       '<h3>' + adBlockSubHeadline + '</h3>' +
  3153.       '<div class="main-block-content">' +
  3154.       '<div class="left-content-bullets">' +
  3155.       '<ul>' +
  3156.       '<li><div class="numberCircle">1</div><p>Click the Ad Blocker extension icon in the upper<br>right area of your browser window.</p></li>' +
  3157.       '<li><div class="numberCircle">2</div><p>Choose “Don\’t run on this domain” or similar <br>option to disable it for all Coolmath Pages.</p></li>' +
  3158.       '<li><div class="numberCircle">3</div><p>Refresh the Page</p><br><a class="adblock-more-info-link" href="/adblock-faq" target="_blank">Having problems or need more info? Click here</a></li>' +
  3159.       '</ul>' +
  3160.       '</div>' +
  3161.       '<div class="right-content-image"><img src="/sites/default/files/disable-adblocker.png" alt="disable ad blocker instructions" /></div>' +
  3162.       '</div>' + '</div>' + '<div class="row blocker-detected-bottom-content">' + '<div clas="left-bottom-content">' +
  3163.       '<h3>' + adBlockBottomPromo + '</h3>' +
  3164.       '<h4>' + adBlockPromoPricing + '<h4>' +
  3165.       '</div>' +
  3166.       '<div class="right-content-button-container"><div class="btn-container"><a class="btn sign-up vip-btn" id="adblock_join_now_promo_handler" href="premium-access/791c674d"><span>' + adBlockPremiumButton + '</span></a></div></div>' +
  3167.       '</div>' +
  3168.       '</div>');
  3169.     }
  3170.  
  3171.     var cmatgame_subscriber = getCookie('cmg_sx');
  3172.     var validSubscriber = false;
  3173.     if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) {
  3174.       validSubscriber = true;
  3175.     }
  3176.     if(getCookie("cmg_wl") !== null) {
  3177.       validSubscriber = true;
  3178.     }
  3179.     var validReferer = false;
  3180.     if (document.referrer.match("google.com") !== null || document.referrer.match("yahoo.com") !== null || document.referrer.match("bing.com") !== null) {
  3181.       validReferer = true;
  3182.     }
  3183.     var application = null;
  3184.     function cmg_adrecovery() {
  3185.       //console.log("AdRecovery: cmg_adrecovery() school Hours - remove adblocker and display game "+new Date());
  3186.       if(typeof retrieveUserProgress == "function") {
  3187.         retrieveUserProgress();
  3188.       }
  3189.       removePrerollAndDisplayGame();
  3190.     }
  3191.     function cmg_flash_emulated_game() {
  3192.       //flash_emulation === "1" --> ruffle, flash_emulation === "2" --> cheerpx,
  3193.       //TODO add cheerpx
  3194.       if(typeof flashemulation !== "undefined" && (drupalSettings.cmatgame.flash_emulation === "1" || drupalSettings.cmatgame.flash_emulation === "2" )) {
  3195.         return true;
  3196.       } else {
  3197.         return false;
  3198.       }
  3199.     }
  3200.  
  3201.     // display Ads to anonymous users the time from 7am to 13pm, display ads to anonymous users  from 13pm to 11:59pm and 00 to 7am only if the user is not from New York city
  3202.     // TODO -->  Need to add day of the week for school hours logic, day < 6
  3203.     if (validSubscriber) { // valid subscriber do not display Preroll Ads
  3204.       var adTagUrl = "";
  3205.       // retreive user Progress
  3206.       if(typeof retrieveUserProgress == "function") {
  3207.         retrieveUserProgress();
  3208.       }
  3209.       removePrerollAndDisplayGame();
  3210.       jQuery(document).ready(function () {
  3211.         display_game_progressbar(gameId);
  3212.       });
  3213.  
  3214.     } else if (!validSubscriber && (document.getElementById('randomAdBlockDiv') == null || typeof google == "undefined" || typeof cmgpbjs == "undefined") ) {
  3215.         //TODO when schools starts add this logic ((schoolHours && parseInt(sessionStorage.getItem('sessionGamesPlayed') || 0) > 3) || !schoolHours)
  3216.         if(cmg_is_mobile_device() || document.documentElement.clientWidth <=950) { //mobile or responsive mobile view
  3217.           //TODO if cmg_optimize_ad_recovery -- display the game
  3218.           if(typeof schoolHours !== "undefined" && schoolHours) {
  3219.             //console.log("Adblocker detected (mobile), but try ad recovery  during school hours "+new Date());
  3220.             //cmg_adrecovery();
  3221.             removePrerollAndDisplayGame();
  3222.           } else if(typeof hide_preroll_ads == "undefined" || !hide_preroll_ads) {
  3223.             displayAdBlock("mobile");
  3224.           }
  3225.         } else {
  3226.           //TODO if cmg_optimize_ad_recovery -- display the game
  3227.           if(typeof schoolHours !== "undefined" && schoolHours || drupalSettings.cmatgame.flash_emulation == "2") {
  3228.             //console.log("Adblocker detected (desktop), but try ad recovery during school hours "+new Date());
  3229.             //cmg_adrecovery();
  3230.             removePrerollAndDisplayGame();
  3231.           } else if(typeof hide_preroll_ads == "undefined" || !hide_preroll_ads) {
  3232.             displayAdBlock("desktop");
  3233.           }
  3234.         }
  3235.     } else if( typeof bigScreenPromoGame != "undefined" && bigScreenPromoGame == true && (gamesPlayed == 2 || gamesPlayed == 8) && (flashemulation != 0)) {
  3236.           /**
  3237.       *** Big Screen Promo and check for every 3rd refresh
  3238.       ***/
  3239.       jQuery("#afg_container").hide();
  3240.       jQuery('#full-screen-modal').show();
  3241.       jQuery('#big-screen-container').show();
  3242.       jQuery("#videoplayer").hide();
  3243.       if (jQuery('#right-rail-big-screen-promo').length) {
  3244.         document.getElementById('right-rail-big-screen-promo').style.display = 'block';
  3245.         jQuery('#right-rail-big-screen-promo').show();
  3246.  
  3247.       }
  3248.  
  3249.       // show bigscreen button
  3250.       $(document).ready(function () {
  3251.         jQuery("#continue-container").hide();
  3252.         if (jQuery('.immerse-button').length) { 
  3253.           jQuery('#no-flash-overlay').hide();
  3254.           jQuery('#swfgamewrapper').hide();
  3255.         }
  3256.       });
  3257.  
  3258.         } else if (typeof AdfreeMktCmpGame != "undefined" && AdfreeMktCmpGame == true && (gamesPlayed == 2 || gamesPlayed == 8) && (flashemulation != 0)){
  3259.                         /**
  3260.       *** Add free marketing promo Promo and check for every 3rd refresh
  3261.       ***/
  3262.       jQuery("#afg_container").hide();
  3263.       jQuery('#id-adfree-marketing-campaign').show();
  3264.       jQuery("#videoplayer").hide();
  3265.       if (jQuery('#right-rail-big-screen-promo').length) {
  3266.         document.getElementById('right-rail-big-screen-promo').style.display = 'block';
  3267.         jQuery('#right-rail-big-screen-promo').show();
  3268.  
  3269.       }
  3270.  
  3271.       // show bigscreen button
  3272.       $(document).ready(function () {
  3273.         if (jQuery('.immerse-button').length) {
  3274.           jQuery('#no-flash-overlay').hide();
  3275.           jQuery('#swfgamewrapper').hide();
  3276.         }
  3277.       });
  3278.  
  3279.     } else if (!validReferer && ( typeof supportCMG === 'boolean' && supportCMG === true  ) && (gamesPlayed == 2 || gamesPlayed == 8) && (flashemulation != 0) && !cmgDefaultGameUrl.test(location.pathname)) { //subscription paywall for Support Game
  3280.  
  3281.       clearInterval(intervalId);
  3282.       jQuery("#afg_container").hide();
  3283.       jQuery(".title-instructions").remove();
  3284.       jQuery(".body-instructions").remove();
  3285.       jQuery(".game-xp-bar-immerse-button").remove();
  3286.       jQuery("#continue-container").hide();
  3287.  
  3288.       if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3289.         var planToSubscription = 'd61242ac';
  3290.       } else {
  3291.         var planToSubscription = '0735a1f2';
  3292.       } // logged in free user
  3293.       doNotDisplayPrerollTimer = true;
  3294.       var htmlPopOver = '<div id="id-cmg-default" class="cmg-default-marketing-campaign" style="display:block;"><div class="big-screen-head"><div class="bs-head-logo"><img src="/themes/custom/coolmath/assets/images/full-screen/cool-math-logo.png"></div><div class="bs-head-txt">Get Premium: The Best Gaming Experience</div><div class="bs-close-button"><a href="#" class="bs-close-btn" onclick="supportCMG_overlay_promo_close_handler(); return false;">X</a></div></div><div class="mid-big-section-head cmg-default-mid-section-marketing-campaign"><div class="mid-img-container"><div><div class="img-container-cmg-default"><div class="no-waiting-txt"> Personalized <br> Premium <br>Profile</div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/premium-avatars-small.png"><br><span class="red-txt">Access All <br>premium avatars </div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/premium-themes-small.png"><br><span class="offwhite-txt">Full selection <br>of themes </span></div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/custom-nicknames-small.png"><br><span class="blue-txt">Custom <br>Nickname </span></div></div></div><div><div class="img-container-cmg-default"><div class="no-waiting-txt"> Distraction <br> Free Gaming & <br>Unlimited <br> Creativity</div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/big-screen-small.png"><br><span class="light-blue-txt">Big <br>Screen </span></div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/ad-free-small.png"><br><span class="green-txt">Ad-Free<br> Experience </span></div><div class="image-bs-sample"><img class="img-cmgdefault" src="/themes/custom/coolmath/assets/images/subscriptions/unlimited-playlists-small.png"><br><span class="white-txt"> Unlimited <br>Playlist </span></div></div></div><div class="better-focus-container "><div class="all-excl-txt">And More Exclusive features for Premium Members!</div></div></div><div class="marketing-cmpn-footer"><div class="bs-footer-link"><a href="/premium-access/' + planToSubscription + '" target="_blank" onclick="cmgDefault_overlay_promo_signup_handler("Get CMGDefault Marketing screen mode - overlay button clicked"); return false;"><img src="/themes/custom/coolmath/assets/images/full-screen/get-premium-btn.png"></a></div><div class="bs-learn-more"><a href="/premium-benefits" target="_blank" onclick="cmgDefault_overlay_promo_more_handler(); return false;" class="bs-lrn-more">Learn More</a></div><div class="bs-no-thks"><a href="" class="bs-lnk-lrn-more" onclick="supportCMG_overlay_promo_close_handler(); return false;">No, Thanks. I just want to play games right now.</a></div></div></div></div>';
  3295.       jQuery(".field-game").append(htmlPopOver);
  3296.       jQuery("#videoplayer").hide();
  3297.       // localStorage.setItem("userPlayedGames"+currentMonth+currentYear,userPlayedGames); localStorage.setItem("userPlayedGames",userPlayedGames);
  3298.  
  3299.   } else if( typeof playListMktCmpGame != "undefined" && playListMktCmpGame == true && (gamesPlayed == 2 || gamesPlayed == 8) && (flashemulation != 0)){
  3300.             /**
  3301.       *** Add free marketing promo Promo and check for every 3rd refresh
  3302.       ***/
  3303.      if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3304.         var planStripString = '4c044106';
  3305.       } else {
  3306.         var planStripString = '39980b12';
  3307.       } // logged in free user
  3308.  
  3309.       jQuery("#afg_container").hide();
  3310.       var playlistPopoverHtml = '<div id="id-playlist-marketing-campaign" class="playlist-marketing-campaign" ><div class="big-screen-head"><div class="bs-head-logo"><img src="/themes/custom/coolmath/assets/images/full-screen/cool-math-logo.png"></div><div class="bs-head-txt">Get Premium for Unlimited Playlists</div><div class="bs-close-button"><a href="#" class="bs-close-btn" onclick="playlist_marketing_overlay_promo_close_handler(); return false;">X</a></div></div><div class="mid-big-section-head adfree-mid-section-marketing-campaign"><div class="mkt-container-co"><div class=" para-1 mkt-container1"><img class="freind-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist_friendst-icon.png"></div><div class="ad-free-txt txt-1">Collect, Organize and share!</div><div class="para-4 mkt-container1"><img class="gift-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist_best-games-youve-never-heard-of.png"></div></div><div class="mkt-container-co"><div class=" para-2 mkt-container1"><img class="cantstop-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist-cant-stop-playing-icon.png"></div><div class="ad-free-txt txt-2">The games you want to live in <br> The Games that make you crazy </div><div class="para-4 mkt-container1"><img class="fav-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist-favorites-icon.png"></div></div><div class="mkt-container-co"><div class="para-3 mkt-container1"><img class="playhard-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist_hard-but-fun.png"></div><div class="ad-free-txt txt-3">The games you love with your friends</div><div class="para-3 mkt-container1 "><img class="eat-icon" src="/themes/custom/coolmath/assets/images/subscriptions/Playlist_want-to-eat-icon.png"></div></div><div class=""><img src="/themes/custom/coolmath/assets/images/subscriptions/playlist_promo_banner.png"></div><div class="marketing-cmpn-footer"><div class="bs-footer-link"><a href="/premium-access/' + planStripString + '" target="_blank" onclick="playlist_marketing_overlay_promo_signup_handler(); return false;"><img src="/themes/custom/coolmath/assets/images/full-screen/get-premium-btn.png"></a></div><div class="bs-learn-more"><a href="/premium-benefits" target="_blank" onclick="playlist_marketing_overlay_promo_more_handler(); return false;" class="bs-lrn-more">Learn More</a></div><div class="bs-no-thks"><a href="" class="bs-lnk-lrn-more" onclick="playlist_marketing_overlay_promo_close_handler(); return false;">No, Thanks. I just want to play games right now.</a></div></div></div></div>';
  3311.       jQuery("#playlist-marketing-container-id").html(playlistPopoverHtml);
  3312.       jQuery("#videoplayer").hide();
  3313.  
  3314.       // show bigscreen button
  3315.       $(document).ready(function () {
  3316.         if (jQuery('.immerse-button').length) {
  3317.           jQuery('#no-flash-overlay').hide();
  3318.           jQuery('#swfgamewrapper').hide();
  3319.         }
  3320.       });
  3321.  
  3322.     } else if ((drupalSettings.cmatgame.swfembed && !cmg_flash_emulated_game()) || getCookie('cmg_schwl') !== null || typeof cmg_no_ads !== 'undefined' || (! validSubscriber && schoolHours) || (!schoolHours && !watchAdtoUnlockGame && !displayAdblockOverlay && !supportCMG && !premiumAvatarGame)) { // school hours
  3323.       cmg_gdpr_check = getCookie("GDPR");
  3324.       var cmg_gdpr_first_check = getCookie("GDPR_First");
  3325.       var cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  3326.       var cmg_gdpr_all_check = getCookie("GDPR_All");
  3327.       // remove ads for first party cookies or reject all cookies is present along with GDPR cookie
  3328.       if (cmg_gdpr_check !== null && cmg_gdpr_all_check === null) {
  3329.         //var adTagUrl = "";
  3330.         //application = new Application(false, adTagUrl);
  3331.         removePrerollAndDisplayGame();
  3332.         jQuery(document).ready(function () {
  3333.           display_game_progressbar(gameId);
  3334.         });
  3335.       } else if (getCookie('cmg_schwl') !== null || typeof cmg_no_ads !== 'undefined' || (drupalSettings.cmatgame.swfembed && !cmg_flash_emulated_game())) {
  3336.         removePrerollAndDisplayGame();
  3337.         jQuery(document).ready(function () {
  3338.           display_game_progressbar(gameId);
  3339.         });
  3340.       } else if ((drupalSettings.cmatgame.swfembed && !cmg_flash_emulated_game()) || getCookie('cmg_schwl') !== null || typeof cmg_no_ads !== 'undefined' || (!validSubscriber && schoolHours) || (!schoolHours && !watchAdtoUnlockGame && !displayAdblockOverlay && !supportCMG && !premiumAvatarGame)) {
  3341.       //school hours
  3342.         cmg_gdpr_check = getCookie("GDPR");
  3343.         var cmg_gdpr_first_check = getCookie("GDPR_First");
  3344.         var cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  3345.         // remove ads for first party cookies or reject all cookies is present along with GDPR cookie
  3346.         if (cmg_gdpr_check !== null && cmg_gdpr_all_check === null) {
  3347.           //var adTagUrl = "";
  3348.           //application = new Application(false, adTagUrl);
  3349.           removePrerollAndDisplayGame();
  3350.           jQuery(document).ready(function () {
  3351.             display_game_progressbar(gameId);
  3352.           });
  3353.         } else {
  3354.           /* Playwire video ad unit */
  3355.           //new desktop preroll invocation
  3356.           if(!cmg_is_mobile_device() && document.documentElement.clientWidth >= 960 && (!jQuery(".game-page-mobile").length || jQuery(".game-page-mobile").is(':hidden')) ) {
  3357.               displayPrerollAd_Desktop();
  3358.           }
  3359.         }
  3360.  
  3361.         if (!/0-chess/.test(window.location.pathname)) {
  3362.           //setCookie('cmg_active_anonymous_user', 'active', 30*60*1000);
  3363.         }
  3364.       } else if (!validSubscriber && (watchAdtoUnlockGame || displayAdblockOverlay || supportCMG || premiumAvatarGame) && getCookie('cmg_editor') === null) {
  3365.         //if user comes from google dont show the subscription paywall
  3366.         var ref = document.referrer;
  3367.       }
  3368.       if (!/0-chess/.test(window.location.pathname)) { // setCookie('cmg_active_anonymous_user', 'active', 30*60*1000);
  3369.       }
  3370.     } else if (!validReferer && premiumAvatarGame && (gamesPlayed == 2 || gamesPlayed == 8)) {
  3371.         //premiumAvatar promo games
  3372.         supportCMG = false;
  3373.         clearInterval(intervalId);
  3374.         jQuery("#afg_container").hide();
  3375.         jQuery(".title-instructions").remove();
  3376.         jQuery(".body-instructions").remove();
  3377.         jQuery("#continue-container").hide();
  3378.         doNotDisplayPrerollTimer = true;
  3379.         if (getCookie('cmg_fx') !== null && getCookie('cmg_sx') == null) {
  3380.           var planToSubscription = '67361110';
  3381.         } else {
  3382.           var planToSubscription = '553bdf22';
  3383.         }
  3384.  
  3385.         jQuery(".field-game").append('<div class="game-overlay-watch-or-join  premium-avatar" style="height:555px;">' +
  3386.         '<div class="row overlay-logo-container">' +
  3387.         '<img src="/themes/custom/cmatgame/logo.png" class="overlay-logo" />' +
  3388.         // '<div class="container">'+
  3389.         // '<h2 class="watch-join-top"><span class="watch-headline">WATCH</span> OR <span class="join-headline">JOIN</span></h2>'+
  3390.         // '</div>'+
  3391.           '</div>' +
  3392.           '<div class="row premium-avatar-content">' +
  3393.  
  3394.           '<div class="row top-promo-text premium-avatar-headline"><h4 class="get-premium">Love The games? Get the avatars!</h4></div>' +
  3395.  
  3396.           '<img style="width:100%;" src="/sites/default/files/premium-avatar-promos/premium-avatar-overlay-1.png" />' +
  3397.  
  3398.           '<div class="premium-avatar-btn-container"><a href="/premium-access/' + planToSubscription + '" target="_blank" onclick="cmgDefault_overlay_promo_signup_handler("Get Premium Avatar screen mode - overlay button clicked"); return false;"><img src="/themes/custom/coolmath/assets/images/full-screen/get-premium-btn.png"></a>' +
  3399.           '<div class="learn-more-text"><a class="learn-more-text-link" href="https://www.coolmathgames.com/premium-benefits" target="_blank"> Learn More</a></div>' +
  3400.           '<div class="no-thanks-text no-thanks-text-premium-avatar"><a href="javascript:premium_avatar_continue_to_game_handler();"> No, thanks. I just want to play games right now.</a></div>' +
  3401.           '</div></div>' +
  3402.           '</div>'
  3403.           );
  3404.         jQuery("#videoplayer").hide();
  3405.  
  3406.       } else if (!validReferer && watchAdtoUnlockGame) { //subscription paywall for WatchAd to Unlock Game
  3407.         //block anonymous users for New York City from 0-7am and 13pm to 11:59pm
  3408.         var watchAdHeadline = 'WATCH TO PLAY';
  3409.         var watchAdParagraphText = 'Watch a video to unlock <br> this game.';
  3410.         var watchAdButtonText = 'WATCH NOW';
  3411.         var joinNowHeadline = 'JOIN TO PLAY';
  3412.         var joinNowParagraphText = '$5.99/month membership<br>Cancel Anytime';
  3413.         var joinNowButtonText = 'Buy VIP Now';
  3414.  
  3415.         clearInterval(intervalId);
  3416.         jQuery("#afg_container").hide();
  3417.         jQuery(".title-instructions").remove();
  3418.         jQuery(".body-instructions").remove();
  3419.         jQuery("#continue-container").hide();
  3420.         doNotDisplayPrerollTimer = true;
  3421.         jQuery(".field-game").append('<div class="game-overlay-watch-or-join">' + '<div class="row">' +
  3422.         // '<div class="container">'+
  3423.         // '<h2 class="watch-join-top"><span class="watch-headline">WATCH</span> OR <span class="join-headline">JOIN</span></h2>'+
  3424.         // '</div>'+
  3425.           '</div>' +
  3426.           '<div class="row watch-join-content">' +
  3427.           '<div class="watch-to-play-container">' +
  3428.           '<div class="watch-to-play"><h3>' + watchAdHeadline +
  3429.           '</h3><div class="overlay-paragraph-text">' + watchAdParagraphText +
  3430.           '</div></div>' + '<div class="btn-container"><a class="btn btn-watch" href="javascript:unlock_now_promo_handler();">' + watchAdButtonText + '</a></div>' +
  3431.           '</div>' + '<div class="hr-line"> </div>' +
  3432.           '<div class="vip-membership-container">' +
  3433.           '<div class="watch-to-play"><h3>' + joinNowHeadline + '</h3><div class="overlay-paragraph-text">' + joinNowParagraphText + '</div></div>' +
  3434.           '<div class="btn-container"><a class="btn sign-up vip-btn" id="join_now_promo_handler" href="/premium-access/849ef809">' + joinNowButtonText + '</a></div>' +
  3435.           '</div>' +
  3436.           '</div>' +
  3437.           '</div>');
  3438.  
  3439.         jQuery("#videoplayer").hide();
  3440.         //localStorage.setItem("userPlayedGames"+currentMonth+currentYear,userPlayedGames); localStorage.setItem("userPlayedGames",userPlayedGames);
  3441.       } else {
  3442.         var adTagUrl = "";
  3443.         application = new Application(false, adTagUrl);
  3444.         if (typeof userPlayedGames !== 'undefined') {
  3445.           localStorage.setItem("userPlayedGames", userPlayedGames); // lifetime limit
  3446.         }
  3447.       }
  3448.  
  3449.  
  3450.     //New desktop preroll ad
  3451.     function displayPrerollAd_Desktop() {
  3452.       jQuery('.game-progress-status').hide();
  3453.       var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1';
  3454.       jQuery("#continue-container").show();
  3455.       jQuery("#continue-container").append(signupContainerBottom);
  3456.       var swf_game_url = jQuery("#swfgame").attr("src");
  3457.       /*
  3458.       adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?' +
  3459.       'sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&' +
  3460.       'impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&' +
  3461.       'cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=';
  3462.       application = new Application(true, adTagUrl);
  3463.       */
  3464.  
  3465.       if (typeof swf_game_url !== 'undefined' && !cmg_flash_emulated_game()) {
  3466.         application = new Application(false, adTagUrl);
  3467.       } else {
  3468.         if (typeof window.PW_CMG != "undefined") {
  3469.           var auctionCallback = function (displayAds, videoUrl) {
  3470.             application = new Application(displayAds, videoUrl);
  3471.           };
  3472.           window.PW_CMG.startAuction(auctionCallback);
  3473.           console.log("Desktop preroll: window.PW_CMG.startAuction....");
  3474.         } else { // adblock
  3475.           application = new Application(false, adTagUrl);
  3476.         }
  3477.       }
  3478.  
  3479.     }
  3480.   </script></div><script type="deferjs">
  3481.   function displayMobilePrerollAd() {
  3482.  
  3483.     var cmatgame_subscriber = getCookie('cmg_sx');
  3484.     var validSubscriber = false;
  3485.     if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) {
  3486.       validSubscriber = true;
  3487.     }
  3488.     var userVisitedGamePageCount = localStorage.getItem("userVisitedGamePageCount");
  3489.     if (userVisitedGamePageCount == null) {
  3490.       userVisitedGamePageCount = 1;
  3491.       localStorage.setItem("userVisitedGamePageCount", userVisitedGamePageCount);
  3492.       localStorage.setItem("userVisitedGamePageLastAccessTime", Date.now());
  3493.     } else if (userVisitedGamePageCount != null) {
  3494.       var userVisitedGamePageLastAccessTime = localStorage.getItem("userVisitedGamePageLastAccessTime");
  3495.  
  3496.       currentTime = Date.now();
  3497.       var lastAccessTime = localStorage.getItem("userVisitedGamePageLastAccessTime");
  3498.       if (lastAccessTime != null) {
  3499.         if (currentTime - lastAccessTime > 1800000) { // if user comes back after 30 minutes then make the user as coming first time
  3500.           userVisitedGamePageCount = 1;
  3501.           localStorage.setItem("userVisitedGamePageCount", userVisitedGamePageCount);
  3502.         } else {
  3503.           userVisitedGamePageCount++;
  3504.           localStorage.setItem("userVisitedGamePageCount", userVisitedGamePageCount);
  3505.         }
  3506.       }
  3507.       localStorage.setItem("userVisitedGamePageLastAccessTime", currentTime);
  3508.     }
  3509.     // preroll ads
  3510.     var prerollUrls = /0\-testing/;
  3511.  
  3512.     // display preroll ads only on 2nd,4th, 6th visits of any game page
  3513.     // userVisitedGamePageCount = 2;
  3514.     if ((userVisitedGamePageCount != null && userVisitedGamePageCount % 2 === 1) || validSubscriber) {
  3515.       checkifFbwgGameAndOpenCustomURLOrRegularPlayURL();
  3516.     } else { // display preroll ads
  3517.  
  3518.       window.scrollTo(0, 0);
  3519.  
  3520.       var modal = document.getElementById('modal');
  3521.       modal.style.display = 'block';
  3522.       // clear refresh timer
  3523.       if (typeof refreshTimer !== "undefined") {
  3524.         clearTimeout(refreshTimer);
  3525.         refreshTimer = null;
  3526.       }
  3527.       var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.m.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1';
  3528.  
  3529.       if (typeof window.PW_CMG != "undefined") {
  3530.         console.log('PBJS start')
  3531.         var auctionCallback = function (displayAds, videoUrl) {
  3532.           application = new Application(displayAds, videoUrl);
  3533.         };
  3534.         window.PW_CMG.startAuction(auctionCallback);
  3535.       } else { // adblock
  3536.         application = new Application(false, adTagUrl);
  3537.       }
  3538.  
  3539.       var seconds_left = 6;
  3540.       intervalId = setInterval(function () {
  3541.         seconds_left--;
  3542.         document.getElementById("timer_div").innerHTML = seconds_left;
  3543.         if (seconds_left <= 0) {
  3544.           if (document.getElementById("timer_div") != null) {
  3545.             document.getElementById("continue-link").innerHTML = "";
  3546.             document.getElementById("timer_div").innerHTML = '<a href="javascript:removePrerollAndDisplayGame();"><div class="continue-link" style="position:relative;left:-130px;">Continue to Game <span style="font-family:Times New Roman;">►</span></div></a>';
  3547.           }
  3548.           clearInterval(intervalId);
  3549.         }
  3550.       }, 1000);
  3551.     }
  3552.   }
  3553.  
  3554.   function removeAdSwf() {
  3555.     removePrerollAndDisplayGame();
  3556.   }
  3557.  
  3558.   function noAdsReturned() { // enable_preroll_fallback_ads is false
  3559.     removePrerollAndDisplayGame();
  3560.   }
  3561.  
  3562.   function unlock_now_promo_handler() {
  3563.     jQuery(".subscription-overlay").remove();
  3564.     jQuery(".game-overlay-watch-or-join").remove();
  3565.     jQuery("#afg_container").show();
  3566.     jQuery("#videoplayer").show();
  3567.     jQuery("#continue-link").text("Continue in ");
  3568.     jQuery("#continue-container").show();
  3569.     jQuery("#continue-container").append(signupContainerBottom);
  3570.     doNotDisplayPrerollTimer = false;
  3571.     displayPrerollTimer();
  3572.     watchAdtoUnlockGameIsClicked = true;
  3573.     var auctionCallback = function (displayAds, videoUrl) {
  3574.       application = new Application(displayAds, videoUrl);
  3575.     };
  3576.     if (typeof window.PW_CMG != "undefined") {
  3577.       window.PW_CMG.startAuction(auctionCallback);
  3578.     }
  3579.   }
  3580.  
  3581.   function join_now_promo_handler() {
  3582.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  3583.       trackEvent('Premium Subscription ' + subscriberLeg, 'Join Now or Go Ad Free button clicked', userPlayedGames);
  3584.       trackGoalVirtualPV('/virtual/join-now-overlay-click');
  3585.       trackEvent('Watch Ad to Unlock Game', 'Join now clicked', document.title);
  3586.     }
  3587.     return;
  3588.   }
  3589.  
  3590.   function unlock_promo_handler() {
  3591.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  3592.       trackEvent('Watch to Unlock' + subscriberLeg, 'Watched an ad to unlock event', userPlayedGames);
  3593.       trackGoalVirtualPV('/virtual/unlock-button-click');
  3594.     }
  3595.     return;
  3596.   }
  3597.  
  3598.   function continue_to_game_handler() {
  3599.     jQuery(".subscription-overlay").remove();
  3600.     jQuery(".game-overlay-watch-or-join").remove();
  3601.     jQuery("#afg_container").show();
  3602.     jQuery("#videoplayer").show();
  3603.     jQuery("#continue-link").text("Continue in ");
  3604.     jQuery("#continue-container").show();
  3605.     jQuery("#continue-container").append(signupContainerBottom);
  3606.     doNotDisplayPrerollTimer = false;
  3607.     displayPrerollTimer();
  3608.     supportCMGisClicked = true;
  3609.     trackEvent('Support CMG', 'Continue to Game Button clicked', document.title);
  3610.     var auctionCallback = function (displayAds, videoUrl) {
  3611.       application = new Application(displayAds, videoUrl);
  3612.     };
  3613.     if (typeof window.PW_CMG != "undefined") {
  3614.       window.PW_CMG.startAuction(auctionCallback);
  3615.     }
  3616.   }
  3617.  
  3618.   function premium_avatar_continue_to_game_handler() {
  3619.     jQuery(".subscription-overlay").remove();
  3620.     jQuery(".game-overlay-watch-or-join").remove();
  3621.     jQuery("#afg_container").show();
  3622.     jQuery("#videoplayer").show();
  3623.     jQuery("#continue-link").text("Continue in ");
  3624.     jQuery("#continue-container").show();
  3625.     jQuery("#continue-container").append(signupContainerBottom);
  3626.     doNotDisplayPrerollTimer = false;
  3627.     displayPrerollTimer();
  3628.     // supportCMGisClicked = true;
  3629.     trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3630.     var auctionCallback = function (displayAds, videoUrl) {
  3631.       application = new Application(displayAds, videoUrl);
  3632.     };
  3633.     if (typeof window.PW_CMG != "undefined") {
  3634.       window.PW_CMG.startAuction(auctionCallback);
  3635.     }
  3636.   }
  3637.  
  3638.   function support_cmg_signup_promo_handler() {
  3639.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  3640.       trackEvent('Premium Subscription ' + subscriberLeg, 'Support CMG button clicked', userPlayedGames);
  3641.       trackGoalVirtualPV('/virtual/join-now-overlay-click');
  3642.       trackEvent('Support CMG', 'Join now clicked', document.title);
  3643.     }
  3644.   }
  3645.  
  3646.   jQuery('#support_cmg_signup_promo_handler').click(function (event) {
  3647.     event.preventDefault();
  3648.     var path = '/premium-access/0735a1f2';
  3649.     var sLeg = get_premium_access_leg_desc('0735a1f2');
  3650.     if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3651.       path = '/premium-access/d61242ac';
  3652.       sLeg = get_premium_access_leg_desc('d61242ac');
  3653.     }
  3654.     if (typeof get_signup_abtest_variant_2 === 'function') {
  3655.       path = path + get_signup_abtest_variant_2();
  3656.     }
  3657.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  3658.       trackEvent('Premium Subscription ' + sLeg, 'Support CMG button clicked', userPlayedGames);
  3659.       trackGoalVirtualPV('/virtual/join-now-overlay-click');
  3660.       trackEvent('Support CMG', 'Join now clicked', document.title);
  3661.     }
  3662.     window.location.href = window.location.protocol + '//' + window.location.host + path;
  3663.   });
  3664.  
  3665.   jQuery('#premium_avatar_signup_promo_handler').click(function (event) {
  3666.     event.preventDefault();
  3667.     var sLeg = get_premium_access_leg_desc('553bdf22');
  3668.     var path = '/premium-access/553bdf22';
  3669.     if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3670.       path = '/premium-access/67361110';
  3671.       sLeg = get_premium_access_leg_desc('67361110');
  3672.     }
  3673.     if (typeof get_signup_abtest_variant_2 === 'function') {
  3674.       path = path + get_signup_abtest_variant_2();
  3675.     }
  3676.     if (typeof freeTrialUser !== 'undefined' && freeTrialUser) {
  3677.       trackEvent('Premium Subscription ' + sLeg, 'Premium Avatar button clicked', userPlayedGames);
  3678.       trackGoalVirtualPV('/virtual/join-now-overlay-click');
  3679.       trackEvent('Premium Avatar', 'Join now clicked', document.title);
  3680.     }
  3681.     window.location.href = window.location.protocol + '//' + window.location.host + path;
  3682.   });
  3683.  
  3684. </script><script type="deferjs">
  3685. jQuery(document).ready(function () {
  3686.   cmatgame_subscriber = getCookie("cmg_sx");
  3687.   if(typeof getCookie === 'function' && getCookie("cmg_wl") !== null) {
  3688.     cmatgame_subscriber = getCookie("cmg_wl");
  3689.   }
  3690.   // check if school is whitelisted
  3691.   if (cmg_school_whitelisted !== null && getCookie("cmg_schwl") !== null) {
  3692.     cmg_school_whitelisted = getCookie("cmg_schwl");
  3693.     cmatgame_subscriber = getCookie("cmg_schwl");
  3694.   } else if (cmg_school_whitelisted === null && typeof cmg_no_ads_debug !== "undefined" && cmg_no_ads_debug) { // console.log("KY school hours");
  3695.     cmatgame_subscriber = cmg_no_ads_debug;
  3696.   }
  3697.   if (cmg_gdpr_check !== null) {
  3698.     var cmg_gdpr_all_check = getCookie("GDPR_All"); // GDPR_All cookie is set when user selects accept all cookies in the GDPR overlay
  3699.     var cmg_gdpr_first_check = getCookie("GDPR_First");
  3700.     var cmg_gdpr_reject_check = getCookie("GDPR_Reject");
  3701.     if (cmg_gdpr_all_check == null && (cmg_gdpr_first_check != null || cmg_gdpr_reject_check != null)) { // user either accepted only first party cookies or rejected all cookies so do not display ads
  3702.       cmatgame_subscriber = getCookie("GDPR");
  3703.     } else if (cmg_gdpr_all_check == null && cmg_gdpr_first_check == null && cmg_gdpr_reject_check == null) { // user is coming for the first time from one of the GDPR countries so do not display ads
  3704.       cmatgame_subscriber = getCookie("GDPR");
  3705.     }
  3706.   }
  3707.   immersive_mode_display_controller();
  3708.   if (getCookie('cmg_sx') !== null || getCookie("cmg_wl") !== null) { // display xp bar for premium users
  3709.     $('.game-xp-bar-immerse-button').addClass('enabled');
  3710.     jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block');
  3711.   }
  3712.  
  3713.   // display_game_progressbar(gameId);
  3714.  
  3715.   // VooxeVideo
  3716.   if (jQuery('#videoContainer').length && typeof VooxeVideo === 'undefined') {
  3717.     trackEvent('Video Walkthrough', 'Walkthrough video not found', document.title);
  3718.     jQuery('#videoContainer').hide();
  3719.   }
  3720. })
  3721.  
  3722.  
  3723. if (browser == "Microsoft Internet Explorer") {
  3724.   if (doesnotie == 1) {
  3725.     var IEDoesnotwork = "yes";
  3726.     doesnotIEMessage();
  3727.   } else {
  3728.     var IEDoesnotwork = "no";
  3729.   }
  3730. }
  3731. function closeBigScreenPromo() {
  3732.   jQuery("#full-screen-modal").remove();
  3733.   jQuery(".subscription-overlay").remove();
  3734.   jQuery(".game-overlay-watch-or-join").remove();
  3735.   jQuery('#big-screen-container').remove();
  3736.   jQuery('#no-flash-overlay').show();
  3737.   jQuery("#swfgamewrapper").show();
  3738.   jQuery("#afg_container").show();
  3739.   jQuery("#videoplayer").show();
  3740.   jQuery("#continue-link").text("Continue in ");
  3741.   jQuery("#continue-container").show();
  3742.   jQuery("#continue-container").append(signupContainerBottom);
  3743.   doNotDisplayPrerollTimer = false;
  3744.   displayPrerollTimer();
  3745.   // supportCMGisClicked = true;
  3746.   trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3747.   var auctionCallback = function (displayAds, videoUrl) {
  3748.     application = new Application(displayAds, videoUrl);
  3749.   };
  3750.   if (typeof window.PW_CMG != "undefined") {
  3751.     window.PW_CMG.startAuction(auctionCallback);
  3752.   }
  3753. }
  3754.  
  3755.  
  3756. function premium_avatar_overlay_promo_signup_handler(promo_action) {
  3757.   event.preventDefault();
  3758.   var sLeg = '';
  3759.   var path = '/premium-access/553bdf22';
  3760.  
  3761.   if (typeof promo_action !== 'undefined' && promo_action !== '') {
  3762.     sAction = promo_action;
  3763.   }
  3764.   sLeg = get_premium_access_leg_desc('553bdf22');//Anon user
  3765.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3766.     path = '/premium-access/67361110';
  3767.     sLeg = get_premium_access_leg_desc('67361110'); // freemium user
  3768.   }
  3769.   trackEvent('Premium Subscription - ' + sLeg, sAction, document.title);
  3770.   if (typeof get_signup_abtest_variant_2 === 'function') {
  3771.     path = path + get_signup_abtest_variant_2();
  3772.   }
  3773.   window.location.href = window.location.protocol + '//' + window.location.host + path; // cmg
  3774. }
  3775.  
  3776. function cmgDefault_overlay_promo_signup_handler(promo_action) {
  3777.   event.preventDefault();
  3778.   var sLeg = '';
  3779.   var path = '/premium-access/0735a1f2';
  3780.   var sAction = 'Get CMGDefault Marketing screen mode - overlay button clicked';
  3781.   if (typeof promo_action !== 'undefined' && promo_action !== '') {
  3782.     sAction = promo_action;
  3783.   }
  3784.   sLeg = get_premium_access_leg_desc('0735a1f2');//Anon user
  3785.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3786.     path = '/premium-access/d61242ac';
  3787.     sLeg = get_premium_access_leg_desc('d61242ac'); // freemium user
  3788.   }
  3789.   trackEvent('Premium Subscription - ' + sLeg, sAction, document.title);
  3790.   if (typeof get_signup_abtest_variant_2 === 'function') {
  3791.     path = path + get_signup_abtest_variant_2();
  3792.   }
  3793.   window.location.href = window.location.protocol + '//' + window.location.host + path; // cmg
  3794. }
  3795.  
  3796.  
  3797. function supportCMG_overlay_promo_close_handler() {
  3798.   event.preventDefault();
  3799.   var sLeg = '';
  3800.   var path = '/premium-access/0735a1f2';
  3801.   var sAction = 'Close Adfree Marketing overlay clicked';
  3802.   sLeg = get_premium_access_leg_desc('0735a1f2'); // Anon user
  3803.   if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3804.     path = '/premium-access/d61242ac';
  3805.     sLeg = get_premium_access_leg_desc('d61242ac'); // freemium user
  3806.   }
  3807.   trackEvent('cmgDefault Marketing overlay', sAction, document.title);
  3808.   if (jQuery("#id-cmg-default").length) {
  3809.     jQuery("#id-cmg-default").hide();
  3810.   }
  3811.   jQuery("#full-screen-modal").remove();
  3812.   jQuery(".subscription-overlay").remove();
  3813.   jQuery(".game-overlay-watch-or-join").remove();
  3814.   jQuery('#big-screen-container').remove();
  3815.   // jQuery('#no-flash-overlay').show();
  3816.   jQuery("#swfgamewrapper").show();
  3817.   jQuery("#afg_container").show();
  3818.   jQuery("#videoplayer").show();
  3819.   jQuery("#continue-link").text("Continue in ");
  3820.   jQuery("#continue-container").show();
  3821.   jQuery("#continue-container").append(signupContainerBottom);
  3822.   doNotDisplayPrerollTimer = false;
  3823.   displayPrerollTimer();
  3824.   // supportCMGisClicked = true;
  3825.   // trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3826.   var auctionCallback = function (displayAds, videoUrl) {
  3827.     application = new Application(displayAds, videoUrl);
  3828.   };
  3829.   if (typeof window.PW_CMG != "undefined") {
  3830.     window.PW_CMG.startAuction(auctionCallback);
  3831.   }
  3832. }
  3833.  
  3834. function adfree_marketing_overlay_promo_signup_handler(promo_action) {
  3835.   event.preventDefault();
  3836.   var sLeg = '';
  3837.   var path = '/premium-access/b2df5a33';
  3838.   var sAction = 'Get Adfree Marketing screen mode - overlay button clicked';
  3839.   if (typeof promo_action !== 'undefined' && promo_action !== '') {
  3840.     sAction = promo_action;
  3841.   }
  3842.   sLeg = get_premium_access_leg_desc('b2df5a33');//Anon user
  3843.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) {
  3844.     path = '/premium-access/0c5a2b5b';
  3845.     sLeg = get_premium_access_leg_desc('0c5a2b5b'); // freemium user
  3846.   }
  3847.   trackEvent('Premium Subscription - ' + sLeg, sAction, document.title);
  3848.   if (typeof get_signup_abtest_variant_2 === 'function') {
  3849.     path = path + get_signup_abtest_variant_2();
  3850.   }
  3851.   window.location.href = window.location.protocol + '//' + window.location.host + path; // cmg
  3852. }
  3853.  
  3854. function adfree_marketing_overlay_promo_close_handler() {
  3855.   event.preventDefault();
  3856.   var sLeg = '';
  3857.   var path = '/premium-access/b2df5a33';
  3858.   var sAction = 'Close Adfree Marketing overlay clicked';
  3859.   sLeg = get_premium_access_leg_desc('b2df5a33');//Anon user
  3860.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3861.     path = '/premium-access/0c5a2b5b';
  3862.     sLeg = get_premium_access_leg_desc('0c5a2b5b'); // freemium user
  3863.   }
  3864.   trackEvent('Adfree Marketing overlay', sAction, document.title);
  3865.   if (jQuery("#id-adfree-marketing-campaign").length) {
  3866.     jQuery("#id-adfree-marketing-campaign").hide();
  3867.   }
  3868.  
  3869.   jQuery("#full-screen-modal").remove();
  3870.   jQuery(".subscription-overlay").remove();
  3871.   jQuery(".game-overlay-watch-or-join").remove();
  3872.   jQuery('#big-screen-container').remove();
  3873.   // jQuery('#no-flash-overlay').show();
  3874.   jQuery("#swfgamewrapper").show();
  3875.   jQuery("#afg_container").show();
  3876.   jQuery("#videoplayer").show();
  3877.   jQuery("#continue-link").text("Continue in ");
  3878.   jQuery("#continue-container").show();
  3879.   jQuery("#continue-container").append(signupContainerBottom);
  3880.   doNotDisplayPrerollTimer = false;
  3881.   displayPrerollTimer();
  3882.   // supportCMGisClicked = true;
  3883.   // trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3884.   var auctionCallback = function (displayAds, videoUrl) {
  3885.     application = new Application(displayAds, videoUrl);
  3886.   };
  3887.   if (typeof window.PW_CMG != "undefined") {
  3888.     window.PW_CMG.startAuction(auctionCallback);
  3889.   }
  3890. }
  3891.  
  3892. function adfree_marketing_overlay_promo_more_handler() {
  3893.   event.preventDefault();
  3894.   var sAction = 'Adfree Marketing overlay learn more clicked';
  3895.   trackEvent('Adfree Marketing overlay', sAction, document.title);
  3896.   var redirect_url = window.location.protocol + '//' + window.location.host + "/premium-benefits";
  3897.   window.open(redirect_url, '_blank');
  3898. }
  3899.  
  3900.  
  3901. function closeBigScreenPromo() {
  3902.   jQuery("#full-screen-modal").remove();
  3903.   jQuery(".subscription-overlay").remove();
  3904.   jQuery(".game-overlay-watch-or-join").remove();
  3905.   jQuery('#big-screen-container').remove();
  3906.   jQuery('#no-flash-overlay').show();
  3907.   jQuery("#swfgamewrapper").show();
  3908.   jQuery("#afg_container").show();
  3909.   jQuery("#videoplayer").show();
  3910.   jQuery("#continue-link").text("Continue in ");
  3911.   jQuery("#continue-container").show();
  3912.   jQuery("#continue-container").append(signupContainerBottom);
  3913.   doNotDisplayPrerollTimer = false;
  3914.   displayPrerollTimer();
  3915.   // supportCMGisClicked = true;
  3916.   trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3917.   var auctionCallback = function (displayAds, videoUrl) {
  3918.     application = new Application(displayAds, videoUrl);
  3919.   };
  3920.   if (typeof window.PW_CMG != "undefined") {
  3921.     window.PW_CMG.startAuction(auctionCallback);
  3922.   }
  3923. }
  3924.  
  3925. function bigscreen_overlay_promo_signup_handler(promo_action) {
  3926.   event.preventDefault();
  3927.   var sLeg = '';
  3928.   var path = '/premium-access/6ea95de6';
  3929.   var sAction = 'Get big screen mode - overlay button clicked';
  3930.   if (typeof promo_action !== 'undefined' && promo_action !== '') {
  3931.     sAction = promo_action;
  3932.   }
  3933.   sLeg = get_premium_access_leg_desc('6ea95de6');//Anon user
  3934.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) {
  3935.     path = '/premium-access/89bee87a';
  3936.     sLeg = get_premium_access_leg_desc('89bee87a'); // freemium user
  3937.   }
  3938.   trackEvent('Premium Subscription - ' + sLeg, sAction, document.title);
  3939.   if (typeof get_signup_abtest_variant_2 === 'function') {
  3940.     path = path + get_signup_abtest_variant_2();
  3941.   }
  3942.   window.location.href = window.location.protocol + '//' + window.location.host + path; // cmg
  3943. }
  3944.  
  3945. function bigscreen_overlay_promo_close_handler() {
  3946.   event.preventDefault();
  3947.   var sLeg = '';
  3948.   var path = '/premium-access/6ea95de6';
  3949.   var sAction = 'Close premium overlay clicked';
  3950.   sLeg = get_premium_access_leg_desc('6ea95de6');//Anon user
  3951.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  3952.     path = '/premium-access/89bee87a';
  3953.     sLeg = get_premium_access_leg_desc('89bee87a'); // freemium user
  3954.   }
  3955.   trackEvent('Big screen overlay', sAction, document.title);
  3956.   if (jQuery("#big-screen-container").length) {
  3957.     jQuery("#big-screen-container").hide();
  3958.   }
  3959.   jQuery("#full-screen-modal").remove();
  3960.   jQuery(".subscription-overlay").remove();
  3961.   jQuery(".game-overlay-watch-or-join").remove();
  3962.   jQuery('#big-screen-container').remove();
  3963.   // jQuery('#no-flash-overlay').show();
  3964.   jQuery("#swfgamewrapper").show();
  3965.   jQuery("#afg_container").show();
  3966.   jQuery("#videoplayer").show();
  3967.   jQuery("#continue-link").text("Continue in ");
  3968.   jQuery("#continue-container").show();
  3969.   jQuery("#continue-container").append(signupContainerBottom);
  3970.   // displayPrerollTimer();
  3971.   // supportCMGisClicked = true;
  3972.   // trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  3973.   var auctionCallback = function (displayAds, videoUrl) {
  3974.     application = new Application(displayAds, videoUrl);
  3975.   };
  3976.  
  3977.   if (typeof window.PW_CMG != "undefined") {
  3978.     window.PW_CMG.startAuction(auctionCallback);
  3979.   }
  3980. }
  3981.  
  3982. function bigscreen_overlay_promo_more_handler() {
  3983.   event.preventDefault();
  3984.   var sAction = 'Premium overlay learn more clicked';
  3985.   trackEvent('Big screen overlay', sAction, document.title);
  3986.   var redirect_url = window.location.protocol + '//' + window.location.host + "/premium-benefits";
  3987.   window.open(redirect_url, '_blank');
  3988. }
  3989.  
  3990.  
  3991. function playlist_marketing_overlay_promo_signup_handler() {
  3992.   event.preventDefault();
  3993.   var sLeg = '';
  3994.   var path = '/premium-access/39980b12';
  3995.   var sAction = 'Get playlist Marketing screen mode - overlay button clicked';
  3996.   if (typeof promo_action !== 'undefined' && promo_action !== '') {
  3997.     sAction = promo_action;
  3998.   }
  3999.   sLeg = get_premium_access_leg_desc('39980b12');//Anon user
  4000.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  4001.     path = '/premium-access/4c044106';
  4002.     sLeg = get_premium_access_leg_desc('4c044106'); // freemium user
  4003.   }
  4004.   trackEvent('Premium Subscription - ' + sLeg, sAction, document.title);
  4005.   if (typeof get_signup_abtest_variant_2 === 'function') {
  4006.     path = path + get_signup_abtest_variant_2();
  4007.   }
  4008.   window.location.href = window.location.protocol + '//' + window.location.host + path; // cmg
  4009. }
  4010.  
  4011. function playlist_marketing_overlay_promo_close_handler() {
  4012.   event.preventDefault();
  4013.   var sLeg = '';
  4014.   var path = '/premium-access/39980b12';
  4015.   var sAction = 'Close Playlist Marketing overlay clicked';
  4016.   sLeg = get_premium_access_leg_desc('39980b12'); // Anon user
  4017.   if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) {
  4018.     path = '/premium-access/4c044106';
  4019.     sLeg = get_premium_access_leg_desc('4c044106'); // freemium user
  4020.   }
  4021.   trackEvent('Playlist Marketing overlay', sAction, document.title);
  4022.   if (jQuery("#id-playlist-marketing-campaign").length) {
  4023.     jQuery("#id-playlist-marketing-campaign").hide();
  4024.   }
  4025.  
  4026.   jQuery("#full-screen-modal").remove();
  4027.   jQuery(".subscription-overlay").remove();
  4028.   jQuery(".game-overlay-watch-or-join").remove();
  4029.   jQuery('#big-screen-container').remove();
  4030.   // jQuery('#no-flash-overlay').show();
  4031.   jQuery("#swfgamewrapper").show();
  4032.   jQuery("#afg_container").show();
  4033.   jQuery("#videoplayer").show();
  4034.   jQuery("#continue-link").text("Continue in ");
  4035.   jQuery("#continue-container").show();
  4036.   jQuery("#continue-container").append(signupContainerBottom);
  4037.   doNotDisplayPrerollTimer = false;
  4038.   displayPrerollTimer();
  4039.   // supportCMGisClicked = true;
  4040.   // trackEvent('Premium Avatar', 'Continue to Game Button clicked', document.title);
  4041.   var auctionCallback = function (displayAds, videoUrl) {
  4042.     application = new Application(displayAds, videoUrl);
  4043.   };
  4044.   if (typeof window.PW_CMG != "undefined") {
  4045.     window.PW_CMG.startAuction(auctionCallback);
  4046.   }
  4047. }
  4048.  
  4049. function playlist_banner_right_sidebar_handler() {
  4050.   event.preventDefault();
  4051.   var sLeg = '';
  4052.   var path = '/premium-access/a1ca2f3b';
  4053.   var sAction = 'Get playlist banner screen mode - masthead clicked';
  4054.   if(typeof promo_action !== 'undefined' && promo_action !== '') {
  4055.     sAction = promo_action;
  4056.   }
  4057.   sLeg = get_premium_access_leg_desc('a1ca2f3b');//Anon user
  4058.   if(typeof getCookie === 'function' && getCookie('cmg_fx') !== null && getCookie('cmg_sx') === null) {
  4059.     path = '/premium-access/780ef8a3';
  4060.     sLeg = get_premium_access_leg_desc('780ef8a3');//freemium user
  4061.   }
  4062.   trackEvent('Premium Subscription - '+sLeg, sAction, document.title);
  4063.   if(typeof get_signup_abtest_variant_2 === 'function') {
  4064.     path = path + get_signup_abtest_variant_2();
  4065.   }
  4066.   window.location.href = window.location.protocol + '//' + window.location.host + path;//cmg
  4067. }
  4068.  
  4069.  
  4070. function playlist_marketing_overlay_promo_more_handler() {
  4071.   event.preventDefault();
  4072.   var sAction = 'Playlist Marketing overlay learn more clicked';
  4073.   trackEvent('Playlist Marketing overlay', sAction, document.title);
  4074.   var redirect_url = window.location.protocol + '//' + window.location.host + "/premium-benefits";
  4075.   window.open( redirect_url , '_blank');
  4076. }
  4077.  
  4078. </script><script type='deferjs'>
  4079.   $(document).ready(function(){
  4080.     $('body').on('click','.immerse-button .requestfullscreen',function(){
  4081.       $.getScript("https://static.truex.com/js/client.js");
  4082.     });
  4083.   })
  4084. </script><div class="row mt-3 mb-1 game-xp-bar-immerse-button"><div class="col-sm-6 game-xp-bar"><div class="game-progress-status"><div class="progress game-xp-progress" style="display:none;"><div class="progress-text"><a href="/login">Login to Earn XP</a></div><div class="progress-bar" role="progressbar" style="width:70%" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div></div></div></div><div class="col-sm-6 immerse-close-button"><div class="immerse-button"><a class="btn btn-primary btn-sm requestfullscreen" href="#" title="Big Screen"><span class="big-screen-popover-span">Big Screen</span><i class="icon-expand-arrows-alt" aria-hidden="true"></i></a></div><div class="close-full-screen"><a class="btn btn-primary btn-fullscreen btn-sm" href="#" title="Exit Big Screen"><span>Exit Big Screen</span><i class="icon-remove_sign" aria-hidden="true"></i></a></div></div></div><div class="game-instructions mb-4" style="display:none;"><h2>Run 3 Instructions</h2><div class="mobile"><p>There’s a whole new galaxy waiting to be explored! Use the arrow keys to run and jump through the space tunnels. Use the left and right arrow keys to rotate the world as you go. </p><p>There are two ways you can play Run 3: Explore Mode and Infinite Mode. To add more levels to your Galaxy Map, choose Explore Mode. The Runner will encounter lots of new tunnels and areas, and may bump into some friends along the way! </p><p>For an endless run, choose Infinite Mode. You’ll find power cells scattered across the tunnels in this mode. You’ll have to watch your step though! If you fall out of the tunnel in Infinite Mode, it’s game over. You can use power cells to continue your run with a new character. </p><p>See where it all began in the <a href="https://www.coolmathgames.com/0-run">first game in the Run Series</a> -- now remastered in 3D!</p><h3><strong>RUN 3 TIPS & TRICKS</strong></h3><p><strong>New aliens, new tricks.</strong> There are 9 characters you can unlock as you play through the levels. If you save up enough power cells, you can unlock new characters right away! Each alien has their own set of skills that will help you navigate the galaxy. If you find yourself stuck in a tricky tunnel, try swapping out your character for a new one. For example, the Skater will perform better in the snow levels!</p><p><strong>Control your jumps. </strong>The longer you hold down the up arrow key, the higher and longer you’ll jump. For platforms with a small gap in between, try tapping the up arrow to make a small jump. This technique can help you avoid over shooting your landing. </p><p><strong>Look ahead. </strong>Put your focus on the platforms just ahead of your character. Take note of all different sides of the tunnel to plan your next jumps. This should help you determine which way to turn the tunnels so that your character has plenty of space to run. </p><p><strong>Infinite practice. </strong>Infinite Mode is great for collecting power cells to unlock characters, but it can also be great for practice too! If you’re stuck on a level on the galaxy map, try a few runs through the infinite tunnels. The tunnels won’t be the same every time, so you’ll get a good feel for the different obstacles. </p></div><div class="desktop"><p>There’s a whole new galaxy waiting to be explored! Use the arrow keys to run and jump through the space tunnels. Use the left and right arrow keys to rotate the world as you go. </p><p>There are two ways you can play Run 3: Explore Mode and Infinite Mode. To add more levels to your Galaxy Map, choose Explore Mode. The Runner will encounter lots of new tunnels and areas, and may bump into some friends along the way! </p><p>For an endless run, choose Infinite Mode. You’ll find power cells scattered across the tunnels in this mode. You’ll have to watch your step though! If you fall out of the tunnel in Infinite Mode, it’s game over. You can use power cells to continue your run with a new character. </p><p>See where it all began in the <a href="https://www.coolmathgames.com/0-run">first game in the Run Series</a> -- now remastered in 3D!</p><h3><strong>RUN 3 TIPS & TRICKS</strong></h3><p><strong>New aliens, new tricks.</strong> There are 9 characters you can unlock as you play through the levels. If you save up enough power cells, you can unlock new characters right away! Each alien has their own set of skills that will help you navigate the galaxy. If you find yourself stuck in a tricky tunnel, try swapping out your character for a new one. For example, the Skater will perform better in the snow levels!</p><p><strong>Control your jumps. </strong>The longer you hold down the up arrow key, the higher and longer you’ll jump. For platforms with a small gap in between, try tapping the up arrow to make a small jump. This technique can help you avoid over shooting your landing. </p><p><strong>Look ahead. </strong>Put your focus on the platforms just ahead of your character. Take note of all different sides of the tunnel to plan your next jumps. This should help you determine which way to turn the tunnels so that your character has plenty of space to run. </p><p><strong>Infinite practice. </strong>Infinite Mode is great for collecting power cells to unlock characters, but it can also be great for practice too! If you’re stuck on a level on the galaxy map, try a few runs through the infinite tunnels. The tunnels won’t be the same every time, so you’ll get a good feel for the different obstacles. </p></div></div><div class="cmg_game_rating_val"><div class="rating"><img src="/themes/custom/coolmath/assets/images/cmatgameimages/yellow-star.png"></div><div class="rating-val">4.7
  4085.  
  4086.             </div><div class="cmg_game_tot_cnt">2,699,730
  4087.               Votes</div></div></div></article></div></div><div class="d-lg-none game-on_device game-on-mobile"><script type="deferjs">
  4088.     $(document).ready(function () {
  4089.         if (cmg_is_mobile_device() === true) {
  4090.           removePrerollAndDisplayGame();
  4091.           attachModalHtml();
  4092.           jQuery('#id-adfree-marketing-campaign').remove();
  4093.           jQuery("#full-screen-modal").remove();
  4094.           jQuery(".subscription-overlay").remove();
  4095.           jQuery(".game-overlay-watch-or-join").remove();
  4096.           jQuery("#videoplayer").show();
  4097.         } else if(jQuery(".game-page-mobile .playNow").length && jQuery(".game-page-mobile .playNow").is(':visible') ) {
  4098.           removePrerollAndDisplayGame();
  4099.         }
  4100.  
  4101.         $(".game-page-mobile .playNow").on("click", function (e) {
  4102.           e.preventDefault();
  4103.           if(cmg_is_mobile_device()) {
  4104.             //Display overlay preroll ad
  4105.             displayPrerollAd_Mobile();
  4106.           } else {
  4107.             if (!cmg_is_mobile_device() && typeof trackEvent === 'function') {
  4108.               trackEvent('Mobile play button clicked', 'resized desktop browser', document.title);
  4109.             } else if (cmg_is_mobile_device() && typeof trackEvent === 'function') {
  4110.               trackEvent('Mobile play button clicked', 'mobile browser', document.title);
  4111.             }
  4112.             displayPrerollAd_Resized();
  4113.           }
  4114.         });
  4115.       });
  4116.       jQuery(document).ready(function ($) {
  4117.         if (cmg_is_mobile_device() === true) {
  4118.           check_game_mode(orientation);
  4119.           $(window).on('orientationchange', function (event) {
  4120.             check_game_mode(orientation);
  4121.           });
  4122.         }
  4123.         function check_game_mode(ort) {
  4124.           if ($('.check-game-mode').length > 0) {
  4125.             if ($('.check-game-mode').hasClass('portrait-only')) {
  4126.               if (ort == 0 || ort == '-180' || ort == 180) {
  4127.                 $('.check-game-mode').removeClass('show-msg');
  4128.               } else {
  4129.                 $('.check-game-mode').addClass('show-msg');
  4130.               }
  4131.             }
  4132.             if ($('.check-game-mode').hasClass('landscape-only')) {
  4133.               if (ort == 90 || ort == '-90') {
  4134.                 $('.check-game-mode').removeClass('show-msg');
  4135.               } else {
  4136.                 $('.check-game-mode').addClass('show-msg');
  4137.               }
  4138.             }
  4139.           }
  4140.         }
  4141.  
  4142.         jQuery(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange", function () {
  4143.           if (jQuery.fullscreen.isFullScreen()) {
  4144.             jQuery('body').addClass('isFullScreen isPlay');
  4145.           } else {
  4146.             jQuery('body').removeClass('isFullScreen isPlay');
  4147.           }
  4148.         });
  4149.  
  4150.       });
  4151.  
  4152.       // New responsive site preroll
  4153.       function removePrerollAndDisplayGame_Mobile() {
  4154.         //removePrerollAndDisplayGame();
  4155.         jQuery("#m-continue-container").hide();
  4156.         var modal = document.getElementById('m-modal');
  4157.         modal.style.display = 'none';
  4158.         cmg_start_game_full_screen();
  4159.       }
  4160.       function removePrerollAndDisplayGame_Resized() {
  4161.         jQuery("#r-continue-container").hide();
  4162.         var modal = document.getElementById('r-modal');
  4163.         modal.style.display = 'none';
  4164.         if(typeof cmg_game_modal_attached != "undefined" && !cmg_game_modal_attached) {
  4165.           attachModalHtml();
  4166.         } else {
  4167.           attachModalHtml();
  4168.         }
  4169.         var elem = document.getElementById('block-system-main');
  4170.         requestFullscreenModal(elem, document.title);
  4171.       }
  4172.  
  4173.       if(drupalSettings.language == 'es'){
  4174.         var ContinueText = "Continuar en";
  4175.       } else{
  4176.         var ContinueText = "Continue in";
  4177.       }
  4178.       var mtimerHtml = '<div id="m-continue-link">'+ContinueText+' <span id="m-timer-div">6</span></div>';
  4179.       var rtimerHtml = '<div id="r-continue-link">'+ContinueText+' <span id="r-timer-div">15</span></div>';
  4180.       var displayMobilePreRoll = true;
  4181.  
  4182.       function displayPrerollAd_Mobile() {
  4183.         var cmatgame_subscriber = getCookie('cmg_sx');
  4184.         var validSubscriber = false;
  4185.         if (typeof cmatgame_subscriber !== 'undefined' && (cmatgame_subscriber !== null || getCookie('cmg_wl') !== null)) {
  4186.           validSubscriber = true;
  4187.         }
  4188.         // preroll ads
  4189.         var prerollUrls = /0\-testing/;
  4190.  
  4191.         // display preroll ads only on 2nd,4th, 6th visits of any game page
  4192.         // TODO Remove false after testing
  4193.         if (! displayMobilePreRoll || validSubscriber || hide_preroll_ads) {
  4194.           jQuery('body').addClass('isPlay');
  4195.           cmg_start_game_full_screen();
  4196.         } else { // display preroll ads
  4197.           displayMobilePreRoll = false;
  4198.           // jQuery("#m-continue-container").html(mtimerHtml);
  4199.           window.scrollTo(0, 0);
  4200.           var modal = document.getElementById('m-modal');
  4201.           jQuery('.page.global-wrapper').before(modal);
  4202.           modal.style.display = 'block';
  4203.           // clear refresh timer
  4204.           if (typeof refreshTimer !== "undefined") {
  4205.             clearTimeout(refreshTimer);
  4206.             refreshTimer = null;
  4207.           }
  4208.  
  4209.           /* Test ad
  4210.           adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?' + 'sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&' + 'impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&' + 'cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=';
  4211.           application = new Application(true, adTagUrl, "m-");
  4212.           */
  4213.           // Live Ad
  4214.  
  4215.           var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.m.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1';
  4216.           if(typeof window.PW_CMG != "undefined") {
  4217.             console.log('PBJS start')
  4218.             var auctionCallback = function(displayAds, videoUrl){
  4219.               application = new Application(displayAds, videoUrl, "m-");
  4220.             };
  4221.             window.PW_CMG.startAuction(auctionCallback);
  4222.           } else { //adblock
  4223.             application = new Application(false, adTagUrl, "m-");
  4224.           }
  4225.  
  4226.  
  4227.           var m_seconds_left = 6;
  4228.           if (jQuery("#m-timer-div").length) {
  4229.             jQuery(".m-preroll-headline").hide(); // remove game loading message
  4230.             jQuery("#m-continue-container").remove();
  4231.             jQuery("#m-container123").before(mtimerHtml); // and display continue in...
  4232.           }
  4233.           mobile_intervalId = setInterval(function () {
  4234.             m_seconds_left--;
  4235.             document.getElementById("m-timer-div").innerHTML = m_seconds_left;
  4236.             if (m_seconds_left <= 0) {
  4237.               if (document.getElementById("m-timer-div") != null) {
  4238.                 document.getElementById("m-continue-link").innerHTML = "";
  4239.                 //jQuery("#m-continue-link").hide();
  4240.                 document.getElementById("m-continue-link").innerHTML = '<div class="continue-link-new"><a href="javascript:removePrerollAndDisplayGame_Mobile();">'+ Drupal.t('Continue to Game')+' ►</a></div>';
  4241.               }
  4242.               clearInterval(mobile_intervalId);
  4243.             }
  4244.           }, 1000);
  4245.         }
  4246.       }
  4247.       function displayPrerollAd_Resized() {
  4248.         var cmatgame_subscriber = getCookie('cmg_sx');
  4249.         var validSubscriber = false;
  4250.         if (typeof cmatgame_subscriber !== 'undefined' && (cmatgame_subscriber !== null || getCookie('cmg_wl') !== null)) {
  4251.           validSubscriber = true;
  4252.         }
  4253.         // preroll ads
  4254.         var prerollUrls = /0\-testing/;
  4255.  
  4256.         // display preroll ads only on 2nd,4th, 6th visits of any game page
  4257.         if (! displayMobilePreRoll || validSubscriber || hide_preroll_ads) {
  4258.           jQuery('body').addClass('isPlay');
  4259.           //cmg_start_game_full_screen();//use mobile like immersive modal
  4260.           if(typeof cmg_game_modal_attached != "undefined" && !cmg_game_modal_attached) {
  4261.             attachModalHtml();
  4262.           }
  4263.           var elem = document.getElementById('block-system-main');
  4264.           requestFullscreenModal(elem, document.title);
  4265.           //return false;//do not return false -- FF and IE do not work
  4266.         } else { // display preroll ads
  4267.           displayMobilePreRoll = false;
  4268.           // jQuery("#r-continue-container").html(rtimerHtml);
  4269.           window.scrollTo(0, 0);
  4270.           var modal = document.getElementById('r-modal');
  4271.           jQuery('.page.global-wrapper').before(modal);
  4272.           modal.style.display = 'block';
  4273.           jQuery('.r-preroll-headline').hide();
  4274.           // TODO -- css
  4275.           jQuery("#r-modal").css({
  4276.             "text-align": "center",
  4277.             "color": "white",
  4278.             "position": "fixed",
  4279.             "background": "rgba(0,0,0,0.9)",
  4280.             "width": "100%",
  4281.             "z-index": "999999"
  4282.           });
  4283.           jQuery("#r-modal #r-timer-div").css("color", "yellow");
  4284.           jQuery("#r-modal .r-continue-link").css("color", "yellow").text("180");
  4285.           jQuery("#r-modal #r-continue-link").css({"color": "yellow", "margin-top": "10px", "margin-bottom": "10px"});
  4286.           // clear refresh timer
  4287.           if (typeof refreshTimer !== "undefined") {
  4288.             clearTimeout(refreshTimer);
  4289.             refreshTimer = null;
  4290.           }
  4291.  
  4292.           /* Test ad
  4293.           adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?' + 'sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&' + 'impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&' + 'cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=';
  4294.           application = new Application(true, adTagUrl, "r-");
  4295.           */
  4296.           // Live Ad
  4297.           var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.m.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1';
  4298.           if(typeof window.PW_CMG != "undefined") {
  4299.             console.log('PBJS start')
  4300.             var auctionCallback = function(displayAds, videoUrl){
  4301.               application = new Application(displayAds, videoUrl, "r-");
  4302.             };
  4303.             window.PW_CMG.startAuction(auctionCallback);
  4304.           } else { //adblock
  4305.             application = new Application(false, adTagUrl, "r-");
  4306.           }
  4307.  
  4308.  
  4309.           var r_seconds_left = 15;
  4310.           if (jQuery("#r-timer-div").length) {
  4311.             jQuery(".r-preroll-headline").hide(); // remove game loading message
  4312.             jQuery("#r-continue-container").remove();
  4313.             jQuery("#r-container123").before(rtimerHtml); // and display continue in...
  4314.           }
  4315.           rIntervalId = setInterval(function () {
  4316.             r_seconds_left--;
  4317.             document.getElementById("r-timer-div").innerHTML = r_seconds_left;
  4318.             if (r_seconds_left <= 0) {
  4319.               removeResponsivePrerollTimer();
  4320.             }
  4321.           }, 1000);
  4322.         }
  4323.       }
  4324.       function removeResponsivePrerollTimer() {
  4325.         if (document.getElementById("r-timer-div") != null) {
  4326.           document.getElementById("r-continue-link").innerHTML = "";
  4327.           document.getElementById("r-continue-link").innerHTML = '<div class="continue-link-new"><a href="javascript:removePrerollAndDisplayGame_Resized();">Continue to Game ►</a></div>';
  4328.           //Load game iframe before going to full screen
  4329.           //removePrerollAndDisplayGame();
  4330.         }
  4331.         if (typeof rIntervalId != "undefined") {
  4332.           clearInterval(rIntervalId);
  4333.         }
  4334.         removePrerollAndDisplayGame_Resized();
  4335.       }
  4336.   </script><div class="game-page-mobile "><div class="game-image my-4"><div class="no-flash-overlay-mobile" style="display:none;"><p><strong>Sorry... this game is not playable in your browser.</strong></p></div><script>
  4337.         jQuery(document).ready(function ($) {
  4338.           $("#playNowButton").delay(10).fadeIn(10);
  4339.         });
  4340.       </script><a href="https://www.coolmathgames.com/0-run-3/play" class="playNow" id='playNowButton' style="display:none;"><span class="playNowButton fa-stack fa-lg"><i class="circle"></i><i class="icon-circle fa-stack-2x"></i><i class="icon-play fa-stack-1x fa-inverse"></i></span></a><script type="deferjs">
  4341.         var validSubscriber = false;
  4342.       if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) {
  4343.         validSubscriber = true;
  4344.       }
  4345.       if(getCookie("cmg_wl") !== null) {
  4346.         validSubscriber = true;
  4347.       }
  4348.         if (!validSubscriber && (document.getElementById('randomAdBlockDiv') == null || typeof google == "undefined" || typeof cmgpbjs == "undefined")) {
  4349.                 //TODO when schools open add this logic (schoolHours && parseInt(sessionStorage.getItem('sessionGamesPlayed') || 0)
  4350.           if(typeof schoolHours !== "undefined" && schoolHours) {
  4351.             //console.log("Adblocker detected (mobile), but try ad recovery  during school hours "+new Date());
  4352.             cmg_adrecovery();
  4353.           } else if(typeof hide_preroll_ads == "undefined" || !hide_preroll_ads ) {
  4354.             displayAdBlock("mobile");
  4355.           }
  4356.         }
  4357.       </script><div class="game__field-og-image"><img class="game-image-mobile img-fluid" src="/sites/default/files/run-3.png" width="600" height="350" alt="Run 3 Game" typeof="foaf:Image" /></div></div><div
  4358.       id="m-modal" style="display: none;"><!-- Load message --><div class="m-preroll-headline"><h3>Just a moment while your game loads</h3></div><div id="m-container123"><hr style="margin-top: 10px; margin-bottom: 10px;"/><div id="videoplayer" style="width:100%;"><video id="m-content123" playsinline muted style="width:300px;height:1px;"><source src="//www.coolmathgames.com/sites/default/files/adtesting/DummyVideo.mov"></source></video><div id="m-adcontainer"></div><p class="advertisment">Advertisement</p></div><!-- Timer --><div id="m-continue-container"><div id="m-continue-link">Continue in
  4359.           <span id="m-timer-div">6</span></div></div></div></div><div id="r-modal" style="display: none;"><div class="r-preroll-headline"><h3>Just a moment while your game loads</h3></div><div id="r-container123"><hr style="margin-top: 10px; margin-bottom: 10px;"/><div id="r-videoplayer" style="width:100%;"><video id="r-content123" playsinline muted style="width:640px;height:1px;"><source src="//www.coolmathgames.com/sites/default/files/adtesting/DummyVideo.mov"></source></video><div id="r-adcontainer" style="display: flex; align-items: center; justify-content: center;"></div><p class="advertisment">Advertisement</p></div><!-- Timer --><div id="r-continue-container"><div id="r-continue-link">Continue in <span id="r-timer-div">20</span></div></div></div></div><div class="game-xp-bar mb-4"><div class="game-progress-status"><div class="progress game-xp-progress" style="display:none;"><div class="progress-text"><a href="/login">Login to Earn XP</a></div><div class="progress-bar" role="progressbar" style="width:70%" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"></div></div></div></div><div class="game-instructions mb-4" style="display:none;"><h3>Run 3 Instructions</h3><script type="deferjs">
  4360.         jQuery(document).ready(function ($) {
  4361.           if(drupalSettings.language == 'en'){
  4362.             $('div.expander').expander({
  4363.               slicePoint: 100,
  4364.               preserveWords: true,
  4365.               expandText: 'Show More',
  4366.               userCollapseText: 'Show Less',
  4367.             });
  4368.           } else{
  4369.             $('div.expander').expander({
  4370.               slicePoint: 100,
  4371.               preserveWords: true,
  4372.               expandText: 'Mostrar más',
  4373.               userCollapseText: 'Muestra menos',
  4374.             });
  4375.           }
  4376.  
  4377.         });
  4378.       </script><div class="expander mobile"><p>There’s a whole new galaxy waiting to be explored! Use the arrow keys to run and jump through the space tunnels. Use the left and right arrow keys to rotate the world as you go. </p><p>There are two ways you can play Run 3: Explore Mode and Infinite Mode. To add more levels to your Galaxy Map, choose Explore Mode. The Runner will encounter lots of new tunnels and areas, and may bump into some friends along the way! </p><p>For an endless run, choose Infinite Mode. You’ll find power cells scattered across the tunnels in this mode. You’ll have to watch your step though! If you fall out of the tunnel in Infinite Mode, it’s game over. You can use power cells to continue your run with a new character. </p><p>See where it all began in the <a href="https://www.coolmathgames.com/0-run">first game in the Run Series</a> -- now remastered in 3D!</p><h3><strong>RUN 3 TIPS & TRICKS</strong></h3><p><strong>New aliens, new tricks.</strong> There are 9 characters you can unlock as you play through the levels. If you save up enough power cells, you can unlock new characters right away! Each alien has their own set of skills that will help you navigate the galaxy. If you find yourself stuck in a tricky tunnel, try swapping out your character for a new one. For example, the Skater will perform better in the snow levels!</p><p><strong>Control your jumps. </strong>The longer you hold down the up arrow key, the higher and longer you’ll jump. For platforms with a small gap in between, try tapping the up arrow to make a small jump. This technique can help you avoid over shooting your landing. </p><p><strong>Look ahead. </strong>Put your focus on the platforms just ahead of your character. Take note of all different sides of the tunnel to plan your next jumps. This should help you determine which way to turn the tunnels so that your character has plenty of space to run. </p><p><strong>Infinite practice. </strong>Infinite Mode is great for collecting power cells to unlock characters, but it can also be great for practice too! If you’re stuck on a level on the galaxy map, try a few runs through the infinite tunnels. The tunnels won’t be the same every time, so you’ll get a good feel for the different obstacles. </p></div><div class="expander desktop"><p>There’s a whole new galaxy waiting to be explored! Use the arrow keys to run and jump through the space tunnels. Use the left and right arrow keys to rotate the world as you go. </p><p>There are two ways you can play Run 3: Explore Mode and Infinite Mode. To add more levels to your Galaxy Map, choose Explore Mode. The Runner will encounter lots of new tunnels and areas, and may bump into some friends along the way! </p><p>For an endless run, choose Infinite Mode. You’ll find power cells scattered across the tunnels in this mode. You’ll have to watch your step though! If you fall out of the tunnel in Infinite Mode, it’s game over. You can use power cells to continue your run with a new character. </p><p>See where it all began in the <a href="https://www.coolmathgames.com/0-run">first game in the Run Series</a> -- now remastered in 3D!</p><h3><strong>RUN 3 TIPS & TRICKS</strong></h3><p><strong>New aliens, new tricks.</strong> There are 9 characters you can unlock as you play through the levels. If you save up enough power cells, you can unlock new characters right away! Each alien has their own set of skills that will help you navigate the galaxy. If you find yourself stuck in a tricky tunnel, try swapping out your character for a new one. For example, the Skater will perform better in the snow levels!</p><p><strong>Control your jumps. </strong>The longer you hold down the up arrow key, the higher and longer you’ll jump. For platforms with a small gap in between, try tapping the up arrow to make a small jump. This technique can help you avoid over shooting your landing. </p><p><strong>Look ahead. </strong>Put your focus on the platforms just ahead of your character. Take note of all different sides of the tunnel to plan your next jumps. This should help you determine which way to turn the tunnels so that your character has plenty of space to run. </p><p><strong>Infinite practice. </strong>Infinite Mode is great for collecting power cells to unlock characters, but it can also be great for practice too! If you’re stuck on a level on the galaxy map, try a few runs through the infinite tunnels. The tunnels won’t be the same every time, so you’ll get a good feel for the different obstacles. </p></div></div></div><div class="ad-block mb-4"></div><div class="like-block mb-4"><div id="block-coolmath-carouselingamedetailpage" class="settings-tray-editable block block-cmatgame-core block-gamedetailcarousel" data-drupal-settingstray="editable"><div class="view-content"><div class="pane-game-details-carousel-game-detail"><div class='view-display-id-carousel_game_detail'><div class='view-header'><p>You'll Also Like...</p></div><div class='view-content'><div><div class='bx-wrapper jcarousel-wrapper'><div class='jcarousel'><ul><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-powerline-io?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Powerline.io Game" title="Powerline.io" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/powerline-io-game-logo_2.png?itok=MrZUk6sS" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Powerline</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run Game" title="Run" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-run.gif?itok=tJ3S1KBf" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run-2?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run 2 Game" title="Run 2" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-run-2.gif?itok=OUON_qjA" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run 2</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-snake?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Snake Game" title="Snake" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/snake-game-logo_0.png?itok=W3gOxqtt" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Snake</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-60-second-burger-run?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="60 Second Burger Run Game" title="60 Second Burger Run" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-60-second-burger-run.gif?itok=MB4wDejP" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">60 Second Burger Run</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space Is Key Game" title="Space Is Key" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-space-is-key.gif?itok=M9eX-2Yj" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space Is Key</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key-2?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space Is Key 2 Game" title="Space Is Key 2" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-space-is-key-2.gif?itok=6AoJCQhw" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space Is Key 2</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row "><div class="game-item "><div class="game-link-wrapper"><a href="/0-space-is-key-ultimate-challenge?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Space is Key: Ultimate Challenge Game" title="Space is Key: Ultimate Challenge" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/space-is-key-ultimate-challenge-logo.png?itok=fpldC-Su" class="lazyload img-fluid" typeof="foaf:Image" /></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Space is Key Ultimate</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-potatoman-seeks-the-troof?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Potatoman Seeks the Troof Game" title="Potatoman Seeks the Troof" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/potatoman-seeks-the-troof-game-logo.png?itok=CTyA2AEx" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Potatoman Seeks the Troof</span></h5></a></div></div></li><li style="display:none;" class="bxslider-views-slideshow-main-frame-row mobile-hidden"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-run-3-flash?utm_content=CTA_You_Will_Also_Like"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Run 3 - Flash Version Game" title="Run 3 - Flash Version" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/run-3-game-logo.png?itok=Jrwbbebu" class="lazyload img-fluid" typeof="foaf:Image" /><span class="icon-gamethumbnail-carousel"></span></div><h5 class="game-title"><span class="overlay"></span><span class="title-on-overlay">Run 3 - Flash Version</span></h5></a></div></div></li></ul></div><div class="bx-controls-direction1"><a href="#" class="jcarousel-control-prev">‹</a><a href="#" class="jcarousel-control-next">›</a></div></div></div></div></div></div></div></div></div></div><script type="deferjs">
  4379.   jQuery(document).ready(function ($) {
  4380.       $(".bxslider-views-slideshow-main-frame-row").attr("style", "")
  4381.       $(".game-instructions").attr("style", "")
  4382.     });
  4383. </script></div></div><div class="views-element-container settings-tray-editable block block-views block-views-blocktop-picks-games-block-1" id="block-views-block-top-picks-games-block-1" data-drupal-settingstray="editable"><h2 class="common-title"><span class="title-with-button">Coolmath Top Picks</span></h2><div class="view-content"><div><div class="js-view-dom-id-dfb483fb7ad28389f81438cdabe4c3b19d42ebd47a46c7f6d9bc6c62bc95339b"><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item"><div class="game-link-wrapper"><a href="/0-billiards?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/billiards-game-logo.png?itok=eg_QF6kT" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Billiards</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Take your best shot in online multiplayer pool! Sink all your balls and finish with the 8 ball to win at the table!  </p></p></div><div class="cmgr-short-desc"><p>Take your skills online and sink the 8 ball!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-chess?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/chess-icon.png?itok=OoHTSJXx" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Chess</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Checkmate! Play the classic game of strategy. You can challenge the computer, a friend, or join a match against another online player.</p></p></div><div class="cmgr-short-desc"><p>Play Chess against the computer or your friends!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-poptropica?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/poptropica-fairy-tale-island-game-logo.png?itok=tHA79m1P" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Poptropica</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>On the all-new Fairy Tale island, everyone's happy endings have gone awry. Can you save the day?</p></p></div><div class="cmgr-short-desc"><p>Save the day on the all-new Fairy Tale Island.</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item"><div class="game-link-wrapper"><a href="/0-swing-monkey?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/swing-monkey-game-logo.png?itok=Z7uSpeaQ" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Swing Monkey</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Swing through the jungle from tree to tree! Beat levels to unlock new monkey skins.</p></p></div><div class="cmgr-short-desc"><p>Monkey swing, monkey do!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item"><div class="game-link-wrapper"><a href="/0-penalty-kick-online?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/penalty-kick-online-game-logo_0.png?itok=5HuR3xaR" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Penalty Kick Online</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Level up and earn XP on your way to the world championship. Challenge other players online in this epic penalty shootout!</p></p></div><div class="cmgr-short-desc"><p>Win trophies in online multiplayer!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-copter-royale?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/copter-royale-game-logo_0.png?itok=mBoa4U1x" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Copter Royale</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Outlast your opponents in the ultimate copter arena. Grab upgrades and superpowers, avoid the toxic fog, and be the last one flying!</p></p></div><div class="cmgr-short-desc"><p>Upgrade your copter and be the last one flying!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item"><div class="game-link-wrapper"><a href="/0-darts?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/darts-game-logo.png?itok=lm-u2aAw" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Darts</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Test your aim in online multiplayer! Race your opponent to get to zero first. You'll have to calculate your own score.</p></p></div><div class="cmgr-short-desc"><p>Test your aim in online multiplayer!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item"><div class="game-link-wrapper"><a href="/0-retro-ping-pong?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/retro-ping-pong-game-logo_1.png?itok=4XqD0w1_" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Retro Ping Pong</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Play the classic game, or mix it up with an all-new action mode: fireballs, blasters, gravity wells, and more!</p></p></div><div class="cmgr-short-desc"><p>Play the classic game or the all-new action mode!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-big-tower-tiny-square?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/big-tower-tiny-square-game-logo.png?itok=gzYesemP" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Big Tower Tiny Square</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Your pineapple is trapped at the top of a huge tower! Jump over pits of lava and dodge dangerous traps to rescue it.</p></p></div><div class="cmgr-short-desc"><p>Save your pineapple from evil Big Square!</p></div></div></div></span></div><div class="views-field views-field-nothing"><span class="field-content"><div class="game-item mobile-not-playable"><div class="game-link-wrapper"><a href="/0-pre-civilization-bronze-age?utm_content=CTA_Top_Picks"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-preciv-bronze-age_0.gif?itok=M2xJ4brL" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Pre-Civilization Bronze Age</h3></a></div><div class="game-item-description"><div class="field-body cmgr-long-desc"><p><p>Grow your civilization during the Bronze Age. Collect food, research technology, defend yourself from other civilizations, and build a world wonder!</p></p></div><div class="cmgr-short-desc"><p>Grow your civilization.</p></div></div></div></span></div></div></div></div></div></div></div><div class="main-aside col-lg-3 col-xl-3 pr-lg-0"><aside class="section" role="complementary"><div class="inside"><div id="block-coolmath-nodepagespromomerchstore" class="settings-tray-editable block block-block-content block-block-contentbba33380-2724-4eba-99f5-ba8dde3a54f4" data-drupal-settingstray="editable"><div class="basic__body"><div style="margin-top:20px;"><a class="cmg-gear-promo" href="#" onclick="merchLinkHhandler();return false;" target="_blank" class="hover-effect"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" alt="" data-entity-type="" data-entity-uuid="" data-src="/sites/default/files/cmatgame_block/merch-promo.png"  width="300" height="102" /></a></div><script type="text/javascript">
  4384. jQuery('a.cmg-gear-promo').click(function(e){
  4385.   e.preventDefault();
  4386.   merchLinkHhandler(e);
  4387. });
  4388. function merchLinkHhandler(e) {
  4389.   e.preventDefault();
  4390.   url = 'https://www.teepublic.com/user/coolmathgames';
  4391.   if(typeof __gaTracker !== "undefined") { 
  4392.     __gaTracker('send', { hitType: 'event', eventCategory: 'Coolmath Gear Promo', eventAction: 'Merch Store Link Clicked', eventLabel: document.title, eventValue: '0' }); 
  4393.   }
  4394.   window.open(url,'_cmg_merch');
  4395. }
  4396. </script></div></div><div id="block-adsrighttop-otherpage-300x250-2" class="settings-tray-editable block block-cmatgame-core block-adsrighttop-otherpage-300x250" data-drupal-settingstray="editable"><div class="view-content"><div class="panel-pane pane-block pane-cmatgame-advertisement-cm-g-otherpages-300x250-top other-pages-300x250"><div class="ad-wrapper"><!-- 300 x 250 ATF Desktop --><div id="med-rect-atf"></div></div></div></div></div><div id="block-yearlysubscriptionrightblock" class="settings-tray-editable block block-block-content block-block-contentec497755-6c84-4088-8406-5ad3435951da" data-drupal-settingstray="editable"><div class="basic__body"><div id="monthly-subscription-plan"><a href="javascript:void(0);" onclick="yearlysubscription_promo_handler('Monthly subscription - Right Sidebar Promo clicked')"  class="hover-effect"><img class="lazyload"  src="/sites/default/files/cmatgame_block/monthly_sub_coolmathgames_banner22_300x102.png" width="300" height="102"></a></div></div></div><div id="block-playlistrightsidebanner-3" class="settings-tray-editable block block-block-content block-block-content4c6a7813-867a-4112-a837-b6fd47fe8607" data-drupal-settingstray="editable"><div class="basic__body"><div id="right-rail-playlist-marketing-promo" class="playlist-right-side-promo"  style="display:none;"><a href="javascript:void(0);" onclick="playlist_marketing_overlay_promo_signup_handler('Get Playlist marketing - Right Sidebar Promo clicked')"><img src="sites/default/files/cmatgame_block/CoolMathGames_banner9b_300x102.png"></a></div></div></div><div id="block-adsrightcenter-otherpage-300x250-2" class="settings-tray-editable block block-cmatgame-core block-adsrightcenter-otherpage-300x250" data-drupal-settingstray="editable"><div class="view-content"><div class="panel-pane pane-block pane-cmatgame-advertisement-cm-g-otherpages-300x250-center other-pages-300x250"><div class="ad-wrapper"><!-- 300 x 250 ATF Desktop. gen /0-bull-blast--><!-- Change the id as needed  --><div id="med-rect-btf"></div></div><script type="text/javascript">
  4397.               if(/0-jigsaw-puzzles/.test(location.href)) {
  4398.                       document.getElementById("med-rect-btf").setAttribute("id", "med-rect-btf1");
  4399.                     }
  4400.                   </script></div></div></div><div id="block-nodepagespromouserprofiles-2" class="settings-tray-editable block block-block-content block-block-content94913ff6-dd14-4345-8c90-e12e39b0e2f8" data-drupal-settingstray="editable"><div class="basic__body"><style>
  4401. .profiles-promo{
  4402.   background: url('/sites/default/files/profiles-right-rail_3.png')no-repeat;
  4403.   height: 102px;
  4404.   width: 300px;
  4405.   display: block;
  4406.   text-indent: -9999px;
  4407.   background-position: top center;
  4408.   margin-bottom: 44px;
  4409. }
  4410. a:hover{
  4411.     background-position: bottom center;
  4412. }
  4413.  
  4414. </style><a class="profiles-promo" href="/signup">User Profiles</a></div></div><div id="block-coolmath-rightrailblockallgamesaz" class="settings-tray-editable block block-block-content block-block-contentdb7b8c07-768c-46b3-8588-bb5c7075ed3f" data-drupal-settingstray="editable"><div class="basic__body"><div class="aside-link-title"><a href="/1-complete-game-list?rightrail">All Games A-Z</a></div></div></div></div><div class="promo clearfix"><div class="inside"><div id="block-coolmath-rightrailpromogames" class="settings-tray-editable block block-cmatgame-core block-rightrailpromogames" data-drupal-settingstray="editable"><div class="view-content"><div class="panel-pane pane-views-panes pane-queues-view-rightrail-games-promo"><h2 class="pane-title"><a href="/1-aiming-games">Aiming Games</a></h2><div class="node-game"><a href="/0-penalty-kick-online"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Penalty Kick Online Game" title="Penalty Kick Online" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/penalty-kick-online-game-logo_0.png?itok=5HuR3xaR" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Penalty Kick Online</h3></a></div><div class="node-game"><a href="/0-mini-golf-battle-royale"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Mini Golf Battle Royale Game" title="Mini Golf Battle Royale" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/mini-golf-battle-royale-game-logo-2_1.png?itok=-NY0K2zC" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title mobile-not-playable">Mini Golf Battle Royale</h3></a></div><div class="node-game"><a href="/0-archery-world-tour"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Archery World Tour Game" title="Archery World Tour" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/archery-world-tour.png?itok=q1Uwb7xx" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Archery World Tour</h3></a></div><div class="node-game"><a href="/0-iq-ball"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="IQ Ball Game" title="IQ Ball" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/game-logo-iq-ball.gif?itok=uxRL9p9g" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">IQ Ball</h3></a></div><div class="node-game"><a href="/0-arcade-golf-neon"><div class="field-image"><img src="/modules/custom/cmatgame_core/images/1x1.png" width="83" height="50" alt="Arcade Golf Neon Game" title="Arcade Golf Neon" data-src="/sites/default/files/styles/thumbnail_small/public/game_thumbnail/arcade-golf-neon-game-logo.png?itok=JkOWTpb7" class="lazyload img-fluid" typeof="Image" /></div><h3 class="game-title">Arcade Golf Neon</h3></a></div></div></div></div><div id="block-coolmath-adsrightbottom-otherpage-160x600" class="settings-tray-editable block block-cmatgame-core block-adsrightbottom-otherpage-160x600" data-drupal-settingstray="editable"><div class="view-content"><div class="panel-pane pane-block pane-cmatgame-advertisement-cm-g-otherpages-160x600-bottom other-pages-160x600"><div class="ad-wrapper"><!-- 160 x 600 Skyscraper Desktop --><div id="sky-btf"></div></div></div></div></div><div id="block-leaderboardpromorightrailsimple" class="settings-tray-editable block block-simple-block block-simple-blockleaderboard-promo-right-rail" data-drupal-settingstray="editable"><div class="view-content"><div class="leaderboard-promo"><a href="/profile/leaderboard" class="hover-effect"><img class="lazyload" src="/modules/custom/cmatgame_core/images/1x1.png" data-src="/themes/custom/coolmath/assets/images/promos/leaderboards-right-rail.png" width="302" height="102" /></a></div></div></div></div></div></aside></div></div><div class="row adbottom"><div class="col-12"><div id="block-coolmath-adsbottom-otherpage-728x90" class="settings-tray-editable block block-cmatgame-core block-adsbottom-otherpage-728x90" data-drupal-settingstray="editable"><div class="view-content"><div class="panel-pane pane-block pane-cmatgame-advertisement-cm-g-otherpages-728x90-footer"><div class="ad-wrapper"><!-- 728 x 90 BTF Desktop --><div id="leaderboard-btf"></div></div></div></div></div></div></div></div></div></main><footer class="page__footer"><div class="container"><div class="row pb-3"><div class="col-lg-2 d-none d-xl-block"></div><div class="col-lg-12 col-xl-10 pl-lg-0"><div class="item-list"><ol><li> </li><li> </li><li><div class="pane-bean-footer-pivacy-policy"><div class="link-with-body-title"><a href="/privacyp">Coolmath games privacy policy</a></div><div class="field-text-block"><p>If you believe that your own copyrighted content is on our Site without your permission, please follow this                  
  4415.                     <a href="http://coolmath.com/copyright-infringement-notice-procedure">Copyright Infringement Notice procedure</a>.</p></div></div></li><li><div class="settings-tray-editable block block--coolmath-desktopfootermenu" data-drupal-settingstray="editable"><div class="panel-pane pane-menu-tree pane-menu-desktop-footer-menu"><div class="menu-name-menu-desktop-footer-menu"><ul class="footer-menu"><li class="mb-3 mr-3 menu__item is-expanded expanded footer-menu-column-0"><span class="menu__link nolink">COOLMATHGAMES.COM</span><ul class="footer-menu"><li ><a href="/about-us" data-drupal-link-system-path="node/9901">About Us</a></li><li ><a href="/terms-use" data-drupal-link-system-path="node/9906">Terms of Use</a></li><li ><a href="/aboutourads" data-drupal-link-system-path="node/12889">About Our Ads</a></li><li ><a href="/subscription-faq" data-drupal-link-system-path="node/10921">Subscription FAQ</a></li><li ><a href="/adblock-faq" data-drupal-link-system-path="node/12937">Adblock FAQ</a></li><li ><a href="/contact-us-about-subscriptions" data-drupal-link-system-path="node/11046">Subscription Support</a></li><li ><a href="/blog" data-drupal-link-system-path="blog">Blog</a></li><li ><a href="/contact-us" data-drupal-link-system-path="node/12581">CONTACT US</a></li></ul></li><li class="mb-3 mr-3 menu__item is-expanded expanded footer-menu-column-1"><span class="menu__link nolink">BROWSE GAMES</span><ul class="footer-menu"><li ><a href="/1-strategy-games" title="Strategy Games" data-drupal-link-system-path="taxonomy/term/6">Strategy Games</a></li><li ><a href="/1-skill-games" title="Skill Games" data-drupal-link-system-path="taxonomy/term/46">Skill Games</a></li><li ><a href="/1-number-games" title="Number Games" data-drupal-link-system-path="taxonomy/term/151">Number Games</a></li><li ><a href="/1-logic-games" title="Logic Games" data-drupal-link-system-path="taxonomy/term/91">Logic Games</a></li><li ><a href="/1-memory-games" title="Memory Games" data-drupal-link-system-path="taxonomy/term/181">Memory Games</a></li><li ><a href="/1-classic-games" title="Classic Games" data-drupal-link-system-path="taxonomy/term/211">Classic Games</a></li><li ><a href="/0-jigsaw-puzzles" title="Jigsaw Puzzles" data-drupal-link-system-path="0-jigsaw-puzzles">Jigsaw Puzzles</a></li><li ><a href="/1-science-games" title="Science Games" data-drupal-link-system-path="taxonomy/term/626">Science Games</a></li><li ><a href="/1-geography-games" title="Geography Games" data-drupal-link-system-path="taxonomy/term/206">Geography Games</a></li></ul></li><li class="mb-3 mr-3 menu__item is-expanded expanded footer-menu-column-2"><span class="menu__link nolink">COOLMATH.COM</span><ul class="footer-menu"><li ><a href="https://www.coolmath.com/prealgebra" title="Pre-Algebra Lessons">Pre-Algebra Lessons</a></li><li ><a href="https://www.coolmath.com/algebra" title="Algebra Lessons">Algebra Lessons</a></li><li ><a href="https://www.coolmath.com/precalculus-review-calculus-intro" title="Pre-Calculus Lessons">Pre-Calculus Lessons</a></li><li ><a href="https://coolmath.com/reference/online-math-dictionary" title="Math Dictionary">Math Dictionary</a></li><li ><a href="https://www.coolmath.com/algebra/08-lines" title="Lines">Lines</a></li><li ><a href="https://www.coolmath.com/prealgebra/00-factors-primes" title="Factors and Primes">Factors and Primes</a></li><li ><a href="https://www.coolmath.com/prealgebra/02-decimals" title="Decimals">Decimals</a></li><li ><a href="https://www.coolmath.com/prealgebra/06-properties" title="Properties">Properties</a></li></ul></li><li class="mb-3 mr-3 menu__item is-expanded expanded footer-menu-column-3"><span class="menu__link nolink">MORE FROM COOLMATH</span><ul class="footer-menu"><li ><a href="https://www.coolmath4kids.com" title="Coolmath4Kids">Coolmath4Kids</a></li><li ><a href="https://www.coolmath4kids.com/manipulatives/ten-frame" title="Ten Frame Manipulative">Ten Frame Manipulative</a></li><li ><a href="https://www.coolmath4kids.com/manipulatives/base-ten-blocks" title="Base Ten Blocks Manipulative">Base Ten Blocks Manipulative</a></li><li ><a href="https://www.coolmath4kids.com/manipulatives/number-line" title="Number Line Manipulative">Number Line Manipulative</a></li><li ><a href="https://www.coolmath4kids.com/manipulatives/pattern-blocks" title="Pattern Blocks Manipulative">Pattern Blocks Manipulative</a></li><li ><a href="https://www.coolmath4kids.com/quizzes" title="Math Quizzes">Math Quizzes</a></li><li ><a href="http://www.coolmath4teachers.com" title="Coolmath4Teachers">Coolmath4Teachers</a></li><li ><a href="http://www.coolmath4parents.com" title="Coolmath4Parents">Coolmath4Parents</a></li></ul></li><li class="mb-3 mr-3 menu__item is-expanded expanded footer-menu-column-4"><span class="menu__link nolink">Follow us</span><ul class="footer-menu"><li ><a href="https://vm.tiktok.com/ZMejTPTeL/">TikTok</a></li><li ><a href="https://twitter.com/TheRealCoolmath">Twitter</a></li><li ><a href="https://www.instagram.com/coolmathgames/">Instagram</a></li><li ><a href="https://www.facebook.com/CoolMathGamesLLC">Facebook</a></li><li ><a href="https://www.youtube.com/c/CoolmathGames1997">YouTube</a></li></ul></li></ul></div></div></div>
  4416.  
  4417. <div id="block-languagedropdownswitcher" class="settings-tray-editable block block-lang-dropdown block-language-dropdown-blocklanguage-interface" data-drupal-settingstray="editable">
  4418.   
  4419.       <h2 class="common-title">
  4420.       <span class="title-with-button">Select a Language</span>
  4421.     </h2>
  4422.     
  4423.       <div class="view-content">
  4424.       <form class="lang-dropdown-form lang_dropdown_form clearfix language_interface form-placeholder-include-children" id="lang_dropdown_form_lang-dropdown-form" data-drupal-selector="lang-dropdown-form" data-msg-required="This field is required." action="/0-run-3" method="post" accept-charset="UTF-8">
  4425.   
  4426.  
  4427. <div  class="form-basic"><div class="js-form-item form-item js-form-type-select form-type-select js-form-item-lang-dropdown-select form-item-lang-dropdown-select form-no-label"><div class="form-group"><label  for="edit-lang-dropdown-select" class="label--left visually-hidden">Select your language </label><select style="width:165px" class="lang-dropdown-select-element form-select form-control" data-lang-dropdown-id="lang-dropdown-form" data-drupal-selector="edit-lang-dropdown-select" data-msg-required="Select your language is required." id="edit-lang-dropdown-select" name="lang_dropdown_select"><option value="en" selected="selected">English</option><option value="es">Español</option></select></div></div></div>  
  4428. <input data-drupal-selector="edit-en" data-msg-required="This field is required." type="hidden" name="en" value="/0-run-3" class="form-control" />
  4429.   
  4430. <input data-drupal-selector="edit-es" data-msg-required="This field is required." type="hidden" name="es" value="/es/0-run-3" class="form-control" />
  4431. <noscript><div>
  4432.  
  4433.  
  4434.  
  4435.   <input data-drupal-selector="edit-submit" data-msg-required="This field is required." type="submit" id="edit-submit" name="op" value="Go" class="button js-form-submit form-submit btn btn-primary" />
  4436. </div></noscript>  
  4437. <input autocomplete="off" data-drupal-selector="form-kydj7jjzgbs4h-xjuqh9iefjfjextoeha-xwwewniyq" data-msg-required="This field is required." type="hidden" name="form_build_id" value="form-KyDj7JjzGbS4h_xjUqH9iefJFjEXtoEhA-XwWEwniyQ" class="form-control" />
  4438.   
  4439. <input data-drupal-selector="edit-lang-dropdown-form" data-msg-required="This field is required." type="hidden" name="form_id" value="lang_dropdown_form" class="form-control" />
  4440.  
  4441. </form>
  4442.  
  4443.     </div>
  4444.   </div></li><li><div class="copyright-wrapper text-left"><p>© 2021 Coolmath.com LLC. All Rights Reserved. </p></div></li></ol></div></div></div></div></footer></div></div><div id="yourCookieChoices" style="display:none;"><div class="container"><div class="row"><div class="cookie-text col-xs-12 col-lg-9 col-xl-7 offset-xl-2"><span class="first-cookie">We use cookies to enhance your experience, improve our content and services, and present you with relevant advertising.
  4445.         </span></div><div class="cookie-mobile col-xs-12 col-lg-3 col-xl-3"><span class="imokwiththat-close" id="closeCookieChoices" onclick="closeCookieChoices();">imokwiththat</span><a href="/cookie-choices" class="cookies-link">Manage choices</a></div></div></div></div><link rel="stylesheet" media="all" href="/sites/default/files/css/css_rrlke9AW_Ex1NGc6qRn0a8OomlTHeM5Ylpb4Cqcupyo.css" />
  4446. <link rel="stylesheet" media="all" href="/sites/default/files/css/css_W53--o0bR1CXaIe6ow4eu3Nmj1aWgEngw0gK7eWxfbM.css" />
  4447. <link rel="stylesheet" media="print" href="/sites/default/files/css/css_32uozVItXm4g-AiwMq6iaUuaCmC6e6chrSBbOXN-0is.css" />
  4448. <link rel="stylesheet" media="all" href="/themes/custom/coolmath/assets/themes/css/_coolmath_default.css?qz8wfi" id="styleswitcher-css" />
  4449. <script src="/sites/default/files/js/js_fmGaaThKOwQtrequP3VIMR3tH_doScSJQ14bgf_TlQ4.js" type="deferjs"></script>
  4450. <script type="deferjs">
  4451.     // This will delay in js load
  4452.     Defer.js('https://js.stripe.com/v3/', 'stripejs', 5000);
  4453.   </script><script type="deferjs">
  4454.       if (jQuery('body').hasClass('node-type-game')) {
  4455.         // Add Class on "Daily Games - Custom Block" in Daily game details.
  4456.         $('body').find('.block-dailygames').addClass('dailygames');
  4457.         var offset = 420;
  4458.         var offsetMillis = offset * 60 * 1000;
  4459.         var today = new Date();
  4460.         var millis = today.getTime();
  4461.         var timeZoneOffset = (today.getTimezoneOffset() * 60 * 1000);
  4462.         var pst = millis - offsetMillis;
  4463.         var currentDate = new Date(pst);
  4464.         if(drupalSettings.language == 'en'){
  4465.           var dayarray = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  4466.           var montharray = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];
  4467.         } else{
  4468.           var dayarray = ['Domingo', 'Lunes', 'martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'];
  4469.           var montharray = ['Ene.', 'Feb.', 'Mar.', 'Abr.', 'Mayo.', 'Jun.', 'Jul.', 'Ago.', 'Sep.', 'Oct.', 'Nov.', 'Dic.'];
  4470.         }
  4471.         // var dayarray = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  4472.         // var montharray = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];
  4473.         var displaydate = dayarray[currentDate.getDay()] + ", " + montharray[currentDate.getMonth()] + " " + ordinal_suffix_of(currentDate.getDate());
  4474.         // jQuery('.node-type-game .inside .dailygames .common-title').html("<div class='daily-games-text'><img src='/themes/custom/coolmath/assets/images/bird.png' alt='daily games' class='daily-games-header' /></div><span class='dailygamesdate'>" + displaydate + "</span>");
  4475.         var getGamePageTitle = jQuery('.node-type-game .inside .dailygames .common-title').text();
  4476.         jQuery('.node-type-game .inside .dailygames .common-title').html("<div class='daily-games-text'><h1 class='mGamePageTitle'>"+getGamePageTitle+"</h1><img src='/themes/custom/coolmath/assets/images/bird.png' alt='daily games' class='daily-games-header' /></div><span class='dailygamesdate'>" + displaydate + "</span>");
  4477.       }
  4478.     </script><script type="deferjs">
  4479.       // This will lazy-load pushwoosh js
  4480.       Defer.js('//cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js', 'pushwoosh', 5000);
  4481.     </script><script type="deferjs">
  4482.       Defer(function() {
  4483.         // var displayPushWooshNotification = true;
  4484.         if (typeof displayPushWooshNotification !== 'undefined') {
  4485.           debugOut('present');
  4486.           if (location.hostname == "d8-stage.coolmathgames.com" || location.hostname == "d8.coolmathgames.local") {
  4487.             applicationCode = "0A16D-69CC2";
  4488.             debugOut('stage');
  4489.           } else { // live
  4490.             applicationCode = "BDAD7-8E616";
  4491.           }
  4492.           var Pushwoosh = Pushwoosh || [];
  4493.           Pushwoosh.push([
  4494.             'init', {
  4495.               logLevel: 'info',
  4496.               applicationCode: applicationCode,
  4497.               defaultNotificationTitle: 'Pushwoosh',
  4498.               defaultNotificationImage: 'https://www.coolmathgames.com/themes/custom/coolmath/logo.png',
  4499.               autoSubscribe: true, // or true. If true, prompts a user to subscribe for pushes upon SDK initialization
  4500.               subscribeWidget: {
  4501.                 enabled: true
  4502.               }
  4503.             }
  4504.           ]);
  4505.         }
  4506.       },5000);
  4507.     </script><!--pwa codes start here--><div class="add-button-wrap" style="opacity: 0;visibility: hidden"><img src="/pwa/images/icon-72x72.png" width="46" height="46" alt="coolmath logo"/><button class="add-button">+ Add to home screen</button><span class="close-button">X</span></div><script>
  4508.       var winLocation = window.location;
  4509.       var startUrl = winLocation.href;
  4510.       var hostName = winLocation.origin;
  4511.       //var dymAppName = winLocation.pathname.slice(1).replace(/^[-\d\s]*/,"").replaceAll('-', ' ').replaceAll('-', ' ').replace(/\b\w/g, l => l.toUpperCase());;
  4512.       var dymAppName = "Coolmath Games";
  4513.       var iOSAppName = "Coolmath";
  4514.       if($('.node-type-game').length){
  4515.         dymAppName = $('.cmatgame-title').text();
  4516.         iOSAppName = dymAppName;
  4517.       }
  4518.       var myDynamicManifest = {
  4519.         "name": dymAppName,
  4520.         "short_name": dymAppName,
  4521.         "start_url": startUrl+"?utm_source=PWA&utm_medium=homescreen",
  4522.         "display": "standalone",
  4523.         "background_color":"#16202c",
  4524.         "theme_color": "#2A445D",
  4525.         "orientation": "portrait-primary",
  4526.         "description": "Free Online Math Games, Cool Puzzles, and More",
  4527.         "icons" :[
  4528.             {
  4529.               "src":hostName+"/pwa/images/icon-72x72.png",
  4530.               "sizes":"72x72",
  4531.               "type":"image/png",
  4532.               "purpose": "any"
  4533.             },
  4534.             {
  4535.                 "src":hostName+"/pwa/images/icon-96x96.png",
  4536.                 "sizes":"96x96",
  4537.                 "type":"image/png",
  4538.                 "purpose": "any"
  4539.             },
  4540.             {
  4541.                 "src":hostName+"/pwa/images/icon-128x128.png",
  4542.                 "sizes":"128x128",
  4543.                 "type":"image/png",
  4544.                 "purpose": "any"
  4545.             },
  4546.             {
  4547.                 "src":hostName+"/pwa/images/icon-144x144.png",
  4548.                 "sizes":"144x144",
  4549.                 "type":"image/png",
  4550.                 "purpose": "any"
  4551.             },
  4552.             {
  4553.                 "src":hostName+"/pwa/images/icon-152x152.png",
  4554.                 "sizes":"152x152",
  4555.                 "type":"image/png",
  4556.                 "purpose": "any"
  4557.             },
  4558.             {
  4559.                 "src":hostName+"/pwa/images/icon-192x192.png",
  4560.                 "sizes":"192x192",
  4561.                 "type":"image/png",
  4562.                 "purpose": "any"
  4563.             },
  4564.             {
  4565.                 "src":hostName+"/pwa/images/icon-384x384.png",
  4566.                 "sizes":"384x384",
  4567.                 "type":"image/png",
  4568.                 "purpose": "any"
  4569.             },
  4570.             {
  4571.                 "src":hostName+"/pwa/images/icon-512x512.png",
  4572.                 "sizes":"512x512",
  4573.                 "type":"image/png",
  4574.                 "purpose": "any"
  4575.             }
  4576.         ]
  4577.       }
  4578.       //for manifest link
  4579.       const link = document.createElement("link");
  4580.       link.rel = "manifest";
  4581.       const stringManifest = JSON.stringify(myDynamicManifest);
  4582.       link.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(stringManifest))
  4583.       document.head.appendChild(link);
  4584.       //for app name meta:iOS support
  4585.       const appName = document.createElement("meta");
  4586.       appName.name = "application-name";
  4587.       appName.content = iOSAppName;
  4588.       document.head.appendChild(appName);
  4589.       //for app Title meta:iOS support
  4590.       const appTitle = document.createElement("meta");
  4591.       appTitle.name = "apple-mobile-web-app-title";
  4592.       appTitle.content = iOSAppName;
  4593.       document.head.appendChild(appTitle);
  4594.       if("serviceWorker" in navigator){
  4595.         navigator.serviceWorker.register('sw.js')
  4596.         .then((reg) => console.log("Service worker registered",reg))
  4597.         .catch((err) => console.log("Service Workeer not registered",err))
  4598.       }
  4599.       let deferredPrompt;
  4600.       const addBtnWrap = document.querySelector('.add-button-wrap');
  4601.       const addBtn = document.querySelector('.add-button');
  4602.       const closeBtn = document.querySelector('.close-button');
  4603.       const body = document.querySelector('body');
  4604.       const checkA2hs = sessionStorage.getItem('a2hsBtn');
  4605.       closeBtn.addEventListener('click', function(){
  4606.         sessionStorage.setItem("a2hsBtn", closed);
  4607.         body.classList.remove('a2hs-show');
  4608.       })
  4609.       window.addEventListener('beforeinstallprompt', (e) => {
  4610.         e.preventDefault();
  4611.         deferredPrompt = e;
  4612.         if(checkA2hs!=='false'){
  4613.         body.classList.add('a2hs-show');
  4614.         }
  4615.         addBtn.addEventListener('click', (e) => {
  4616.           body.classList.remove('a2hs-show');
  4617.           deferredPrompt.prompt();
  4618.           deferredPrompt.userChoice.then((choiceResult) => {
  4619.               if (choiceResult.outcome === 'accepted') {
  4620.                 console.log('User accepted the A2HS prompt');
  4621.               } else {
  4622.                 console.log('User dismissed the A2HS prompt');
  4623.               }
  4624.               deferredPrompt = null;
  4625.             });
  4626.         });
  4627.       });
  4628.     </script><style>
  4629.       .add-button-wrap{width: 100%; height: 45px; padding-left: 15px; transition:all 0.4s; position: fixed; left: 0;bottom:0; color:#fff;z-index: 999;background: #2a455d}
  4630.       .a2hs-show .add-button-wrap{opacity: 1 !important; visibility: visible !important;}
  4631.       .add-button-wrap img, .add-button{ display: inline-block; vertical-align: middle;}
  4632.       .add-button{-webkit-appearance: button; margin-left:10px; border: 0;color:#fff; background:none;text-transform: uppercase;}
  4633.       .close-button{position: absolute; right: 20px; top: 12px; cursor: pointer;}
  4634.       .dtp-device .add-button-wrap{display: none !important}
  4635.     </style><!--pwa codes end here--></body><!--fixes for defer issues on drupal core js--><script type="deferjs">Drupal.attachBehaviors();</script></html>
File Description
  • Star Light
  • PHP Code
  • 26 Mar-2023
  • 430.72 Kb
You can Share it: