var puz=new Array(10);
var puz0=new Array(10);
var puz1=new Array(10);
var puz2=new Array(10);
var puz3=new Array(10);
var puz4=new Array(10);
var puz5=new Array(10);
var puz6=new Array(10);
var puz7=new Array(10);
var puz8=new Array(10);
var puz9=new Array(10);
var puzs=new Array(10);
var puzx=new Array(10);
var advert=new Array(4);
/*
if(document.domain == "members.chello.nl")
 window.close();
else*/
init();

function init(){
 var easypuz = new Array(5);
	easypuz[0] = Math.floor(Math.random()*ep.length);
	do{
	 easypuz[1] = Math.floor(Math.random()*ep.length);
	} while(easypuz[1] == easypuz[0]);
	do{
	 easypuz[2] = Math.floor(Math.random()*ep.length);
	} while(easypuz[2] == easypuz[0] || easypuz[2] == easypuz[1]);
	do{
	 easypuz[3] = Math.floor(Math.random()*ep.length);
	} while(easypuz[3] == easypuz[0] || easypuz[3] == easypuz[1] || easypuz[3] == easypuz[2]);
	do{
	 easypuz[4] = Math.floor(Math.random()*ep.length);
	} while(easypuz[4] == easypuz[0] || easypuz[4] == easypuz[1] || easypuz[4] == easypuz[2] || easypuz[4] == easypuz[3]);
	
	var medpuz = new Array(3);
	medpuz[0] = Math.floor(Math.random()*mp.length);
	do{
	 medpuz[1] = Math.floor(Math.random()*mp.length);
	} while(medpuz[1] == medpuz[0]);
	do{
	 medpuz[2] = Math.floor(Math.random()*mp.length);
	} while(medpuz[2] == medpuz[0] || medpuz[2] == medpuz[1]);
	
	var harpuz = new Array(2);
	harpuz[0] = Math.floor(Math.random()*hp.length);
	do{
	 harpuz[1] = Math.floor(Math.random()*hp.length);
	} while(harpuz[1] == harpuz[0]);
	
	var ads = new Array(4);
	do{
	 ads[0] = Math.floor(Math.random()*ad.length);
	} while(ad[ads[0]] == undefined);
	
	do{
	 ads[1] = Math.floor(Math.random()*ad.length);
	} while(ads[1] == ads[0] || ad[ads[1]] == undefined);
	
	do{
	 ads[2] = Math.floor(Math.random()*ad.length);
	} while(ads[2] == ads[0] || ads[2] == ads[1] || ad[ads[2]] == undefined);
	
	do{
	 ads[3] = Math.floor(Math.random()*ad.length);
	} while(ads[3] == ads[0] || ads[3] == ads[1] || ads[3] == ads[2] || ad[ads[3]] == undefined);
	
	makepuz(easypuz, medpuz, harpuz, ads);	
}

function makepuz(easypuz, medpuz, harpuz, ads){
 for(i=0;i<5;i++){
	 puz[i] = ep[easypuz[i]];
		puz0[i] = ep0[easypuz[i]];
		puz1[i] = ep1[easypuz[i]];
		
		if(ep2[easypuz[i]] != undefined)
 		puz2[i] = ep2[easypuz[i]];
		if(ep3[easypuz[i]] != undefined)
	 	puz3[i] = ep3[easypuz[i]];
		if(ep4[easypuz[i]] != undefined)
	 	puz4[i] = ep4[easypuz[i]];
		if(ep5[easypuz[i]] != undefined)
 		puz5[i] = ep5[easypuz[i]];
		if(ep6[easypuz[i]] != undefined)
	  puz6[i] = ep6[easypuz[i]];
		if(ep7[easypuz[i]] != undefined)
	  puz7[i] = ep7[easypuz[i]];
		if(ep8[easypuz[i]] != undefined)
	  puz8[i] = ep8[easypuz[i]];
		if(ep9[easypuz[i]] != undefined)
	  puz9[i] = ep9[easypuz[i]];
				
		puzs[i] = eps[easypuz[i]];
		puzx[i] = epx[easypuz[i]];
	}
	
	for(i=5;i<8;i++){
	 puz[i] = mp[medpuz[i-5]];
		puz0[i] = mp0[medpuz[i-5]];
		puz1[i] = mp1[medpuz[i-5]];
		
		if(mp2[medpuz[i-5]] != undefined)
		 puz2[i] = mp2[medpuz[i-5]];
		if(mp3[medpuz[i-5]] != undefined)
		 puz3[i] = mp3[medpuz[i-5]];
		if(mp4[medpuz[i-5]] != undefined)
		 puz4[i] = mp4[medpuz[i-5]];
		if(mp5[medpuz[i-5]] != undefined)
		 puz5[i] = mp5[medpuz[i-5]];
		if(mp6[medpuz[i-5]] != undefined)
		 puz6[i] = mp6[medpuz[i-5]];
		if(mp7[medpuz[i-5]] != undefined)
		 puz7[i] = mp7[medpuz[i-5]];
		if(mp8[medpuz[i-5]] != undefined)
		 puz8[i] = mp8[medpuz[i-5]];
		if(mp9[medpuz[i-5]] != undefined)
		 puz9[i] = mp9[medpuz[i-5]];
				
		puzs[i] = mps[medpuz[i-5]];
		puzx[i] = mpx[medpuz[i-5]];		
	}
	
	for(i=8;i<10;i++){
	 puz[i] = hp[harpuz[i-8]];
		puz0[i] = hp0[harpuz[i-8]];
		puz1[i] = hp1[harpuz[i-8]];

		if(hp2[harpuz[i-8]] != undefined)
		 puz2[i] = hp2[harpuz[i-8]];
		if(hp3[harpuz[i-8]] != undefined)
		 puz3[i] = hp3[harpuz[i-8]];
		if(hp4[harpuz[i-8]] != undefined)
		 puz4[i] = hp4[harpuz[i-8]];
		if(hp5[harpuz[i-8]] != undefined)
		 puz5[i] = hp5[harpuz[i-8]];
		if(hp6[harpuz[i-8]] != undefined)
		 puz6[i] = hp6[harpuz[i-8]];
		if(hp7[harpuz[i-8]] != undefined)
		 puz7[i] = hp7[harpuz[i-8]];
		if(hp8[harpuz[i-8]] != undefined)
		 puz8[i] = hp8[harpuz[i-8]];
		if(hp9[harpuz[i-8]] != undefined)
		 puz9[i] = hp9[harpuz[i-8]];

		puzs[i] = hps[harpuz[i-8]];
		puzx[i] = hpx[harpuz[i-8]];	
	}
	
	for(i=0;i<4;i++)
  advert[i] = ad[ads[i]];
	writeTest();
}

function score(f){
 var givenAnswers = new Array(10);
 var nrRight = 0;
	var puzWrong = new Array();

 for(j=1;j<11;j++)
	 for(i=0;i<eval("f.p" + j + ".length");i++)
		 if(eval("f.p" + j + "[i].checked"))
			 givenAnswers[j-1] = eval("f.p" + j + "[i].value");
	
	for(i=0;i<givenAnswers.length;i++)
	 if(givenAnswers[i] == puzs[i])
		 nrRight++;
		else
		 puzWrong[puzWrong.length] = i+1;
	
 showResult(nrRight,puzWrong);
}

function showResult(nrRight,puzWrong){
 var resultPage = window.open();//"answers.html?" + query
	resultPage.document.write("<html><head><title>Results of the 10 Puzzle IQ Test</title></head><body marginwidth=\"3\" marginheigth=\"0\" topmargin=\"0\" leftmargin=\"3\">");

 resultPage.document.write('<table cellspacing="0" cellpadding="0"><tr valign="top"><td>');

 resultPage.document.write("<div align=\"center\"><h1>Results of the 10 Puzzle IQ Test</h1></div>");
	
	resultPage.document.write(advert[2] + "<br><br>");
	resultPage.document.write("<a href=\"http://www.puzz.com/webmasters.html" + "\" target=\"_blank\">Click here to add our IQ test to your web page or pages.</a>");
 resultPage.document.write("<br><br>");
	
	resultPage.document.write("<h2>Your score</h2>");
	resultPage.document.write("<p><strong>Number of puzzles solved: </strong>" + nrRight + "/" + puz.length + "</p>");
	resultPage.document.write("<p><strong>Puzzles you had wrong: </strong>" + puzWrong + "</p>");
	
	resultPage.document.write("<p><strong>Estimated IQ: </strong>" + iq(nrRight) + "</p>");
	resultPage.document.write("<p><strong>Estimated Percentile Ranking for the General U.S. Population: </strong>" + cent(nrRight) + "</p>");
 resultPage.document.write("<p><strong>According to your score, you are </strong>" + title(nrRight) + "</p>");
 resultPage.document.write("<p>Your IQ and percentile were estimated based upon the following table:</p>");

resultPage.document.write("<div align=\"center\"><table border=\"1\"><tr><th>Number Correct</th><th>IQ</th><th>Percentile</th><th>Title</th></tr>");
resultPage.document.write("<tr><td>0-1</td><td>0-90</td><td>0-25</td><td>Below Average</td></tr>");
resultPage.document.write("<tr><td>2-3</td><td>90-110</td><td>25-75</td><td>Average</td></tr>");
resultPage.document.write("<tr><td>4-5</td><td>110-130</td><td>75-98</td><td>Above Average</td></tr>");
resultPage.document.write("<tr><td>6</td><td>130-138</td><td>98-99</td><td>Gifted</td></tr>");
resultPage.document.write("<tr><td>7-8</td><td>138-150</td><td>99-99.9</td><td>Highly Gifted</td></tr>");
resultPage.document.write("<tr><td>9-10</td><td>150+</td><td>99.9+</td><td>GENIUS</td></tr></table></div>");

resultPage.document.write("<br><br>" + advert[3] + "<br><br>");
	
	resultPage.document.write("<h2>Answers and explanations</h2>");
	
	for(i=0;i<10;i++){
	 resultPage.document.write("<h3>Puzzle " + (i+1) + "</h3>");
	 resultPage.document.write(puzx[i]);
	}
	
	resultPage.document.write("<p><b><a href=\".\">Back to Main Page</a> - <a href=\"javascript:window.close()\">Close this window</a></b></p>");

 resultPage.document.write("</td><td>");

 resultPage.document.write("</td></tr></table></body></html>");
 resultPage.document.close();
}

function writeTest(){
	document.write("<h1 align=\"center\">10 Puzzle IQ Test (Randomly Generated)</h1>");
	
	document.write(advert[0]);
	document.write("<br><br>");
	document.write("<form name=\"ran_puzz\">");
	
	for(i=0;i<5;i++){
		document.write("<h3>Puzzle " + (i+1) + " (Easy)</h3>");
		document.write(puz[i]);
		document.write("<br><br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"0\"> " + puz0[i] + "<br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"1\"> " + puz1[i] + "<br>");
		
		if(puz2[i] != undefined)
	 	document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"2\"> " + puz2[i] + "<br>");
		if(puz3[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"3\"> " + puz3[i] + "<br>");
		if(puz4[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"4\"> " + puz4[i] + "<br>");
		if(puz5[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"5\"> " + puz5[i] + "<br>");
		if(puz6[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"6\"> " + puz6[i] + "<br>");
		if(puz7[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"7\"> " + puz7[i] + "<br>");
		if(puz8[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"8\"> " + puz8[i] + "<br>");
		if(puz9[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"9\"> " + puz9[i]);	
	}
	
	document.write("<br><br>" + advert[1] + "<br><br>");
	
	for(i=5;i<8;i++){
		document.write("<h3>Puzzle " + (i+1) + " (Medium)</h3>");
		document.write(puz[i]);
		document.write("<br><br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"0\"> " + puz0[i] + "<br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"1\"> " + puz1[i] + "<br>");
		
		if(puz2[i] != undefined)
	 	document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"2\"> " + puz2[i] + "<br>");
		if(puz3[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"3\"> " + puz3[i] + "<br>");
		if(puz4[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"4\"> " + puz4[i] + "<br>");
		if(puz5[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"5\"> " + puz5[i] + "<br>");
		if(puz6[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"6\"> " + puz6[i] + "<br>");
		if(puz7[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"7\"> " + puz7[i] + "<br>");
		if(puz8[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"8\"> " + puz8[i] + "<br>");
		if(puz9[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"9\"> " + puz9[i]);
	}
	
	for(i=8;i<10;i++){
		document.write("<h3>Puzzle " + (i+1) + " (Hard)</h3>");
		document.write(puz[i]);
		document.write("<br><br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"0\"> " + puz0[i] + "<br>");
		document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"1\"> " + puz1[i] + "<br>");
		
		if(puz2[i] != undefined)
	 	document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"2\"> " + puz2[i] + "<br>");
		if(puz3[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"3\"> " + puz3[i] + "<br>");
		if(puz4[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"4\"> " + puz4[i] + "<br>");
		if(puz5[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"5\"> " + puz5[i] + "<br>");
		if(puz6[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"6\"> " + puz6[i] + "<br>");
		if(puz7[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"7\"> " + puz7[i] + "<br>");
		if(puz8[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"8\"> " + puz8[i] + "<br>");
		if(puz9[i] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (i+1) + "\" value=\"9\"> " + puz9[i]);
	}
	
	document.write("<br><br><br>");
	document.write("<input type=\"button\" value=\"Ready? Click to score...\" onclick=\"score(document.forms.ran_puzz)\">");
	
	document.write("</form><br><br>");
}
