1function getHAlign(a){return"left"==a?H_ALIGN.LEFT:"right"==a?H_ALIGN.RIGHT:H_ALIGN.CENTER}function getVAlign(a){return"top"==a?V_ALIGN.TOP:"bottom"==a?V_ALIGN.BOTTOM:V_ALIGN.MIDDLE}function loadGame(){canvas=document.getElementById("cnvs"),ctx=canvas.getContext("2d");var a="default";ctx.save(),ctx.beginPath(),ctx.textAlign="center",ctx.textBaseline="middle",ctx.fillStyle="white",ctx.font="60px Arial",ctx.fillText("Loading",400,300),ctx.restore(),null!=window.location.search&&window.location.search.length>7&&(a=window.location.search.substring(7),atlas_image="/themes/"+a+".png",atlas_json="/themes/"+a+".json");var b=new Image;b.onload=function(){var b=this;atlas=new TextureAtlas(a,atlas_json,b,TextureAtlasLoaded)},b.src=atlas_image,b.id="atlasimage"}function TextureAtlasLoaded(){new Pyramid;var a=new LayoutManager;a.loadLayout(layout),new SoundManager,null!=localStorage.getItem("volume")&&(SoundManager.SN.volume=Number(localStorage.getItem("volume")),0==SoundManager.SN.volume&&(SoundManager.SN.volume=1,SoundManager.SN.mute=!0))}var canvas,ctx,TextureAtlas=function(){function a(b,c,d,e){var f=this;this.frames={},this.image=new Image,this.atlasName="",this.loaded=!1,this._onError=function(a){console.log("loading json...")},this._readJSON=function(a){var b;for(var c in a.frames){var d=a.frames[c];b=new Frame(c,d.frame.x,d.frame.y,d.frame.w,d.frame.h,d.spriteSourceSize.x,d.spriteSourceSize.y),f.frames[c]=b}},this.pointInFrame=function(a,b){var c;for(var d in f.frames)if(c=f.frames[d],a>=c.x&&a<=c.x+c.w&&b>=c.y&&b<=c.y+c.h)return c;return null},this.containsFrame=function(a){return void 0!==f.frames[a]&&null!==f.frames[a]},this.drawFrame=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=0),ctx.save(),ctx.translate(b,c),ctx.drawImage(atlas.image,atlas.frames[a].x,atlas.frames[a].y,atlas.frames[a].w,atlas.frames[a].h,-d,-e,atlas.frames[a].w,atlas.frames[a].h),ctx.restore()},this.drawPartial=function(a,b,c,d,e,f,g){void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=1),void 0===g&&(g=1),ctx.save(),ctx.translate(b,c),ctx.drawImage(atlas.image,atlas.frames[a].x,atlas.frames[a].y,atlas.frames[a].w*f,atlas.frames[a].h*g,-d,-e,atlas.frames[a].w*f,atlas.frames[a].h*g),ctx.restore()},this.atlasName=b,this.loadAtlas(c,d),null==a.SN?a.SN=this:delete this,this._callback=e}return a.prototype.loadAtlas=function(a,b){var c=this,d=new XMLHttpRequest;d.onreadystatechange=function(){d.readyState===XMLHttpRequest.DONE&&200===d.status?(c._readJSON(JSON.parse(d.responseText)),c.image=b,c.loaded=!0,c._callback()):c._onError(d)},d.open("GET",a,!0),d.send()},a.SN=null,a}(),Pyramid=function(){function a(){var b=this;this.isFullScreen=!1,this.backgroundX=BACKGROUND.CENTER,this.backgroundY=BACKGROUND.CENTER,this.backgroundW=0,this.backgroundH=0,this.background=null,this.backgroundColor="#006600",this._lastTime=0,this.displayList=new Array,this.clickList=new Array,this.stateArray=new Array,this.rectangleArray=new Array,this.cardArray=new Array,this.disableInput=!1,this._time=0,this._score=0,this._bestScore=0,this._bestTime=a.BEST_TIME_DEFAULT,this._loadingNewGame=!1,this.canvasScale=1,this.marginTop=0,this.marginLeft=0,this.gameLoop=function(){if(requestAnimationFrame(b.gameLoop),b._score>b._bestScore&&(b._bestScore=b._score,localStorage.setItem("bestScore",b._bestScore.toString()),b.bestTimeTxt.text="Best Score: "+b._bestScore.toString()),0==b._lastTime?a.DELTA_TIME=0:a.DELTA_TIME=((new Date).getTime()-b._lastTime)/1e3,b._lastTime=Date.now(),ctx.save(),ctx.fillStyle=b.backgroundColor,ctx.fillRect(0,0,canvas.width,canvas.height),null!=b.background){var c=0;b.backgroundX==BACKGROUND.CENTER?c=canvas.width/2:b.backgroundX==BACKGROUND.END&&(c=canvas.width);var d=0;if(b.backgroundY==BACKGROUND.CENTER?d=canvas.height/2:b.backgroundY==BACKGROUND.END&&(d=canvas.height),b.backgroundX==BACKGROUND.REPEAT&&b.backgroundY==BACKGROUND.REPEAT)for(var e=Math.ceil(canvas.width/b.backgroundW)+1,f=Math.ceil(canvas.height/b.backgroundH)+1,g=0;g<e;g++){c=g*b.backgroundW;for(var h=0;h<f;h++)d=h*b.backgroundH,TextureAtlas.SN.drawFrame(b.background,c-b.backgroundW/2,d-b.backgroundH/2)}else if(b.backgroundX==BACKGROUND.REPEAT)for(var e=Math.ceil(canvas.width/b.backgroundW)+1,g=0;g<e;g++)c=g*b.backgroundW,TextureAtlas.SN.drawFrame(b.background,c-b.backgroundW/2,d-b.backgroundH/2);else if(b.backgroundY==BACKGROUND.REPEAT)for(var f=Math.ceil(canvas.height/b.backgroundH)+1,g=0;g<f;g++)d=g*b.backgroundH,TextureAtlas.SN.drawFrame(b.background,c-b.backgroundW/2,d-b.backgroundH/2);else TextureAtlas.SN.drawFrame(b.background,c-b.backgroundW/2,d-b.backgroundH/2)}for(var g=0;g<b.rectangleArray.length;g++)ctx.save(),ctx.fillStyle=b.rectangleArray[g].color,ctx.fillRect(b.rectangleArray[g].x,b.rectangleArray[g].y,b.rectangleArray[g].width,b.rectangleArray[g].height),ctx.restore(
1);var i;for(g=0;g<b.displayList.length;g++)i=b.displayList[g],1==i.visible&&i.draw();if(b._winScreen.visible?(b._winScreen.draw(),b.newGameBtn.draw()):(b._time+=a.DELTA_TIME,b.timeTxt.text="Time: "+a.FORMAT_TIME(b._time)),ctx.restore(),b._loadingNewGame){ctx.save(),ctx.fillStyle="#000000",ctx.globalAlpha=.85,ctx.fillRect(0,0,canvas.width,canvas.height);var j=TextureAtlas.SN.frames["Loading.png"].w/2;ctx.restore(),TextureAtlas.SN.drawFrame("Loading.png",canvas.width/2-j,canvas.height/2)}},this.clearSelected=function(){for(var a=0;a<b.cardArray.length;a++)b.cardArray[a].isSelected=!1},this.shuffle=function(){for(var a=0,c=0,d=0,e=0;e<1e3;e++)c=e%b.cardArray.length,d=Math.floor(Math.random()*b.cardArray.length),a=b.cardArray[c].cardNumber,b.cardArray[c].setCardNumber(b.cardArray[d].cardNumber),b.cardArray[d].setCardNumber(a)},this.checkScore=function(){var a;b._score=0;for(var c=0;c<21;c++)a=b.cardArray[c],0==a.visible&&b._score++;b.scoreTxt.text="Score: "+b._score},this.CheckSet=function(c){for(var d,e=0;e<b.cardArray.length;e++)if(d=b.cardArray[e],1==d.isSelected){if(d.getCardValue()+c.getCardValue()==11)return a.SN.SaveState(),d.visible=!1,d.cardStack==b.pickColumn?b.pickColumn.removeCard(d):d.cardStack==b.discardPile&&b.discardPile.clearStack(),c.visible=!1,c.cardStack==b.pickColumn?b.pickColumn.removeCard(c):c.cardStack==b.discardPile&&b.discardPile.clearStack(),b.clearSelected(),b.checkScore(),!0;if(12==c.getCardValue())return a.SN.SaveState(),c.visible=!1,c.cardStack==b.pickColumn?b.pickColumn.removeCard(c):c.cardStack==b.discardPile&&b.discardPile.clearStack(),b.clearSelected(),b.checkScore(),!0;d.isSelected=!1}return 12==c.getCardValue()?(a.SN.SaveState(),c.visible=!1,c.cardStack==b.pickColumn?b.pickColumn.removeCard(c):c.cardStack==b.discardPile&&b.discardPile.clearStack(),b.clearSelected(),b.checkScore(),!0):(b.clearSelected(),c.isSelected=!0,!1)},this.FullScreenCallback=function(){var a=document.getElementById("fullscreen");if(1==b.isFullScreen){var c=document;c.exitFullscreen?c.exitFullscreen():c.webkitExitFullscreen?c.webkitExitFullscreen():c.mozCancelFullScreen?c.mozCancelFullScreen():c.msExitFullscreen?c.msExitFullscreen():c.webkitExitFullscreen&&c.webkitExitFullscreen()}else{b.RunPrefixMethod(a,"RequestFullScreen");var e,f,d=4/3;/MSIE/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent)?(e=window.outerWidth,f=window.outerHeight):(e=screen.width,f=screen.height);var g=e/f;g>d?(e=f*d,b.canvasScale=e/800):(f=e/d,b.canvasScale=f/600)}},this.fullScreenChange=function(){b.isFullScreen=!b.isFullScreen},this.pfx=["webkit","moz","ms","o",""],this.RunPrefixMethod=function(a,c){for(var e,f,d=0;d<b.pfx.length&&null==a[e];){if(e=c,""==b.pfx[d]&&(e=e.substr(0,1).toLowerCase()+e.substr(1)),e=b.pfx[d]+e,f=typeof a[e],"undefined"!=f)return b.pfx=[b.pfx[d]],"function"==f?a[e]():a[e];d++}},this.WinCheck=function(){for(var c=0;c<21;c++)if(1==b.cardArray[c].visible)return;b._bestTime>b._time&&(b._bestTime=b._time),b._bestTime<a.BEST_TIME_DEFAULT&&localStorage.setItem("bestTime",b._bestTime.toString()),b._winScreen.runWin(a.FORMAT_TIME(b._time),a.FORMAT_TIME(b._bestTime))},this._onMouseDown=function(a){var c,d,e;if(b.isFullScreen){var f,g,d,e;if(/MSIE/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent)){var f=(window.innerWidth-800*b.canvasScale)/2,g=(window.innerHeight-600*b.canvasScale)/2;d=(a.clientX-f)/b.canvasScale,e=(a.clientY-g)/b.canvasScale}else f=(screen.width-800*b.canvasScale)/2,g=(screen.height-600*b.canvasScale)/2,d=(a.screenX-f)/b.canvasScale,e=(a.screenY-g)/b.canvasScale}else d=null==a.x?a.offsetX:a.x-canvas.offsetLeft+window.pageXOffset,e=null==a.y?a.offsetY:a.y-canvas.offsetTop+window.pageYOffset;b._winScreen.visible&&b._winScreen.mouseDown(d,e),b.newGameBtn.onMouseDown(d,e);for(var h=0;h<b.clickList.length&&(c=b.clickList[h],!c.onMouseDown(d,e));h++);},this._onMouseUp=function(a){var c,d,e;if(b.isFullScreen){var f,g,d,e;if(/MSIE/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent)){var f=(window.innerWidth-800*b.canvasScale)/2,g=(window.innerHeight-600*b.canvasScale)/2;d=(a.clientX-f)/b.canvasScale,e=(a.clientY-g)/b.canvasScale}else f=(screen.width-800*b.canvasScale)/2,g=(screen.height-600*b.canvasScale)/2,d=(a.screenX-f)/b.canvasScale,e=(a.screenY-g)/b.canvasScale}else d=null==a.x?a.offsetX:a.x-canvas.offsetLeft+window.pageXOffset,e=null==a.y?a.offsetY:a.y-canvas.offsetTop+window.pageYOffset;if(b.disableInput)return void b.newGameBtn.onMouseUp(d,e);for(var h=0;h<b.clickList.length;h++)c=b.clickList[h],c.onMouseUp(d,e)}
1,this._onMouseMove=function(a){if(b.disableInput)return void b.newGameBtn.onMouseOver(d,e);canvas.style.cursor="default";var c,d,e;if(b.isFullScreen){var f,g,d,e;if(/MSIE/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent)){var f=(window.innerWidth-800*b.canvasScale)/2,g=(window.innerHeight-600*b.canvasScale)/2;d=(a.clientX-f)/b.canvasScale,e=(a.clientY-g)/b.canvasScale}else f=(screen.width-800*b.canvasScale)/2,g=(screen.height-600*b.canvasScale)/2,d=(a.screenX-f)/b.canvasScale,e=(a.screenY-g)/b.canvasScale}else d=null==a.x?a.offsetX:a.x-canvas.offsetLeft+window.pageXOffset,e=null==a.y?a.offsetY:a.y-canvas.offsetTop+window.pageYOffset;for(var h=!1,i=0;i<b.clickList.length;i++)c=b.clickList[i],0==h&&c.onMouseOver(d,e)?h=!0:c.mouseOver=!1},this.addChild=function(a){if(null!=a){for(var c,d=0;d<b.displayList.length;d++)if(c=b.displayList[d],a==c){b.displayList.splice(d,1);break}if(b.displayList.push(a),"clickEnabled"in a){var e=a;1==e.clickEnabled&&b.addClickable(e)}}},this.addClickable=function(a){for(var c,d=0;d<b.clickList.length;d++)if(c=b.clickList[d],a==c){b.clickList.splice(d,1);break}b.clickList.unshift(a)},this.setOverCards=function(){for(var a=0;a<b.cardArray.length;a++)b.cardArray[a].setOverCards()},this.Undo=function(){var c=b.stateArray.pop();if(a.SN.ClickSound(),null!=c){var d=SoundManager.SN.mute;SoundManager.SN.mute=!0;for(var f,g=0;g<b.cardArray.length;g++)b.cardArray[g].flipped=c.cardFlipArray[g],b.cardArray[g].visible=c.cardVisibleArray[g];for(;b.displayList.length>0;)b.displayList.pop();for(g=0;g<c.displayList.length;g++)b.displayList.push(c.displayList[g]);for(g=0;g<b.cardArray.length;g++)f=b.cardArray[g],f.cardStack=null;b.discardPile.clearStack();for(var g=0;g<c.discardStackArray.length;g++)b.discardPile.addCard(c.discardStackArray[g]);for(b.pickColumn.clearStack(),g=0;g<c.cardStackArray.length;g++)0!=c.cardStackArray[g].visible&&b.pickColumn.cardArray.push(c.cardStackArray[g]);for(;b.deck.undealtCards.length>0;)b.deck.undealtCards.pop();for(g=0;g<c.undealtCards.length;g++)c.undealtCards[g].visible=!1,b.deck.undealtCards.push(c.undealtCards[g]);for(g=0;g<c.enabledArray.length;g++)b.cardArray[g].clickEnabled=c.enabledArray[g];SoundManager.SN.mute=d,b.pickColumn.setEnabled(),b.setOverCards(),b.clearSelected()}},this.SaveState=function(){b.stateArray.push(new State(b._score,b.cardArray,b.discardPile,b.deck.undealtCards,b.displayList,b.pickColumn))},this.AddSecond=function(){},this.FlipSound=function(){null!=SoundManager.SN&&SoundManager.SN.play("Flip")},this.ClickSound=function(){null!=SoundManager.SN&&SoundManager.SN.play("Click")},this.ShuffleSound=function(){null!=SoundManager.SN&&SoundManager.SN.play("Shuffle")},this.FoundationSound=function(){null!=SoundManager.SN&&SoundManager.SN.play("Foundation")},this.ScoreSound=function(){null!=SoundManager.SN&&SoundManager.SN.play("Score")},this.PlaySound=function(a){null!=SoundManager.SN&&SoundManager.SN.play(a)},this.TutorialClick=function(){},this.NewGame=function(){b._loadingNewGame=!0,setTimeout(function(){location.reload()},500),b.ShuffleSound()},this.GetScore=function(){return 0},this.HowToPlay=function(){window.open("http://www.isolitairegames.com")},this.ClickLogo=function(){},null==a.SN?(a.SN=this,console.log("Pyramid Solitaire, copyright 2016 BattlelineGames LLC")):delete this,this.timeTxt=new TextField,this.displayList.push(this.timeTxt),this.bestTimeTxt=new TextField,this.displayList.push(this.bestTimeTxt),this.scoreTxt=new TextField,this.scoreTxt.text="Score 0",this.displayList.push(this.scoreTxt),this.soundAndVolume=new SoundAndVolume,this.addChild(this.soundAndVolume),this.displayList.push(this.soundAndVolume),this.newGameBtn=new Button("NewGameButton.png",this.NewGame,"DownNewGameButton.png","OverNewGameButton.png"),this.addChild(this.newGameBtn),this.displayList.push(this.newGameBtn),this.undoBtn=new Button("UndoButton.png",this.Undo,"DownUndoButton.png","OverUndoButton.png"),this.addChild(this.undoBtn),this.displayList.push(this.undoBtn),this.logoBtn=new Button("Logo.png",this.ClickLogo,"DownLogo.png","OverLogo.png"),this.addChild(this.logoBtn),this.displayList.push(this.logoBtn),this.fullScreenBtn=new Button("FullScreenButton.png",this.FullScreenCallback,"DownFullScreenButton.png","OverFullScreenButton.png"),this.addChild(this.fullScreenBtn),this.displayList.push(this.fullScreenBtn),null==localStorage.getItem("bestScore")?this._bestScore=0:this._bestScore=Number(localStorage.getItem("bestScore")),null==localStorage.getItem("bestTime")?(this._bestTime=a.BEST_TIME_DEFAULT,localStorage.setItem("bestTime",this._bestTime.toString())):this._bestTime=Number(localStorage.getItem("bestTime")),this._bestScore<21?this.bestTimeTxt.text="Best Score: "+this._bestScore:this.bestTimeTxt.text="Best Time: "+a.FORMAT_TIME(this._bestTime),this.deck=new Deck,this.addChild(this.deck),this.displayList.push(this.deck),this.discardPile=new DiscardPile,this.displayList.push(this.discardPile),this.addChild(this.discardPile),this.pickColumn=new CardStack,this.displayList.push(this.pickColumn),this.addChild(this.pickColumn);this._tweenManager=new TweenManager,this._winScreen=new WinScreen,document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mousedown",this._onMouseDown),document.addEventListener("mouseup",this._onMouseUp),document.addEventListener&&(document.addEventListener("webkitfullscreenchange",this.fullScreenChange,!1),document.addEventListener("mozfullscreenchange",this.fullScreenChange,!1),document.addEventListener("fullscreenchange",this.fullScreenChange,!1),document.addEventListener("MSFullscreenChange",this.fullScreenChange,!1)),this.gameLoop()}return a.CARD_VALUE=function(a){return a%13},a.GET_SUIT=function(a){return a<14?SUIT.CLUB:a<27?SUIT.DIAMOND:a<4
10?SUIT.HEART:SUIT.SPADE},a.FORMAT_TIME=function(a){var b=Math.floor(a),c=Math.floor(b/60);b%=60;var d=b.toString();b<10&&(d="0"+d);var e=Math.floor(c/60);c%=60;var f=c.toString();return c<10&&(f="0"+f),e.toString()+":"+f+":"+d},a.SN=null,a.VDIST=25,a.DELTA_TIME=0,a.BEST_TIME_DEFAULT=9999999999,a}(),atlas,atlas_element=new Image,atlas_image="/themes-92916/SmallSolitaire.png",atlas_json="/themes-92916/SmallSolitaire.json",layout="/layouts-92916/PyramidSmallLayout.json",ANCHOR;!function(a){a[a.TOP_LEFT=0]="TOP_LEFT",a[a.TOP=1]="TOP",a[a.TOP_RIGHT=2]="TOP_RIGHT",a[a.LEFT=3]="LEFT",a[a.CENTER=4]="CENTER",a[a.RIGHT=5]="RIGHT",a[a.BOTTOM_LEFT=6]="BOTTOM_LEFT",a[a.BOTTOM=7]="BOTTOM",a[a.BOTTOM_RIGHT=8]="BOTTOM_RIGHT"}(ANCHOR||(ANCHOR={}));var H_ALIGN;!function(a){a[a.LEFT="left"]="LEFT",a[a.RIGHT="right"]="RIGHT",a[a.CENTER="center"]="CENTER"}(H_ALIGN||(H_ALIGN={}));var V_ALIGN;!function(a){a[a.TOP="top"]="TOP",a[a.MIDDLE="middle"]="MIDDLE",a[a.BOTTOM="bottom"]="BOTTOM"}(V_ALIGN||(V_ALIGN={}));var SUIT;!function(a){a[a.CLUB=0]="CLUB",a[a.DIAMOND=1]="DIAMOND",a[a.HEART=2]="HEART",a[a.SPADE=3]="SPADE"}(SUIT||(SUIT={}));var COLOR;!function(a){a[a.BLACK=0]="BLACK",a[a.RED=1]="RED"}(COLOR||(COLOR={}));var BACKGROUND;!function(a){a[a.BEGIN=0]="BEGIN",a[a.CENTER=1]="CENTER",a[a.END=2]="END",a[a.REPEAT=3]="REPEAT"}(BACKGROUND||(BACKGROUND={}));var Button=function(){function a(a,b,c,d){var e=this;void 0===c&&(c=null),void 0===d&&(d=null),this.clickEnabled=!0,this.frame=null,this.frameOver=null,this.frameDown=null,this.image=null,this.x=0,this.y=0,this.width=1,this.height=1,this.visible=!0,this.anchorX=0,this.anchorY=0,this.mouseOver=!1,this.mouseDown=!1,this.setImage=function(a){e.image=a,e.width=e.image.width,e.height=e.image.height},this.draw=function(){1==e.mouseDown&&null!=e.frameDown?TextureAtlas.SN.drawFrame(e.frameDown,e.x,e.y,e.anchorX,e.anchorY):1==e.mouseOver&&null!=e.frameOver?TextureAtlas.SN.drawFrame(e.frameOver,e.x,e.y,e.anchorX,e.anchorY):null!=e.frame?TextureAtlas.SN.drawFrame(e.frame,e.x,e.y,e.anchorX,e.anchorY):null!=e.image&&(ctx.save(),ctx.translate(e.x,e.y),ctx.drawImage(e.image,0,0,e.image.width,e.image.height),ctx.restore())},this.onMouseDown=function(a,b){if(0==e.visible)return!1;var c=e.x-e.anchorX,d=e.y-e.anchorY;return a>c&&a<c+e.width&&b>d&&b<d+e.height&&(e.mouseDown=!0,!0)},this.onMouseUp=function(a,b){if(0==e.visible||0==e.mouseDown)return e.mouseDown=!1,!1;var c=e.x-e.anchorX,d=e.y-e.anchorY;return e.mouseDown=!1,a>c&&a<c+e.width&&b>d&&b<d+e.height&&(e._clickCallback(),!0)},this.onMouseOver=function(a,b){if(0==e.visible)return!1;canvas.style.cursor="pointer";var c=e.x-e.anchorX,d=e.y-e.anchorY;return a>c&&a<c+e.width&&b>d&&b<d+e.height?(e.mouseOver=!0,!0):(e.mouseOver=!1,!1)},this.isDragging=!1,this.onDragging=function(a,b){},this.loadLayout=function(a){e.x=a.x,e.y=a.y,e.visible=a.visible},this.frame=a,null!=a&&(this.width=TextureAtlas.SN.frames[this.frame].w,this.height=TextureAtlas.SN.frames[this.frame].h),this._clickCallback=b,this.frameOver=d,this.frameDown=c,this.anchorX=this.width/2,this.anchorY=this.height/2}return a}(),CardStack=function(){function a(b){var c=this;void 0===b&&(b=null),this.clickEnabled=!1,this.mouseOver=!1,this.cardArray=new Array,this.frame="CardPile.png",this.x=0,this.y=0,this.width=1,this.height=1,this.visible=!0,this.anchorX=0,this.anchorY=0,this.move=function(a,b){},this.draw=function(){null!=c.frame&&TextureAtlas.SN.drawFrame(c.frame,c.x-c.anchorX,c.y-c.anchorY)},this.onMouseDown=function(a,b){return!1},this.onMouseUp=function(a,b){return!1},this.isDragging=!1,this.onDragging=function(a,b){},this.onMouseOver=function(a,b){return!1},this.getTopCard=function(){return c.cardArray[c.cardArray.length-1]},this.setEnabled=function(){for(var a=0;a<c.cardArray.length;a++)c.cardArray[a].clickEnabled=!1;c.cardArray.length>0&&(c.cardArray[c.cardArray.length-1].clickEnabled=!0)},this.clearStack=function(){for(;c.cardArray.length>0;)c.cardArray.pop()},this.removeCards=function(a){for(var b=0;b<a;b++)c.cardArray.length>0&&c.cardArray.pop()},this.removeCard=function(a){for(var b=-1,d=0;d<c.cardArray.length;d++)if(a==c.cardArray[d]){b=d;break}b!=-1&&c.cardArray.splice(b,1)},this.addCard=function(b){if(null!=b){var d=b.cardStack,e=1;if(b.cardStack=c,b.x=c.x,b.y=c.y+c.cardArray.length*Pyramid.VDIST,null!=d)var f=d.dropCard(b);if(b.visible=!0,b.stackPos=c.cardArray.length,Pyramid.SN.addChild(b),c.cardArray.push(b),d instanceof a)return d.removeCards(1),void d.flipTopCard();var g;if(null!=f){for(var h=0;h<f.length;h++)g=f[h],g!=b&&(g.x=c.x,g.y=c.y+c.cardArray.length*Pyramid.VDIST,g.stackPos=c.cardArray.length,g.cardStack=c,c.cardArray.push(g),e++,Pyramid.SN.addChild(g));d.removeCards(1),d.flipTopCard()}}},this.dropCard=function(a){var d=c.getAboveCards(a.stackPos);return d},this.getAboveCards=function(a){return c.cardArray.slice(a)},this.loadLayout=function(a){c.x=a.x,c.y=a.y,c.anchorX=a.anchorX,c.anchorY=a.anchorY;for(var b,d=0;d<c.cardArray.length;d++)b=c.cardArray[d],b.x=c.x,b.y=c.y+d*Pyramid.VDIST;c.visible=a.visible},this.flipTopCard=function(){var a=c.getTopCard();null!=a&&0==a.flipped&&(a.flipped=!0)},this.clean=function(){for(var a,b=0;b<c.cardArray.length;b++)a=c.cardArray[b],0==a.visible&&c.cardArray.splice(b,1)},null!=b&&(this.frame=b,this.anchorX=TextureAtlas.SN.frames[this.frame].w/2,this.anchorY=TextureAtlas.SN.frames[this.frame].h/2,this.width=50,this.height=50)}return a}(),Card=function(){function a(b){var c=this;this.isSelected=!1,this.clickEnabled=!0,this.flipped=!1,this.x=0,this.y=0,this.width=1,this.height=1,this.visible=!0,this.anchorX=0,this.anchorY=0,this.suit=SUIT.CLUB,this.dealt=!1,this.cardStack=null,this.stackPos=0,this.cardNumber=0,this.mouseOver=!1,this._dragOffsetX=0,this._dragOffsetY=0,this.isDragging=!1,this._addStack=null,this._overCards=new Array,this.setOverCards=function(){for(var a;c._overCards.length>0;)c._overCards.pop();for(var b=0;b<Pyramid.SN.cardArray.length;b++)a=Pyramid.SN.cardArray[b],a==c||a.y<c.y||0==a.visible||Math.abs(c.x-a.x)>60||Math.abs(c.y-a.y)>60||c._overCards.push(a);for(c.clickEnabled=!0,b=0;b<c._overCards.length;b++)if(1==c._overCards[b].visible){c.clickEnabled=!1;break}},this.getColor=function(){return c.suit==SUIT.CLUB||c.suit==SUIT.SPADE?COLOR.BLACK:COLOR.RED},this.getFrameName=function(){return a.PREFIX+a.NUMBER_TO_STRING(c.cardNumber)+".png"},this.draw=function(){TextureAtlas.SN.drawFrame(a.PREFIX+a.NUMBER_TO_STRING(c.cardNumber)+".png",c.x,c.y,c.anchorX,c.anchorY),c.isSelected?TextureAtlas.SN.drawFrame(c._mouseOverFrame,c.x,c.y,c.anchorX,c.anchorY):0==c.clickEnabled&&TextureAtlas.SN.drawFrame(c._disabledFrame,c.x,c.y,c.anchorX,c.anchorY)}
1,this.onMouseDown=function(a,b){c.x-c.anchorX,c.y-c.anchorY;return a>c.x-c.width/2&&a<c.x+c.width/2&&b>c.y-c.height/2&&b<c.y+c.height/2&&1==c.clickEnabled&&1==c.visible&&(1==Pyramid.SN.CheckSet(c)&&(Pyramid.SN.setOverCards(),Pyramid.SN.FlipSound(),Pyramid.SN.WinCheck()),Pyramid.SN.pickColumn.clean(),Pyramid.SN.pickColumn.setEnabled(),!0)},this.onMouseUp=function(a,b){return!1},this.onMouseOver=function(a,b){c.mouseOver=!1;var d=c.x-c.anchorX,e=c.y-c.anchorY;return a>d&&a<d+c.width&&b>e&&b<e+c.height&&(c.mouseOver=!0,canvas.style.cursor="pointer",!0)},this.setCardNumber=function(a){c.cardNumber=a,a--,0==Math.floor(a/13)?c.suit=SUIT.CLUB:1==Math.floor(a/13)?c.suit=SUIT.DIAMOND:2==Math.floor(a/13)?c.suit=SUIT.HEART:c.suit=SUIT.SPADE},this.getCardValue=function(){return(c.cardNumber-1)%13},this.loadLayout=function(a){c.x=a.x,c.y=a.y},this.cardNumber=b,this.width=TextureAtlas.SN.frames[this.getFrameName()].w,this.height=TextureAtlas.SN.frames[this.getFrameName()].h,this.anchorX=this.width/2,this.anchorY=this.height/2,this._mouseOverFrame=a.PREFIX+"Highlight.png",this._disabledFrame=a.PREFIX+"Dim.png",b--,0==Math.floor(b/13)?this.suit=SUIT.CLUB:1==Math.floor(b/13)?this.suit=SUIT.DIAMOND:2==Math.floor(b/13)?this.suit=SUIT.HEART:this.suit=SUIT.SPADE}return a.PREFIX="Card",a.BACK="53",a.NUMBER_TO_STRING=function(a){return a<10?"0"+a.toString():a.toString()},a}(),__extends=this&&this.__extends||function(a,b){function d(){this.constructor=a}for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);a.prototype=null===b?Object.create(b):(d.prototype=b.prototype,new d)},DiscardPile=function(a){function b(){var c=this;return a.call(this),this.frame="WastePile.png",this.cardArray=new Array,this.x=0,this.y=0,this.visible=!1,this.anchorX=0,this.anchorY=0,this.draw=function(){TextureAtlas.SN.drawFrame(c.frame,c.x,c.y,c.anchorX,c.anchorY)},this.move=function(a,b){},this.getTopCard=function(){return c.cardArray[c.cardArray.length-1]},this.loadLayout=function(a){c.x=a.x,c.y=a.y,c.visible=a.visible},this.addCard=function(a){null!=a&&(a.cardStack=c,a.x=c.x,a.y=c.y,Pyramid.SN.addChild(a),a.stackPos=c.cardArray.length,c.cardArray.push(a))},null!=b.SN?void delete this:(b.SN=this,this.width=TextureAtlas.SN.frames[this.frame].w,this.height=TextureAtlas.SN.frames[this.frame].h,this.anchorX=TextureAtlas.SN.frames[this.frame].w/2,void(this.anchorY=TextureAtlas.SN.frames[this.frame].h/2))}return __extends(b,a),b.SN=null,b}(CardStack),Deck=function(){function a(){var a=this;this.clickEnabled=!0,this.frame="Card53.png",this.resetFrame="ResetDeck.png",this.mouseOver=!1,this.isDragging=!1,this.undealtCards=new Array,this.x=0,this.y=0,this.anchorX=0,this.anchorY=0,this.width=1,this.height=1,this.visible=!0,this.anchor=ANCHOR.CENTER,this.draw=function(){a.undealtCards.length>0&&(TextureAtlas.SN.drawFrame(a.frame,a.x,a.y,a.anchorX,a.anchorY),a.undealtCards.length>10&&TextureAtlas.SN.drawFrame(a.frame,a.x-5,a.y-5,a.anchorX,a.anchorY),a.undealtCards.length>20&&TextureAtlas.SN.drawFrame(a.frame,a.x-10,a.y-10,a.anchorX,a.anchorY))},this.onMouseDown=function(b,c){var f,d=a.x-a.anchorX,e=a.y-a.anchorY;if(b>d-a.width/2&&b<d+a.width&&c>e-a.height/2&&c<e+a.height){if(Pyramid.SN.clearSelected(),Pyramid.SN.FlipSound(),Pyramid.SN.SaveState(),0==a.undealtCards.length)return!1;for(f=a.undealtCards.pop(),f.visible=!0,f.flipped=!0,f.clickEnabled=!0;DiscardPile.SN.cardArray.length>0;)Pyramid.SN.pickColumn.addCard(DiscardPile.SN.cardArray[0]);return DiscardPile.SN.addCard(f),Pyramid.SN.pickColumn.setEnabled(),!0}return!1},this.onMouseUp=function(a,b){return!1},this.onMouseOver=function(b,c){var d=a.x-a.anchorX,e=a.y-a.anchorY;return b>d&&b<d+a.width&&c>e&&c<e+a.height&&(canvas.style.cursor="pointer",!0)},this.onDragging=function(a,b){},this.loadLayout=function(b){a.x=b.x,a.y=b.y,a.visible=b.visible},this.width=1.1*TextureAtlas.SN.frames[this.frame].w,this.height=TextureAtlas.SN.frames[this.frame].h,this.anchorX=TextureAtlas.SN.frames[this.frame].w/2,this.anchorY=TextureAtlas.SN.frames[this.frame].h/2}return a}(),Frame=function(){function a(a,b,c,d,e,f,g){var h=this;void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=0),this.color="blue",this.set=function(a,b){h.x=a,h.y=b},this.x=b,this.y=c,this.w=d,this.h=e,this.ox=f,this.oy=g,this.name=a;var i=(this.x%256).toString(16);1==i.length&&(i="0"+i);var j=(this.y%256).toString(16);1==j.length&&(j="0"+j);var k=(this.w%256).toString(16);1==k.length&&(k="0"+k),this.color="#"+i+j+k}return a}(),LayoutManager=function(){function a(){var b=this;this.loadLayout=function(a){var c=new XMLHttpRequest;c.onreadystatechange=function(){c.readyState===XMLHttpRequest.DONE&&200===c.status?b._onRead(JSON.parse(c.responseText)):b._onError(c)},c.open("GET",a,!0),c.send()},this._onRead=function(a){canvas.width=a.width,canvas.height=a.height,SoundAndVolume.SN.x=a.soundx,SoundAndVolume.SN.y=a.soundy,Pyramid.SN.background=a.background,Pyramid.SN.backgroundColor=a.backgroundColor,"begin"==a.backgroundX?Pyramid.SN.backgroundX=BACKGROUND.BEGIN:"end"==a.backgroundX?Pyramid.SN.backgroundX=BACKGROUND.END:"repeat"==a.backgroundX&&(Pyramid.SN.backgroundX=BACKGROUND.REPEAT),"begin"==a.backgroundY?Pyramid.SN.backgroundY=BACKGROUND.BEGIN:"end"==a.backgroundY?Pyramid.SN.backgroundY=BACKGROUND.END:"repeat"==a.backgroundY&&(Pyramid.SN.backgroundY=BACKGROUND.REPEAT);for(var b,c=0;c<a.rectangles.length;c++){var d=a.rectangles[c];b=new Rectangle(d.x,d.y,d.w,d.h,d.color),Pyramid.SN.rectangleArray.push(b)}var e,f;for(c=1;c<=28;c++)f="card"+Card.NUMBER_TO_STRING(c),e=new Card(c),e.loadLayout(a.objects[f]),Pyramid.SN.addChild(e),Pyramid.SN.addClickable(e),e.visible=!0,e.flipped=!0,Pyramid.SN.cardArray.push(e);for(Pyramid.SN.deck.undealtCards=new Array,c=29;c<=52;c++)e=new Card(c),e.clickEnabled=!0,Pyramid.SN.cardArray.push(e),Pyramid.SN.deck.undealtCards.push(e);Pyramid.SN.backgroundW=TextureAtlas.SN.frames[Pyramid.SN.background].w,Pyramid.SN.backgroundH=TextureAtlas.SN.frames[Pyramid.SN.background].h,Pyramid.SN.timeTxt.loadLayout(a.labels.TimeTxt),Pyramid.SN.bestTimeTxt.loadLayout(a.labels.BestTimeTxt),Pyramid.SN.scoreTxt.loadLayout(a.labels.ScoreTxt),Pyramid.SN.newGameBtn.loadLayout(a.objects.newGameBtn),Pyramid.SN.undoBtn.loadLayout(a.objects.undoBtn),Pyramid.SN.logoBtn.loadLayout(a.objects.logoBtn),Pyramid.SN.deck.loadLayout(a.objects.deck),Pyramid.SN.discardPile.loadLayout(a.objects.discardPile),Pyramid.SN.pickColumn.loadLayout(a.objects.pickColumn),Pyramid.SN.fullScreenBtn.loadLayout(a.objects.fullScreenBtn);Pyramid.SN.shuffle(),Pyramid.SN.setOverCards()},this._onError=function(a){console.log("loading layout...")},null==a.SN?a.SN=this:delete this}return a.SN=null,a}(),Rectangle=function(){function a(a,b,c,d,e){this.x=0,this.y=0,this.width=0,this.height=0,this.x=a,this.y=b,this.width=c,this.height=d,this.color=e}return a}(),SoundAndVolume=function(){function a(){var b=this;return this._soundFrame="Sound.png",this._volumeFrame="Volume.png",this._soundNoFrame="SoundNo.png",this._mouseDown=!1,this.clickEnabled=!0,this.x=0,this.y=0,this.width=1,this.height=1,this.isDragging=!1,this._soundX=0,this._soundY=0,this._soundNoX=0,this._soundNoY=0,this._volumeX=0,this._volumeY=0,this._soundWidth=0,this._soundHeight=0,this._volumeWidth=0,this._volumeHeight=0,this.visible=!0,this.onMouseDown=function(a,c){return a>b.x&&a<b.x+b.width&&c>b.y&&c<b.y+b.height&&(SoundManager.SN.volume=(a-b.x+b._soundWidth)/(b.width+b._soundWidth),SoundManager.SN.volume>1&&(SoundManager.SN.volume=1),SoundManager.SN.volume<0&&(SoundManager.SN.volume=0),localStorage.setItem("volume",SoundManager.SN.volume.toString()),b._mouseDown=!0,!0)},this.onMouseUp=function(a,c){return b._mouseDown=!1,a>b.x+b._soundX&&a<b.x+b._soundX+b._soundWidth&&c>b.y&&c<b.y+b.height&&(SoundManager.SN.mute=!SoundManager.SN.mute,SoundManager.SN.mute&&localStorage.setItem("volume","0"),!0)},this.onMouseOver=function(a,c){return 1==b._mouseDown&&(SoundManager.SN.volume=(a-b.x+b._soundWidth)/(b.width+b._soundWidth),SoundManager.SN.volume>1&&(SoundManager.SN.volume=1),SoundManager.SN.volume<0&&(SoundManager.SN.volume=0),localStorage.setItem("volume",SoundManager.SN.volume.toString()),canvas.style.cursor="pointer"),a>b.x-b._soundWidth&&a<b.x+b._soundX+b._soundWidth+b._volumeWidth&&c>
1b.y&&c<b.y+b.height&&(canvas.style.cursor="pointer"),!1},this.onDragging=function(a,b){},this.draw=function(){null!=SoundManager.SN&&1==SoundManager.SN.mute?TextureAtlas.SN.drawFrame(b._soundNoFrame,b.x+b._soundNoX,b.y+b._soundNoY):null!=SoundManager.SN&&(TextureAtlas.SN.drawFrame(b._soundFrame,b.x+b._soundX,b.y+b._soundY),TextureAtlas.SN.drawPartial(b._volumeFrame,b.x+b._volumeX,b.y+b._volumeY,0,0,SoundManager.SN.volume,1)),ctx.stroke()},null!=a.SN?void delete this:(a.SN=this,this._soundWidth=TextureAtlas.SN.frames[this._soundFrame].w,this._soundHeight=TextureAtlas.SN.frames[this._soundFrame].h,this._volumeWidth=TextureAtlas.SN.frames[this._volumeFrame].w,this._volumeHeight=TextureAtlas.SN.frames[this._volumeFrame].h,this.width=this._soundWidth+this._volumeWidth,this.height=this._volumeHeight>this._soundHeight?this._volumeHeight:this._soundHeight,this._soundX=this._soundWidth/2-this.width/2,this._soundY=this.height/2-this._soundHeight/2,this._soundNoX=this._soundX+this._soundWidth/2-TextureAtlas.SN.frames[this._soundNoFrame].w/2,this._soundNoY=this._soundY+this._soundHeight/2-TextureAtlas.SN.frames[this._soundNoFrame].h/2,this._volumeX=this._soundX+this._soundWidth,void(this._volumeY=this.height/2-this._volumeHeight/2))}return a}(),SoundFile=function(){function a(){var a=this;this.isPlaying=!1,this.loadComplete=!1,this.loadFile=function(b){void 0!=a.context&&(a.xhr=new XMLHttpRequest,a.xhr.open("GET",b,!0),a.xhr.responseType="arraybuffer",a.xhr.onload=a.onLoadComplete,a.xhr.send())},this.onLoadComplete=function(b){a.xhr=b.currentTarget,a.context.decodeAudioData(a.xhr.response,a.decodeData),a.gain=a.context.createGain()},this.decodeData=function(b){a.buffer=b,a.loadComplete=!0},this.play=function(b){void 0!=a.context&&0!=a.loadComplete&&(a.source=a.context.createBufferSource(),a.gain.connect(a.context.destination),a.source.connect(a.gain),a.gain.gain.value=SoundManager.SN.volume*b.volume-1,a.source.buffer=a.buffer,a.source.connect(a.context.destination), 2a.source.start(a.context.currentTime,b.start,b.duration))};try{this.context=new AudioContext}catch(a){console.log("no audio")}}return a}(),SoundMarker=function(){function a(a,b,c,d,e){this.name="",this.start=0,this.duration=0,this.volume=1,this.loop=!1,this.name=a,this.start=b,this.duration=c,this.volume=d,this.loop=e}return a}(),SoundManager=function(){function a(){var b=this;return this.soundFile="audio/Solitaire",this.mute=!1,this.volume=1,this.soundsLoaded=!1,this.soundMarkers={},this._soundFile=new SoundFile,this.mp3Enabled=function(){var a=document.createElement("audio");return!(!a.canPlayType||!a.canPlayType("audio/mpeg;").replace(/no/,""))},this.play=function(a){if(!b.mute){var c=b.soundMarkers[a];null!=c&&void 0!=c&&b._soundFile.play(c)}},this._loadMarkers=function(){b.addMarker(new SoundMarker("Click",0,.145,.8,!1)),b.addMarker(new SoundMarker("Flip",.145,.165,1,!1)),b.addMarker(new SoundMarker("Shuffle",.31,.645,1,!1)),b.addMarker(new SoundMarker("GoodWork",1.05,.738,.6,!1)),b.addMarker(new SoundMarker("Foundation",.95,.1,.1,!1)),b.mp3Enabled()?b._soundFile.loadFile(b.soundFile+".mp3"):b._soundFile.loadFile(b.soundFile+".ogg")},this.addMarker=function(a){b.soundMarkers[a.name]=a},this.removeMarker=function(a){delete b.soundMarkers[a]},null!=a.SN?void delete this:(a.SN=this,void this._loadMarkers())}return a.SN=null,a}(),TextField=function(){function a(a){var b=this;void 0===a&&(a=!0),this.x=0,this.y=0,this.visible=!0,this.fontSize=48,this.font="Arial Black, Verdana",this.text="LABEL",this.color="white",this.hAlign=H_ALIGN.CENTER,this.vAlign=V_ALIGN.MIDDLE,this.draw=function(){ctx.save(),ctx.beginPath(),ctx.textAlign=b.hAlign.toString(),ctx.textBaseline=b.vAlign.toString(),ctx.fillStyle=b.color,ctx.font=b.fontSize+"px "+b.font,ctx.fillText(b.text,b.x,b.y),ctx.restore()},this.getWidth=function(){ctx.save(),ctx.font=b.fontSize+"px "+b.font;var a=ctx.measureText(b.text).width;return ctx.restore(),a},this.loadLayout=function(a){b.x=a.x,b.y=a.y,b.y=a.y,b.fontSize=a.fontSize,b.font=a.font,b.color=a.color,b.hAlign=getHAlign(a.hAlign),b.vAlign=getVAlign(a.vAlign)},a&&Pyramid.SN.addChild(this)}return a}(),TweenManager=function(){function a(){var b=this;this.tweenArray=new Array,this.tweenLoop=function(){requestAnimationFrame(b.tweenLoop);for(var a,c=0;c<b.tweenArray.length;c++)a=b.tweenArray[c],1==a.active&&a.nextFrame()},null==a.SN?a.SN=this:delete this,requestAnimationFrame(this.tweenLoop)}return a.SN=null,a}(),Tween=function(){function a(a,b,c,d,e,f,g){var h=this;void 0===g&&(g=null),this.active=!1,this.yoyoUp=null,this._begin=0,this._finish=0,this.t=0,this.b=0,this.c=0,this.d=0,this.remove=function(){for(var a=0;a<TweenManager.SN.tweenArray.length;a++)if(h==TweenManager.SN.tweenArray[a])return TweenManager.SN.tweenArray.splice(a,1),void delete h},this.fforward=function(){h.t=h.d-Pyramid.DELTA_TIME},this.nextFrame=function(){0!=h.active&&(null==h.yoyoUp||1==h.yoyoUp?(h.t+=Pyramid.DELTA_TIME,h.t>=h.d&&(h.t=h.d,h.active=!1,null!=h.yoyoUp?h.yoyoUp=!1:(Pyramid.SN.disableInput=!1,null!=h._callback&&h._callback()))):(h.prevFrame(),h.t<=0&&(h.yoyoUp=!0)),h._tweenObject[h._property]=h._easeFunc(h.t,h.b,h.c,h.d))},this.prevFrame=function(){h.t-=Pyramid.DELTA_TIME,h.t<0&&(h.t=0),h._tweenObject[h._property]=h._easeFunc(h.t,h.b,h.c,h.d)},this.resume=function(){h.active=!0},this.rewind=function(a){void 0===a&&(a=0),h.t=a},this.start=function(a,b,c){void 0===a&&(a=null),void 0===b&&(b=null),void 0===c&&(c=null),Pyramid.SN.disableInput=!0,null!=b==null&&null==a||(null!=b&&(h._finish=b),null!=a&&(h._begin=a),null!=c&&(h._callback=c),h.c=h._finish-h._begin,h.b=h._begin),h.t=0,h.active=!0,h.yoyoUp=null},this.stop=function(){h.active=!1},this.yoyo=function(){h.start(),h.yoyoUp=!0},this._begin=d,this._finish=e,this.c=e-d,this._easeFunc=c,this.d=f,this._tweenObject=a,this._property=b,this.b=d,this._callback=g,null==TweenManager.SN&&(TweenManager.SN=new TweenManager),TweenManager.SN.tweenArray.push(this)}return a}(),Back=function(){function a(){}return a.easeIn=function(a,b,c,d,e){return void 0===e&&(e=void 0),void 0==e&&(e=1.70158),c*(a/=d)*a*((e+1)*a-e)+b},a.easeInOut=function(a,b,c,d,e){return void 0===e&&(e=void 0),void 0==e&&(e=1.70158),(a/=d/2)<1?c/2*(a*a*(((e*=1.525)+1)*a-e))+b:c/2*((a-=2)*a*(((e*=1.525)+1)*a+e)+2)+b},a.easeOut=function(a,b,c,d,e){return void 0===e&&(e=void 0),void 0==e&&(e=1.70158),c*((a=a/d-1)*a*((e+1)*a+e)+1)+b},a}
2(),Bounce=function(){function a(){}return a.easeIn=function(a,b,c,d){return c-this.easeOut(d-a,0,c,d)+b},a.easeInOut=function(a,b,c,d){return a<d/2?.5*this.easeIn(2*a,0,c,d)+b:.5*this.easeOut(2*a-d,0,c,d)+.5*c+b},a.easeOut=function(a,b,c,d){return(a/=d)<1/2.75?c*(7.5625*a*a)+b:a<2/2.75?c*(7.5625*(a-=1.5/2.75)*a+.75)+b:a<2.5/2.75?c*(7.5625*(a-=2.25/2.75)*a+.9375)+b:c*(7.5625*(a-=2.625/2.75)*a+.984375)+b},a}(),Elastic=function(){function a(){}return a.easeIn=function(a,b,c,d){var e=1.70158,f=0,g=c;if(0==a)return b;if(1==(a/=d))return b+c;if(f||(f=.3*d),g<Math.abs(c)){g=c;var e=f/4}else var e=f/(2*Math.PI)*Math.asin(c/g);return-(g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*(2*Math.PI)/f))+b},a.easeInOut=function(a,b,c,d){var e=1.70158,f=0,g=c;if(0==a)return b;if(2==(a/=d/2))return b+c;if(f||(f=d*(.3*1.5)),g<Math.abs(c)){g=c;var e=f/4}else var e=f/(2*Math.PI)*Math.asin(c/g);return a<1?-.5*(g*Math.pow(2,10*(a-=1))*Math.sin((a*d-e)*(2*Math.PI)/f))+b:g*Math.pow(2,-10*(a-=1))*Math.sin((a*d-e)*(2*Math.PI)/f)*.5+c+b},a.easeOut=function(a,b,c,d){var e=1.70158,f=0,g=c;if(0==a)return b;if(1==(a/=d))return b+c;if(f||(f=.3*d),g<Math.abs(c)){g=c;var e=f/4}else var e=f/(2*Math.PI)*Math.asin(c/g);return g*Math.pow(2,-10*a)*Math.sin((a*d-e)*(2*Math.PI)/f)+c+b},a}(),None=function(){function a(){}return a.easeIn=function(a,b,c,d){return c*(a/d-1)+b},a.easeInOut=function(a,b,c,d){return c*(a/d-1)+b},a.easeOut=function(a,b,c,d){return c*(a/d-1)+b},a}(),Regular=function(){function a(){}return a.easeIn=function(a,b,c,d){return-c*Math.cos(a/d*(Math.PI/2))+c+b},a.easeInOut=function(a,b,c,d){return-c/2*(Math.cos(Math.PI*a/d)-1)+b},a.easeOut=function(a,b,c,d){return c*Math.sin(a/d*(Math.PI/2))+b},a}(),Strong=function(){function a(){}return a.easeIn=function(a,b,c,d){return 0==a?b:c*Math.pow(2,10*(a/d-1))+b},a.easeInOut=function(a,b,c,d){return 0==a?b:a==d?b+c:(a/=d/2)<1?c/2*Math.pow(2,10*(a-1))+b:c/2*(-Math.pow(2,-10*--a)+2)+b},a.easeOut=function(a,b,c,d){return a==d?b+c:c*(-Math.pow(2,-10*a/d)+1)+b},a}(),WinScreen=function(){function a(){var b=this;this.x=0,this.y=0,this.visible=!1,this._victoryFrame="Victory.png",this.displayWidth=0,this.displayHeight=0,this._victoryX=0,this._victoryY=0,this._victoryAnchorX=0,this._victoryAnchorY=0,this._victoryW=0,this._victoryH=0,this._scaleIn=.01,this._alphaIn=.01,this._button1X=0,this._button1Y=0,this._button2X=0,this._button2Y=0,this.draw=function(){ctx.save(),ctx.fillStyle="#000000",ctx.scale(b._scaleIn,b._scaleIn),ctx.globalAlpha=b._alphaIn-.1*b._alphaIn,ctx.fillRect(400*(1-b._alphaIn),0,800,600),ctx.globalAlpha=b._alphaIn,TextureAtlas.SN.drawFrame(b._victoryFrame,b._victoryX,b._victoryY,b._victoryAnchorX,b._victoryAnchorY),b._timeTxt.draw(),b._bestTimeTxt.draw(),1==b._timeoutRun&&(null!=b.adButton1&&b.adButton1.draw(),null!=b.adButton2&&b.adButton2.draw()),ctx.restore()},this._won=!1,this.mouseDown=function(a,c){b.adButton1.onMouseDown(a,c)&&b.clickButton1(),b.adButton2.onMouseDown(a,c)&&b.clickButton2()},this._timeoutRun=!1,this.runWin=function(c,d){if(1!=b._won){b._won=!0;var e=new XMLHttpRequest;e.open("GET","http://www.embedcalculator.com/ad/ads.php",!0),e.onreadystatechange=function(){if(4==e.readyState&&200==e.status){var b=JSON.parse(e.responseText);a.SN.adlink1=b.ad1.adlink,a.SN.adlink2=b.ad2.adlink,this.adimg1=new Image,this.adimg1.onload=function(){var b=this;a.SN.loadImage1(b)},this.adimg1.src=b.ad1.adimg,this.adimg2=new Image,this.adimg2.onload=function(){var b=this;a.SN.loadImage2(b)},this.adimg2.src=b.ad2.adimg}else console.log("status="+e.status)},e.send(),b._timeTxt.text="TIME: "+c,b._bestTimeTxt.text="RECORD: "+d,b.visible=!0,Pyramid.SN.disableInput=!0,b._tweenScale=new Tween(b,"_scaleIn",Strong.easeInOut,.01,1,1),b._tweenScale.start(),b._tweenAlpha=new Tween(b,"_alphaIn",Strong.easeInOut,.01,1,1),b._tweenAlpha.start(),setTimeout(function(){SoundManager.SN.play("GoodWork"),a.SN._timeoutRun=!0,a.SN.adButton1.visible=!0,a.SN.adButton2.visible=!0},900)}},this.loadImage1=function(a){b.adButton1=new Button(null,b.clickButton1),b.adButton1.visible=!1,b.adimg1=a,b.adButton1.setImage(a),b.adButton1.y=b._button1Y,b.adButton1.x=b._button1X,Pyramid.SN.addChild(b.adButton1),Pyramid.SN.displayList.push(b.adButton1)},this.loadImage2=function(a){b.adButton2=new Button(null,b.clickButton2),b.adButton2.visible=!1,b.adimg2=a,b.adButton2.setImage(a),b.adButton2.y=b._button2Y,b.adButton2.x=b._button2X,Pyramid.SN.addChild(b.adButton2),Pyramid.SN.displayList.push(b.adButton2)},this.clickButton1=function(){null!=b.adlink1&&window.open(b.adlink1)},this.clickButton2=function(){null!=b.adlink2&&window.open(b.adlink2)},this._timeTxt=new TextField(!1),this._timeTxt.text="Time",this._timeTxt.x=canvas.width/2,this._timeTxt.fontSize=24,this._bestTimeTxt=new TextField(!1),this._bestTimeTxt.text="Best Time",this._bestTimeTxt.x=canvas.width/2,this._bestTimeTxt.fontSize=24,this._victoryW=TextureAtlas.SN.frames[this._victoryFrame].w,this._victoryH=TextureAtlas.SN.frames[this._victoryFrame].h,this._victoryAnchorX=this._victoryW/2,this._victoryAnchorY=this._victoryH/2,this._victoryX=400,this._victoryY=200,this._button1X=.2*canvas.width-70,this._button1Y=400,this._button2X=.8*canvas.width-70,this._button2Y=400,this._timeTxt.y=this._victoryY+.7*this._victoryH,this._bestTimeTxt.y=this._victoryY+.9*this._victoryH,this._timeTxt.visible=!0,this._bestTimeTxt.visible=!0,a.SN=this}return a.SN=null,a}(),State=function(){function a(a,b,c,d,e,f){this.score=0,this.discardStackArray=new Array,this.undealtCards=new Array,this.displayList=new Array,this.cardFlipArray=new Array,this.cardVisibleArray=new Array,this.cardStackArray=new Array,this.enabledArray=new Array,this.score=a;for(var j=0;j<b.length;j++)this.enabledArray.push(b[j].clickEnabled);for(var j=0;j<b.length;j++)this.cardFlipArray.push(b[j].flipped),this.cardVisibleArray.push(b[j].visible);for(j=0;j<f.cardArray.length;j++)this.cardStackArray.push(f.cardArray[j]);for(j=0;j<e.length;j++)this.displayList.push(e[j]);for(j=0;j<d.length;j++)this.undealtCards.push(d[j]);for(j=0;j<c.cardArray.length;j++)this.discardStackArray.push(c.cardArray[j])}return a}();loadGame();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.