(function(){function a(a){a=String(a);return a.charAt(0).toUpperCase()+a.slice(1)}function d(a,c){var d=-1,f=a?a.length:0;if("number"==typeof f&&-1e?1:532>e?2:532.05>e?3:533>e?4:534.03>e?5:534.07>e?6:534.1>e?7:534.13>e?8:534.16>e?9:534.24>e?10:534.3>e?11:535.01>e?12:535.02>e?"13+":535.07>e?15:535.11>e?16:535.19>e?17:536.05>e?18:536.1>e?19:537.01>e?20:537.11>e?"21+":537.13>e?23:537.18>e?24:537.24>e?25:537.36>e?26:"Blink"!= z?"27":"28")):(z&&(z[1]="like Safari"),e=(e=e[0],400>e?1:500>e?2:526>e?3:533>e?4:534>e?"4+":535>e?5:537>e?6:538>e?7:601>e?8:"8"));z&&(z[1]+=" "+(e+="number"==typeof e?".x":/[.+]/.test(e)?"":"+"));"Safari"==v&&(!m||45A.indexOf(L)&&r.push("on "+L);A&&r.push((/^on /.test(r[r.length- 1])?"":"on ")+A);if(w){var W=(e=/ ([\d.+]+)$/.exec(w))&&"/"==w.charAt(w.length-e[0].length-1);w={architecture:32,family:e&&!W?w.replace(e[0],""):w,version:e?e[1]:null,toString:function(){var a=this.version;return this.family+(a&&!W?" "+a:"")+(64==this.architecture?" 64-bit":"")}}}(e=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(U))&&!/\bi686\b/i.test(U)?(w&&(w.architecture=64,w.family=w.family.replace(RegExp(" *"+e),"")),v&&(/\bWOW64\b/i.test(a)||P&&/\w(?:86|32)$/.test(x.cpuClass||x.platform)&&!/\bWin64; x64\b/i.test(a))&& r.unshift("32-bit")):w&&/^OS X/.test(w.family)&&"Chrome"==v&&39<=parseFloat(m)&&(w.architecture=64);a||(a=null);q={};q.description=a;q.layout=z&&z[0];q.manufacturer=L;q.name=v;q.prerelease=V;q.product=A;q.ua=a;q.version=v&&m;q.os=w||{architecture:null,family:null,version:null,toString:function(){return"null"}};q.parse=c;q.toString=function(){return this.description||""};q.version&&r.unshift(m);q.name&&r.unshift(v);w&&v&&(w!=String(w).split(" ")[0]||w!=v.split(" ")[0]&&!A)&&r.push(A?"("+w+")":"on "+ w);r.length&&(q.description=r.join(" "));return q}var p={"function":!0,object:!0},t=p[typeof window]&&window||this,r=p[typeof exports]&&exports;p=p[typeof module]&&module&&!module.nodeType&&module;var x=r&&p&&"object"==typeof global&&global;!x||x.global!==x&&x.window!==x&&x.self!==x||(t=x);var m=Math.pow(2,53)-1,y=/\bOpera/;x=Object.prototype;var u=x.hasOwnProperty,B=x.toString,D=c();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(t.platform=D,define(function(){return D})):r&& p?b(D,function(a,c){r[c]=a}):t.platform=D}).call(this); function buildIOSMeta(){for(var a=[{name:"viewport",content:"width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"},{name:"apple-mobile-web-app-capable",content:"yes"},{name:"apple-mobile-web-app-status-bar-style",content:"black"}],d=0;d
')} function showIOSFullscreenPanel(){jQuery(".xxx-ios-fullscreen-message").css("display","block");jQuery(".xxx-ios-fullscreen-scroll").css("display","block")} function __iosResize(){window.scrollTo(0,0);console.log(window.devicePixelRatio);console.log(window.innerWidth);console.log(window.innerHeight);if("iPhone"===platform.product)switch(window.devicePixelRatio){case 2:switch(window.innerWidth){case 568:320!==window.innerHeight&&jQuery(".xxx-game-iframe-full").addClass("xxx-game-iframe-iphone-se");break;case 667:375===window.innerHeight?hideIOSFullscreenPanel():showIOSFullscreenPanel();break;case 808:414===window.innerHeight?hideIOSFullscreenPanel():showIOSFullscreenPanel(); break;default:hideIOSFullscreenPanel()}break;case 3:switch(window.innerWidth){case 736:414===window.innerHeight?hideIOSFullscreenPanel():showIOSFullscreenPanel();break;case 724:375===window.innerHeight?hideIOSFullscreenPanel():showIOSFullscreenPanel();break;case 808:414===window.innerHeight?hideIOSFullscreenPanel():showIOSFullscreenPanel();break;default:hideIOSFullscreenPanel()}break;default:hideIOSFullscreenPanel()}}function iosResize(){__iosResize();setTimeout(function(){__iosResize()},500)} function iosInIframe(){try{return window.self!==window.top}catch(a){return!0}}$(document).ready(function(){platform&&"iPhone"===platform.product&&"safari"!==platform.name.toLowerCase()&&(buildIOSFullscreenPanel(),buildIOSMeta())});jQuery(window).resize(function(){platform&&"iPhone"===platform.product&&"safari"!==platform.name.toLowerCase()&&iosResize()}); (function(){var a="undefined"!==typeof window&&"undefined"!==typeof window.document?window.document:{},d="undefined"!==typeof module&&module.exports,f="undefined"!==typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,b=function(){for(var b,d=["requestFullscreen exitFullscreen fullscreenElement fullscreenEnabled fullscreenchange fullscreenerror".split(" "),"webkitRequestFullscreen webkitExitFullscreen webkitFullscreenElement webkitFullscreenEnabled webkitfullscreenchange webkitfullscreenerror".split(" "), "webkitRequestFullScreen webkitCancelFullScreen webkitCurrentFullScreenElement webkitCancelFullScreen webkitfullscreenchange webkitfullscreenerror".split(" "),"mozRequestFullScreen mozCancelFullScreen mozFullScreenElement mozFullScreenEnabled mozfullscreenchange mozfullscreenerror".split(" "),"msRequestFullscreen msExitFullscreen msFullscreenElement msFullscreenEnabled MSFullscreenChange MSFullscreenError".split(" ")],c=0,f=d.length,g={};c@media("+d+":"+b["client"+a]+"px){body#vpw-test-b div#vpw-test-d{"+d+":7px!important}}";g.appendChild(h);b.insertBefore(g,f.head); a=7==h["offset"+a]?b["client"+a]:window["inner"+a];b.removeChild(g)}else a=window["inner"+a];return a}window.addEventListener("orientationchange",onOrientationChange);function onOrientationChange(){window.matchMedia("(orientation: portrait)").matches&&sizeHandler();window.matchMedia("(orientation: landscape)").matches&&sizeHandler()}function getIOSWindowHeight(){return document.documentElement.clientWidth/window.innerWidth*window.innerHeight} function getHeightOfIOSToolbars(){var a=(0===window.orientation?screen.height:screen.width)-getIOSWindowHeight();return 1g||(g=(a-f)/2);$("#canvas").css("top",g+"px");$("#canvas").css("left",h+"px");fullscreenHandler()}} function _checkOrientation(a,d){s_bMobile&&ENABLE_CHECK_ORIENTATION&&(a>d?"landscape"===$(".orientation-msg-container").attr("data-orientation")?($(".orientation-msg-container").css("display","none"),s_oMain.startUpdate()):($(".orientation-msg-container").css("display","block"),s_oMain.stopUpdate()):"portrait"===$(".orientation-msg-container").attr("data-orientation")?($(".orientation-msg-container").css("display","none"),s_oMain.startUpdate()):($(".orientation-msg-container").css("display","block"), s_oMain.stopUpdate()))}function createBitmap(a,d,f){var b=new createjs.Bitmap(a),g=new createjs.Shape;d&&f?g.graphics.beginFill("#fff").drawRect(0,0,d,f):g.graphics.beginFill("#ff0").drawRect(0,0,a.width,a.height);b.hitArea=g;return b}function createSprite(a,d,f,b,g,h){a=null!==d?new createjs.Sprite(a,d):new createjs.Sprite(a);d=new createjs.Shape;d.graphics.beginFill("#000000").drawRect(-f,-b,g,h);a.hitArea=d;return a} function randomFloatBetween(a,d,f){"undefined"===typeof f&&(f=2);return parseFloat(Math.min(a+Math.random()*(d-a),d).toFixed(f))}function shuffle(a){for(var d=a.length,f,b;0!==d;)b=Math.floor(Math.random()*d),--d,f=a[d],a[d]=a[b],a[b]=f;return a}function formatTime(a){a/=1E3;var d=Math.floor(a/60);a=parseFloat(a-60*d).toFixed(1);var f="";f=10>d?f+("0"+d+":"):f+(d+":");return 10>a?f+("0"+a):f+a} function NoClickDelay(a){this.element=a;window.Touch&&this.element.addEventListener("touchstart",this,!1)}function shuffle(a){for(var d=a.length,f,b;0=s_iLastLevel&&(s_iLastLevel=a);var c=this.getScoreTillLevel(a);this.gotoGame(a, c)};this._update=function(a){if(!1!==d){var c=(new Date).getTime();s_iTimeElaps=c-s_iPrevTime;s_iCntTime+=s_iTimeElaps;s_iCntFps++;s_iPrevTime=c;1E3<=s_iCntTime&&(s_iCurFps=s_iCntFps,s_iCntTime-=1E3,s_iCntFps=0);g===STATE_GAME&&k.update();void 0!==s_oStage&&s_oStage.update(a)}};s_oMain=this;var n=a;ENABLE_FULLSCREEN=a.fullscreen;ENABLE_CHECK_ORIENTATION=a.check_orientation;this.initContainer()} var s_bMobile,s_bAudioActive=!1,s_iCntTime=0,s_iTimeElaps=0,s_iPrevTime=0,s_iCntFps=0,s_iCurFps=0,s_oSoundTrack=null,s_oDrawLayer,s_oStage,s_oMain=null,s_oSpriteLibrary,s_oLevelSettings,s_iLastLevel=1,s_bFullscreen=!1,s_bStorageAvailable=!0,s_aSounds,s_aSoundsInfo; function CTextButton(a,d,f,b,g,h,k,n){var c,p,t,r,x,m,y,u,B,D;this._init=function(a,b,d,f,g,m,h){c=!1;p=1;t=[];r=[];D=createBitmap(d);u=new createjs.Container;u.x=a;u.y=b;u.regX=d.width/2;u.regY=d.height/2;s_bMobile||(u.cursor="pointer");u.addChild(D,B);n.addChild(u);B=new CTLText(u,10,12,d.width-20,d.height-20,h,"center",m,g,1.1,0,0,f,!0,!0,!1,!1);this._initListener()};this.unload=function(){u.off("mousedown",x);u.off("pressup",m);n.removeChild(u)};this.setVisible=function(a){u.visible=a};this.setAlign= function(a){B.textAlign=a};this.setTextX=function(a){B.x=a};this.setScale=function(a){p=u.scaleX=u.scaleY=a};this.enable=function(){c=!1};this.disable=function(){c=!0};this._initListener=function(){x=u.on("mousedown",this.buttonDown);m=u.on("pressup",this.buttonRelease)};this.addEventListener=function(a,c,b){t[a]=c;r[a]=b};this.addEventListenerWithParams=function(a,c,b,d){t[a]=c;r[a]=b;y=d};this.buttonRelease=function(){c||(playSound("press_but",1,!1),u.scaleX=p,u.scaleY=p,t[ON_MOUSE_UP]&&t[ON_MOUSE_UP].call(r[ON_MOUSE_UP], y))};this.buttonDown=function(){c||(u.scaleX=.9*p,u.scaleY=.9*p,t[ON_MOUSE_DOWN]&&t[ON_MOUSE_DOWN].call(r[ON_MOUSE_DOWN]))};this.setPosition=function(a,c){u.x=a;u.y=c};this.tweenPosition=function(a,c,b,d,f,g,m){createjs.Tween.get(u).wait(d).to({x:a,y:c},b,f).call(function(){void 0!==g&&g.call(m)})};this.changeText=function(a){B.refreshText(a)};this.setX=function(a){u.x=a};this.setY=function(a){u.y=a};this.getButtonImage=function(){return u};this.getX=function(){return u.x};this.getY=function(){return u.y}; this.getSprite=function(){return u};this.getScale=function(){return u.scaleX};this._init(a,d,f,b,g,h,k)} function CGfxButton(a,d,f){var b,g,h=[],k,n,c;this._init=function(a,d,f){b=[];g=[];c=createBitmap(f);c.x=a;c.y=d;c.regX=f.width/2;c.regY=f.height/2;c.cursor="pointer";s_oStage.addChild(c);this._initListener()};this.unload=function(){c.off("mousedown",k);c.off("pressup",n);s_oStage.removeChild(c)};this.setVisible=function(a){c.visible=a};this._initListener=function(){k=c.on("mousedown",this.buttonDown);n=c.on("pressup",this.buttonRelease)};this.addEventListener=function(a,c,d){b[a]=c;g[a]=d};this.addEventListenerWithParams= function(a,c,d,f){b[a]=c;g[a]=d;h=f};this.buttonRelease=function(){playSound("press_but",1,!1);c.scaleX=1;c.scaleY=1;b[ON_MOUSE_UP]&&b[ON_MOUSE_UP].call(g[ON_MOUSE_UP],h)};this.buttonDown=function(){c.scaleX=.9;c.scaleY=.9;b[ON_MOUSE_DOWN]&&b[ON_MOUSE_DOWN].call(g[ON_MOUSE_DOWN],h)};this.setPosition=function(a,b){c.x=a;c.y=b};this.setX=function(a){c.x=a};this.setY=function(a){c.y=a};this.getButtonImage=function(){return c};this.getX=function(){return c.x};this.getY=function(){return c.y};this._init(a, d,f);return this} function CToggle(a,d,f,b){var g,h,k,n,c,p;this._init=function(a,c,b,d){h=[];k=[];var f=new createjs.SpriteSheet({images:[b],frames:{width:b.width/2,height:b.height,regX:b.width/2/2,regY:b.height/2},animations:{state_true:[0],state_false:[1]}});g=d;p=createSprite(f,"state_"+g,b.width/2/2,b.height/2,b.width/2,b.height);p.x=a;p.y=c;p.stop();p.cursor="pointer";s_oStage.addChild(p);this._initListener()};this.unload=function(){p.off("mousedown",n);p.off("pressup",c);s_oStage.removeChild(p)};this._initListener= function(){n=p.on("mousedown",this.buttonDown);c=p.on("pressup",this.buttonRelease)};this.addEventListener=function(a,c,b){h[a]=c;k[a]=b};this.setActive=function(a){g=a;p.gotoAndStop("state_"+g)};this.buttonRelease=function(){p.scaleX=1;p.scaleY=1;playSound("press_but",1,!1);g=!g;p.gotoAndStop("state_"+g);h[ON_MOUSE_UP]&&h[ON_MOUSE_UP].call(k[ON_MOUSE_UP],g)};this.buttonDown=function(){p.scaleX=.9;p.scaleY=.9;h[ON_MOUSE_DOWN]&&h[ON_MOUSE_DOWN].call(k[ON_MOUSE_DOWN])};this.setPosition=function(a,c){p.x= a;p.y=c};this._init(a,d,f,b)} function CMenu(){var a,d,f,b,g,h,k,n,c=null,p,t,r,x,m=null,y=null;this._init=function(){k=createBitmap(s_oSpriteLibrary.getSprite("bg_menu"));s_oStage.addChild(k);if(s_bStorageAvailable){var u=getItem("sorcerer_level");null!==u&&void 0!==u?s_iLastLevel=parseInt(getItem("sorcerer_level")):saveItem("sorcerer_level",1)}else new CAlertSavingBox(TEXT_ERR_LS,s_oStage);1===s_iLastLevel?(n=new CGfxButton(CANVAS_WIDTH/2,CANVAS_HEIGHT-120,s_oSpriteLibrary.getSprite("but_play"),!0),n.addEventListener(ON_MOUSE_UP, this._onButPlayRelease,this)):(n=new CGfxButton(CANVAS_WIDTH/2-150,CANVAS_HEIGHT-120,s_oSpriteLibrary.getSprite("but_play"),!0),n.addEventListener(ON_MOUSE_UP,this._onButPlayRelease,this),c=new CGfxButton(CANVAS_WIDTH/2+150,CANVAS_HEIGHT-120,s_oSpriteLibrary.getSprite("but_continue"),!0),c.addEventListener(ON_MOUSE_UP,this._onButContinueRelease,this));if(!1===DISABLE_SOUND_MOBILE||!1===s_bMobile)u=s_oSpriteLibrary.getSprite("audio_icon"),g=CANVAS_WIDTH-u.height/2,h=u.height/2,p=new CToggle(g,h,u, s_bAudioActive),p.addEventListener(ON_MOUSE_UP,this._onAudioToggle,this);u=s_oSpriteLibrary.getSprite("but_credits");f=u.height/2+10;b=u.height/2+10;t=new CGfxButton(f,b,u,s_oStage);t.addEventListener(ON_MOUSE_UP,this._onButCreditsRelease,this);u=window.document;var B=u.documentElement;m=B.requestFullscreen||B.mozRequestFullScreen||B.webkitRequestFullScreen||B.msRequestFullscreen;y=u.exitFullscreen||u.mozCancelFullScreen||u.webkitExitFullscreen||u.msExitFullscreen;!1===ENABLE_FULLSCREEN&&(m=!1);m&& screenfull.enabled&&(u=s_oSpriteLibrary.getSprite("but_fullscreen"),a=f+u.width/2+10,d=b-2,x=new CToggle(a,d,u,s_bFullscreen,s_oStage),x.addEventListener(ON_MOUSE_UP,this._onFullscreenRelease,this));r=new createjs.Shape;r.graphics.beginFill("black").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);s_oStage.addChild(r);createjs.Tween.get(r).to({alpha:0},400).call(function(){r.visible=!1});this.refreshButtonPos(s_iOffsetX,s_iOffsetY)};this.unload=function(){n.unload();n=null;t.unload();null!==c&&c.unload(); if(!1===DISABLE_SOUND_MOBILE||!1===s_bMobile)p.unload(),p=null;m&&screenfull.enabled&&x.unload();s_oStage.removeChild(k);k=null;s_oStage.removeChild(r);s_oMenu=r=null};this.refreshButtonPos=function(c,k){!1!==DISABLE_SOUND_MOBILE&&!1!==s_bMobile||p.setPosition(g-c,k+h);m&&screenfull.enabled&&x.setPosition(a+c,d+k);t.setPosition(f+c,b+k)};this._exitFromMenu=function(){this.unload();s_oMain.gotoLevelMenu();$(s_oMain).trigger("start_session")};this._onButPlayRelease=function(){if(1=l[e+1].getFotogram()-l[e].getFotogram())16> l[e+1].getFotogram()-l[e].getFotogram()&&l[e+1].setPos(l[e].getFotogram()+16,q),c.push(l[e+1]);else break;for(e=0;e=q.length-17){g=!1;if(!1===DISABLE_SOUND_MOBILE||!1===s_bMobile)s_aSounds.soundtrack.pause(),playSound("game_over",1,!1).on("end",this._onSoundGameOverComplete);s_oStage.removeEventListener("stagemousemove");k=h=!1;p=1;l[l.length-1].unload();l.splice(l.length-1,1);x=STATE_GAME_ROLL_OUT}};this.onIntroduceBall=function(){if(0!== l.length&&(s_oGame._pushNextBall(0,1),32===l[0].getFotogram()&&0!==t)){var a=s_oGame.getRandomBall();l.unshift(a);a.setPos(16,q)}};this.shoot=function(){playSound("shot",1,!1);var a=(G.getRotation()+90)*Math.PI/180,b=G.getCurrentBall();b.changePos(G.getX()+60*Math.cos(a),G.getY()+60*Math.sin(a));R.addChild(b.getSprite());b.setContainer(R);F.push([b,a]);x=STATE_GAME_SHOOTING};this._checkCollision=function(a){a=a[0];for(var b=0;bl[b+1].getFotogram()-l[b].getFotogram()&&(C.push([a,l[b+1]]),h=!0)}else l[b-1]&&32>l[b].getFotogram()-l[b-1].getFotogram()?(e=l[b-1].getFotogram()+16,C.push([a,l[b]]),h=!0):e=l[b].getFotogram()-16;b=q[e][0];c=q[e][1];var d=this;createjs.Tween.get(a.getSprite()).to({x:b,y:c},200).call(function(){d.motionFinished(a,e)})};this.motionFinished= function(a,b){for(var c,e=0;eb){c=e;break}e===l.length-1&&(c=e+1)}C.splice(C.indexOf(a),1);a.setPos(b,q);l.splice(c,0,a);l[c-1]&&l[c-1].getIndex()===l[c].getIndex()&&17=l[d].getFotogram()-l[d-1].getFotogram())c.push(l[d]),++d;else if(b)break;else c.push(l[d]),++d;else break;for(d=a-1;l[d];)if(l[d].getIndex()===e)if(17>=l[d+1].getFotogram()-l[d].getFotogram())c.push(l[d]),--d;else if(b)break;else c.push(l[d]),--d;else break;++d;2=J[a].getFotogram()-l[b-1].getFotogram()&&(p++,J.splice(a,1),this._clearCheck(b-1,!0),0===J.length&&(k=!1,p=1))}else J.splice(a,1),m>y&&(y=m),m=0}else k=!1,p=1};this._checkPushCollision=function(){if(0!==C.length)for(var a=0;athis._clearCheck(a,!1)&&(m>y&&(y=m),m=0),this._addToBallAttracted(l[a])):(m>y&&(y=m),m=0)};this._gamePass=function(){u= setInterval(s_oGame._extraScore,r)};this._extraScore=function(){B+16s_oLevelSettings.getNumLevels()?(E--,M.win(n)):(s_oMain.setLocalStorageLevel(E),M.nextLevel(E,n)))};this._checkColor=function(a){for(var b=0;br&&(H=0,this.onIntroduceBall())};this._updateRollOut=function(){for(var a=l.length-1;0<=a;--a)l[a].getFotogram()>q.length-17?(l[a].unload(),l.splice(a,1),0===l.length&&(x=-1,M.gameOver(n))):l[a].increasePos(8,q)};this._updateRollIn= function(){if(l.lengthc?"next":"previous");F.splice(a,1)}}else F[a][0].unload(),F.splice(a,1);else x=-1};this.update=function(){if(!1!==b)switch(!0===k&&this._attract(),!0===h&&this._checkPushCollision(),x){case STATE_GAME_ROLL_IN:this._updateRollIn();break;case STATE_GAME_ROLL_OUT:this._updateRollOut();break;case STATE_GAME_SHOOTING:this._updateShooting();this._updateMove();break;default:this._updateMove()}};s_oGame=this;COMBO_VALUE=a.combo_value;EXTRA_SCORE= a.extra_score;this._init(d,f)}var s_oGame,s_oBezier; function CInterface(a){var d,f,b,g,h,k,n,c,p,t,r,x,m,y,u,B,D,H,E=null,l=null;this._init=function(a){c=n=10;x=new createjs.Text(TEXT_SCORE+" "+a,"38px "+FONT_GAME,"#fff");x.x=n;x.y=c;x.textAlign="left";s_oStage.addChild(x);h=10;k=50;r=new createjs.Text(TEXT_LEVEL+" "+s_iLastLevel,"30px "+FONT_GAME,"#fff");r.x=h;r.y=k;r.textAlign="left";s_oStage.addChild(r);var q=this;y=createBitmap(s_oSpriteLibrary.getSprite("hit_area"));s_oStage.addChild(y);y.on("pressup",function(a){q._onTapScreen(a.stageX,a.stageY)}); a=s_oSpriteLibrary.getSprite("but_exit");d=CANVAS_WIDTH-a.width/2;f=a.height/2+4;m=new CGfxButton(d,f,a,!0);m.addEventListener(ON_MOUSE_UP,this._onExit,this);!1===DISABLE_SOUND_MOBILE||!1===s_bMobile?(p=d-a.width,t=a.height/2+4,a=s_oSpriteLibrary.getSprite("audio_icon"),u=new CToggle(p,t,a,s_bAudioActive),u.addEventListener(ON_MOUSE_UP,this._onAudioToggle,this),b=p-a.width/2,g=t):(b=m.getX()-a.width,g=a.height/2+4);a=window.document;var C=a.documentElement;E=C.requestFullscreen||C.mozRequestFullScreen|| C.webkitRequestFullScreen||C.msRequestFullscreen;l=a.exitFullscreen||a.mozCancelFullScreen||a.webkitExitFullscreen||a.msExitFullscreen;!1===ENABLE_FULLSCREEN&&(E=!1);E&&screenfull.enabled&&(a=s_oSpriteLibrary.getSprite("but_fullscreen"),H=new CToggle(b,g,a,s_bFullscreen,s_oStage),H.addEventListener(ON_MOUSE_UP,this._onFullscreenRelease,this));D=new CNextLevel;B=new CEndPanel(s_oSpriteLibrary.getSprite("msg_box"));this.refreshButtonPos(s_iOffsetX,s_iOffsetY)};this.unload=function(){m.unload();m=null; !1===DISABLE_SOUND_MOBILE&&(u.unload(),u=null);E&&screenfull.enabled&&H.unload();s_oStage.removeAllChildren();s_oInterface=null};this.refreshButtonPos=function(a,l){x.x=n+a;x.y=c+l;r.x=h+a;r.y=k+l;m.setPosition(d-a,f+l);!1!==DISABLE_SOUND_MOBILE&&!1!==s_bMobile||u.setPosition(p-a,l+t);E&&screenfull.enabled&&H.setPosition(b-a,g+l)};this._onTapScreen=function(a,b){s_oGame.onShot(a,b)};this.gameOver=function(a){B.show(a,!1)};this.win=function(a){B.show(a,!0)};this.nextLevel=function(a,b){D.show(a,b)}; this.refreshScore=function(a){x.text=TEXT_SCORE+" "+a};this.refreshLevel=function(a){r.text=TEXT_LEVEL+" "+a};this._onExit=function(){s_oGame.onExit()};this._onAudioToggle=function(){Howler.mute(s_bAudioActive);s_bAudioActive=!s_bAudioActive};this.resetFullscreenBut=function(){E&&screenfull.enabled&&H.setActive(s_bFullscreen)};this._onFullscreenRelease=function(){s_bFullscreen?l.call(window.document):E.call(window.document.documentElement);sizeHandler()};s_oInterface=this;this._init(a);return this} var s_oInterface=null; function CEndPanel(a){var d,f,b,g,h,k;this._init=function(a){k=new createjs.Container;k.alpha=0;k.visible=!1;s_oStage.addChild(k);d=createBitmap(a);k.addChild(d);h=new CTLText(k,CANVAS_WIDTH/2-80,CANVAS_HEIGHT/2-68,210,30,50,"center","#000",FONT_GAME,1.1,0,0,TEXT_CONGRATS,!0,!0,!0,!1);g=new CTLText(k,CANVAS_WIDTH/2-80,CANVAS_HEIGHT/2-68,210,30,50,"center","#fff",FONT_GAME,1.1,0,0,TEXT_CONGRATS,!0,!0,!0,!1);f=new CTLText(k,CANVAS_WIDTH/2-80,CANVAS_HEIGHT/2-15,200,70,50,"center","#000",FONT_GAME,1.1, 0,0,TEXT_FINAL_SCORE+"\n99999",!0,!0,!0,!1);b=new CTLText(k,CANVAS_WIDTH/2-80,CANVAS_HEIGHT/2-15,200,70,50,"center","#fff",FONT_GAME,1.1,0,0,TEXT_FINAL_SCORE+"\n99999",!0,!0,!0,!1)};this.unload=function(){k.off("mousedown",this._onExit);s_oStage.removeChild(k)};this._initListener=function(){k.on("mousedown",this._onExit);$(s_oMain).trigger("show_interlevel_ad")};this.show=function(a,c){c?(h.refreshText(TEXT_CONGRATS),g.refreshText(TEXT_CONGRATS)):(h.refreshText(TEXT_GAMEOVER),g.refreshText(TEXT_GAMEOVER)); f.refreshText(TEXT_FINAL_SCORE+"\n "+a);b.refreshText(TEXT_FINAL_SCORE+"\n "+a);k.visible=!0;var d=this;createjs.Tween.get(k).to({alpha:1},500).call(function(){d._initListener()});$(s_oMain).trigger("save_score",a)};this._onExit=function(){k.off("mousedown");s_oGame.onExit()};this._init(a);return this} function CTweenController(){this.tweenValue=function(a,d,f){return a+f*(d-a)};this.easeLinear=function(a,d,f,b){return f*a/b+d};this.easeInCubic=function(a,d,f,b){b=(a/=b)*a*a;return d+f*b};this.easeBackInQuart=function(a,d,f,b){b=(a/=b)*a;return d+f*(2*b*b+2*b*a+-3*b)};this.easeInBack=function(a,d,f,b){return f*(a/=b)*a*(2.70158*a-1.70158)+d};this.easeOutCubic=function(a,d,f,b){return f*((a=a/b-1)*a*a+1)+d}} function CLevelSettings(a){var d,f,b,g,h,k,n;this._init=function(a){d=a;NUM_LEVELS=Object.keys(d).length;trace("NUM_LEVELS: "+NUM_LEVELS);this._initBallSpeed();this._initBallNumber();this._initBallColors();this._initHeroPos();this._initCurveLevel();this._initBgLevel()};this._initBallSpeed=function(){f=[];for(var a=0;au/2&&b++;return b};this._speed=function(a){return Math.sqrt(c*a*a+p*a+t)};this._length=function(a){var b=Math.sqrt(t+a*(p+c*a));return(2*Math.sqrt(c)*(2*c*a*b+p*(b-Math.sqrt(t)))+(p*p-4*c*t)*(Math.log(p+2*Math.sqrt(c)*Math.sqrt(t))-Math.log(p+2*c*a+2*Math.sqrt(c)*b)))/(8*Math.pow(c, 1.5))};this.invertL=function(a,b){var c=a;do{var d=c-(this._length(c)-b)/this._speed(c);if(1E-6>Math.abs(c-d))break;c=d}while(1);return d};this.getAnchorPoint=function(c){if(0<=c&&c<=b){var g=c/b;g=this.invertL(g,g*r);c=(1-g)*(1-g)*a.x+2*(1-g)*g*d.x+g*g*f.x;var h=(1-g)*(1-g)*a.y+2*(1-g)*g*d.y+g*g*f.y,k=new createjs.Point((1-g)*a.x+g*d.x,(1-g)*a.y+g*d.y);g=new createjs.Point((1-g)*d.x+g*f.x,(1-g)*d.y+g*f.y);return[c,h,180*Math.atan2(g.y-k.y,g.x-k.x)/Math.PI]}return[]}} function CBall(a,d){var f,b,g,h,k;this._init=function(a,c){f=a;b=0;k=c;var d=s_oSpriteLibrary.getSprite("ball_"+f);BALL_DIAMETER=d.width;BALL_DIAMETER_SQUARE=BALL_DIAMETER*BALL_DIAMETER;BALL_RADIUS=BALL_DIAMETER/2;d=new createjs.SpriteSheet({images:[d],frames:{width:BALL_DIAMETER,height:BALL_DIAMETER,regX:BALL_RADIUS,regY:BALL_RADIUS},animations:{move:[0,49]}});g=createSprite(d,null,BALL_RADIUS,BALL_RADIUS,BALL_DIAMETER,BALL_DIAMETER);g.stop();k.addChild(g)};this.unload=function(){k.removeChild(h); k.removeChild(g)};this.nextFrame=function(){g.gotoAndStop(50===g.currentFrame+1?0:g.currentFrame+1)};this.prevFrame=function(){g.gotoAndStop(0>g.currentFrame-1?49:g.currentFrame-1)};this.setPos=function(a,c){a>b?this.nextFrame():ad&&(NUM_ROWS_PAGE_LEVEL=d);c=b=0;d=CANVAS_WIDTH-2*EDGEBOARD_X;for(a=s_oSpriteLibrary.getSprite("but_level");cb&&(NUM_COLS_PAGE_LEVEL=b)};this._createNewLevelPage=function(a,b){var d=new createjs.Container; u.addChild(d);t.push(d);c=[];for(var f=0,g=0,h=1,k=!1,l=s_oSpriteLibrary.getSprite("but_level"),m=a;ms_iLastLevel?!1:!0,d);n.addEventListenerWithParams(ON_MOUSE_UP,this._onButLevelRelease,this,m);c.push(n);f++;if(f===p.length&&(f=0,g+=l.height+20,h++,h>NUM_ROWS_PAGE_LEVEL)){k=!0;break}}d.x=CANVAS_WIDTH/2;d.y=CANVAS_HEIGHT/2;d.regX=d.getBounds().width/2;d.regY=d.getBounds().height/2;k&&this._createNewLevelPage(m+1,b)};this._onRight= function(){t[k].visible=!1;k++;k>=t.length&&(k=0);t[k].visible=!0};this._onLeft=function(){t[k].visible=!1;k--;0>k&&(k=t.length-1);t[k].visible=!0};this._onButLevelRelease=function(a){s_oMain.levelSelected(a+1)};this._onAudioToggle=function(){Howler.mute(s_bAudioActive);s_bAudioActive=!s_bAudioActive};this.resetFullscreenBut=function(){D&&screenfull.enabled&&B.setActive(s_bFullscreen)};this._onFullscreenRelease=function(){s_bFullscreen?H.call(window.document):D.call(window.document.documentElement); sizeHandler()};this._onExit=function(){s_oMain.gotoMenu()};s_oLevelMenu=this;this._init()}var s_oLevelMenu=null; function CLevelBut(a,d,f,b,g,h){var k,n,c,p=[],t=[],r,x,m,y;this._init=function(a,b,d,f,g){n=[];c=[];y=new createjs.Container;u.addChild(y);var h=new createjs.SpriteSheet({images:[f],frames:{width:f.width/2,height:f.height,regX:f.width/2/2,regY:f.height/2},animations:{state_true:[0],state_false:[1]}});k=g;m=createSprite(h,"state_"+k,f.width/2/2,f.height/2,f.width/2,f.height);m.mouseEnabled=g;m.x=a;m.y=b;m.stop();s_bMobile||(y.cursor="pointer");y.addChild(m);p.push(m);r=new createjs.Text(d,"60px "+ FONT_GAME,"#004e6f");r.x=a;r.y=b+20;r.textAlign="center";r.textBaseline="alphabetic";r.lineWidth=200;r.outline=6;y.addChild(r);x=new createjs.Text(d,"60px "+FONT_GAME,"#fff");x.x=a;x.y=b+20;x.textAlign="center";x.textBaseline="alphabetic";x.lineWidth=200;y.addChild(x);g||(x.color="#b4b4b4",r.color="#606161");this._initListener()};this.unload=function(){y.off("mousedown",this.buttonDown);y.off("pressup",this.buttonRelease);y.removeChild(m)};this._initListener=function(){y.on("mousedown",this.buttonDown); y.on("pressup",this.buttonRelease)};this.viewBut=function(a){y.addChild(a)};this.addEventListener=function(a,b,d){n[a]=b;c[a]=d};this.addEventListenerWithParams=function(a,b,d,f){n[a]=b;c[a]=d;t=f};this.ifClickable=function(){return!0===y.mouseEnabled?1:0};this.setActive=function(a,b){k=b;p[a].gotoAndStop("state_"+k);p[a].mouseEnabled=!0;k?(x.color="#69b8d5",r.color="#004e6f"):(x.color="#b4b4b4",r.color="#606161")};this.buttonRelease=function(){k&&(playSound("press_but",1,!1),n[ON_MOUSE_UP]&&n[ON_MOUSE_UP].call(c[ON_MOUSE_UP], t))};this.buttonDown=function(){n[ON_MOUSE_DOWN]&&n[ON_MOUSE_DOWN].call(c[ON_MOUSE_DOWN],t)};this.setPosition=function(a,b){y.x=a;y.y=b};this.setVisible=function(a){y.visible=a};var u=h;this._init(a,d,f,b,g,h)} function CMsgBox(a,d,f,b){var g,h,k,n,c,p,t;this._init=function(a,b,d,f){g=[];h=[];t=new createjs.Container;s_oStage.addChild(t);var m=createBitmap(s_oSpriteLibrary.getSprite("msg_box"));t.addChild(m);k=new CTLText(t,CANVAS_WIDTH/2-80,CANVAS_HEIGHT/2-80,210,130,50,"center","#fff",FONT_GAME,1.1,0,0,"",!0,!0,!0,!1);n=new CTextButton(CANVAS_WIDTH/2-100,CANVAS_HEIGHT-150,s_oSpriteLibrary.getSprite("but_generic_small"),"LEFT",FONT_GAME,"#ffffff",50,t);n.addEventListener(ON_MOUSE_UP,this._onButLeftDownRelease, this);c=new CTextButton(CANVAS_WIDTH/2,CANVAS_HEIGHT-150,s_oSpriteLibrary.getSprite("but_generic_small"),"CENTER",FONT_GAME,"#ffffff",50,t);c.addEventListener(ON_MOUSE_UP,this._onButCenterDownRelease,this);p=new CTextButton(CANVAS_WIDTH/2+90,CANVAS_HEIGHT-150,s_oSpriteLibrary.getSprite("but_generic_small"),"LEFT",FONT_GAME,"#ffffff",50,t);p.addEventListener(ON_MOUSE_UP,this._onButRightDownRelease,this);this.show(a,b,d,f)};this.show=function(a,b,d,f){k.refreshText(a);""!==b?(n.changeText(b),n.setVisible(!0)): n.setVisible(!1);""!==d?(c.changeText(d),c.setVisible(!0)):c.setVisible(!1);""!==f?(p.changeText(f),p.setVisible(!0)):p.setVisible(!1)};this.hide=function(){this.unload();s_oStage.removeChild(t)};this.unload=function(){n.unload();c.unload();p.unload()};this.addEventListener=function(a,b,c){g[a]=b;h[a]=c};this._onButLeftDownRelease=function(){g[ON_MSG_BOX_LEFT_BUT]&&(g[ON_MSG_BOX_LEFT_BUT].call(h[ON_MSG_BOX_LEFT_BUT]),t.visible=!1)};this._onButCenterDownRelease=function(){g[ON_MSG_BOX_CENTER_BUT]&& (g[ON_MSG_BOX_CENTER_BUT].call(h[ON_MSG_BOX_CENTER_BUT]),t.visible=!1)};this._onButRightDownRelease=function(){g[ON_MSG_BOX_RIGHT_BUT]&&(g[ON_MSG_BOX_RIGHT_BUT].call(h[ON_MSG_BOX_RIGHT_BUT]),t.visible=!1)};this._init(a,d,f,b)} function CCreditsPanel(){var a,d,f,b,g,h,k,n;this._init=function(){n=new createjs.Container;n.alpha=0;s_oStage.addChild(n);var c=new createjs.Shape;c.graphics.beginFill("rgba(0,0,0,0.7)").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);n.addChild(c);d=createBitmap(s_oSpriteLibrary.getSprite("msg_box"));n.addChild(d);h=new createjs.Shape;h.graphics.beginFill("#0f0f0f").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);h.alpha=.01;a=h.on("click",this._onLogoButRelease);n.addChild(h);c=s_oSpriteLibrary.getSprite("but_exit_small"); b=new CGfxButton(620,180,c,n);b.addEventListener(ON_MOUSE_UP,this.unload,this);g=new CTLText(n,400,214,200,30,50,"center","#000",FONT_GAME,1.1,0,0,TEXT_CREDITS_DEVELOPED,!0,!0,!0,!1);g.setOutline(2);new CTLText(n,400,214,200,30,50,"center","#fff",FONT_GAME,1.1,0,0,TEXT_CREDITS_DEVELOPED,!0,!0,!0,!1);c=s_oSpriteLibrary.getSprite("logo_ctl");f=createBitmap(c);f.regX=c.width/2;f.regY=c.height/2;f.x=CANVAS_WIDTH/2+20;f.y=265;n.addChild(f);k=new CTLText(n,400,286,200,30,50,"center","#000",FONT_GAME,1.1, 0,0,"WebOas.is",!0,!0,!0,!1);k.setOutline(2);new CTLText(n,400,286,200,30,50,"center","#fff",FONT_GAME,1.1,0,0,"WebOas.is",!0,!0,!0,!1);createjs.Tween.get(n).to({alpha:1},600,createjs.Ease.cubicOut);this.refreshButtonPos(s_iOffsetX,s_iOffsetY)};this.refreshButtonPos=function(a,b){};this.unload=function(){h.off("click",a);b.unload();b=null;s_oStage.removeChild(n)};this._onLogoButRelease=function(){window.open("https://weboas.is","_blank")};this._init()} function CAlertSavingBox(a,d){var f,b;this._init=function(a){b=new createjs.Container;h.addChild(b);var d=new createjs.Shape;d.graphics.beginFill("black").drawRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT);d.alpha=.5;d.on("click",function(){});b.addChild(d);d=s_oSpriteLibrary.getSprite("msg_box");var c=createBitmap(d);c.x=.5*CANVAS_WIDTH;c.y=.5*CANVAS_HEIGHT;c.regX=.5*d.width;c.regY=.5*d.height;b.addChild(c);new CTLText(b,400,190,200,130,50,"center","#fff",FONT_GAME,1.1,0,0,a,!0,!0,!0,!1);f=new CGfxButton(CANVAS_WIDTH/ 2,430,s_oSpriteLibrary.getSprite("but_exit"),b);f.addEventListener(ON_MOUSE_UP,this._onButOk,this)};this._onButOk=function(){g.unload()};this.unload=function(){f.unload();h.removeChild(b)};var g=this;var h=d;this._init(a)} CTLText.prototype={constructor:CTLText,__autofit:function(){if(this._bFitText){for(var a=this._iFontSize;(this._oText.getBounds().height>this._iHeight-2*this._iPaddingV||this._oText.getBounds().width>this._iWidth-2*this._iPaddingH)&&!(a--,this._oText.font=a+"px "+this._szFont,this._oText.lineHeight=Math.round(a*this._fLineHeightFactor),this.__updateY(),this.__verticalAlign(),8>a););this._iFontSize=a}},__verticalAlign:function(){if(this._bVerticalAlign){var a=this._oText.getBounds().height;this._oText.y-= (a-this._iHeight)/2+this._iPaddingV}},__updateY:function(){this._oText.y=this._y+this._iPaddingV;switch(this._oText.textBaseline){case "middle":this._oText.y+=this._oText.lineHeight/2+(this._iFontSize*this._fLineHeightFactor-this._iFontSize)}},__createText:function(a){this._bDebug&&(this._oDebugShape=new createjs.Shape,this._oDebugShape.graphics.beginFill("rgba(255,0,0,0.5)").drawRect(this._x,this._y,this._iWidth,this._iHeight),this._oContainer.addChild(this._oDebugShape));this._oText=new createjs.Text(a, this._iFontSize+"px "+this._szFont,this._szColor);this._oText.textBaseline="middle";this._oText.lineHeight=Math.round(this._iFontSize*this._fLineHeightFactor);this._oText.textAlign=this._szAlign;this._oText.lineWidth=this._bMultiline?this._iWidth-2*this._iPaddingH:null;switch(this._szAlign){case "center":this._oText.x=this._x+this._iWidth/2;break;case "left":this._oText.x=this._x+this._iPaddingH;break;case "right":this._oText.x=this._x+this._iWidth-this._iPaddingH}this._oContainer.addChild(this._oText); this.refreshText(a)},setVerticalAlign:function(a){this._bVerticalAlign=a},setOutline:function(a){null!==this._oText&&(this._oText.outline=a)},setShadow:function(a,d,f,b){null!==this._oText&&(this._oText.shadow=new createjs.Shadow(a,d,f,b))},setColor:function(a){this._oText.color=a},setAlpha:function(a){this._oText.alpha=a},removeTweens:function(){createjs.Tween.removeTweens(this._oText)},getText:function(){return this._oText},getY:function(){return this._y},getFontSize:function(){return this._iFontSize}, refreshText:function(a){""===a&&(a=" ");null===this._oText&&this.__createText(a);this._oText.text=a;this._oText.font=this._iFontSize+"px "+this._szFont;this._oText.lineHeight=Math.round(this._iFontSize*this._fLineHeightFactor);this.__autofit();this.__updateY();this.__verticalAlign()}}; function CTLText(a,d,f,b,g,h,k,n,c,p,t,r,x,m,y,u,B){this._oContainer=a;this._x=d;this._y=f;this._iWidth=b;this._iHeight=g;this._bMultiline=u;this._iFontSize=h;this._szAlign=k;this._szColor=n;this._szFont=c;this._iPaddingH=t;this._iPaddingV=r;this._bVerticalAlign=y;this._bFitText=m;this._bDebug=B;this._oDebugShape=null;this._fLineHeightFactor=p;this._oText=null;x&&this.__createText(x)};