/* 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){
	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;Champ obligatoire requis.</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;Champ obligatoire requis.</td></tr></table>";
			}else{
				if(!checktelFixe(field.value)){
					document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;Saisissez 10 chiffres.</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;Champ obligatoire requis.</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;Saisissez 5 chiffres.</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;Champ obligatoire requis.</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;Votre email est invalide.</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 "FILE":
			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;Champ obligatoire requis.</td></tr></table>";
			}else{
			if(!checkextension(field.value)){
			   document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;Votre CV doit être au format DOC ou PDF.</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 "LM":
			if (trim(field.value) == ""){
			  nbChamps = 8;
      }else{
			if(!checkextension(field.value)){
			   document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/no-ok.gif'/></td><td valign='middle'>&nbsp;Votre lettre doit être au format DOC ou PDF.</td></tr></table>";
         nbChamps = 9;		
			}else{
				document.getElementById(status).innerHTML = "<table class='txt_status'><tr><td><img src='./images/ok.gif'/></td></tr></table>";
        nbChamps = 9;
        champCorrects++;
			}
    }    
	}
}




// 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.contact.fichier.value = "";
		document.contact.motiv.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 = "";
		document.getElementById("fichierStatus").innerHTML = "";
		document.getElementById("motivStatus").innerHTML = "";
	}
}

// Verifie la conformite du formulaire quand l'utilisateur clic sur Envoyer
function checkFrmFinal(frm){
	champCorrects = 0;
	checkField(frm.nom, "NOTEMPTY", "nomStatus");
	checkField(frm.prenom, "NOTEMPTY", "prenomStatus");
	checkField(frm.adr, "NOTEMPTY", "adrStatus");
	checkField(frm.ville, "NOTEMPTY", "villeStatus");
	checkField(frm.cp, "CP", "cpStatus");
	checkField(frm.tel, "TEL", "telStatus");
	checkField(frm.email, "MAIL", "emailStatus");
	checkField(frm.fichier, "FILE", "fichierStatus");
	checkField(frm.motiv, "LM", "motivStatus");
	if(champCorrects == nbChamps){
		frm.submit();
	}
}

// Verifie la conformite du formulaire quand l'utilisateur clic sur Envoyer
function checkFrmFinalContact(frm){

	champCorrects = 0;
	nbChamps = 7;
	checkField(frm.nom, "NOTEMPTY", "nomStatus");
	checkField(frm.prenom, "NOTEMPTY", "prenomStatus");
	checkField(frm.adr, "NOTEMPTY", "adrStatus");
	checkField(frm.ville, "NOTEMPTY", "villeStatus");
	checkField(frm.cp, "CP", "cpStatus");
	checkField(frm.tel, "TEL", "telStatus");
	checkField(frm.email, "MAIL", "emailStatus");
	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);
}
// Verifie l'extension d'un fichier
function checkextension(str){
  var nom_fichier=(str);
  var nbchar = nom_fichier.length;
  var extension = nom_fichier.substring(nbchar-4,nbchar);
  extension=extension.toLowerCase();
  var result;
  if(extension==".pdf"||extension==".doc"){
    result=true;
  }else{
    result=false;
  }
  return (result);
}


