// JavaScript Document
// Gestion Temps passé à résoudre le Sudoku
var startdate = new Date();
var tps;
var nivo;
var pseudo;
var fin = false;
function UseHelpMe() {usehelp='true'; fin = true;}
function pluriel(nb) {if (nb>1) {return "s"} else {return ""}}
function AffTemps(temps) {
	reste="";
	var minsec = temps;
	if (temps >3600)
		{var heur = Math.floor(temps / 3600);
		minsec = minsec - (heur * 3600);
		}
	if (minsec>0)
		{
		var min=Math.floor(minsec/60);
		var sec=minsec-min*60
		}
	else
		{var min=0; var dsec=0;}
	if (heur>0) {reste+=heur+" heure"+pluriel(heur)+" "}
	if (min>0) {reste+=min+" minute"+pluriel(min)+" "}
	if (sec>0) {reste+=sec+" seconde"+pluriel(sec)}
	return reste;	
}
function CalculTemps() {
	var dt=new Date()
	temps = Math.round((dt.getTime() - startdate.getTime()) / 1000)
	if (temps >0) 
		{if (fin == false)
			{document.getElementById("horloge").value = AffTemps(temps);}
		}
	setTimeout("CalculTemps()",1000);		
}
function AlertTemps() {alert(AffTemps(temps));}
// Initialiser le timer
CalculTemps();
var notime = 'false';
var usehelp = 'false';
//Fin Gestion Temps passé

//Gestion Affichage grille et case
sauve=""; sauve3 = new Array();

function drawcase() {
	tmp = sauve.id.split("-");
	mem = sauve3[tmp[0]*9+tmp[1]]+""; if(mem=="undefined") mem="";
	if(mem=="") tmp2 = "&nbsp;";
	else 
		{
		if(mem.length==1) tmp2 = "<font color=red><b>"+mem+"</b></font>";
		else 
			{
			tmp2 = "<table cellspacing=0 cellpadding=0 border=0>";
			for(i=0;i<2;i++) 
			   {
				tmp2+="<tr>";
				for(j=0;j<4;j++) 
					{
					t = i*4+j;
					tmp2+="<td class=f7>"+String.fromCharCode(mem.charCodeAt(t))+"</td>";
					}
					tmp2+="</tr>";
				}
        	tmp2 += "</table>";
    		}
		}
	sauve.innerHTML = tmp2;
}

function drawgrid() {
	tmp = sauve.id.split("-");
	mem = sauve3[tmp[0]*9+tmp[1]]+""; if(mem=="undefined") mem="";
	for(i=1;i<10;i++) 
		{
		ch = String.fromCharCode(i+48);
		if(mem.indexOf(ch)>=0) document.getElementById("j"+i).style.background="yellow";
		else document.getElementById("j"+i).style.background="";
		}
	ctrlfin();
}

function soluce() {
	tmp = sauve.id.split("-");
	sauve3[tmp[0]*9+tmp[1]]=sauve.s;
	drawcase(); drawgrid();
}

function joue(lacase,niveau) {
	//Rendre le fond transparent, utile après Vérification
	for(i=0;i<9;i++) 
		{
		for(j=0;j<9;j++) 
			{ document.getElementById(i+"-"+j).style.background="";}//end boucle 2eme For
		}//end boucle 1er For
	  
	if(sauve!="") sauve.style.background="";
	sauve=lacase;
	lacase.style.background="yellow";
	lejeu = document.getElementById("jeu");
	tmp = sauve.id.split("-");
	//tmp contient le n° bloc,N° cellule ex:0,2 (1er bloc, cellule 3)
	//tmp[0] contient le numéro du bloc de 0 à 9
	//tmp[1] contient le numéro de cellule de 0 à 9
	mem = sauve3[tmp[0]*9+tmp[1]]+""; if(mem=="undefined") mem="";
	//tmp[0]*9+tmp[1] = N°bloc . N°cellule ex: 02 (1er bloc, cellule 3)
	//mem contient la valeur saisie de la cellule pointée
	var nb=document.getElementById(tmp[0]+"-"+tmp[1]).value;
	//nb contient la valeur calculée de la cellule
	drawgrid();
	lejeu.style.visibility="visible";
	nivo = niveau;
}
	  
function verif() {
	for(i=0;i<9;i++) 
		{
		for(j=0;j<9;j++) 
			{ tmp = document.getElementById(i+"-"+j).id.split("-");
			mem = sauve3[tmp[0]*9+tmp[1]]+""; 
			if(mem=="undefined") mem="";
			if (mem == (document.getElementById(i+"-"+j).value))
				{document.getElementById(i+"-"+j).style.background="#009900"}
		}//end boucle 2eme For
	}//end boucle 1er For
	ctrlfin();
}
	  
function ctrlfin() {
	fin = true;
	for(i=0;i<9;i++) 
		{
		for(j=0;j<9;j++) 
			{ tmp = document.getElementById(i+"-"+j).id.split("-");
			mem = sauve3[tmp[0]*9+tmp[1]]+"";
			if(mem=="undefined") mem="";
			if (mem != (document.getElementById(i+"-"+j).value))
				{if (document.getElementById(i+"-"+j).value >=1) fin = false;}
			}//end boucle 2eme For
		}//end boucle 1er For
	if (fin == true) 
		{
		if (notime == 'true' && usehelp == 'false') 
			{
			notime='false';
			tps = temps;
			if (temps > 1)
				{var tempmes = "Vous avez fini votre Sudoku et il a été correctement rempli en " + AffTemps(temps) + ".\n\nFélicitation.";
				alert(tempmes);
				//controle temps, affichage et sauvegarde
				var saisie = prompt("Si vous désirez figurer parmi les meilleurs, saisissez un/votre pseudo.", "")
				}
			else
				{var tempmes = "Vous avez fini votre Sudoku et il a été correctement rempli.\n\nFélicitation.";
				tempmes += "\n\nMalheureusement, votre naviguateur Internet n'est pas configuré pour afficher le temps.\n";
				tempmes += "Vous ne pourrez donc pas apparaitre dans le tableau des meilleurs scores. Désolé.\n\n";
				alert(tempmes);
				}
			var adrimg = 'http://www.solidarite-fraternite.org/sudokuscore.php?niv=' + nivo + '&pseudo=' + saisie + '&temps=' + tps; 
			//alert(adrimg);
			parent.score.location.href=adrimg;
			}
		else
			{alert('Votre Sudoku est fini et correctement rempli.');
			}
		}	
}

function store(n) {
	tmp = sauve.id.split("-");
    ch = String.fromCharCode(n+48);
	mem = sauve3[tmp[0]*9+tmp[1]]+""; if(mem=="undefined") mem="";
	t = mem.indexOf(ch)
	if(t>=0) { t2 = mem.split(""); t2[t]=""; mem = t2.join(""); }
	else mem+=ch;
	sauve3[tmp[0]*9+tmp[1]]=mem;
	notime ='true';
	drawcase(); drawgrid();
}
//Fin Gestion Grille et case