// Detection du navigateur
nc6 = (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')? true:false;
nc4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;

// Fonction appelee lors du clic n'importe ou sur la page (mouvement 1 du marteau)
function marty1() {

// Instructions pour Netscape 4.x
	if (nc4) {

// Modification de l'image placee dans le calque suivant le pointeur
		document.pointeur.document.mart.src = "marteau/marteau_1.gif";
		}

// Instruction equivalente pour Internet Explorer et Netscape 6.x
	if (ie4 || nc6) {
		document.mart.src = "marteau/marteau_1.gif";
		}

// On lance ensuite une fonction similaire pour rechanger l'image du marteau (mouvement 2)
	setTimeout("marty2();",250);
	}

// Fonction modifiant l'image du marteau (mouvement 2)
function marty2() {
	if (nc4) {
		document.pointeur.document.mart.src = "marteau/marteau_0.gif";
		}
	if (ie4 || nc6) {
		document.mart.src = "marteau/marteau_0.gif";
		}
	}

// Fonction changeant les tetes en 'tetes ecrasees'
function tape(cible) {

// Si l'image cliquee correspond a l'image affichee
	if ( cible == numero ) {

// Modification de l'image
		eval("document.cible" + cible).src = "marteau/tete_1.gif";

// Incrementation du score
		document.formulaire.score.value++;

// On lance une autre fonction pour ensuite faire disparaitre la tete ecrasee
		setTimeout("tape2();",150);
		}
	}

// Fonction de disparition des tetes ecrasees
function tape2() {
	eval("document.cible" + numero).src = "marteau/px.gif";
	}


// Le nombre de tetes a ecraser
var nombre_tetes = 25;
var nombre_alleatoire;

// Le numero de la tete precedemment affichee (pour eviter les doubles)
var numero_preced;

// Le numero de l'image affichee
var numero;

// Le delai entre chaque affichage de tete (pour Netscape 4.x et Internet Explorer)
var vitesse;

// Variable qui recevra la 'boucle' du jeu (relance des fonctions)
var jeu;

// Variable qui recoit l'attente de debut du jeu (pour Netscape 4.x et Internet Explorer)
var attente;

// Fonction d'affichage des tetes pour Netscape 6
function alea_nc6() {

// Generation d'un nombre aleatoire (entre 0 et 1 ex: 0.2458768)
	nombre_alleatoire = Math.random();

// Choix d'une tete grace au nombre aleatoire
	numero = Math.round( ( nombre_tetes - 1 ) * nombre_alleatoire ) + 1;

// Si ce nombre est identique au precedent choix, on relance la fonction
	if ( numero == numero_preced ) {
		alea_nc6();
		}

// Sinon...
	else {

// Si le compteur de temps est vide, on le lance
		if (document.formulaire.temps.value == "") {
			compteur();
			}

// On stocke le numero de tete choisi pour le comparer lors du prochain tirage aleatoire
		numero_preced = numero;

// On affiche la tete selectionnee
		eval("document.cible" + numero).src = "marteau/tete_0.gif";

// Suivant le niveau de difficulte choisi, on lance la disparition de l'image plus ou moins vite
		if ( document.formulaire.niveau[0].checked == "1" ) {

// La fonction de disparition de l'image est placee en variable pour pouvoir l'interrompre a la fin du jeu
			jeu = setTimeout("alea_nc62();",1400);
			}
		if ( document.formulaire.niveau[1].checked == "1" ) {
			jeu = setTimeout("alea_nc62();",1000);
			}
		if ( document.formulaire.niveau[2].checked == "1" ) {
			jeu = setTimeout("alea_nc62();",750);
			}
		}
	}

// Fonction de disparition de l'image
function alea_nc62() {
	eval("document.cible" + numero).src = "marteau/px.gif";

// Relance d'un nouvel affichage
	alea_nc6();
	}


// Fonction d'affichage des tetes pour Netscape 4.x et Internet Explorer (lancee au chargement de la page)
function alea() {

// Tant qu'aucun niveau n'est choisi, on relance la fonction
	if (!document.formulaire.niveau[0].status && !document.formulaire.niveau[1].status && !document.formulaire.niveau[2].status) {
		attente = setTimeout("alea();",2000);
		}

// Des qu'un niveau est choisi...
	else {

// On bloque l'instruction suivante
		clearTimeout(attente);

// Suivant le niveau choisi, on determine un delai de relance
		if ( document.formulaire.niveau[0].status ) {
			vitesse = 1400;
			}
		if ( document.formulaire.niveau[1].status ) {
			vitesse = 1000;
			}
		if ( document.formulaire.niveau[2].status ) {
			vitesse = 750;
			}

// Generation d'un nombre aleatoire (entre 0 et 1 ex: 0.2458768)
		nombre_alleatoire = Math.random();

// Choix d'une tete grace au nombre aleatoire
		numero = Math.round( ( nombre_tetes - 1 ) * nombre_alleatoire ) + 1;

// Si ce nombre est identique au precedent choix, on relance la fonction
//		nombre_alleatoire = 0;
		if ( numero == numero_preced ) {
			alea();
			}

// Sinon...
		else {

// Si le compteur de temps est vide, on le lance
			if (document.formulaire.temps.value == "") {
				compteur();
				}

// On stocke le numero de tete choisi pour le comparer lors du prochain tirage aleatoire
			numero_preced = numero;

// On affiche la tete selectionnee
			eval("document.cible" + numero).src = "marteau/tete_0.gif";

// La fonction de disparition de l'image est placee en variable pour pouvoir l'interrompre a la fin du jeu
			jeu = setTimeout("alea2();",vitesse);
			}
		}
	}

// Fonction de disparition de l'image
function alea2() {
	eval("document.cible" + numero).src = "marteau/px.gif";

// Relance d'un nouvel affichage
	alea();
	}

// Fonction de gestion du temps
function compteur() {

// Si le compteur est vide
	if (document.formulaire.temps.value == "" ) {

// On le place a 30
		document.formulaire.temps.value = 30;

// Et on relance la fonction au bout d'une seconde
		setTimeout("compteur();",1000);
		}

// Si le compteur n'est pas vide...
	else {

// Et qu'il est superieur a 0
		if ( document.formulaire.temps.value > 0 ) {

// On retire 1
			document.formulaire.temps.value -= 1;

// Et on relance la fonction au bout d'une seconde
			setTimeout("compteur();",1000);
			}

// Si le compteur n'est plus superieur a 0
		else {

// On arrete la fonction d'affichage des tetes
			clearTimeout(jeu);

// On masque la derniere tete
			eval("document.cible" + numero).src = "marteau/px.gif";

// On initialise la tete active (pour eviter de continuer a cliquer et a marquer des points)
			numero = 0;

// Message d'information sur les scores
			alert('Termine !!\nVotre score est de : ' + document.formulaire.score.value + '.\n\nLes maxima sont :\nFacile : 22 points\nMoyen : 31 points\nDifficile : 40 points.');
			}
		}
	}