// DO NOT COMMENT THIS HAS TO LOAD OVER EDGE (NARROWBAND) !	
var timerID = null;
var INT = 90;
var loadFLG = 0;
var gameFLG = 0;
var missFLG = 0;
var tim = 0;
var blcol = new Array(5); 
var blsta = new Array(40); 
var blNO = new Array(40); 
var blclr = 0; 
var ballX = 0; 
var ballY = 0;
var ballN;
var ballDX = 0;
var ballDY = 0;
var tmpRL = 140;
var distance=140;
var level;
var score;

var left=false;
var right=false;
blcol[0] = "#fcf3c9";
blcol[1] = "#fbea9a";
blcol[2] = "#fce26b";
blcol[3] = "#fbd93d";
blcol[4] = "#fad216";
blcol[5] = "transparent";

function onLD(levelToFunction) 
{

	var url = ""+window.location;
	var levelTemp = url.lastIndexOf("L=");
	var levelTemp2 = url.substring((levelTemp + 2), url.length);
	var scoreTemp = url.lastIndexOf("S=");
	var scoreTemp2 = url.substring((scoreTemp + 2), url.length);
	var ballsTemp = url.lastIndexOf("B=");
	var ballsTemp2 = url.substring((ballsTemp + 2), url.length);
		
	if (scoreTemp2.lastIndexOf("&") == -1)
	{
		var scoreIn = scoreTemp2.substring(0, url.length); 
	}
	else
	{
		var scoreIn = scoreTemp2.substring(0, scoreTemp2.indexOf("&")); 
	}
	
	if (ballsTemp2.lastIndexOf("&") == -1)
	{
		var ballsIn = ballsTemp2.substring(0, url.length); 
	}
	else
	{
		var ballsIn = ballsTemp2.substring(0, ballsTemp2.indexOf("&")); 
	}
	
	if (levelTemp2.lastIndexOf("&") == -1)
	{
		var levelIn = levelTemp2.substring(0, url.length); 
	}
	else
	{
		var levelIn = levelTemp2.substring(0, levelTemp2.indexOf("&")); 
	}
		
	if (levelTemp == -1)
	{
		level = levelToFunction;
	}
	else
	{
		level = parseInt(levelIn);
	}
	
	if (ballsTemp == -1)
	{
		ballN = 5;
	}
	else
	{
		ballN = parseInt(ballsIn);
	}
	
	if (scoreTemp == -1)
	{
		score = 0;
	}
	else
	{
		score = parseInt(scoreIn);
	}
	
	document.getElementById("level").value=level;
	document.getElementById("BL").value=ballN;
	document.getElementById("SC").value=score;

	document.getElementById("bg").style.posTop = 0;
	document.getElementById("bg").style.posLeft = 0;
	document.getElementById("ball").style.posTop = 270;
	document.getElementById("ball").style.posLeft = 149;
	document.getElementById("racket").style.posTop = 280;
	document.getElementById("racket").style.posLeft = 140;
	document.getElementById("sideL").style.posTop = 280;
	document.getElementById("sideL").style.posLeft = 0;
	document.getElementById("sideR").style.posTop = 280;
	document.getElementById("sideR").style.posLeft = 280;
	document.getElementById("starter").style.posTop = -1000;
	document.getElementById("starter").style.posLeft = -1000;
	document.getElementById("clrmes").style.posTop = -1000;
	document.getElementById("clrmes").style.posLeft = -1000;
	document.getElementById("ovrmes").style.posTop = -1000;
	document.getElementById("ovrmes").style.posLeft = -1000;
	document.getElementById("bg").style.backgroundImage ='url(images/coolgorilla'+level+'.jpg)';
	for (ib = 0; ib < 5; ib++) 
	{
		for (ia = 0; ia < 8; ia++) 
		{
			blsta[ib * 8 + ia] = ib;
	   }
	}
	
	document.getElementById("starter").style.posTop = 200;
	document.getElementById("starter").style.posLeft = 115;
}

function mainF() 
{
	clearTimeout(timerID);
	
	tim = tim + 1; 
	with (Math)
	{ 
		tmptim = floor(tim / 10)
	}
	
	document.getElementById("TM").value= tmptim;
	
	ballX = ballX + ballDX;
	ballY = ballY + ballDY;
	
	outCHK();
	
	blkCHK();
	
	document.getElementById("ball").style.posTop = ballY;
	document.getElementById("ball").style.posLeft = ballX;
	document.getElementById("racket").style.posLeft = tmpRL;
	
	if (tmpRL < 39) 
	{ 
		tmpRL = 40; 
	}
	
	if (tmpRL > 241) 
	{ 
		tmpRL = 240; 
	}

	if (gameFLG == 01)
	{
		
		timerID = setTimeout("mainF()", INT);
	}
}

function initG() 
{
	
	if (ballN<=0)
	{
		window.location="index.html";
	}
	if (blclr >= 40) 
	{
		blclr = 0;
		tim = 0;
		// ballN = 5; 
		with (Math) 
		{
			tmptim = floor(tim / 10);
		}
		
		document.getElementById("TM").value=tmptim;
		
		document.getElementById("clrmes").style.posTop = -1000;
		document.getElementById("clrmes").style.posLeft = -1000;
		document.getElementById("ovrmes").style.posTop = -1000;
		document.getElementById("ovrmes").style.posLeft = -1000;
		
		for (ib = 0; ib < 5; ib++)
		{ 
			for (ia = 0; ia < 8; ia++) 
			{
				chc(ib * 8 + ia +1, ib);
				blsta[ib * 8 + ia] = ib;
		      }
		}
	}

	document.getElementById("BL").value=ballN;
	
	document.getElementById("starter").style.posTop = -1000;
	document.getElementById("starter").style.posLeft = -1000;
	
	gameFLG = 1;
	loadFLG = 1;
	ballX = 149;
	ballY = 270;
	ballDX =- 8;
	ballDY =- 8;
	tmpRL = 140;
	missFLG = 0;
	
	timerID = setTimeout("mainF()", INT);
}

function MouseMv() 
{
	if (loadFLG == 1) 
	{
		tmpRL = X - 20;
		
		if (tmpRL < 2) 
		{ 
			tmpRL = 2; 
		}
		
		if (tmpRL > 278) 
		{ 
			tmpRL = 278; 
		}
   }
}

function slideLeft()
{
	tmpRL=tmpRL-50;
}

function slideRight()
{
	tmpRL=tmpRL+50;
}

function outCHK() 
{
	if (ballX < 1)
	{ 
		ballX = 2 - ballX; 
		ballDX = -ballDX; 
	}
	
	if (ballX > 315)
	{ 
		ballX = 630 - ballX; 
		ballDX = -ballDX; 
	}
	
	if (ballY < 16)
	{ 
		ballY = 32 - ballY; 
		ballDY = -ballDY; 
	}
	if (ballY >= 274) 
	{
		if (ballX >1 && ballX<40)
		{ 
			ballY = 274; 
			ballDY = -ballDY; 
		}
		
		if (ballX >276 && ballX<315)
		{ 
			ballY = 274; 
			ballDY = -ballDY; 
		}
	}
	if (ballY >= 272) 
	{
	
		if (missFLG == 0) 
		{
		
			tmpX = (ballDX / ballDY) * (272 - ballY) + ballX;
			
			if (tmpX >= tmpRL - 10) 
			{
				if (tmpX <= tmpRL + 40) 
				{
					ballY = 272; ballDY = -ballDY;
					ballX = tmpX;
					ballRD = tmpX - tmpRL;
					
					with (Math)
					{ 
						ballDX = 8 * abs(ballDX) / ballDX; 
					}
					
					if (ballRD < -4)
					{ 
						ballDX = -15; 
					}
					
					if (ballRD > 36)
					{ 
						ballDX = 15; 
					}
					
					if (ballRD >= 14)
					{ 
						if (ballRD <= 16) 
						{ 
							ballDX = -2; 
						} 
					}
					
					if (ballRD >= 17)
					{ 
						if (ballRD <= 20) 
						{ 
							ballDX = 2; 
						} 
					}
					
					if (ballRD >= 0)
					{ 
						if (ballRD <= 4) 
						{ 
							ballDX = -4; 
						} 
					}
					
					if (ballRD >= 28)
					{ 
						if (ballRD <= 32) 
						{ 
							ballDX = 4; 
						} 
					}
					
					if (ballRD >= -4)
					{ 
						if (ballRD <= -1) 
						{ 
							ballDX = -11; 
						} 
					}
					if (ballRD >= 33)
					{ 
						if (ballRD <= 36)
						{ 
							ballDX = 11; 
						} 
					}
				}
			}
			
			if (ballDY > 0){ missFLG = 1; }
		} 
		else 
		{
		
			if (ballY > 290)
			{ 
				missFLG = 0; 
				ballN = ballN - 1; 
				gameEnd(); 
			}
	    }
	}
}

function blkCHK() 
{
	tmpY = ballY + 4;
	tmpX = ballX + 4;
	
	if (tmpY >= 48) 
	{ 
		if (tmpY <= 147) 
		{
			if (tmpX >= 2) 
			{
				if (tmpX <= 315) 
				{
					with (Math) 
					{
						ia = floor((tmpX - 2) / 40);
						ib = floor((tmpY - 48) / 20);
						ic = ib * 8 + ia;
					}
					
					if (blsta[ic] <= 4) 
					{
						if(level==1)
						{ 
							tmpbc=5;
						}
						else if (level==2)
						{
							tmpbc = blsta[ic] + 1;
							
							if(tmpbc<=3)
							{
								tmpbc=4;
							}
						}
						else
						{
							tmpbc = blsta[ic] + 1;
						}
						
						blsta[ic] = tmpbc;
						chc(ic + 1, tmpbc);
						if (tmpbc == 5)
						{ 
							blclr = blclr + 1; 
						}
						if (blclr >= 40)
						{ 
							gameEnd(); 
						}
						
						if (ballDX > 0) 
						{
							iy=(ballDY / ballDX) * (2 + 40 * ia - tmpX) + tmpY;
							if (iy > 48 + 20 * ib + 18) 
							{
								tmpY1 = 48 + 20 * ib + 18;
								tmpX1 = (ballDX / ballDY) * (48 + 20 * ib + 18 - tmpY) + tmpX;
								ballX = tmpX1 - 4;
								ballY = tmpY1 - 4;
								ballDY = -ballDY;
							} 
							else 
							{
								if (iy < 44 + 20 * ib) 
								{
									tmpY1 = 48 + 20 * ib;
									tmpX1 = (ballDX / ballDY) * (48 + 20 * ib - tmpY) + tmpX;
									ballX = tmpX1 - 4;
									ballY = tmpY1 - 4;
									ballDY = -ballDY;
								} 
								else 
								{
									tmpX1 = 2 + 40 * ia;
									tmpY1 = (ballDY / ballDX) * (2 + 40 * ia - tmpX) + tmpY;
									ballX = tmpX1 - 4;
									ballY = tmpY1 - 4;
									ballDX = -ballDX;
								}
							}
						} 
						else 
						{
							iy = (ballDY / ballDX) * (2+40 * ia + 44 - tmpX) + tmpY;
							
							if (iy > 48 + 20 * ib + 18) 
							{
								tmpY1 = 48 + 20 * ib + 18;
								tmpX1 = (ballDX / ballDY) * (48 + 20 * ib + 18 - tmpY) + tmpX;
								ballX = tmpX1 - 4;
								ballY = tmpY1 - 4;
								ballDY = -ballDY;
							} 
							else 
							{
								if (iy < 44 + 20 * ib) 
								{
									tmpY1 = 48 + 20 * ib;
									tmpX1 = (ballDX / ballDY) * (48 + 20 * ib - tmpY) + tmpX;
									ballX = tmpX1 - 4;
									ballY = tmpY1 - 4;
									ballDY = -ballDY;
								} 
								else 
								{
									tmpX1 = 2+40 * ia + 44;
									tmpY1 = (ballDY / ballDX) * (2 + 40 * ia + 44 - tmpX) + tmpY;
									ballX = tmpX1 - 4;
									ballY = tmpY1 - 4;
									ballDX = -ballDX;
								}
							}
						}
					}
				}
			}
	    }
	}
}


function gameEnd() 
{
	document.getElementById("BL").value=ballN;
	
	gameFLG = 0;
	loadFLG = 0;
	distance=140;
	
	document.getElementById("starter").style.posTop  =  200;
	document.getElementById("starter").style.posLeft  =  115;
	
	if (blclr >= 40) 
	{
		
		level=level+1;
		INT=INT-10;
		
		if (level == 3)
		{
			window.location="finished.html";
		}
		else
		{
			window.location="level"+level+".html?L="+level+"&S="+score+"&B="+(ballN+1);
		}
		
		document.getElementById("clrmes").style.posTop = 150;
		document.getElementById("clrmes").style.posLeft = 82;
		document.getElementById("bg").style.backgroundImage ='url(images/coolgorilla'+(level+1)+'.jpg)';
		document.getElementById("sideR").style.posLeft = 280;
		document.getElementById("sideL").style.posLeft = 0;
	}
	
	if (ballN <= 0) 
	{
	
		blclr = 40;
		score = -400;
		level = 1;
		INT = 90;
		
		document.getElementById("ovrmes").style.posTop = 150;
		document.getElementById("ovrmes").style.posLeft = 76;		
		document.getElementById("SC").value=0; 										  
		document.getElementById("bg").style.backgroundImage ='url(images/coolgorilla'+level+'.jpg)';
	}
}

function chc(bno,bcl) 
{
	score= score + 10;
	document.getElementById("SC").value= score;
	tmpbno = "b" + (bno-1);
	document.getElementById(tmpbno).style.backgroundColor = blcol[bcl];
}
