var goed = new Array();
goed[0] = '0001,0005,0014,0022,0026,0033,0037,0045,0111,0115,0144,0155,0224,0246,0334,0347,1114,1122,1126,1133,1137,1145,1225,1256,1335,1357';
goed[1] = '0001,0005,0014,0022,0026,0033,0037,0045,0111,0115,0144,0155,0224,0334,1114,1122,1126,1133,1145,1225';
goed[2] = '0001,0005,0014,0022,0033,1122';

// Alle functies op een rij
function getVars() {
	// Functie om variabelen op te vangen
	var locatie = document.location.search;
	var params = new Array();
	if (locatie.length != 0) {
		locatie = locatie.substr(1);
		var paren = locatie.split('&');
		for (var i=0; i<paren.length; i++) {
			variabele = paren[i].split('=');
			params[variabele[0]] = variabele[1];
		}
	}
	return params;
}

function suggest(huidig) {
	var arrhuidig = new Array();
	var arrEen = new Array();
	var arrTwee = new Array();
	var arrDrie = new Array();
	var arrVier = new Array();
	for (var i=0; i<4; i++) {
		arrhuidig[i] = huidig.charAt(i);
		arrEen[i] = huidig.charAt(i);
		arrTwee[i] = huidig.charAt(i);
		arrDrie[i] = huidig.charAt(i);
		arrVier[i] = huidig.charAt(i);
	}
	if (goed[params['level']].indexOf(huidig) > -1) {
		//Huidig komt al in goed[] voor, jammer
		//Trek 1 af van het hoogste cijfer
		var arrevt = arrhuidig;
		arrevt[3]--;
		arrevt.sort();
		var evt = arrevt[0]+arrevt[1]+arrevt[2]+arrevt[3];
		return '3,1';
	} else {
		//Zoek een optimale oplossing
		// Het eerste cijfer (bijv. 1246 wordt 0246)
		if (huidig.charAt(0)=='1') {
			arrEen[0]--;
			arrEen.sort();
			var evt = arrEen[0]+arrEen[1]+arrEen[2]+arrEen[3];
			if (goed[params['level']].indexOf(evt) > -1) {
				return '0,1';
			}
		}
		// Het tweede cijfer (bijv. 1356 wordt 1256)
		for (var i=1;i<=huidig.charAt(1);i++) {
			arrTwee[1]--;
			arrTwee.sort();
			var evt = arrTwee[0]+arrTwee[1]+arrTwee[2]+arrTwee[3];
			if (goed[params['level']].indexOf(evt) > -1) {
				return '1,'+i;
			}
		}
		// Het derde cijfer (bijv. 0234 wordt 0224)
		if (huidig.charAt(2) > 3) {
			var max = 3;
		} else {
			var max = huidig.charAt(2);
		}
		for (var i=1;i<=max;i++) {
			arrDrie[2]--;
			arrDrie.sort();
			var evt = arrDrie[0]+arrDrie[1]+arrDrie[2]+arrDrie[3];
			if (goed[params['level']].indexOf(evt) > -1) {
				return '2,'+i;
			}
		}
		// Het vierde cijfer (bijv. 0006 wordt 0005)
		if (huidig.charAt(3) > 3) {
			var max = 3;
		} else {
			var max = huidig.charAt(3);
		}
		for (var i=1;i<=max;i++) {
			arrVier[3]--;
			arrVier.sort();
			var evt = arrVier[0]+arrVier[1]+arrVier[2]+arrVier[3];
			if (goed[params['level']].indexOf(evt) > -1) {
				return '3,'+i;
			}
		}
		return '3,1';
	}
}

function herstel(veld){
	var keuze = document.glazen[veld].selectedIndex;
	document.glazen["Z1"].options[0].selected = true;
	document.glazen["Z2"].options[0].selected = true;
	document.glazen["Z3"].options[0].selected = true;
	document.glazen["Z4"].options[0].selected = true;
	document.glazen[veld].options[keuze].selected = true;
}

function gastSubmit() {
	var keuzeZ1 = document.glazen["Z1"].selectedIndex;
	var keuzeZ2 = document.glazen["Z2"].selectedIndex;
	var keuzeZ3 = document.glazen["Z3"].selectedIndex;
	var keuzeZ4 = document.glazen["Z4"].selectedIndex;
	if ((keuzeZ1 > 0) || (keuzeZ2 > 0) || (keuzeZ3 > 0) || (keuzeZ4 > 0)) {
		document.glazen.submit();
	} else {
		alert("Je moet eerst 1, 2 of 3 glazen uit een rij \nselecteren om weg te pakken.");
	}
}

function uitleg() {
	// Toon speluitleg op het scherm
	document.write("<form name='uitleg'>");
	document.write("<font size='2' color='Navy' face='verdana'>");
	document.write("<div align='center'><img src='images/pils.gif' width='32' height='39' border='0' alt=''><br>");
	document.write("<b>Bierspel - Spelregels</b><br><br>");
	document.write("Guido, de barkeeper van het Asteiner Bloascaf&eacute;, daagt jou uit:<br>");
	document.write("Je moet per beurt 1, 2 of 3 glazen nemen. Per beurt mag je dit maar uit &eacute;&eacute;n rij tegelijk doen. Wie het laatste pilsje moet wegpakken, verliest het spel (en moet het volgende rondje betalen).<br><br>");
	document.write("Wil jij als eerste aan de beurt zijn? <select name='aanzet'>");
	document.write("<option value='Gast'>Ja</option>");
	document.write("<option value='Guido'>Nee</option></select><br><br>");
	document.write("Moeilijkheidsgraad: <select name='level'>");
	document.write("<option value='0'>Expert</option>");
	document.write("<option value='1'>Gevorderde</option>");
	document.write("<option value='2'>Beginner</option></select><br><br>");
	document.write("</font>");
	for (var i=0;i<4;i++) {
		document.write("<input type='hidden' name='R"+(i+1)+"' value='"+(2*i+1)+"'>");
		document.write("<input type='hidden' name='Z"+(i+1)+"' value='0'>");
	}
	document.write("<input type='submit' value='Start'></div></form>");
	document.write("<font size='1' color='#FF8000' face='verdana'>");
	document.write("	<div align='center'><br>(Dit spel is bekend uit de Franse film &quot;L'Ann&eacute;e derni&egrave;re &agrave; Marienbad&quot; uit 1961)</div>");
	document.write("</font>");
}

function guido(zet) {
	// Bepaal de zet van Guido en toon die op het scherm
	var antw = suggest(zet);
	var arrAntw = new Array();
	arrAntw = antw.split(',');
	// Plaats het antwoord/de glazen op het scherm
	document.write("<form name='glazen'>");
	document.write("<table>");
	for (var i=0;i<4;i++) {
		document.write("<tr>");
		document.write("<td align='center'>");
		if (arrAntw[0] == i) {
			// Dit is de rij waar Guido glazen uit wegneemt
			var aantal = zet.charAt(i) - arrAntw[1];
			var aantalWeg =  arrAntw[1];
		} else {
			var aantal = zet.charAt(i)
			var aantalWeg = 0;
		}
		// Plaats de glazen
		for (var j=0;j<aantal;j++) {
			document.write("<img src='images/pils.gif' width='32' height='39' border='0' alt=''>");
		}
		if (aantalWeg > 0) {
			for (var j=0;j<aantalWeg;j++) {
				document.write("<img src='images/pilsx.gif' width='32' height='39' border='0' alt=''>");
			}
		}
		document.write("</td>");
		document.write("<td align='center'>");
		// Plaats aantal weggenomen
		if (aantalWeg > 0) {
			document.write("<font size='1' color='Navy' face='verdana'>Guido pakt er hier "+aantalWeg+" weg</font>");
		}
		document.write("<input type='hidden' name='R"+(i+1)+"' value='"+(parseInt(aantal)+parseInt(aantalWeg))+"'>");
		document.write("<input type='hidden' name='Z"+(i+1)+"' value='"+aantalWeg+"'>");
		
		document.write("</td>");
		document.write("</tr>");
	}
	document.write("</table>");
	document.write("<input type='hidden' name='level' value='" +params['level']+ "'>");
	document.write("<input type='hidden' name='aanzet' value='Gast'>");
	document.write("<div align='center'><input type='submit' value='Volgende'>");
	document.write("&nbsp;<input type='button' value='Opnieuw' onClick='afbreken()'></div>");
	document.write("</form>");
}

function afbreken() {
	if (confirm("Weet je zeker dat je dit spel wilt afbreken\nen opnieuw wilt beginnen?")) {
		opnieuw();
	}
}

function opnieuw() {
	// Start opnieuw
	window.location="bierspel.html";
}

function plaatsGlazen(zet) {
	document.write("<form name='glazen'>");
	document.write("<table>");
	for (var i=0;i<4;i++) {
		document.write("<tr>");
		document.write("<td align='center'>");
		var aantal = zet.charAt(i);
		// Plaats de glazen
		for (var j=0;j<aantal;j++) {
			document.write("<img src='images/pils.gif' width='32' height='39' border='0' alt=''>");
		}
		document.write("</td>");
		document.write("<td align='center'>");
		// Plaats Selectbox
		if (aantal > 0) {
			document.write("<select name='Z"+(i+1)+"' onchange=herstel('Z"+(i+1)+"')>");
			document.write("	<option value='0' selected>0 glazen</option>");
			if (aantal > 3) {
				// Er mogen maximaal 3 glazen gepakt worden
				aantal = 3;
			}
			for (var k=0;k<aantal;k++) {
				document.write("	<option value='"+(k+1)+"'>"+(k+1)+" glazen</option>");
			}
			document.write("</select>");
			document.write("<input type='hidden' name='R"+(i+1)+"' value='"+zet.charAt(i)+"'>");
		} else {
			document.write("<input type='hidden' name='R"+(i+1)+"' value='0'>");
			document.write("<input type='hidden' name='Z"+(i+1)+"' value='0'>");
		}
		document.write("</td>");
		document.write("</tr>");
	}
	document.write("</table>");
	document.write("<div align='center'><input type='hidden' name='aanzet' value='Guido'>");
	document.write("<input type='hidden' name='level' value='" +params['level']+ "'>");
	document.write("<input type='button' value='Volgende' onClick='gastSubmit()'>");
	document.write("&nbsp;<input type='button' value='Opnieuw' onClick='afbreken()'></div>");
	document.write("</form>");
}
