// ----------------------------------
// 2010 © Ce fichier JavaScript est l'entière propriété de Philip McDuff. Développeur web
// ----------------------------------
// Création du document le 8 janvier 2010
// ----------------------------------
// Contraintes à suivre pour le bon fonctionnement de la librairie
//
// 1. Pour pouvoir appeler toute fonction de cette librairie, une instruction idDuFormulaire() doit être d'abord présente
// 2. La balise <form>, le input du bouton envoyer ainsi que tous les champs utilisant une fonction de la librairie doit avoir un id
// 3. Si la fonction viderLesChamp est utilisé, tous les inputs(peut importe la sorte, text, checkbox, etc.) doivent avoir un id
// ----------------------------------



// Fonction -1
var tErreursLongueurChampNom = new Array ("", "Mais quel est donc votre nom?");
var tErreursLongueurChampMessage = new Array ("", "Et qu'aviez vous à me dire?");
var tErreursBoutonRadio = new Array ("", "Vous devez sélectionner un bouton radio");
var tErreursTelephone = new Array ("", "Votre numéro de téléphone est invalide");
var tErreursCourriel = new Array ("", "Veuillez entrer un courriel réel");
var tErreursBoiteACocher = new Array ("", "Vous devez cocher la boite");
var tErreursDateDeNaissance = new Array ("", "Veuillez choisir un jour, un mois et une année");

// Fonction -1 terminé



// Fonction 0.0
var idForm;
function idDuFormulaire(idFormulaire){
	
	idForm = idFormulaire;
}

// Fonction 0 terminé



// Fonction 1.0
function viderLesChamps(){

	var lesChampsAVider = document.getElementById(idForm).getElementsByTagName("input");

	for (cptInput=0; cptInput<lesChampsAVider.length; cptInput++){

			if (document.getElementById(lesChampsAVider[cptInput].id).type == "text"){
				
				document.getElementById(lesChampsAVider[cptInput].id).onfocus = viderChamp;
			}
		}
}

// Fonction 1.1
function viderChamp(evenement){

	if (this.etat!="barree"){
		
		this.value="";
		this.etat="barree";
	}
}

// Fonction 1 terminé
// ---------------------------------- 



// Fonction 2.0
function verifierLongueurChamp(idChamp, champErreur, minMax, declencheur, type){

		var valide = executerLongueurChampSubmit(idChamp, champErreur, minMax, type);
		return valide;
	}

// Fonction 2.2
function executerLongueurChampSubmit(idChamp, champErreur, minMax, type){
	
		var valide = "true";
		var tInfoLongueur = minMax.split("-");
	
		if (document.getElementById(idChamp).value.length < tInfoLongueur[0] || document.getElementById(idChamp).value.length > tInfoLongueur[1]){
			if(type == "nom"){
					document.getElementById(champErreur).innerHTML = tErreursLongueurChampNom[1];
				}
			else{
					document.getElementById(champErreur).innerHTML = tErreursLongueurChampMessage[1];
			}
			valide = "false";
		}
		else {
			
		document.getElementById(champErreur).innerHTML = tErreursLongueurChampNom[0];
		}

		return valide;
}

// Fonction 2 terminé
// ----------------------------------



// Fonction 3.0
function verifierBoutonRadio(idBtRadio, champErreur){
	
		var valide = "false";
		var tIdBtRadio = idBtRadio.split("|")
	
		for (var int=0; int < tIdBtRadio.length; int++){

			if (document.getElementById(tIdBtRadio[int]).checked == true){

			valide = "true";
			}
		}
		
		if (valide == "false"){
			
		document.getElementById(champErreur).innerHTML = tErreursBoutonRadio[1];
		}
		else{
		
		document.getElementById(champErreur).innerHTML = tErreursBoutonRadio[0];
		}
		
		return valide;
}

// Fonction 3 terminé



// Fonction 4.0
function verifierNumeroTelephone(idIndicatif, idTelephone, champErreur, declencheur){
	
	if (declencheur == "blur"){

		executerNumeroTelephoneBlur(idIndicatif, idTelephone, champErreur);
	}
	else if (declencheur == "submit"){
		
		var valide = executerNumeroTelephoneSubmit(idIndicatif, idTelephone, champErreur);
		return valide;
	}
}

// Fonction 4.1
function executerNumeroTelephoneBlur(idIndicatif, idTelephone, champErreur){
	
	document.getElementById(idTelephone).onblur = function() {
	
		var formatIndicatif = new RegExp("^[0-9]{3,4}$");
		var formatTelephone = new RegExp("^[0-9]{3}-{0,1}[0-9]{4}$");
		
		if (idIndicatif != ""){
		
			if (formatIndicatif.exec(document.getElementById(idIndicatif).value) == null || formatTelephone.exec(document.getElementById(idTelephone).value) == null){
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[1];
			}
			else{
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[0];
			}
		}
		else {
			
			if (formatTelephone.exec(document.getElementById(idTelephone).value) == null){
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[1];
			}
			else{
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[0];
			}
		}
	}
}

// Fonction 4.2
function executerNumeroTelephoneSubmit(idIndicatif, idTelephone, champErreur){
	
		var valide = "true";
		var formatIndicatif = new RegExp("^[0-9]{3,4}$");
		var formatTelephone = new RegExp("^[0-9]{3}-{0,1}[0-9]{4}$");
		
		if (idIndicatif != ""){
		
			if (formatIndicatif.exec(document.getElementById(idIndicatif).value) == null || formatTelephone.exec(document.getElementById(idTelephone).value) == null){
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[1];
			valide = "false";
			}
			else{
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[0];
			}
		}
		else {
			
			if (formatTelephone.exec(document.getElementById(idTelephone).value) == null){
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[1];
			valide = "false";
			}
			else{
			
			document.getElementById(champErreur).innerHTML = tErreursTelephone[0];
			}
		}
		
		return valide;
}

// Fonction 4 terminé



// Function 5.0
function verifierAdresseCourriel(idChamp, champErreur, declencheur){
	
	if (declencheur == "blur"){

		executerAdresseCourrielBlur(idChamp, champErreur);
	}
	else if (declencheur == "submit"){
		
		var valide = executerAdresseCourrielSubmit(idChamp, champErreur);
		return valide;
	}
}

// Function 5.1
function executerAdresseCourrielBlur(idChamp, champErreur){

	document.getElementById(idChamp).onblur = function() {

		var valeurChamp = document.getElementById(idChamp).value;
		var erreur;
		
		if (valeurChamp == ""){ erreur = tErreursCourriel[1]; }
		else if(valeurChamp.indexOf("@") == -1){ erreur = tErreursCourriel[1]; }
		else if(valeurChamp.indexOf("@") == 0){ erreur = tErreursCourriel[1]; }
		else if(valeurChamp.indexOf("@") != valeurChamp.lastIndexOf("@")){ erreur = tErreursCourriel[1]; }
		else if(valeurChamp.indexOf(".") == -1){ erreur = tErreursCourriel[1]; }
		else if((valeurChamp.lastIndexOf(".") - valeurChamp.indexOf("@")) < 3){ erreur = tErreursCourriel[1]; }
		else if(((valeurChamp.length-1) - valeurChamp.indexOf(".")) < 2){ erreur = tErreursCourriel[1]; }
		else { erreur = tErreursCourriel[0]; }
		
		document.getElementById(champErreur).innerHTML = erreur;
	}
}

// Function 5.2
function executerAdresseCourrielSubmit(idChamp, champErreur){

		var valide = "true";
		var valeurChamp = document.getElementById(idChamp).value;
		
		if (valeurChamp == ""){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if(valeurChamp.indexOf("@") == -1){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if(valeurChamp.indexOf("@") == 0){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if(valeurChamp.indexOf("@") != valeurChamp.lastIndexOf("@")){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if(valeurChamp.indexOf(".") == -1){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if((valeurChamp.lastIndexOf(".") - valeurChamp.indexOf("@")) < 3){ erreur = tErreursCourriel[1]; valide = "false"; }
		else if(((valeurChamp.length-1) - valeurChamp.indexOf(".")) < 2){ erreur = tErreursCourriel[1]; valide = "false"; }
		else { erreur = tErreursCourriel[0]; }
		
		document.getElementById(champErreur).innerHTML = erreur;
		return valide;
}

// Fonction 5 terminé



// Fonction 6.0
function verifierBoiteACocher(idChamp, champErreur){
		
		var valide = "true";
		
		if (document.getElementById(idChamp).checked == false){
			
		document.getElementById(champErreur).innerHTML = tErreursBoiteACocher[1];
		valide = "false";
		}
		else{
		
		document.getElementById(champErreur).innerHTML = tErreursBoiteACocher[0];
		}
		
		return valide;
}	

// Fonction 6 terminé



// Fonction 7.0
function verifierDateDeNaissance(idValeurDeBase, champErreur){

		var valide = "true";
		var tInfoDateNaissance = idValeurDeBase.split("|");
		
		for (var int=0; int < tInfoDateNaissance.length; int++){
			
			var tInfoSelect = tInfoDateNaissance[int].split("=");
	
			if (document.getElementById(tInfoSelect[0]).value == tInfoSelect[1]){
			
			valide = "false";
			}
		}
		
		if (valide == "false"){
		
		document.getElementById(champErreur).innerHTML = tErreursDateDeNaissance[1];
		}
		else {
		
		document.getElementById(champErreur).innerHTML = tErreursDateDeNaissance[0];
		}
		
		return valide;
}

// Fonction 7 terminé



// Fonction 8.0
function validerEnvoiFormulaire(variables){

	var valide = true;
	var tValeurVariables = variables.split("|");
	
	for (var int=0; int < tValeurVariables.length; int++){
	
		if (tValeurVariables[int] == "false"){

		valide = false;
		}
	}
	
	return valide;
}

// Fonction 8 terminé
