// ******************************************************************************************
// ******************************* VALIDATION / SAUVEGARDE **********************************
// ******************************************************************************************

// ********** Liste des champs à valider pour la sauvegarde d'un document "Candidature". **********
function valideCandidature(frm)
{	// // alert("Début de la sauvegarde.");
	if ((champRenseigner(frm.titre, "Le titre est obligatoire.") == true) && (champListeRenseigner(frm.departement, "Le département est obligatoire.")) &&
		(champListeRenseigner(frm.domaine, "Le domaine d'activité est obligatoire.")) && (champRenseigner(frm.fonction, "La fonction recherchée est obligatoire.")) &&
		(champRenseigner(frm.nom, "Les prénom et nom sont obligatoires.")) && (champRenseigner(frm.adresse, "L'adresse postale obligatoire.")) &&
		(champEmailRenseigner(frm.mail, "L'adresse Email est obligatoire.","Votre adresse Email est incorrecte.")) && 
		(champVerifExtension(frm.cv, "Le CV doit être au format 'doc' ou 'pdf'.")) &&
		(champVerifExtension(frm.lettre, "La lettre doit être au format 'doc' ou 'pdf'.")))
	{	
//		 alert("Votre candidature a été enregistrée.");
		return true;
	}
	return false;
}

// ********** Liste des champs à valider pour la sauvegarde d'un document "Offre d'emploi". **********
function valideOffreEmploi(frm)
{	// // alert("Début de la sauvegarde.");
	if ((champRenseigner(frm.titre, "Le titre est obligatoire.") == true) && (champListeRenseigner(frm.region, "La région est obligatoire.")) &&
		(champListeRenseigner(frm.domaine, "Le domaine d'activité est obligatoire.")) && (champRenseigner(frm.fonction, "La fonction est obligatoire.")) &&
		(champRenseigner(frm.contact, "La personne à contacter est obligatoire.")) && (champEmailRenseigner(frm.mail, "L'adresse Email est obligatoire.","Votre adresse Email est incorrecte."))
		&& (champVerifExtension(frm.fichier, "Le fichier joint doit être au format 'doc' ou 'pdf'.")))
	{	
//		 alert("L'offre d'emploi a été enregistrée.");
		return true;
	}
	return false;
}


// ********** Liste des champs à valider pour la sauvegarde d'un document "Réponse à une offre". **********
function valideReponse(frm)
{	
	if ((champRenseigner(frm.titrecand, "Le titre est obligatoire.") == true) && (champListeRenseigner(frm.departementcand, "Le Département est obligatoire.")) &&
		(champListeRenseigner(frm.domainecand, "Le domaine d'activité est obligatoire.")) && (champRenseigner(frm.fonctioncand, "La fonction est obligatoire.")) &&
		(champRenseigner(frm.nomcand, "Les prénom et nom sont obligatoires.")) && (champRenseigner(frm.adressecand, "L'adresse postale obligatoire.")) &&
		(champEmailRenseigner(frm.mailcand, "L'adresse Email est obligatoire.","Votre adresse Email est incorrecte.")) && 
		(champVerifExtension(frm.cvcand, "Le fichier joint doit être au format 'doc' ou 'pdf'.")) &&
		(champVerifExtension(frm.lettrecand, "La lettre doit être au format 'doc' ou 'pdf'.")))
	{	
//		 alert("La réponse à une offre a été enregistrée.");
		return true;
	}
	return false;
}


// ********** Test si un champ n'est pas vide **********
function champRenseigner(champ, messageErreur)
{	 // alert("Test si le champ " + champ.name + " est vide. (champ simple)");
	if (champ.value == "")
	{	 alert(messageErreur);
		champ.focus();
		return false;
	}
	return true;
}

// ********** Test si un champ n'est pas vide et si il ne dépasse pas une certaine taille **********
function champVerifLong(champ, taille, messageErreur)
{	 // alert("Test si le champ " + champ.name + " est vide. (champ simple)");
	if(champ.value.length > taille)
	{	alert(messageErreur);
		champ.focus();
		return false;
	}
	return true;
}

// ********** Test si un champ e-mail est correct **********
function champEmailRenseigner(champ, messageVide,messageFormat)
{	 // alert("Test si le champ " + champ.name + " est valide. (champ simple)");
	
	
	var reg=RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$");
	if (champ.value == "")
	{
		alert(messageVide);
		champ.focus();
		return false;
	}
	
	else if(reg.test(champ.value))
	{
		return(true);
	}
	else
	{
		alert(messageFormat);
		champ.focus();
		return(false);
	}

}

// ********* Test si un champ multivalué ou une liste n'est pas vide **********
function champListeRenseigner(champ, messageErreur)
{	 // alert("Test si le champ " + champ.name + " est vide. (champ liste)");
	var estRenseigner = false;
	for (index = 0; index < champ.length; index ++)
	{	if (champ.options[index].selected)
		{	if (champ.options[index].text != "")
			{	estRenseigner = true;
				return true;
			}
		}
	}
	if (estRenseigner == false)
	{ alert(messageErreur);
		champ.focus();
		return false;
	}
	return true;
}
// ********* Test si le nom du fichier attaché a la bonne extension **********
function champVerifExtension(champ, messageErreur)
{//	  alert("Champ " + champ.name + " : " + champ.value);
	if ((champ.value.indexOf(".doc")>0)||(champ.value.indexOf(".docx")>0)||(champ.value.indexOf(".pdf")>0) || (champ.value == "")) {
         		return true 
      	} else {
		 alert(messageErreur);
		return false;
      	}
}

