//FONCTIONS DE TEST DES FORMULAIRES

//CHAMPS VIDE START-------------------------------------------------------------------------------------------------------------------
function estVide(controle, texte){  

	alerte = "Veuillez entrer votre "+texte+" !";
 
 	if(document.formulaire.elements[controle].value == "") 
 	{
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
 	}else{
 		return true;
 	}
}
 
function TestVide(tableau){
 	
	theForm = document.getElementById('formulaire');
	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estVide(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//CHAMPS VIDE END-------------------------------------------------------------------------------------------------------------------


//CHAMPS DIFFERENTS START-------------------------------------------------------------------------------------------------------------------

<!--Attention, le premier champs devra etre de type "nom" et le seconde "nom2"-->

function estDifferent(controle1, texte){  

	alerte = "Les "+texte+" sont différents!";
	controle2 = controle1+"2";
	
 	if(document.formulaire.elements[controle1].value != document.formulaire.elements[controle2].value) 
 	{
		document.formulaire.elements[controle2].value = '';
		document.formulaire.elements[controle2].focus();
		alert(alerte);
		return false;
 	}else{
 		return true;
 	}
}

function TestDifferent(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estDifferent(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 

//CHAMPS DIFFERENTS END-------------------------------------------------------------------------------------------------------------------



//SELECT MULTIPLE START-------------------------------------------------------------------------------------------------------------------
function estSelect(f,texte){ 
	
	alerte = "Veuillez selectionner au moins "+texte+" !";
	
	for(j=0;j<document.forms[0].elements[f].length;j++){  
   		if(document.forms[0].elements[f][j].selected==true){  
    		return true ;
   		}  
	}
	
	document.forms[0].elements[f].focus();
 	alert(alerte);
	return false;
}
 
function TestSelect(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estSelect(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//SELECT MULTIPLE END-------------------------------------------------------------------------------------------------------------------



//OPTION COCHEE START-------------------------------------------------------------------------------------------------------------------
function estCochee(f,texte){ 
	
	alerte = "Veuillez cocher au moins "+texte+" !";
	
	for(j=0;j<document.forms[0].elements[f].length;j++){     
   		if(document.forms[0].elements[f][j].checked){  
    		return true ;
   		}  
	}
	
	document.forms[0].elements[f][1].focus();
 	alert(alerte);
	return false;
}
 
function TestCochee(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estCochee(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//OPTION COCHEE END-------------------------------------------------------------------------------------------------------------------



//CHAMPS NUMERIQUE START-------------------------------------------------------------------------------------------------------------------
function estNumerique(controle, texte){  
	
	var chkZ = 1;
	alerte = "Votre "+texte+" doit être un nombre!";

	
	for(j=0;j < document.formulaire.elements[controle].value.length;++j){
   		if(document.formulaire.elements[controle].value.charAt(j) < "0" || document.formulaire.elements[controle].value.charAt(j) > "9"){
			chkZ = -1;
		}
	}
 
 	if(chkZ == -1) 
 	{
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
 	}else{
 		return true;
 	}
}
 
function TestNumerique(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estNumerique(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//CHAMPS NUMERIQUE END-------------------------------------------------------------------------------------------------------------------


//CHAMPS SPECIAUX START-------------------------------------------------------------------------------------------------------------------
function estSpeciaux(controle, texte){  
	
	alerte = "Les caractères spéciaux sont interdits pour le champs "+texte+" !";
	champs = document.formulaire.elements[controle].value;
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
	var ch;
	for (i = 0; i < champs.length; i++) {
		ch = (champs.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) || (ch == " ") || (ch == "é") || (ch == "è") || (ch == "î") || (ch == "'") )) {
				document.formulaire.elements[controle].focus();
				alert(alerte);
				return false;
		}
	}
}
 
function TestSpeciaux(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (p=0; p < theForm.elements.length; p++) {
		ele = theForm.elements[p];

		if(tableau[ele.name]){
			if(estSpeciaux(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//CHAMPS SPECIAUX END-------------------------------------------------------------------------------------------------------------------
 
 
 
//CHAMPS EMAIL START-------------------------------------------------------------------------------------------------------------------
function estEmail(controle, texte) {
	// Cette fonction vérifie la bon format d'une adresse e-mail.
	// Comme :
	// user@domain.com ou user.perso@domain.com
	emailAddr = document.formulaire.elements[controle].value;
	if(emailAddr=='')
		return true;
	alerte = "Le champs "+texte+" n'est pas une adresse électronique!!";
	var i;
	
	// Recherche de @
	i = emailAddr.indexOf("@");
	if (i == -1) {
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
	}
	
	// Séparation du nom de l'utilisateur et du nom de domaine.
	var username = emailAddr.substring(0, i);
	var domain = emailAddr.substring(i + 1, emailAddr.length)

	// Recherche des espaces au début du nom de l'utilisateur.
	i = 0;
	while ((username.substring(i, i + 1) == " ") && (i < username.length)) {
		i++;
	}
	// Les enlève s'il en trouve.
	if (i > 0) {
		username = username.substring(i, username.length);
	}

	// Recherche d'espaces à la fin du nom de domaine.
	i = domain.length - 1;
	while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
		i--;
	}
	// Les enlève s'il en trouve.
	if (i < (domain.length - 1)) {
		domain = domain.substring(0, i + 1);
	}

	// Vérifie que le nom de l'utilisateur et du domaine ne soit pas vide.
	if ((username == "") || (domain == "")) {
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
	var ch;
	for (i = 0; i < username.length; i++) {
		ch = (username.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				document.formulaire.elements[controle].focus();
				alert(alerte);
				return false;
		}
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de domaine
	for (i = 0; i < domain.length; i++) {
		ch = (domain.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || 
			((ch >= "0") && (ch <= "9")) ||
			(ch == "_") || (ch == "-") || (ch == "."))) {
				document.formulaire.elements[controle].focus();
				alert(alerte);
				return false;
		}
	}

// Ajouter ci-dessous de nouveaux noms de domaine.
// Voir tous les noms de domaine sur http://www.toulouse-renaissance.net/c_outils/c-nom-domaine.htm
//
var aSuffix = new Array("com","net","int","aero","biz","museum","name","info","coop","pro","eu","edu","org","gov","mil","bj","dz","de","ad","be","ca","bf","bi","cm","cf","cg","cd","ci","dj","fr","ga","gp","gf","lu","mg","ml","ma","mq","mr","mc","nc","pf","re","pm","sn","ch","td","tf","tn");
	var bFoundSuffix = false;
	i = 0;
	while (i < aSuffix.length) {
		if (("." + aSuffix[i]) == domain.substring(domain.length - aSuffix[i].length - 1, domain.length)) {
			return true;
		}
		i++;
	}
	// Si le nom de domaine est inconnu  : return false
	document.formulaire.elements[controle].focus();
	alert(alerte);
	return false;
	
}	
 
function TestEmail(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (p=0; p < theForm.elements.length; p++) {
		ele = theForm.elements[p];

		if(tableau[ele.name]){
			if(estEmail(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 



/*
function estEmail(controle, texte){  
	
	
	alerte = "Le champs "+texte+" n'est pas une adresse électronique!!";

	 ii=document.formulaire.elements[controle].value.indexOf("@")
	 j=document.formulaire.elements[controle].value.indexOf(".",ii)
	 k=document.formulaire.elements[controle].value.indexOf(",")
	 kk=document.formulaire.elements[controle].value.indexOf(" ")
	 jj=document.formulaire.elements[controle].value.lastIndexOf(".")+1
	 len=document.formulaire.elements[controle].value.length

 	if ((ii>0) && (j>(1+1)) && (k==-1) && (kk==-1) && (len-jj >=2) && (len-jj<=3)) 
	{
		return true;
			
 	}else {
			
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
 	}

}
*/
//CHAMPS EMAIL END-------------------------------------------------------------------------------------------------------------------


//CHAMPS TAILLE START-------------------------------------------------------------------------------------------------------------------
function estMinimum(controle, taille){  
	
	alerte = "La taille minimum pour ce champs est de  "+taille+" caractères!";

	if (document.formulaire.elements[controle].value.length< taille){
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
	}else{
		return true;
	}
}
 
function TestMinimum(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estMinimum(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//CHAMPS TAILLE END-------------------------------------------------------------------------------------------------------------------

//CHAMPS TAILLE START-------------------------------------------------------------------------------------------------------------------
function estMaximum(controle, taille){  
	
	alerte = "La taille maximum pour ce champs est de  "+taille+" caractères!";

	if (document.formulaire.elements[controle].value.length> taille){
		document.formulaire.elements[controle].focus();
		alert(alerte);
		return false;
	}else{
		return true;
	}
}
 
function TestMaximum(tableau){
 	
	theForm = document.getElementById('formulaire'); 

	for (i=0; i < theForm.elements.length; i++) {
		ele = theForm.elements[i];

		if(tableau[ele.name]){
			if(estMaximum(ele.name, tableau[ele.name])==false)
			return false;
		}
	}
 	
} 
//CHAMPS TAILLE END-------------------------------------------------------------------------------------------------------------------

//CHAMPS EMAIL DEJA DANS LA BASE START-------------------------------------------------------------------------------------------------------------------
function checkemail(type){
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						if(leselect>0){
							alert("Cet email est déja inscrit dans notre base, veuillez en saisir un autre ou redemander votre mot de passe !!!");
							document.formulaire.email.value='';
							document.formulaire.email.focus();
						}
						
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST",type,true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id de l'auteur
				sel = document.getElementById('email');
				email = sel.value;
				xhr.send("email="+email);
			}

//CHAMPS EMAIL DEJA DANS LA BASE END-------------------------------------------------------------------------------------------------------------------




//CHAMPS PASSWORD FAUX -------------------------------------------------------------------------------------------------------------------
function checkpassword(fichier){
			if(document.getElementById('oldpassword').value != "")
			{
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						leselect = xhr.responseText;
						// On se sert de innerHTML pour rajouter les options a la liste
						if(leselect==0){
							alert("le mot de passe n'est pas correct !!!");
							document.formulaire.oldpassword.value='';
							document.formulaire.oldpassword.focus();
						}
						
					}
				}

				
				// Ici on va voir comment faire du post
				xhr.open("POST",fichier,true);
				// ne pas oublier ça pour le post
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				// ne pas oublier de poster les arguments
				// ici, l'id de l'auteur
				sel = document.getElementById('oldpassword');
				oldpassword = sel.value;
				xhr.send("oldpassword="+oldpassword);
			}
		}

//CHAMPS PASSWORD FAUX-------------------------------------------------------------------------------------------------------------------

//TEXTAREA MAXIMUM-------------------------------------------------------------------------------------------------------------------
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}
//TEXTAREA MAXIMUM-------------------------------------------------------------------------------------------------------------------


