var obj=new Array(4);
var mousex=0, mousey=0;
var ready_for_a_new_trial="false";
var sentence1="";
var number1,number2,number3,number4;
var mishtaneezer;
var dontshow=false;
var score=0;
var targetnumber;
var tempnumber;

var aySound = new Array();


pic1= new Image(1024,819); pic1.src="./rounding-spaceships_images/Earth.jpg"; 
pic2= new Image(90,37); pic2.src="../themes/space/spaceship1.gif"; 


function init_main(){

	document.onmousedown=handlemousedown;
	document.onmouseup=handlemouseup;
	document.getElementById("div_instructions").style.visibility="hidden";
	document.getElementById("div_imgthumb").style.visibility="hidden";
	document.getElementById("div_linkbacktomenu").style.visibility="hidden";
	document.getElementById("div_linkbacktomathgames").style.visibility="hidden";
	document.body.style.background="url('"+pic1.src+"') black top left no-repeat fixed "

	for ( var i=1; i<5; i++) {
		obj[i]=new obj_prototype();	
	}

	obj[1].y=40;	obj[2].y=140;	obj[3].y=240;	obj[4].y=340;

	init_this_task_variables();

	assign_divs_and_images_to_objects();	

	run_main_animation();

}

function init_this_task_variables(){


	for (var i4=1;i4<=4 ;i4++ )
	{	document.getElementById("div_spaceship"+i4).style.visibility="visible";
	}
	document.getElementById("div_targetnumber").style.visibility="visible";
	document.getElementById("div_btnrun").style.visibility="hidden";
	document.getElementById("div_exittomenu").style.visibility="visible";
	document.getElementById("div_score1").style.visibility="visible";

	set_numbers_to_spaceships();
}

         
function set_numbers_to_spaceships(){

	var repeatthis=true;
	var rand1,rand2,rand3,rand4;

	while (repeatthis==true) {

		rand1=Math.floor(Math.random()*10);
		rand2=Math.floor(Math.random()*10);
		rand3=Math.floor(Math.random()*10);
		rand4=Math.floor(Math.random()*8)+1;
		repeatthis=false;
	}

	targetnumber=rand1*1000+rand2*100+rand3*10+rand4;
	document.getElementById("txbx_score1").value=score;
	temprand=Math.floor(Math.random()*4);	

	if (temprand==0){

		if (rand4>=5)		{number1=rand1*1000+rand2*100+(rand3+1)*10		}  else {number1=rand1*1000+rand2*100+(rand3*10) }
		if (rand4<5)		{number2=rand1*1000+rand2*100+(rand3+1)*10		}  else {number2=rand1*1000+rand2*100+(rand3*10) }
		if (rand3>=5)		{number3=rand1*1000+(rand2+1)*100		}  else {number3=rand1*1000+rand2*100 }
		if (rand3<5)		{number4=rand1*1000+(rand2+1)*100		}  else {number4=rand1*1000+rand2*100 }

		if (number1==number2||number1==number3||number1==number4||number2==number3||number2==number4||number3==number4)		{ temprand=1}
	}

	if (temprand==1){

		if (rand4>=5)		{number1=rand1*1000+rand2*100+(rand3+1)*10		}  else {number1=rand1*1000+rand2*100+(rand3*10) }
		if (rand4<5)		{number2=rand1*1000+rand2*100+(rand3+1)*10		}  else {number2=rand1*1000+rand2*100+(rand3*10) }
		if (rand3>=5)		{number3=rand1*1000+(rand2+1)*100+rand4		}  else {number3=rand1*1000+rand2*100+rand4 }
		if (rand3<5)		{number4=rand1*1000+(rand2+1)*100+rand4		}  else {number4=rand1*1000+rand2*100+rand4 }

		if (number1==number2||number1==number3||number1==number4||number2==number3||number2==number4||number3==number4)		{ temprand=2}
	}

	if (temprand==2){

		if (rand4>=5)		{number1=rand1*1000+rand2*100+(rand3+1)*10		}  else {number1=rand1*1000+rand2*100+(rand3*10) }
		if (rand4<5)		{number2=rand1*1000+rand2*100+(rand3+1)*10		}  else {number2=rand1*1000+rand2*100+(rand3*10) }
		if (rand4>=5)		{number3=rand1*1000+rand2*100+100+(rand3+1)*10		}  else {number3=rand1*1000+rand2*100-100+(rand3*10) }
		if (rand4<5)		{number4=rand1*1000+rand2*100+100+(rand3+1)*10		}  else {number4=rand1*1000+rand2*100-100+(rand3*10) }

		if (number1==number2||number1==number3||number1==number4||number2==number3||number2==number4||number3==number4)		{ temprand=3}
	}

	if (temprand==3){

		if (rand4>=5)		{number1=rand1*1000+rand2*100+(rand3+1)*10		}  else {number1=rand1*1000+rand2*100+(rand3*10) }
		if (rand4<5)		{number2=rand1*1000+rand2*100+(rand3+1)*10		}  else {number2=rand1*1000+rand2*100+(rand3*10) }
		if (rand4>=5)		{number3=rand1*1000+rand2*100+(rand3+2)*10		}  else {number3=rand1*1000+rand2*100+((rand3-1)*10) }
		if (rand4<5)		{number4=rand1*1000+rand2*100+(rand3+2)*10		}  else {number4=rand1*1000+rand2*100+((rand3-1)*10) }

	}

for (var i3=0;i3<=30 ;i3++ ){	
	temprand=Math.floor(Math.random()*4);	
		if (temprand==0)		{tempnumber=obj[1].y;	obj[1].y=obj[2].y;	obj[2].y=tempnumber;}
		if (temprand==1)		{tempnumber=obj[2].y;	obj[2].y=obj[3].y;	obj[3].y=tempnumber;}
		if (temprand==2)		{tempnumber=obj[3].y;	obj[3].y=obj[4].y;	obj[4].y=tempnumber;}
		if (temprand==3)		{tempnumber=obj[4].y;	obj[4].y=obj[1].y;	obj[1].y=tempnumber;}
}

	obj[1].istarget=true;
	obj[2].istarget=false;
	obj[3].istarget=false;
	obj[4].istarget=false;


	document.getElementById("txbx_number1").value=number1;
	document.getElementById("txbx_number2").value=number2;
	document.getElementById("txbx_number3").value=number3;
	document.getElementById("txbx_number4").value=number4;

	sentence1=" Round this number to the nearest ten: "+targetnumber;
	document.getElementById("txbx_targetnumber").value=sentence1;	
}

function assign_divs_and_images_to_objects(){ 

		for (var i=1;i<=4 ;i++ )
		{

			document.getElementById("div_spaceship"+i).style.left=obj[i].x;
			document.getElementById("div_spaceship"+i).style.top=obj[i].y;
			document.getElementById("img_spaceship"+i).style.width=obj[i].sizex;
			document.getElementById("img_spaceship"+i).style.height=obj[i].sizey;
			document.getElementById("div_number"+i).style.left=obj[i].x+obj[i].xnumber;
			document.getElementById("div_number"+i).style.top=obj[i].y+obj[i].ynumber;
		}
}

function set_locations_to_spaceships(){

	for (var i1=1; i1<5; i1++){
		obj[i1].x=Math.floor(Math.random()*400+350);
		obj[i1].animationstage=0;
		obj[i1].timer1=100;

	}
}

function obj_prototype(){

	this.x=Math.floor(Math.random()*400+350);
	this.y=Math.floor(Math.random()*400+10);
	this.xnumber=14;
	this.ynumber=32;
	this.movex=1;
	this.movey=0;
	this.istarget=false;
	this.animationstage=0;
	this.timer1=100;
	this.moveacceleration=0;
	this.sizex=90;
	this.sizey=37;

}


function run_main_animation(){

	for (var i=1; i<5; i++){

		if (obj[i].animationstage==0){

			if (dontshow==false) document.getElementById("div_number"+i).style.visibility="visible";

			if (obj[i].timer1>0) {
				
				obj[i].timer1=obj[i].timer1-0.5;
				mishtaneezer=100-obj[i].timer1;
				document.getElementById("div_spaceship"+i).style.filter = 'alpha(opacity=' + mishtaneezer + ')';
				document.getElementById("div_number"+i).style.filter = 'alpha(opacity=' + mishtaneezer + ')';

				if (obj[i].timer1<95) dontshow=false;  //this is to show the spaceships and numbers in their new locations only after set their opacity to transparent.

			} else {
				obj[i].timer1=0;
				obj[i].animationstage=1;
				}

		}


		if (obj[i].animationstage==1){

			obj[i].x=obj[i].x+obj[i].movex;
		
			if (obj[i].x>=900||obj[i].x<=40) obj[i].movex=obj[i].movex*(-1);

			temprand=Math.floor(Math.random()*60);
			if (temprand==1) {obj[i].movex=obj[i].movex+0.3}
			if (temprand==2) {obj[i].movex=obj[i].movex-0.3}
			
			if (obj[i].movex>1.5) obj[i].movex=1.5;
			if (obj[i].movex<-1.5) obj[i].movex=-1.5;

			temprand=Math.floor(Math.random()*20);
			if (Math.random()*20>19) {obj[i].y=obj[i].y-1} 
			else {if (Math.random()*20>19) {obj[i].y=obj[i].y+1} }
		}

		if (obj[i].animationstage==2){
			obj[i].movey=-2.5;
			obj[i].moveacceleration=0.05;

		for (var i4=1;i4<=4 ;i4++ )
		{	document.getElementById("div_number"+i4).style.visibility="hidden";
		}

			obj[i].animationstage=21;
			
			document.getElementById("div_spaceship"+i).style.zIndex="0";
		}

		if (obj[i].animationstage==21){    			//animating the spacship landing
			obj[i].moveacceleration=obj[i].moveacceleration*1.01;
			obj[i].movey=obj[i].movey+obj[i].moveacceleration;
			obj[i].y=obj[i].y+obj[i].movey/1.5;
			obj[i].sizex=obj[i].sizex+obj[i].movey/1.5; // if (obj[i].sizex<20) obj[i].sizex=20;
			obj[i].sizey=obj[i].sizey+obj[i].movey/4; //if (obj[i].sizey<10) obj[i].sizey=10;


			if (obj[i].movey>20) {				//bringing everything back to normal, and starting new values and locations

				score=score+1; 
				document.getElementById("txbx_score1").value=score;

				for (i2=1; i2<5; i2++){
					dontshow=true;
					obj[1].y=40;	obj[2].y=140;	obj[3].y=240;	obj[4].y=340;
					set_numbers_to_spaceships();					
					set_locations_to_spaceships();

					obj[i2].animationstage=0;
					obj[i2].movey=0;
					obj[i2].moveacceleration=0;

					obj[i2].sizex=90;
					obj[i2].sizey=37;

				}

				if (score%20==0){
					for (i2=1; i2<5; i2++){
						obj[i2].animationstage=3;
					}

				document.getElementById("div_btncontinue").style.visibility="visible";	
				document.getElementById("div_btnrestart").style.visibility="visible";	
				document.getElementById("div_btnbacktomenu").style.visibility="visible";	
				document.getElementById("div_exittomenu").style.visibility="hidden";	

				document.getElementById("div_targetnumber").style.visibility="hidden";	

				sentence1="Great job! You sent "+score+" spaceships successfully on their way!";
				document.getElementById("txbx_sentence1").value=sentence1;	
				document.getElementById("div_sentence1").style.visibility="visible";	

				}
			}
		}

		if (obj[i].animationstage==3){
			for (var i4=1; i4<=4 ;i4++ )
			{
				document.getElementById("div_spaceship"+i4).style.visibility="hidden";
				document.getElementById("div_number"+i4).style.visibility="hidden";
			}

		}

	}

	if (dontshow==false) assign_divs_and_images_to_objects();

	setTimeout('run_main_animation()',1);
}


function continuegame(){

	for (var i2=1; i2<5; i2++){
		obj[i2].animationstage=0;
		document.getElementById("div_spaceship"+i2).style.visibility="visible";
	}
	
	document.getElementById("div_targetnumber").style.visibility="visible";

	document.getElementById("div_btncontinue").style.visibility="hidden";	
	document.getElementById("div_btnrestart").style.visibility="hidden";	
	document.getElementById("div_btnbacktomenu").style.visibility="hidden";
	document.getElementById("div_exittomenu").style.visibility="visible";	
	document.getElementById("div_sentence1").style.visibility="hidden";

	dontshow=true;
}




function handlemousedown(evt) {

	var e = (window.event) ? window.event : evt; 

	if (e.pageX)  {  				//firefox

		mousex=e.pageX; //event.clientX;
		mousey=e.pageY; //event.clientY;
	} else {  					//IE
		mousex=event.clientX;
		mousey=event.clientY;
	}

	for (var i=1; i<5; i++){
		if (checkforcontact(i)=="true") {            
			if (obj[i].istarget==true) {
				obj[i].animationstage=2;
				obj[i].timer1=100;
				playSound(0);
			}
			else {
				 playSound(1);
			}
		}
	}

	return false;
}

function handlemouseup(evt) {

	ready_for_a_new_trial="true";
	return false;
}


function checkforcontact(i){

var rtemp="false";

		var x1=obj[i].x; var x2=obj[i].x+90;
		var y1=obj[i].y; var y2=obj[i].y+70;

		var x3=mousex; 	var x4=mousex+2;
		var y3=mousey; 	var y4=mousey+2;
	
		if(x3>x1&&x3<x2&&y3>y1&&y3<y2) rtemp="true";
		if(x4>x1&&x4<x2&&y3>y1&&y3<y2) rtemp="true";
		if(x3>x1&&x3<x2&&y4>y1&&y4<y2) rtemp="true";
		if(x4>x1&&x4<x2&&y4>y1&&y4<y2) rtemp="true";
		
		if(x2>x3&&x2<x4&&y2>y3&&y2<y4) rtemp="true";
		if(x1>x3&&x1<x4&&y2>y3&&y2<y4) rtemp="true";
		if(x2>x3&&x2<x4&&y1>y3&&y1<y4) rtemp="true";
		if(x1>x3&&x1<x4&&y1>y3&&y1<y4) rtemp="true";	
	
	return rtemp;
}	


					// Sound Script


						var aySound = new Array();
						// Below: source for sound files to be preloaded
						aySound[0] = "../sounds/DingLing.wav";
						aySound[1] = "../sounds/Buzz01.wav";

						// DO NOT edit below this line
						document.write('<BGSOUND ID="auIEContainer">')
						IE = (navigator.appVersion.indexOf("MSIE")!=-1 && document.all)? 1:0;
						NS = (navigator.appName=="Netscape" && navigator.plugins["LiveAudio"])? 1:0;
						ver4 = IE||NS? 1:0;
						onload=auPreload;

						function auPreload() {
						if (!ver4) return;
						if (NS) auEmb = new Layer(0,window); 	
						else {
						Str = "<DIV ID='auEmb' STYLE='position:absolute;'></DIV>";
						document.body.insertAdjacentHTML("BeforeEnd",Str);
						}
						var Str = '';
						for (i=0;i<aySound.length;i++)
						Str += "<EMBED SRC='"+aySound[i]+"' AUTOSTART='FALSE' HIDDEN='TRUE'>"
						if (IE) auEmb.innerHTML = Str;
						else {
						auEmb.document.open();
						auEmb.document.write(Str);
						auEmb.document.close();
						}
						auCon = IE? document.all.auIEContainer:auEmb;
						auCon.control = auCtrl;
						}
						function auCtrl(whSound,play) {
						if (IE) this.src = play? aySound[whSound]:'';
						else eval("this.document.embeds[whSound]." + (play? "play()":"stop()"))
						}
						function playSound(whSound) { if (window.auCon) auCon.control(whSound,true); }
						function stopSound(whSound) { if (window.auCon) auCon.control(whSound,false); }



