// JavaScript Document

<!-- Ecriture de cookies -->
function writeCookie(nom, valeur) {
	var argv=writeCookie.arguments;
	var argc=writeCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function readCookie(nom) {
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	
	}
	return null;
}
function deleteCookie(nom) {
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	writeCookie(nom,null,date);
}


function resizeMenu(obj){
	var hauteur;
	var heightdiv;
	var target = obj;
	var sEtatMenu = document.getElementById(obj).getAttribute("open");
	date=new Date;
	date.setFullYear(date.getFullYear()+10);
	
	<!-- Recuperation de la taille -->
	if (document.getElementById(obj).style.height)	{
		hauteur = parseInt(document.getElementById(obj).style.height);
	} else {
		hauteur = document.getElementById(obj).offsetHeight;
		var a = readCookie(obj+"hauteur");
		
		<!-- Si la hauteur actuelle du div est plus grande que celle contenue dans le cookie, on l'ecrit dans celui ci. Permet de récupérer la taille max -->
		if(hauteur > a)
			writeCookie(obj+"hauteur", hauteur, date, "/");
		}
	
	<!-- Selon l'etat du div  -->
	switch(sEtatMenu) {
		<!-- Le menu est enroulé, on veut le dérouler -->
		case "false" :
			heightdiv = readCookie(obj+"hauteur");
			
			<!-- Réglage de la vitesse -->			
			if(hauteur<(0.5*heightdiv))
			hauteur = hauteur+12;
			
			if(hauteur>=(0.5*heightdiv) && hauteur<(0.75*heightdiv))
			hauteur = hauteur+10;
			
			if(hauteur>=(0.75*heightdiv) && hauteur<(0.8*heightdiv))
			hauteur = hauteur+5;
		
			if(hauteur>=(0.8*heightdiv) && hauteur<(0.85*heightdiv))
			hauteur = hauteur+4;
			
			if(hauteur>=(0.85*heightdiv) && hauteur<(0.9*heightdiv))
			hauteur = hauteur+3;
	
			if(hauteur>=(0.9*heightdiv) && hauteur<(0.95*heightdiv))
			hauteur = hauteur+2;
			
			if(hauteur>(0.95*heightdiv))
			hauteur = hauteur+1;
			
			
			document.getElementById(obj).style.height=hauteur+"px";
			if (hauteur < heightdiv){
				<!-- Tant que la hauteur actuelle est inférieure a la taille max contenue dans le cookie -->
				setTimeout("resizeMenu('"+obj+"')", 0.1);
			}		
			if (hauteur == heightdiv) {
				<!-- Une fois le menu déroulé, on change l'attribut open du div pour dire qu'il est ouvert -->
				document.getElementById(obj).setAttribute("open","true");
			}
	
			writeCookie(obj, "open", date, "/");
			break;
			
		case "true" :
			<!-- Le menu est déroulé, on veut l'enrouler -->		
			heightdiv = readCookie(obj+"hauteur");
			
			<!-- Réglage de la vitesse -->	
			if(hauteur>(0.5*heightdiv))
			hauteur = hauteur-12; 
			
			if(hauteur<=(0.5*heightdiv) && hauteur>(0.25*heightdiv))
			hauteur = hauteur-10;
			
			if(hauteur<=(0.25*heightdiv) && hauteur>(0.2*heightdiv))
			hauteur = hauteur-5;
			
			if(hauteur<=(0.2*heightdiv) && hauteur>(0.15*heightdiv))
			hauteur = hauteur-4;
			
			if(hauteur<=(0.15*heightdiv) && hauteur>(0.10*heightdiv))
			hauteur = hauteur-3;
			
			if(hauteur<=(0.10*heightdiv) && hauteur>(0.05*heightdiv))
			hauteur = hauteur-2;
				
			if(hauteur<=(0.05*heightdiv))
			hauteur = hauteur-1;
						
			document.getElementById(obj).style.height=hauteur+"px";
			
			if (hauteur > 0) {
				<!-- Tant que la hauteur actuelle est plus grande que 0 -->
				setTimeout("resizeMenu('"+obj+"')", 0.1);
			}
			if(hauteur == 0) {
				<!-- Quand le menu est enroulé, on change l'attribut open du div pour dire qu'il est fermé -->
				document.getElementById(obj).setAttribute("open","false");
			}
			
			writeCookie(obj, "close", date, "/");
			break;
	}
}

function evalPwd(pass){
	document.getElementById("sm").style.display = 'block';

	var nSecurite = 0;
	
	// le mot de passe doit obligatoirement comprendre 5 charactères
	if (pass.length >= 5) {
		// si le mot de passe fait moins de 7 charactères et ne contient aucun chiffre, il est faible
		if (pass.length < 7) {
			nSecurite = 1;
		}
		// si le mot de passe fait moins de 7 charactères et qu'il contient au moins un chiffre et une majuscule, il est moyen
		if (pass.length < 7 && pass.search("[0-9]") != -1 && pass.search("[A-Z]") != -1) {
			nSecurite = 2;
		}
		// si le mot de passe fait plus de 7 charactères
		if (pass.length >=7) {
			// si le mot de passe contient soit un chiffre soit une majuscule il est moyen
			if (pass.search("[0-9]") != -1 || pass.search("[A-Z]") != -1) {
				nSecurite = 2;
			} else {
				// sinon il reste faible
				nSecurite = 1;
			}
		}
		// si le mot de passe fait plus de 10 charactères, il est moyen
		if (pass.length >=10) {
			nSecurite = 2;
		}
		// si le mot de passe fait plus de 8 charactères et qu'il contient au moins un chiffre et une majuscule, il est fort
		if (pass.length >= 8 && pass.search("[0-9]") != -1 && pass.search("[A-Z]") != -1) {
			nSecurite = 3;
		}
	}
	
	// mise à jours des class CSS
	switch(nSecurite) {
		case 0: 
			document.getElementById("court").className = "blue";
			document.getElementById("faible").className = "inactive";
			document.getElementById("moyen").className = "inactive";
			document.getElementById("fort").className = "inactive";
			break;
		case 1:
			document.getElementById("court").className = "redd";
			document.getElementById("faible").className = "redd";
			document.getElementById("moyen").className = "inactive";
			document.getElementById("fort").className = "inactive";
			break;
		case 2:
			document.getElementById("court").className = "yellow";
			document.getElementById("faible").className = "yellow";
			document.getElementById("moyen").className = "yellow";
			document.getElementById("fort").className = "inactive";
			break;
		case 3:
			document.getElementById("court").className = "green";
			document.getElementById("faible").className = "green";
			document.getElementById("moyen").className = "green";
			document.getElementById("fort").className = "green";
			break;
	}
}


function detectCaractere(chaine) {
	// Liste des caractères interdits
	var sCaracteresInterdits = "\`\²\%\*\,\.\?\;\:\§\!\-\#\$\£\¤\(\)\~\/\\\'\=\+\{\}\[\]|^@&\"\"\<\>©®ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ";
	
	// Initialisation des variables
	var i=0;
	var bResultat = true;
	var nCaracteresTotal=chaine.length;
	var sPassword = '';
	var nCaracteresInterdits = 0;
	
	if(chaine == '') {
		document.getElementById('caract').setAttribute("class","erreur");
		document.getElementById('caract').innerHTML = 'Veuillez renseigner le pseudo'; 
	} else {
		// On boucle pour extraire chaque caractère de la chaine passée en argument, et on teste si le caractère est interdit.
		for (var i=0; i<nCaracteresTotal; i++) {
			sCaractereActuel = chaine.substring(i,i+1);
			sCaractereActuel = sCaractereActuel.replace(/é/gi, "e");
			if (sCaracteresInterdits.indexOf(sCaractereActuel)!=(-1)) { 
				bResultat = false;
				nCaracteresInterdits++;
				sPassword += '';
			} else {
				sPassword += sCaractereActuel;
			}
		}
		
		// On traite le résultat : si bResultat est false, cela signifie que la chaine contient des caracteres interdits, on affiche un message avec le nombre de caracteres interdit, et on change la value du champ
		// nom avec le nouveau login sans caracteres interdits.
		if (bResultat==false) {
			document.getElementById('caract').setAttribute("class","erreur");
			document.getElementById('caract').innerHTML = (nCaracteresInterdits < 2) ? 'Attention, usage d\'un caract&egrave;re interdit' : 'Attention, usage de '+nCaracteresInterdits+' caract&egrave;res interdits';
			document.form_Register.p_Login.value = sPassword;
		} else { 
			document.getElementById('caract').setAttribute("class","confirmation");
			document.getElementById('caract').innerHTML = 'Pseudo '+chaine+' autoris&eacute;'; 
		}
	}
}


function updateMenu(obj) {
	switch(obj) {
		case "ecrire" :
			document.getElementById('ecrire').setAttribute("class","active");
			document.getElementById('recu').setAttribute("class","recu");
			document.getElementById('envoi').setAttribute("class","envoi");
			document.getElementById('config').setAttribute("class","config");
			break;
		case "recu" :
			document.getElementById('ecrire').setAttribute("class","ecrire");
			document.getElementById('recu').setAttribute("class","active");
			document.getElementById('envoi').setAttribute("class","envoi");
			document.getElementById('config').setAttribute("class","config");
			break;
		case "envoi" :
			document.getElementById('ecrire').setAttribute("class","ecrire");
			document.getElementById('recu').setAttribute("class","recu");
			document.getElementById('envoi').setAttribute("class","active");
			document.getElementById('config').setAttribute("class","config");
			break;
		case "config" :
			document.getElementById('ecrire').setAttribute("class","ecrire");
			document.getElementById('recu').setAttribute("class","recu");
			document.getElementById('envoi').setAttribute("class","envoi");
			document.getElementById('config').setAttribute("class","active");
			break;
		default : break;

	
	
	}
}



