var panel_line;var panel_tile;var button_color=new Array;var button_undo;var button_clear;var button_yes;var button_no;var alert_pop_up;var cell_dimension=60;var rows=10;var columns=10;var tile=new Array;var tile_total=rows*columns;var tile_start_id;var tile_start_x=70;var tile_start_y=20;var button_color_x=720;var button_color_y=240;var color_total=6;var color_dimension=60;var color_data=new Array;var color_index=1;var color_stroke=7;var path_counter=0;var path_list=new Array;var path_new=true;var path_point;var path_display;var panel_puzzle;var puzzle=new Array;var puzzle_name=new Array;var puzzle_start_x=-2000;var puzzle_start_y=80;var puzzle_width=200;var puzzle_min_x=-2920;var puzzle_max_x=2100;var puzzle_scale=.35;var sound_placement;var sound_trash;function init(){canvasInUse=false;document.getElementById('game_container').style.display="inline";document.getElementById('loading_div').style.display="none";setInteractiveParameters();set_data();sound_placement=new Howl({src:['/page/'+page+'/sound/sound_placement.mp3','/page/'+page+'/sound/sound_placement.ogg','/page/'+page+'/sound/sound_placement.wav']});sound_trash=new Howl({src:['/page/'+page+'/sound/sound_trash.mp3','/page/'+page+'/sound/sound_trash.ogg','/page/'+page+'/sound/sound_trash.wav']});panel_line=new MovieClip(document.getElementById('panel').cloneNode(true));stage.appendChild(panel_line.instance);panel_tile=new MovieClip(document.getElementById('panel').cloneNode(true));stage.appendChild(panel_tile.instance);panel_puzzle=new MovieClip(document.getElementById('panel_puzzle').cloneNode(true));panel_puzzle.x=0;panel_puzzle.y=590;panel_puzzle.transform();panel_puzzle.dragRestricted=true;panel_puzzle.dragMinimumX=puzzle_min_x;panel_puzzle.dragMaximumX=puzzle_max_x;panel_puzzle.dragMinimumY=panel_puzzle.y;panel_puzzle.dragMaximumY=panel_puzzle.y;panel_puzzle.dragMoveHandler=function(){}
panel_puzzle.dragStopHandler=function(){}
stage.appendChild(panel_puzzle.instance);dragElement=panel_puzzle;var counter=0;for(var k=1;k<=rows;k++){for(var i=1;i<=columns;i++){counter++;tile[counter]=new MovieClip(document.getElementById('tile').cloneNode(true));tile[counter].x=tile_start_x+cell_dimension*(i-1);tile[counter].y=tile_start_y+cell_dimension*(k-1);tile[counter].transform();tile[counter].instance.setAttribute("data-id",counter);panel_tile.instance.appendChild(tile[counter].instance);}}
path_display=new MovieClip(document.getElementById('path1').cloneNode(true));path_display.instance.setAttribute("stroke",color_data[color_index]);panel_line.instance.appendChild(path_display.instance);for(var i=1;i<=color_total;i++){button_color[i]=new MovieClip(document.getElementById('button_color').cloneNode(true));button_color[i].x=button_color_x;button_color[i].y=button_color_y+color_dimension*(i-1);button_color[i].transform();button_color[i].instance.setAttribute("data-id",i);button_color[i].area=new MovieClip(button_color[i].instance.querySelector(".area"));button_color[i].area.instance.setAttribute("fill",color_data[i]);stage.appendChild(button_color[i].instance);}
button_color[color_index].area.instance.setAttribute("stroke-width",color_stroke);button_undo=new MovieClip(document.getElementById('button_undo').cloneNode(true));button_undo.x=button_color_x;button_undo.y=45;button_undo.transform();stage.appendChild(button_undo.instance);button_clear=new MovieClip(document.getElementById('button_clear').cloneNode(true));button_clear.x=button_color_x;button_clear.y=140;button_clear.transform();stage.appendChild(button_clear.instance);alert_pop_up=new MovieClip(document.getElementById('alert_pop_up').cloneNode(true));alert_pop_up.instance.setAttribute("display","none");stage.appendChild(alert_pop_up.instance);button_yes=new MovieClip(document.getElementById('button_yes').cloneNode(true));button_yes.x=250;button_yes.y=390;button_yes.scale=2;button_yes.transform();alert_pop_up.instance.appendChild(button_yes.instance);button_no=new MovieClip(document.getElementById('button_no').cloneNode(true));button_no.x=520;button_no.y=button_yes.y;button_no.scale=button_yes.scale;button_no.transform();alert_pop_up.instance.appendChild(button_no.instance);for(var i=1;i<puzzle_name.length;i++){puzzle[i]=new MovieClip(document.getElementById(puzzle_name[i]).cloneNode(true));puzzle[i].x=puzzle_start_x+(i-1)*puzzle_width;puzzle[i].y=puzzle_start_y;puzzle[i].scale=puzzle_scale;puzzle[i].transform();panel_puzzle.instance.appendChild(puzzle[i].instance);}
add_pointer_listeners();}
function new_path(event){get_stage_pointer(event);path_point=new Array;path_point.push({x:tile[tile_start_id].x,y:tile[tile_start_id].y});path_counter++;path_list[path_counter]=new MovieClip(document.getElementById('path1').cloneNode(true));path_list[path_counter].instance.setAttribute("stroke",color_data[color_index]);panel_line.instance.appendChild(path_list[path_counter].instance);sound_placement.play();graphPointerAddListeners(event);path_new=false;}
function end_path(event){if(!path_new){get_stage_pointer(event);var min_index=1;var min_dist=getDistance(tile[min_index].x,stagePointer.x,tile[min_index].y,stagePointer.y);var test_dist;for(var i=2;i<=tile_total;i++){test_dist=getDistance(tile[i].x,stagePointer.x,tile[i].y,stagePointer.y);if(test_dist<min_dist){min_dist=test_dist;min_index=i;}}
if(min_index!=tile_start_id){path_point.push({x:tile[min_index].x,y:tile[min_index].y});var path_string="M"+path_point[0].x+" "+path_point[0].y+" ";path_string+="L"+path_point[1].x+" "+path_point[1].y+" ";path_list[path_counter].instance.setAttribute("d",path_string);sound_placement.play();}
path_display.instance.setAttribute("d","");path_new=true;graphPointerRemoveListeners();for(var i=1;i<=tile_total;i++){tile[i].instance.setAttribute("pointer-events","all");}}}
function undo_path(){if(path_counter>0){panel_line.instance.removeChild(path_list[path_counter].instance);path_counter--;}}
function clear_paths(){for(var i=1;i<=path_counter;i++){panel_line.instance.removeChild(path_list[i].instance);}
path_counter=0;path_list=new Array;}
function get_stage_pointer(event){stagePointer.x=event.clientX;stagePointer.y=event.clientY;var m=stage.getScreenCTM();stagePointer=stagePointer.matrixTransform(m.inverse());}
function graphPointerTrack(event){event.preventDefault();if(event.isPrimary){get_stage_pointer(event);var path_string="M"+path_point[0].x+" "+path_point[0].y+" ";path_string+="L"+stagePointer.x+" "+stagePointer.y+" ";path_display.instance.setAttribute("d",path_string);}}
function graphPointerAddListeners(){document.addEventListener("pointermove",graphPointerTrack,false);}
function graphPointerRemoveListeners(){document.removeEventListener("pointermove",graphPointerTrack,false);}
function tile_handler(event){event.preventDefault();if(event.isPrimary){if(path_new){for(var i=1;i<=tile_total;i++){tile[i].instance.setAttribute("pointer-events","none");}
tile_start_id=this.getAttribute("data-id");new_path(event);}}}
function document_handler(event){event.preventDefault();if(event.isPrimary){end_path(event);}}
function undo_handler(event){event.preventDefault();if(event.isPrimary){sound_trash.play();undo_path();}}
function clear_handler(event){event.preventDefault();if(event.isPrimary){stage.appendChild(alert_pop_up.instance);alert_pop_up.instance.setAttribute("display","inline");}}
function no_handler(event){event.preventDefault();if(event.isPrimary){alert_pop_up.instance.setAttribute("display","none");}}
function yes_handler(event){event.preventDefault();if(event.isPrimary){sound_trash.play();clear_paths();path_new=true;alert_pop_up.instance.setAttribute("display","none");}}
function color_handler(event){event.preventDefault();if(event.isPrimary){color_index=this.getAttribute("data-id");path_display.instance.setAttribute("stroke",color_data[color_index]);for(var i=1;i<=color_total;i++){button_color[i].area.instance.setAttribute("stroke-width",5);}
button_color[color_index].area.instance.setAttribute("stroke-width",color_stroke);}}
function panel_puzzle_handler(event){event.preventDefault();if(event.isPrimary){if(event.isPrimary){dragPointerStart(event);}}}
function set_data(){color_data[1]="rgba(244, 67, 54, 1)";color_data[2]="rgba(255, 152, 0, 1)";color_data[3]="rgba(255, 235, 59, 1)";color_data[4]="rgba(76, 175, 80, 1)";color_data[5]="rgba(68, 138, 255, 1)";color_data[6]="rgba(0, 0, 0, 1)";puzzle_name[1]="train";puzzle_name[2]="lobster";puzzle_name[3]="dinosaur";puzzle_name[4]="rocket";puzzle_name[5]="robot";puzzle_name[6]="duck";puzzle_name[7]="deer";puzzle_name[8]="pig";puzzle_name[9]="cardinal";puzzle_name[10]="hand";puzzle_name[11]="bat";puzzle_name[12]="flamingo";puzzle_name[13]="spider";puzzle_name[14]="submarine";puzzle_name[15]="owl";puzzle_name[16]="airplane";puzzle_name[17]="pineapple";puzzle_name[18]="cat";puzzle_name[19]="dog";puzzle_name[20]="elephant";puzzle_name[21]="golden_gate_bridge";puzzle_name[22]="london_bridge";puzzle_name[23]="rabbit";puzzle_name[24]="city";puzzle_name[25]="umbrella";puzzle_name[26]="ufo";puzzle_name[27]="turtle";puzzle_name[28]="pumpkin";puzzle_name[29]="helicopter";}
function add_pointer_listeners(){document.addEventListener("pointerup",document_handler,false);panel_puzzle.instance.addEventListener("pointerdown",panel_puzzle_handler,false);button_undo.instance.addEventListener("pointerdown",undo_handler,false);button_clear.instance.addEventListener("pointerdown",clear_handler,false);button_yes.instance.addEventListener("pointerup",yes_handler);button_no.instance.addEventListener("pointerup",no_handler);for(var i=1;i<=color_total;i++){button_color[i].instance.addEventListener("pointerdown",color_handler,false);}
for(var i=1;i<=tile_total;i++){tile[i].instance.addEventListener("pointerdown",tile_handler,false);}}