/* Javascript utilitaire pour la verification de formulaire de mail */

var nbChamps = 7; //nombre de champs a tester
var champCorrects = 0; //comptabilisation des champs corrects lors d'une verification

// Verifie un champ "field" du type "type" et affiche s'il est correct dans la balise span avec id = "status"
function checkField(field, type, status, lang){
	var champObligatoires;
	var cinqChiffres;
	var emailInvalide;
	switch(lang){
		case "fr":
			champObligatoires = "Champ obligatoire requis";
			cinqChiffres = "Saisissez 5 chiffres";
			emailInvalide = "Votre email est invalide";
		break;
		case "en":
			champObligatoires = "Required fields";
			cinqChiffres = "Enter 5 digits";
			emailInvalide = "Your e–mail is not valid";
		break;
		case "de":
			champObligatoires = "Tätigkeitsfeld";
			cinqChiffres = "Erfassen Sie 5 Zahlen";
			emailInvalide = "Ihre Email ist nicht verwendbar";
		break;
		case "es":
			champObligatoires = "Campos obligatorios";
			cinqChiffres = "Introduzca 5 cifras";
			emailInvalide = "Su e-mail no es válido";
		break;
		case "it":
			champObligatoires = "Campi obbligatori";
			cinqChiffres = "Digitare 5 numeri";
			emailInvalide = "La vostra mail non è valida";
		break;
	}
	
	switch(type){
		case "NOTEMPTY":
			if (trim(field.value) == ""){
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ champObligatoires +"</td></tr></table>";
			}else{
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/ok.gif'/></td></tr></table>";
				champCorrects++;
			}
		break;
		case "TEL":
			if (trim(field.value) == ""){
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ champObligatoires +"</td></tr></table>";
			}else{
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/ok.gif'/></td></tr></table>";
				champCorrects++;
			}
		break;
		case "CP":
			if (trim(field.value) == ""){
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ champObligatoires +"</td></tr></table>";
			}else{
				if(!checkCP(field.value)){
					document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ cinqChiffres +"</td></tr></table>";
				}else{
					document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/ok.gif'/></td></tr></table>";
					champCorrects++;
				}
			}
		break;
		case "MAIL":
			if (trim(field.value) == ""){
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ champObligatoires +"</td></tr></table>";
			}else{
				if(!checkemail(field.value)){
					document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;"+ emailInvalide +"</td></tr></table>";		
				}else{
					document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/ok.gif'/></td></tr></table>";
					champCorrects++;
				}
			}
		break;
	}
}

// Reinitialise les messages d'erreur pour les champs du formulaire
function resetForm(){
	if(document.contact) {
		document.contact.nom.value = "";
		document.contact.prenom.value = "";
		document.contact.adr.value = "";
		document.contact.ville.value = "";
		document.contact.cp.value = "";
		document.contact.tel.value = "";
		document.contact.email.value = "";
		document.contact.societe.value = "";
		document.contact.msg.value = "";
		document.getElementById("nomStatus").innerHTML = "";
		document.getElementById("prenomStatus").innerHTML = "";
		document.getElementById("adrStatus").innerHTML = "";
		document.getElementById("villeStatus").innerHTML = "";
		document.getElementById("cpStatus").innerHTML = "";
		document.getElementById("telStatus").innerHTML = "";
		document.getElementById("emailStatus").innerHTML = "";
	}
}

// Verifie la conformite du formulaire quand l'utilisateur clic sur Envoyer
function checkFrmFinal(frm, lang){
	champCorrects = 0;
	checkField(frm.nom, "NOTEMPTY", "nomStatus", lang);
	checkField(frm.prenom, "NOTEMPTY", "prenomStatus", lang);
	checkField(frm.adr, "NOTEMPTY", "adrStatus", lang);
	checkField(frm.ville, "NOTEMPTY", "villeStatus", lang);
	checkField(frm.cp, "CP", "cpStatus", lang);
	checkField(frm.tel, "TEL", "telStatus", lang);
	checkField(frm.email, "MAIL", "emailStatus", lang);
	if(champCorrects == nbChamps){
		frm.submit();
	}
}

// Remplace les espaces par une chaine vide
function trim(string){
  return string.replace(/(^\s*)|(\s*$)/g,"");
} 

// Verifie la syntaxe d'une adresse mail
function checkemail(str){
  var filter=/^.+@.+\..{2,4}$/;
  var result;
  if(filter.test(str)){
    result=true;
  }else{
    result=false;
  }
  return (result);
}

// Verifie la syntaxe d'un tel fixe
function checktelFixe(str){
  var filter=/^0\d{9}/;
  var result;
  if(filter.test(str)){
    result=true;
  }else{
    result=false;
  }
  return (result);
}

// Verifie la syntaxe d'un code postal
function checkCP(str){
  var filter=/\d{5}/;
  var result;
  if(filter.test(str)){
    result=true;
  }else{
    result=false;
  }
  return (result);
}

// Verifie la syntaxe d'un tel portable
function checktelPort(str){
  var filter=/^06\d{8}/;
  var result;
  if(filter.test(str)){
    result=true;
  }else{
    result=false;
  }
  return (result);
}

