window.onload = function () {
	loadImg();
};

var NS=(document.layers)?1:0,IE=(document.all)?1:0,DOM=((document.createRange&&(document.createRange().createContextualFragment))?1:0);

function msg(titre,champs) {
	var contenu = titre;
	var calque = "";
	( NS ) ? calque = eval("document."+champs) : ( IE ) ? calque = eval("document.all."+champs+".style") : ( DOM ) ? calque = document.getElementById(champs).style : "";
	if(NS){calque.document.write(contenu);calque.document.close();calque.visibility="visible";};
	if(IE){document.all(champs).innerHTML=contenu;calque.visibility="visible";};
	if(DOM){
		document.getElementById(champs).innerHTML = contenu;
		calque.visibility="visible";
	};
}


// --------- changer le choix liste 
function ChangeNiveau(defaut) {
	limitation = 2;
	choix = 0;
	//if (larg >= 640) limitation = 2;
	if (larg >= 800) limitation = 5;
	if (larg >= 1024) limitation = 7;
	if (larg >= 1152) limitation = 8;
	if (larg >= 1280) limitation = 11;
	while(document.form1.niveau.options.length>=1) {
		document.form1.niveau.options[0]=null;
	}

	for(i=0; i < (limitation+1); i++) {
		
		var texte_menu = new String(liste_menu[i]);
		if (texte_menu == defaut) choix = i;
		var option_menu = texte_menu.split("x");
		//var info_menu = option_menu[0]+'x'+option_menu[1]+' = '+(option_menu[0]*option_menu[1]);
		var info_menu = "" + traduction[220] + " " + (i+1);
		document.form1.niveau.options[i]=new Option(info_menu,texte_menu);
	}
	document.form1.niveau.selectedIndex = choix;
}

//------------ Fonction de chargement
function loadImg() {
	// definition des variables
	//liste_image = new Array();
	malisteimage = "" + traduction['liste_image'] + "";

	liste_image = malisteimage.split(",");
	liste_menu = new Array('4x4','5x4','6x4','6x5','6x6','7x6','8x6','8x7','8x8','8x9','8x10','8x11');
	// sens de distribution 1 pour haut, 0 pour bas
	sens = traduction['sens'];
	//sens=0;
	// Conserver les images trouvee si 1
	effaceImg = traduction['effacer'];
	nb_rang = traduction['nb_x'];
	nb_col = traduction['nb_y'];
	TotalImage = nb_rang * nb_col;
	imgLoaded = 0;
	CountAffichImg = new Array;
	PathImg = new Array;
	PassVerif = 0;
	ImgRecord = new Array;
	imgjeux = new Array;
	a2 = new Image;
	a2.src = "../img_script/couple_cache.gif";
	a3 = new Image;
	a3.src = "../img_script/mem_carte.jpg";
	count = 0;
	gagne = 0;

	larg = 0;
	if (parseInt (navigator.appVersion) >=4) {
		larg = screen.width;
		haut = screen.height;
	}
	//alert(screen.width);
	
	ChangeNiveau(traduction['niveau']);
	// preparation pour calcul final
	dateDepart = new Date();
	clic = new Array();
	delai = 50; // temps de distribution
	temps_total = delai; // temps cumule
	DistribImg = new Array(); // index des images
	z = 0; // compteur des
	if (sens == 1) position = 0; else position = (TotalImage-1);

	for (i=0 ; i < liste_image.length ; i++) { 
		source = "../img_script/mem_"+liste_image[i]+".jpg";
		imgjeux[i] = new Image;
		imgjeux[i].src = source;
		CountImg();
	}
	for (x=1; x < (nb_rang + 1) ; x++) { 
		for (y=1; y < (nb_col + 1) ; y++) { 
			Cellule = x + "" + y;
			ICellule = "i" + Cellule;
			RandomMem(ICellule,Cellule);
			DistribImg[z] = ICellule;
			clic[Cellule] = -1;
			setTimeout("distribution()",temps_total);
			temps_total+=delai;
			z++;
		}
		temps_total+=delai;
	}
	setTimeout("msg(traduction[209],'info')",temps_total);
}

function distribution() {
		document[DistribImg[position]].src = a3.src;
		if (sens == 1) position++; else position--;
}

function CountImg(srcimage) {
	PathImg[imgLoaded] = imgjeux[imgLoaded].src;
	CountAffichImg[imgLoaded] = 0;
	CountAffichImg[imgLoaded+(TotalImage / 2)] = 0;
	imgLoaded++;
	return(true);
}

function RandomMem(imgName,ImgNb) {
	ValRandom = (TotalImage /2)-1;
	ImgTemp = Math.round(Math.random() * ((TotalImage /2)-1));
	while (CountAffichImg[ImgTemp]>=2) {
		ImgTemp = Math.round(Math.random() * ((TotalImage /2)-1));
	}
	ImgRecord[ImgNb] = PathImg[ImgTemp];
	CountAffichImg[ImgTemp]++;
	return(true);
}

function efface() {
	if (effaceImg == 0) effaceImg = 1; else effaceImg = 0;
}

function calcul() {
	//Gestion constante
	TempsImage = 2000; // temps par image (milliseconde)
	CoeffMin = 1; // le meme temps
	CoeffMax = 10; // 10 fois plus de temps
	PointMax = 10000;
	PointMin = 0;
	// Calcul du temps de partie
	dateFin = new Date();
	TempsDuree = dateFin.getTime() - dateDepart.getTime();
	// calcul du malus
	malus = 0;
	for (x=1; x < (nb_rang + 1) ; x++) { 
		for (y=1; y < (nb_col + 1) ; y++) { 
			Cellule = x + "" + y;
			malus = malus + clic[Cellule];
		}
	}
	malus = malus * 500; //perte de 0.5 secondes
	// calcul
	calcul = ( (CoeffMin + CoeffMax) - ((TempsDuree + malus) / (TempsImage * TotalImage)) ) * (PointMax / CoeffMax) ;
	calcul = Math.round(calcul);
	if (calcul < 0) calcul = 0;
	alert(traduction[301] + " : " + calcul + " " + traduction[302] + "\n" + traduction[457] + " : " + malus);
}

function AddClic(ImgNb,ImgName){
clic[ImgNb] += 1;
if (PassVerif == 0 && ImgName.src != a2.src) {
	if (ImgName.src != a3.src && ImgName.src != a2.src)
		alert(traduction[208]);
		else {
			ImgName.src = ImgRecord[ImgNb];
			count++;
			ImgNamey = ImgName;
			if (count == 1) {
				ImgNb1=ImgNb;
				ImgNamex=ImgNamey;
				ImgURL1=ImgRecord[ImgNb];
			}
			else {
				PassVerif=1;
				if (ImgRecord[ImgNb] == ImgURL1) {
					gagne++;
					//if (gagne > 1) s="s"; else s="";
					msg(traduction[222] + ' ' + gagne,'info');
					PassVerif = 0;
					count=0;
					if (effaceImg == 1) {
						clicA = ImgNamex;
						clicB = ImgNamey;
						setTimeout("clicA.src = a2.src; clicB.src = a2.src;",1000);
						setClass(clicA.name,'nomain');
						setClass(clicB.name,'nomain');
					}
					if (gagne == (TotalImage /2)) {
						msg(traduction[206],'info');
						setTimeout("document.form1.reco.value = traduction[207]; calcul();",500);
						//calcul();
						setTimeout("msg(traduction[301] + ' : ' + calcul + ' ' + traduction[302],'info');",1000);
						
					}
				} // fin de if
				else {
					msg(traduction[210],'info');
					setTimeout("ImgNamey.src=a3.src;ImgNamex.src=a3.src;msg(traduction[211],'info');PassVerif = 0;", 1200);
					count=0;
				}
			}
	}
}
}