function init(){
	var taille = 10;
	var grille;
	var nbrTotalBomb=0;
	var compteur=0;

	function Kase(){
		this.nbrBombVoisines = 0;
		this.bomb = false;
		this.cache = true;
		this.marque = false;
		this.boum = false;
	
	}
	
	function initGrille(){
	
		var i,j;
		grille = new Array();
		for(i=0;i<taille;i++){
			grille[i] = new Array();
		
			 for(j=0;j<taille;j++){
				grille[i][j] = new Kase ();
				grille[i][j].bomb = (Math.random()<0.1);//10% du nb de case
					
			}
			
		}
			setNbrTotalBomb();
			compteBombes();
			 
			 
	}
	
	function setNbrTotalBomb(){
		var i,j;
		nbrTotalBomb =0;
		for(i=0; i<taille;i++){
			for(j=0; j<taille;j++){
				if(grille[i][j].bomb){
					nbrTotalBomb++;
				}
				
			}
		}
	}
	
	
	function testFin(){
		var i,j;
			nbrTotalBomb =0;
			for(i=0; i<taille;i++){
				for(j=0; j<taille;j++){
					if(grille[i][j].cache){
						compteur++;
					}
				
			}
		}
		if(compteur==nbrTotalBomb)
			alert("Bravo!");
	}
	
		
	
	
	
	function compteBombes(){
		var i,j,compteur;
		for(i=0;i<taille;i++){
			for(j=0;j<taille;j++){
				compteur=0;
				if((i>0)&&(j>0)&&(grille[i-1][j-1].bomb))
					compteur++;
				if((i>0)&&(grille[i-1][j].bomb))
					compteur++;
				if((i>0)&&(j<taille-1)&&(grille[i-1][j+1].bomb))
					compteur++;
				if((j<taille-1)&&(grille[i][j+1].bomb))
					compteur++;
				if((i<taille-1)&&(j<taille-1)&&(grille[i+1][j+1].bomb))
					compteur++;
				if((i<taille-1)&&(grille[i+1][j]).bomb)
					compteur++;
				if((i<taille-1)&&(j>0)&&(grille[i+1][j-1].bomb))
					compteur++;			
				if((j>0)&&(grille[i][j-1].bomb))
					compteur++;
				grille[i][j].nbrBombVoisines= compteur;
		
		
			}
		
		
		}	

	}
	
	
	
	
	
	
	function initAffichage(){
		var i,j;
	
		var tab = document.createElement("table");
		for(i=0;i<taille;i++){
			var ligne = document.createElement("tr");
			for(j=0;j<taille;j++){
				var cellule = document.createElement("td");
				ligne.appendChild(cellule);
			}
			
			tab.appendChild(ligne);
	
	}
	document.body.appendChild(tab);
	var button= document.createElement("div");
	var textBouton = document.createTextNode("Recommencer");
	button.appendChild(textBouton);
	document.body.appendChild(button);
	button.addEventListener("click",recommencer,false);
	
}

	function recommencer(){
		initGrille();
		affichage();
	
	}

function affichage(){
		var i;
		var cases = document.getElementsByTagName("td");//récupérer toutes les cellules du tableau
		for(i=0;i<taille;i++){
			for(j=0;j<taille;j++){
				if(grille[i][j].cache){
					if(grille[i][j].marque){
						cases[i*taille+j].setAttribute("class","marque");
					}
					else{
						cases[i*taille+j].setAttribute("class","cache");
					}
					}
				else{
				//cases[i*taille+j].setAttribute("class","cache");
				switch(grille[i][j].nbrBombVoisines){
				
					case 0 :
					cases[i*taille+j].setAttribute("class","vide");
					break;
					
					case 1 :
						cases[i*taille+j].setAttribute("class","un");
						break;
					case 2 :
						cases[i*taille+j].setAttribute("class","deux");
						break;
						
					case 3 :
						cases[i*taille+j].setAttribute("class","trois");
						break;
						
					case 4 :
						cases[i*taille+j].setAttribute("class","quatre");
						break;
						
					case 5 :
						cases[i*taille+j].setAttribute("class","cinq");
						break;
						
				
				
				
				
				
				
				}
				}
			}
		}
		
		testFin();

}
	
	function detection(event){
		var i,j,k;
		var cases = document.getElementsByTagName("td");
		//$("td").each(function(index)
		for(k=0;k<cases.length;k++){
			if(cases[k].target){/*this==event*/
				i=parseInt(k/taille);//index
				j=k%taille;//index
			}
				
		
				switch(event.button/*which*/){
					case 1:
						decouvrir(i,j);
					break;
					case 3:
						marquer(i,j);
					break;
				}
			
		}
		
	}
	function decouvrir(i,j){
		
		if(grille[i][j].bomb){
			alert("Boum");

		}
		else if(grille[i][j].cache){
			grille[i][j].cache = false;
			if(grille[i][j].nbrBombVoisines==0){
				if((i>0)&&(j>0)&&(grille[i-1][j-1].cache))
					decouvrir(i-1,j-1);
				if((i>0)&&(grille[i-1][j].cache))
					decouvrir(i-1,j);
				if((i>0)&&(j<taille-1)&&(grille[i-1][j+1].cache))
					decouvrir(i-1,j+1);
				if((j<taille-1)&&(grille[i][j+1].cache))
					decouvrir(i,j+1);
				if((i<taille-1)&&(j<taille-1)&&(grille[i+1][j+1].cache))
					decouvrir(i+1,j+1);
				if((i<taille-1)&&(grille[i+1][j]).cache)
					decouvrir(i+1,j);
				if((i<taille-1)&&(j>0)&&(grille[i+1][j-1].cache))
					decouvrir(i+1,j-1);			
				if((j>0)&&(grille[i][j-1].cache))
					decouvrir(i,j-1);
			}
		
			
		}
	
	affichage();
	
	
	
	
	}
	
	function marquer(i,j){
		grille[i][j].marque = !grille[i][j].marque;
		affichage();
	
	
	
	}
	function rien(event){
		event.preventDefault();
	}
	
	

	initGrille();
	compteBombes();
	initAffichage();
	affichage();
	window.addEventListener("click",detection,false);
	window.addEventListener("contextmenu",rien,false);
	//$(window).bind("click",detection);
	//$(window).bind("contextmenu",rien);
	
	
	
}
window.addEventListener("load",init,false);
//$(window).ready(init);