function check9digits(digits) {
	for (var i=1; i<10; i++)
		if (digits.indexOf(i)==-1) return false;
	return true;
}
function checksudoku() {
	var numeri=error="";
	var count=0;
	var colonne=["","","","","","","","",""];
	var quadrati=["","","","","","","","",""];
	for (var i=0; i<document.sudoku.gioco.length; i++) {
		numeri+=document.sudoku.gioco[i].value;
		colonne[i%9]+=document.sudoku.gioco[i].value;
		switch (i) {
			case 0:case 1:case 2: case 9:case 10:case 11: case 18:case 19:case 20: quadrati[0]+=document.sudoku.gioco[i].value;
			break;
			case 3:case 4:case 5: case 12:case 13:case 14: case 21:case 22:case 23: quadrati[1]+=document.sudoku.gioco[i].value;
			break;
			case 6:case 7:case 8: case 15:case 16:case 17: case 24:case 25:case 26: quadrati[2]+=document.sudoku.gioco[i].value;
			break;
			case 27:case 28:case 29: case 36:case 37:case 38: case 45:case 46:case 47: quadrati[3]+=document.sudoku.gioco[i].value;
			break;
			case 30:case 31:case 32: case 39:case 40:case 41: case 48:case 49:case 50: quadrati[4]+=document.sudoku.gioco[i].value;
			break;
			case 33:case 34:case 35: case 42:case 43:case 44: case 51:case 52:case 53: quadrati[5]+=document.sudoku.gioco[i].value;
			break;
			case 54:case 55:case 56: case 63:case 64:case 65: case 72:case 73:case 74: quadrati[6]+=document.sudoku.gioco[i].value;
			break;
			case 57:case 58:case 59: case 66:case 67:case 68: case 75:case 76:case 76: quadrati[7]+=document.sudoku.gioco[i].value;
			break;
			case 60:case 61:case 62: case 69:case 70:case 71: case 78:case 79:case 80: quadrati[8]+=document.sudoku.gioco[i].value;
			break;
		}
	}
	if (numeri.length!=81) error="attenzione! non tutte le caselle contengono un numero";
	else {
		/* righe da 1 a 9 */
		if (check9digits(numeri.substr(0,9))==false) count++;
		if (check9digits(numeri.substr(9,9))==false) count++;
		if (check9digits(numeri.substr(18,9))==false) count++;
		if (check9digits(numeri.substr(27,9))==false) count++;
		if (check9digits(numeri.substr(36,9))==false) count++;
		if (check9digits(numeri.substr(45,9))==false) count++;
		if (check9digits(numeri.substr(54,9))==false) count++;
		if (check9digits(numeri.substr(63,9))==false) count++;
		if (check9digits(numeri.substr(72,9))==false) count++;
		/* colonne da 1 a 9 */
		if (check9digits(colonne[0])==false) count++;
		if (check9digits(colonne[1])==false) count++;
		if (check9digits(colonne[2])==false) count++;
		if (check9digits(colonne[3])==false) count++;
		if (check9digits(colonne[4])==false) count++;
		if (check9digits(colonne[5])==false) count++;
		if (check9digits(colonne[6])==false) count++;
		if (check9digits(colonne[7])==false) count++;
		if (check9digits(colonne[8])==false) count++;
		/* quadrati */
		if (check9digits(quadrati[0])==false) count++;
		if (check9digits(quadrati[1])==false) count++;
		if (check9digits(quadrati[2])==false) count++;
		if (check9digits(quadrati[3])==false) count++;
		if (check9digits(quadrati[4])==false) count++;
		if (check9digits(quadrati[5])==false) count++;
		if (check9digits(quadrati[6])==false) count++;
		if (check9digits(quadrati[7])==false) count++;
		if (check9digits(quadrati[8])==false) count++;
		error="errore! soluzione non corretta, "+count+" errori";
	}
	if (error!="") alert(error);
	else alert("bravo! hai trovato la combinazione corretta");
}
function checkNumeric(e) {
	var ev=e?e:event;
	var key=ev.charCode?ev.charCode:ev.keyCode;
	if (((key>47) && (key<58)) || (key==8) || (key==9)) {
        ev.returnValue=true;
	} else {
		if (ev.preventDefault) {
			e.preventDefault();
		} else if ('returnValue' in ev ) {
			ev.returnValue=false;
		}
	}
} 