// ******** Fonctions de gestion du questionnaire ********
//
//			*********************************************************************
//			*																	*
//			*	  Retourne true si la chaine n'est constituée que d'espaces		*
//			*																	*
//			*********************************************************************

function estVide(chaine){

	var chaine_vide;
	var table;
	chaine_vide = true;
	table = chaine.split("");
	
	for (j=0; j<table.length; j++){
		if (table[j] != " "){
			chaine_vide = false;
		}
	}

	return chaine_vide;
	
}

//			*********************************************************************
//			*																	*
//			*			Remplace les accents par leur code html					*
//			*																	*
//			*********************************************************************

function traiter_accents_html(inputList){
	
	var input;
	
	input = inputList["raison_sociale"];
	input.value = accents_codehtml(input.value);
	
	input = inputList["nom"];
	input.value = accents_codehtml(input.value);
	
	input = inputList["prenom"];
	input.value = accents_codehtml(input.value);
	
	input = inputList["question"];
	input.value = accents_codehtml(input.value);

}

//			*********************************************************************
//			*																	*
//			*			Remplace le code html par le code en octal				*
//			*																	*
//			*********************************************************************

function traiter_accents_octal(inputList){
	
	var input;
	
	input = inputList["raison_sociale"];
	input.value = accents_codeoctal(input.value);

	input = inputList["nom"];
	input.value = accents_codeoctal(input.value);
	
	input = inputList["prenom"];
	input.value = accents_codeoctal(input.value);
	
	input = inputList["question"];
	input.value = accents_codeoctal(input.value);
	
}

//			*********************************************************************
//			*																	*
//			*					  Vérification des coordonnées					*
//			*																	*
//			*********************************************************************

function verif_coordonnees(){

	var alertTxt;
	var valide;
	var input;
	
	alertTxt = "Veuillez renseigner :\n";
	valide = true;
	
	for (i=1; i<=5; i++){
		input = document.getElementById("coordonnees_"+i);
   		if (input.value.length==0 || estVide(input.value)){
			alertTxt += " - Le champs " + input.name + "\n";
			valide = false;
		}
	}
	
	if(!valide){
		alert(alertTxt);
	}	
	return valide;	
}

//			*********************************************************************
//			*																	*
//			*			  		Vérification du telephone						*
//			*																	*
//			*********************************************************************

function verif_telephone(champs){
		
	var numero;
	var valide;
	var chiffres = "";
	var numero_ss_espace = "";
	
	numero = champs.value;
	
	valide = true;
	table_carac = numero.split("");
	for (i=0; i<numero.length; i++){
		if (table_carac[i].search(/[0-9]/) != -1){
			chiffres += table_carac[i];
		}
		if (table_carac[i] != " "){
			numero_ss_espace += table_carac[i];
		}
	}
	
	if(chiffres.length != 10){
		alert("Le num\351ro de t\351l\351phone doit contenir 10 chiffres");
		valide = false;
	}
	else if(numero_ss_espace.length != 10 && numero_ss_espace.length != 14){
		alert("La saisie du num\351ro de t\351l\351phone est incorrecte (ex: 01 23 45 67 89)");
		valide = false;
	}
	else if(numero_ss_espace.length == 14){
		table_ss_espace = numero_ss_espace.split("")
		separateur = table_ss_espace[2];
		if (separateur != "." && separateur != "-"){
			alert("La saisie du num\351ro de t\351l\351phone est incorrecte (ex: 01 23 45 67 89)");
			valide = false;
		}
		else{
			i = 1;
			while(i<4 && valide){
				if (table_ss_espace[3*i-1] != separateur){
					alert("La saisie du num\351ro de t\351l\351phone est incorrecte (ex: 01 23 45 67 89)");
					valide = false;
				}
				i++;
			}
		}
	}
	
	if(valide){
		champs.value = chiffres;
	}
	
	return valide;
}

//			*********************************************************************
//			*																	*
//			*			  	Vérification de l'adresse e-mail					*
//			*																	*
//			*********************************************************************

function verif_email(adresse){
	
	var valide;
	valide = true;
	
	if (adresse.search(/^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/) == -1){
  		alert("votre adresse e-mail n'est pas correcte");
		valide = false
	}
	
	return valide;
		
}

//			*********************************************************************
//			*																	*
//			*	 	 			Vérification de la question						*
//			*																	*
//			*********************************************************************

function verif_question(question){

	var alertTxt;
	var valide;

	valide = true;
	
	if(question.length==0 || estVide(question)){
		alertTxt = "Saisissez votre question.";
		alert(alertTxt);
		valide = false;
	}	
	return valide;	

}

//			*********************************************************************
//			*																	*
//			*Fonction vérifiant les saisies de tous les champs	du questionnaire*
//			*																	*
//			*********************************************************************

function valider(){
	
	var formlaire_valide;
	var inputList;
	
	formulaire_valide = true;
	inputList = document.getElementById("formulaire").elements;
	alertTxt = "Veuillez renseigner :\n";

	formulaire_valide = verif_coordonnees(inputList);

	if(formulaire_valide){formulaire_valide = verif_telephone(inputList["telephone"]);}

	if(formulaire_valide){formulaire_valide = verif_email(inputList["email"].value);}
	
	if(formulaire_valide){formulaire_valide = verif_question(inputList["question"].value);}
	
	if (formulaire_valide){
		if(confirm("Voulez-vous envoyer cette question ?")){
			traiter_accents_html(inputList);
			document.getElementById("formulaire").submit();
			traiter_accents_octal(inputList);
		}
	}
}

