var stage;var magic_green;var magic_smoke;var magician;var background;var image_magic_green;var image_magic_smoke;var image_magician;var image_background;var problem_container;var problem_display;var answer_container;var answer_display;var answer_message_container;var answer_message;var selection_container;var selection=new Array;var selection_shape=new Array;var selection_display=new Array;var selection_total=5;var correct_display;var number_one;var number_two;var answer;var choices;var correct_choice;var correct;var correct_total=0;var incorrect_total=0;var problem_container_start_x=1500;var problem_container_start_y=150;var answer_container_start_x=390;var answer_container_start_y=1000;var answer_message_container_start_x=0;var answer_message_container_start_y=100;var selection_container_start_x=-1000;var selection_container_start_y=550;var inital_sound=false;var sound_initial;var sound_slide;var sound_success;var sound_failure;function init(){document.getElementById('game_container').style.display="inline";document.getElementById('loading_div').style.display="none";sound_initial=new Howl({src:['/shared/sound/sound_initial.mp3','/shared/sound_initial.ogg','/shared/sound/sound_initial.wav']});sound_slide=new Howl({src:['/page/'+page+'/sound/sound_slide.mp3','/page/'+page+'/sound/sound_slide.ogg','/page/'+page+'/sound/sound_slide.wav']});sound_success=new Howl({src:['/page/'+page+'/sound/sound_success.mp3','/page/'+page+'/sound/sound_success.ogg','/page/'+page+'/sound/sound_success.wav']});sound_failure=new Howl({src:['/page/'+page+'/sound/sound_failure.mp3','/page/'+page+'/sound/sound_failure.ogg','/page/'+page+'/sound/sound_failure.wav']});image_magician=document.getElementById('magician');image_magic_green=document.getElementById('magic_green');image_magic_smoke=document.getElementById('magic_smoke');image_background=document.getElementById('background');stage=new createjs.Stage("canvasStage");if(createjs.Touch.isSupported()){createjs.Touch.enable(this.stage);}
background=new createjs.Bitmap(image_background);background.x=-70;background.y=-110;background.alpha=.2;background.scaleX=1.4;background.scaleY=1.4;stage.addChild(background);correct_display=new createjs.Text("","20px Roboto","#111");correct_display.x=390;correct_display.y=720;correct_display.textBaseline="middle";correct_display.textAlign="center";correct_display.text="Correct: "+correct_total+"  Incorrect: "+incorrect_total;stage.addChild(correct_display);selection_container=new createjs.Container();selection_container.x=selection_container_start_x;selection_container.y=selection_container_start_y;stage.addChild(selection_container);var selection_message=new createjs.Text("","30px Roboto","#111");selection_message.y=-80;selection_message.textBaseline="middle";selection_message.textAlign="center";selection_message.text="Select from the choices below.";for(var i=1;i<=selection_total;i++){selection[i]=new createjs.Container();selection[i].x=-300+(i-1)*150;selection[i].id=i;stage.addChild(selection[i]);selection_shape[i]=new createjs.Shape(new createjs.Graphics().beginFill("#FFFFFF").beginStroke("#000000").setStrokeStyle(6).drawRoundRect(-60,-25,120,120,20));selection_display[i]=new createjs.Text("","70px Roboto","#111");selection_display[i].textBaseline="middle";selection_display[i].textAlign="center";selection_display[i].y=42;selection[i].addChild(selection_shape[i],selection_display[i]);selection_container.addChild(selection_message,selection[i]);selection[i].on("click",function(event){if(!inital_sound){inital_sound=true;sound_initial.play();}
var id=this.id;if(id==correct_choice){correct=true;}
problem_display.text=answer+" \xF7 "+choices[id]+" = "+number_one;sound_slide.play();createjs.Tween.get(selection_container,{loop:false}).to({x:1500},500,createjs.Ease.getPowInOut(4)).call(show_answer);});}
problem_container=new createjs.Container();problem_container.x=problem_container_start_x;problem_container.y=problem_container_start_y;stage.addChild(problem_container);var question_display=new createjs.Text("","30px Roboto","#111");question_display.y=-40;question_display.textBaseline="middle";question_display.textAlign="center";question_display.text="What is the missing number?";problem_display=new createjs.Text("","140px Roboto","#111");problem_display.textBaseline="middle";problem_display.textAlign="center";problem_display.y=55;problem_container.addChild(problem_display,question_display);var data={images:[image_magic_smoke],frames:[[0,0,324,710,0,101,-80],[344,0,324,710,0,101,-80],[688,0,324,710,0,101,-80],[0,730,324,710,0,101,-80],[344,730,324,710,0,101,-80],[688,730,324,710,0,101,-80],[0,1460,324,710,0,101,-80],[344,1460,324,710,0,101,-80],[688,1460,324,710,0,101,-80],[0,2190,324,710,0,101,-80],[344,2190,324,710,0,101,-80],[688,2190,324,710,0,101,-80],[0,2920,324,710,0,101,-80],[344,2920,324,710,0,101,-80]],framerate:32,animations:{magic:[0,15,false],}}
magic_smoke=new createjs.Sprite(new createjs.SpriteSheet(data));magic_smoke.x=-50;magic_smoke.y=-250;magic_smoke.scaleX=.7;magic_smoke.scaleY=.7;magic_smoke.visible=false;var data={images:[image_magic_green],frames:[[0,0,0,0,0,0,0],[20,0,354,544,0,176,200],[394,0,354,544,0,176,200],[768,0,354,544,0,176,200],[1142,0,354,544,0,176,200],[1516,0,354,544,0,176,200],[0,564,354,544,0,176,200],[374,564,354,544,0,176,200],[748,564,354,544,0,176,200],[1122,564,354,544,0,176,200],[1496,564,354,544,0,176,200],[0,1128,354,544,0,176,200],[374,1128,354,544,0,176,200]],framerate:12,animations:{magic:[0,13,false],}}
magic_green=new createjs.Sprite(new createjs.SpriteSheet(data));magic_green.x=0;magic_green.y=20;answer_container=new createjs.Container();answer_container.x=answer_container_start_x;answer_container.y=answer_container_start_y;stage.addChild(answer_container);answer_display=new createjs.Text("","140px Roboto","#FFF");answer_display.textBaseline="middle";answer_display.textAlign="center";answer_display.y=110;var shape1=new createjs.Shape(new createjs.Graphics().beginFill("#000000").drawRoundRect(-350,0,700,200,20));answer_message_container=new createjs.Container();answer_message_container.x=answer_message_container_start_x;answer_message_container.y=answer_message_container_start_y;answer_message=new createjs.Text("","24px Roboto","#FFF");answer_message.textBaseline="middle";answer_message.textAlign="center";answer_message.y=-15;var shape2=new createjs.Shape(new createjs.Graphics().beginFill("#000000").drawRoundRect(-150,-50,300,100,20));answer_message_container.addChild(shape2,answer_message);answer_container.addChild(shape1,answer_message_container,answer_display,magic_green,magic_smoke);var data={images:[image_magician],frames:[[0,0,32,31,0,-45.150000000000006,-88.69999999999999],[52,0,81,80,0,-15.150000000000006,-63.69999999999999],[153,0,146,154,0,20.849999999999994,-10.699999999999989],[319,0,187,246,0,38.849999999999994,66.30000000000001],[526,0,209,303,0,51.849999999999994,115.30000000000001],[755,0,201,326,0,55.849999999999994,134.3],[976,0,217,318,0,58.849999999999994,127.30000000000001],[1213,0,193,306,0,56.849999999999994,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1529,0,83,235,0,-20.150000000000006,112.30000000000001],[1632,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1426,0,83,235,0,-20.150000000000006,112.30000000000001],[1529,0,83,235,0,-20.150000000000006,112.30000000000001],[1735,0,83,235,0,-20.150000000000006,112.30000000000001],[1838,0,97,235,0,-6.150000000000006,112.30000000000001],[0,346,110,235,0,6.849999999999994,112.30000000000001],[130,346,113,235,0,9.849999999999994,112.30000000000001],[130,346,113,235,0,9.849999999999994,112.30000000000001],[130,346,113,235,0,9.849999999999994,112.30000000000001],[263,346,113,235,0,9.849999999999994,112.30000000000001],[396,346,113,235,0,9.849999999999994,112.30000000000001],[529,346,113,235,0,9.849999999999994,112.30000000000001],[662,346,132,235,0,28.849999999999994,112.30000000000001],[814,346,162,235,0,58.849999999999994,112.30000000000001],[996,346,199,235,0,95.85,112.30000000000001],[1215,346,217,235,0,113.85,112.30000000000001],[1452,346,230,235,0,126.85,112.30000000000001],[1702,346,234,238,0,130.85,115.30000000000001],[0,604,237,242,0,133.85,119.30000000000001],[257,604,235,235,0,131.85,112.30000000000001],[529,346,113,235,0,9.849999999999994,112.30000000000001],[529,346,113,235,0,9.849999999999994,112.30000000000001],[512,604,149,235,0,45.849999999999994,112.30000000000001],[681,604,179,251,0,75.85,112.30000000000001],[880,604,244,272,0,112.85,112.30000000000001],[1144,604,281,302,0,130.85,127.30000000000001],[1445,604,307,326,0,143.85,143.3],[0,950,315,349,0,147.85,162.3],[335,950,321,353,0,150.85,167.3],[676,950,317,316,0,148.85,127.30000000000001],[1013,950,109,105,0,-7.150000000000006,-10.699999999999989],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137],[1142,950,0,0,0,0.8499999999999943,0.30000000000001137]],framerate:12,animations:{appear:[0,7,"idle"],answer:[14,37,"to_idle"],disappear:[38,48,false],to_idle:{frames:[27,26,25,24,23,22,21,20,19],next:"idle"},idle:{frames:[8,9,10,11,12,13]}}}
magician=new createjs.Sprite(new createjs.SpriteSheet(data));magician.x=650;magician.y=375;stage.addChild(magician);createjs.Ticker.setFPS(60);createjs.Ticker.timingMode=createjs.Ticker.RAF;createjs.Ticker.on("tick",handleTick);create_problem();}
function create_problem(){correct=false;number_one=generateRandom(1,9);number_two=generateRandom(1,9);if(number_two>number_one){var holder=number_one;number_one=number_two;number_two=holder;}
answer=number_one*number_two;var list=[1,2,3,4,5,6,7,8,9];for(var i=0;i<list.length;i++){if(list[i]==number_two){list.splice(i,1);}}
choices=new Array;var ran;for(var i=1;i<=selection_total;i++){ran=generateRandom(1,list.length)-1;choices[i]=list[ran];list.splice(ran,1);}
correct_choice=generateRandom(1,selection_total);choices[correct_choice]=number_two;for(var i=1;i<=selection_total;i++){selection_display[i].text=choices[i];}
magician.gotoAndPlay("appear");problem_display.text=answer+" \xF7 ? = "+number_one;answer_display.text=answer+" \xF7 "+number_two+" = "+number_one;problem_container.x=problem_container_start_x;problem_container.alpha=1;answer_message.alpha=0;answer_container.y=answer_container_start_y;answer_message_container.y=answer_message_container_start_y;selection_container.x=selection_container_start_x;sound_slide.play();createjs.Tween.get(problem_container,{loop:false}).to({x:390},1000,createjs.Ease.getPowInOut(4));createjs.Tween.get(selection_container,{loop:false}).to({x:390},1000,createjs.Ease.getPowInOut(4));}
function show_answer(){magician.gotoAndPlay("answer");sound_slide.play();createjs.Tween.get(answer_container,{loop:false}).to({y:450},1000,createjs.Ease.getPowInOut(4)).call(play_magic).wait(2000).call(clear_problem);}
function play_magic(){if(correct){sound_success.play();}else{sound_failure.play();}
var ran=generateRandom(1,2);if(correct){correct_total++;answer_message.text="Yes, that is correct."
magic_green.gotoAndPlay("magic");}else{incorrect_total++;answer_message.text="No, that is not correct."
magic_smoke.visible=true;magic_smoke.gotoAndPlay("magic");}
correct_display.text="Correct: "+correct_total+"  Incorrect: "+incorrect_total;sound_slide.play();createjs.Tween.get(answer_message_container,{loop:false}).to({y:0},1000,createjs.Ease.getPowInOut(4))
createjs.Tween.get(answer_message,{loop:false}).to({alpha:1},1000,createjs.Ease.getPowInOut(4))}
function clear_problem(){magician.gotoAndPlay("disappear");sound_slide.play();createjs.Tween.get(answer_container,{loop:false}).to({y:-800},1000,createjs.Ease.getPowInOut(4)).wait(1300).call(create_problem);createjs.Tween.get(problem_container,{loop:false}).to({x:-1500},1000,createjs.Ease.getPowInOut(4));}
function handleTick(event){stage.update(event);}
function generateRandom(low,high){var extra_holder=1+high-low;return Math.floor(Math.random()*extra_holder)+low;}