var puz = new Array();
var puz0 = new Array();
var puz1 = new Array();
var puz2 = new Array();
var puz3 = new Array();
var puz4 = new Array();
var puz5 = new Array();
var puz6 = new Array();
var puz7 = new Array();
var puz8 = new Array();
var puz9 = new Array();
var puzs = new Array();
var puzx = new Array();
var advert = new Array();

switch(oneRandomPuzzle){
 case "no":
	 init(easy,medium,hard);
		break;
	case "easy":
	 initEasy();
		break;
	case "medium":
	 initMedium();
	 break;
	case "hard":
	 initHard();
		break;
	case "all":
	 initAll();
		break;
	default:
	 init(easy,medium,hard);
		break;
}

function init(easy,medium,hard){
	var ads = new Array();
	ads = set2Ads();	
	makepuz(easy, medium, hard, ads);	
}

function initEasy(){
 var easy = new Array();
	easy[0] = Math.floor(Math.random()*ep.length);
	var ads = new Array();
	ads = set2Ads();
	var medium = new Array();
	var hard = new Array();
	
	makepuz(easy,medium,hard,ads);
}

function initMedium(){
 var medium = new Array();
	medium[0] = Math.floor(Math.random()*mp.length);
	var ads = new Array();
	ads = set2Ads();
	var easy = new Array();
	var hard = new Array();
	
	makepuz(easy,medium,hard,ads);
}

function initHard(){
 var hard = new Array();
	hard[0] = Math.floor(Math.random()*hp.length);
	var ads = new Array();
	ads = set2Ads();
	var easy = new Array();
	var medium = new Array();
	
	makepuz(easy,medium,hard,ads);
}

function initAll(){
 var choice = Math.floor(Math.random()*3);
	
 switch(choice)
	{
	 case 0:
		 initEasy();
			break;
		case 1:
		 initMedium();
			break;
		case 2:
		 initHard();
			break;
	}
}

function set2Ads(){
 var ads = new Array();
	
	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);
	
	return ads;
}

function makepuz(easypuz, medpuz, harpuz, ads){
 if(easypuz.length > 0)
	 for(i=0;i<easypuz.length;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]];
		}
	
	if(medpuz.length > 0)
		for(i=0;i<medpuz.length;i++){
		 puz[i+easypuz.length] = mp[medpuz[i]];
			puz0[i+easypuz.length] = mp0[medpuz[i]];
			puz1[i+easypuz.length] = mp1[medpuz[i]];
			
			if(mp2[medpuz[i]] != undefined)
			 puz2[i+easypuz.length] = mp2[medpuz[i]];
			if(mp3[medpuz[i]] != undefined)
			 puz3[i+easypuz.length] = mp3[medpuz[i]];
			if(mp4[medpuz[i]] != undefined)
			 puz4[i+easypuz.length] = mp4[medpuz[i]];
			if(mp5[medpuz[i]] != undefined)
			 puz5[i+easypuz.length] = mp5[medpuz[i]];
			if(mp6[medpuz[i]] != undefined)
			 puz6[i+easypuz.length] = mp6[medpuz[i]];
			if(mp7[medpuz[i]] != undefined)
			 puz7[i+easypuz.length] = mp7[medpuz[i]];
			if(mp8[medpuz[i]] != undefined)
			 puz8[i+easypuz.length] = mp8[medpuz[i]];
			if(mp9[medpuz[i]] != undefined)
			 puz9[i+easypuz.length] = mp9[medpuz[i]];
					
			puzs[i+easypuz.length] = mps[medpuz[i]];
			puzx[i+easypuz.length] = mpx[medpuz[i]];		
		}
	
	if(harpuz.length > 0)
		for(i=0;i<harpuz.length;i++){
		 puz[i+easypuz.length+medpuz.length] = hp[harpuz[i]];
			puz0[i+easypuz.length+medpuz.length] = hp0[harpuz[i]];
			puz1[i+easypuz.length+medpuz.length] = hp1[harpuz[i]];
	
			if(hp2[harpuz[i]] != undefined)
			 puz2[i+easypuz.length+medpuz.length] = hp2[harpuz[i]];
			if(hp3[harpuz[i]] != undefined)
			 puz3[i+easypuz.length+medpuz.length] = hp3[harpuz[i]];
			if(hp4[harpuz[i]] != undefined)
			 puz4[i+easypuz.length+medpuz.length] = hp4[harpuz[i]];
			if(hp5[harpuz[i]] != undefined)
			 puz5[i+easypuz.length+medpuz.length] = hp5[harpuz[i]];
			if(hp6[harpuz[i]] != undefined)
			 puz6[i+easypuz.length+medpuz.length] = hp6[harpuz[i]];
			if(hp7[harpuz[i]] != undefined)
			 puz7[i+easypuz.length+medpuz.length] = hp7[harpuz[i]];
			if(hp8[harpuz[i]] != undefined)
			 puz8[i+easypuz.length+medpuz.length] = hp8[harpuz[i]];
			if(hp9[harpuz[i]] != undefined)
			 puz9[i+easypuz.length+medpuz.length] = hp9[harpuz[i]];
	
			puzs[i+easypuz.length+medpuz.length] = hps[harpuz[i]];
			puzx[i+easypuz.length+medpuz.length] = hpx[harpuz[i]];	
		}

	for(i=0;i<ads.length;i++)
  advert[i] = ad[ads[i]];
	
	writeTest();
}

function writeTest(){
 document.write(advert[0]);
	document.write("<br><br>");
		
	document.write("<form name=\"ran_puzz\">");
	
	if(puz.length == 1){
		document.write("<h3>Puzzle</h3>");
		document.write(puz[0]);
		document.write("<br><br>");
		document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"0\"> " + puz0[0] + "<br>");
		document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"1\"> " + puz1[0] + "<br>");
		
		if(puz2[0] != undefined)
	 	document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"2\"> " + puz2[0] + "<br>");
		if(puz3[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"3\"> " + puz3[0] + "<br>");
		if(puz4[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"4\"> " + puz4[0] + "<br>");
		if(puz5[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"5\"> " + puz5[0] + "<br>");
		if(puz6[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"6\"> " + puz6[0] + "<br>");
		if(puz7[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"7\"> " + puz7[0] + "<br>");
		if(puz8[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"8\"> " + puz8[0] + "<br>");
		if(puz9[0] != undefined)
		 document.write("<input type=\"radio\" name=\"p" + (1) + "\" value=\"9\"> " + puz9[0]);	
	}
	else
		for(i=0;i<puz.length;i++){
			document.write("<h3>Puzzle " + (i+1) + "</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>");
}



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

 for(j=1;j<puz.length+1;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
		 puzzWrong[puzzWrong.length] = i+1;

 showResult(nrRight,puzzWrong);
}

function showResult(nrRight,puzWrong){
 var resultPage = window.open();
	
	resultPage.document.write("<html><head><title>Results of IQ Quiz</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 IQ Quiz</h1></div>");
	
	resultPage.document.write(advert[1] + "<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("<h2>Answers and explanations</h2>");
	
	for(i=0;i<puz.length;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();
}
