
///////////////////////////////////////////////////////////////////////////////
// Fonctions de vérification de la validité des champs de saisie et des formulaires

// En cas d'erreur, le champ concerné est surligné en rouge.
function surligne(champ, erreur)
{
	if (erreur)
	{champ.style.backgroundColor = "lightcoral";}
	else
	{champ.style.backgroundColor = "";}
}

// Champ radio. Obligatoire.
function champRadio(champ)
{
	// On déclare la variable à 0 (false)
	var ok = 0;

	// On parcourt le tableau de boutons radio
	for(var i=0; i < champ.length; i++)
	{
		// Si le bouton radio est sélectionné, ok passe à true
		if (champ[i].checked == true)
		{ok += 1;}
	}

	// Si ok est à true, la fonction retourne true
	if (ok == 1)
	{return true;}
	else
	{return false;}
}

// Champ select. Obligatoire. (valeurs numériques)
function champSelect(champ)
{
	var valeur = champ.value;

	if (valeur.length == 0 || isNaN(valeur))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ select. Obligatoire. (pour chaînes de caractères)
function champSelectAlpha(champ)
{
	if (champ.value == 0)
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ texte obligatoire.
function champTexteObligatoire(champ)
{
	var texte = champ.value;

	if (texte.length == 0 || texte.length > 200)
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ texte facultatif.
function champTexteFacultatif(champ)
{
	var texte = champ.value;

	if (texte.length > 200)
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ textarea obligatoire.
function champTextAreaObligatoire(champ)
{
	var texte = champ.value;

	if (texte.length < 1)
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ date obligatoire.
function champDateObligatoire(champ)
{
	var cDate = champ.value;

	if (cDate.length == 0 && !cDate.match(/^[0-9]{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ date facultatif.
function champDateFacultatif(champ)
{
	var cDate = champ.value;

	if (cDate.length != 0 && !cDate.match(/^[0-9]{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ url. Facultatif.
function champUrl(champ)
{
	var url = champ.value;

	if (url.length != 0 && !url.match(/^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&amp;%\$#_]*)?$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ mail. Facultatif.
function champMail(champ)
{
	var email = champ.value;

	if (email.length != 0 && !email.match(/^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ téléphone. Facultatif.
function champPhone(champ)
{
	var phone = champ.value;

	if (phone.length != 0 && isNaN(phone))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ image. Facultatif.
function champImg(champ)
{
	var file = champ.value;

	if (file.length != 0 && !file.match(/(.*?)\.(jpg|jpeg|png|JPG|JPEG|PNG)$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ fichier. Obligatoire.
function champFileObligatoire(champ)
{
	var file = champ.value;

	if (file.length == 0 || !file.match(/(.*?)\.(pdf|doc|xls|ppt|ods|odt|odp|rtf|txt|PDF|DOC|XLS|PPT|ODS|ODT|ODP|RTF|TXT)$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ fichier. Facultatif.
function champFileFacultatif(champ)
{
	var file = champ.value;

	if (file.length != 0 && !file.match(/(.*?)\.(pdf|doc|xls|ppt|ods|odt|odp|rtf|txt|PDF|DOC|XLS|PPT|ODS|ODT|ODP|RTF|TXT)$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ code postal. Obligatoire.
function champCodePostalObligatoire(champ)
{
	var codePostal = champ.value;

	if (file.length == 0 && !file.match(/^((0[1-9])|([1-8][0-9])|(9[0-8])|(2A)|(2B))[0-9]{3}$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}

// Champ code postal. Facultatif.
function champCodePostalFacultatif(champ)
{
	var codePostal = champ.value;

	if (file.length != 0 && !file.match(/^((0[1-9])|([1-8][0-9])|(9[0-8])|(2A)|(2B))[0-9]{3}$/))
	{surligne(champ, true); return false;}
	else
	{surligne(champ, false); return true;}
}



////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

// Vérification à l'enregistrement du nouveau rédacteur
function verifRedacteur(f)
{
	var nomOk = champTexteObligatoire(f.nom);
	var prenomOk = champTexteObligatoire(f.prenom);
	var loginOk = champTexteObligatoire(f.login);
	var passwordOk = champTexteObligatoire(f.password);
	var mailOk = champMail(f.mail);
	var statutOk = champSelect(f.statut);
	var erreur = "";

	if (!nomOk) {erreur += "NOM - Vous devez indiquer un nom!\n";}
	if (!prenomOk) {erreur += "PRÉNOM - Vous devez indiquer un prénom!\n";}
	if (!loginOk) {erreur += "IDENTIFIANT - Vous devez indiquer un identifiant!\n";}
	if (!passwordOk) {erreur += "MOT DE PASSE - Vous devez indiquer un mot de passe!\n";}
	if (!mailOk) {erreur += "EMAIL - Cette adresse mail est invalide!\n";}
	if (!statutOk) {erreur += "STATUT - Vous devez indiquer un statut!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'enregistrement d'une date d'agenda
function verifAgenda(f)
{
	var themeOk = champTexteObligatoire(f.theme);
	var jourOk = champSelect(f.dateAgendaJour);
	var moisOk = champSelect(f.dateAgendaMois);
	var anneeOk = champSelect(f.dateAgendaAnnee);
	var intituleDateOk = champTexteObligatoire(f.intituleDate);
	var titreOk = champTexteObligatoire(f.titre);
	var lieuOk = champTexteFacultatif(f.lieu);
	var imgOk = champImg(f.imageAgenda);
	var erreur = "";

	if (!themeOk) {erreur += "THÈME - Vous devez indiquer un thème!\n";}
	if (!jourOk || !moisOk || !anneeOk) {erreur += "DATE - Vous n'avez pas précisé de date!\n";}
	if (!intituleDateOk) {erreur += "INTITULÉ DE LA DATE - Vous devez indiquer un intitulé pour cette date!\n";}
	if (!titreOk) {erreur += "TITRE - Vous devez indiquer un titre!\n";}
	if (!lieuOk) {erreur += "LIEU - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!imgOk) {erreur += "IMAGE - Ce fichier n'a pas un format correct!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'enregistrement du nouvel utilisateur (espace privé)
function verifUtilisateur(f)
{
	var nomOk = champTexteObligatoire(f.nom);
	var prenomOk = champTexteObligatoire(f.prenom);
	var loginOk = champTexteObligatoire(f.login);
	var passwordOk = champTexteObligatoire(f.password);
	var mailOk = champMail(f.mail);
	var statutOk = champRadio(f.categorieElu);
	var roleOk = champRadio(f.statut);
	var erreur = "";

	if (!nomOk) {erreur += "NOM - Vous devez indiquer un nom!\n";}
	if (!prenomOk) {erreur += "PRÉNOM - Vous devez indiquer un prénom!\n";}
	if (!loginOk) {erreur += "IDENTIFIANT - Vous devez indiquer un identifiant!\n";}
	if (!passwordOk) {erreur += "MOT DE PASSE - Vous devez indiquer un mot de passe!\n";}
	if (!mailOk) {erreur += "EMAIL - Cette adresse mail est invalide!\n";}
	if (!statutOk) {erreur += "STATUT - Vous devez indiquer un statut!\n";}
	if (!roleOk) {erreur += "RÔLE - Vous devez indiquer un rôle!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'enregistrement du nouveau document (espace privé)
function verifDocument(f)
{
	var titreOk = champTexteObligatoire(f.titre);
	var fichierOk = champFileObligatoire(f.fichier);
	var categorieOk = champRadio(f.categorie);
	var typeOk = champRadio(f.type);
	var erreur = "";

	if (!titreOk) {erreur += "TITRE - Vous devez indiquer un titre!\n";}
	if (!fichierOk) {erreur += "FICHIER - Vous devez envoyer un fichier!\n";}
	if (!categorieOk) {erreur += "CATÉGORIE - Vous devez indiquer une catégorie!\n";}
	if (!typeOk) {erreur += "TYPE - Vous devez indiquer un type!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'envoi d'une demande d'acte de naissance
function verifActeNaissance(f)
{
	var typeActeOk = champSelectAlpha(f.typeActe);
	var nombreActeOk = champSelectAlpha(f.nombreActe);
	var demandeurOk = champRadio(f.demandeur);
	var nomDemandeurOk = champTexteObligatoire(f.nomDemandeur);
	var nomjeunefilleDemandeurOk = champTexteFacultatif(f.nomjeunefilleDemandeur);
	var prenomDemandeurOk = champTexteObligatoire(f.prenomDemandeur);
	var adresseDemandeurOk = champTextAreaObligatoire(f.adresseDemandeur);
	var codePostalOk = champTexteObligatoire(f.codepostalDemandeur);
	var communeDemandeurOk = champTexteObligatoire(f.communeDemandeur);
	var nomTitulaireOk = champTexteFacultatif(f.nomTitulaire);
	var nomjeunefilleTitulaireOk = champTexteFacultatif(f.nomjeunefilleTitulaire);
	var prenomTitulaireOk = champTexteFacultatif(f.prenomTitulaire);
	var dateNaissanceTitulaireOk = champTexteObligatoire(f.dateNaissanceTitulaire);
	var erreur = "";

	if (!typeActeOk) {erreur += "TYPE D'ACTE - Vous devez indiquer un type d'acte!\n";}
	if (!nombreActeOk) {erreur += "NOMBRE D'ACTE - Vous devez indiquer le nombre d'actes que vous souhaitez recevoir!\n";}
	if (!demandeurOk) {erreur += "VOUS ÊTES... - Vous devez indiquer votre statut!\n";}
	if (!nomDemandeurOk) {erreur += "NOM DU DEMANDEUR - Vous devez indiquer un nom!\n";}
	if (!nomjeunefilleDemandeurOk) {erreur += "NOM DE JEUNE FILLE DU DEMANDEUR - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!prenomDemandeurOk) {erreur += "PRÉNOM DU DEMANDEUR - Vous devez indiquer un prénom!\n";}
	if (!adresseDemandeurOk) {erreur += "ADRESSE DU DEMANDEUR - Vous devez indiquer une adresse!\n";}
	if (!codePostalOk) {erreur += "CODE POSTAL DU DEMANDEUR - Vous devez indiquer un code postal!\n";}
	if (!communeDemandeurOk) {erreur += "COMMUNE DU DEMANDEUR - Vous devez indiquer une commune!\n";}
	if (!nomTitulaireOk) {erreur += "NOM DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!nomjeunefilleTitulaireOk) {erreur += "NOM DE JEUNE FILLE DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!prenomTitulaireOk) {erreur += "PRÉNOM DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!dateNaissanceTitulaireOk) {erreur += "DATE DE NAISSANCE - Vous devez indiquer une date de naissance!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'envoi d'une demande d'acte de naissance
function verifActeMariage(f)
{
	var typeActeOk = champSelectAlpha(f.typeActe);
	var nombreActeOk = champSelectAlpha(f.nombreActe);
	var demandeurOk = champRadio(f.demandeur);
	var nomDemandeurOk = champTexteObligatoire(f.nomDemandeur);
	var nomjeunefilleDemandeurOk = champTexteFacultatif(f.nomjeunefilleDemandeur);
	var prenomDemandeurOk = champTexteObligatoire(f.prenomDemandeur);
	var adresseDemandeurOk = champTextAreaObligatoire(f.adresseDemandeur);
	var codePostalOk = champTexteObligatoire(f.codepostalDemandeur);
	var communeDemandeurOk = champTexteObligatoire(f.communeDemandeur);
	var nomMadameOk = champTexteObligatoire(f.nomMadame);
	var nomjeunefilleMadameOk = champTexteObligatoire(f.nomjeunefilleMadame);
	var prenomMadameOk = champTexteObligatoire(f.prenomMadame);
	var nomMonsieurOk = champTexteObligatoire(f.nomMonsieur);
	var prenomMonsieurOk = champTexteObligatoire(f.prenomMonsieur);
	var dateMariageOk = champTexteObligatoire(f.dateMariage);
	var erreur = "";

	if (!typeActeOk) {erreur += "TYPE D'ACTE - Vous devez indiquer un type d'acte!\n";}
	if (!nombreActeOk) {erreur += "NOMBRE D'ACTE - Vous devez indiquer le nombre d'actes que vous souhaitez recevoir!\n";}
	if (!demandeurOk) {erreur += "VOUS ÊTES... - Vous devez indiquer votre statut!\n";}
	if (!nomDemandeurOk) {erreur += "NOM DU DEMANDEUR - Vous devez indiquer un nom!\n";}
	if (!nomjeunefilleDemandeurOk) {erreur += "NOM DE JEUNE FILLE DU DEMANDEUR - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!prenomDemandeurOk) {erreur += "PRÉNOM DU DEMANDEUR - Vous devez indiquer un prénom!\n";}
	if (!adresseDemandeurOk) {erreur += "ADRESSE DU DEMANDEUR - Vous devez indiquer une adresse!\n";}
	if (!codePostalOk) {erreur += "CODE POSTAL DU DEMANDEUR - Vous devez indiquer un code postal!\n";}
	if (!communeDemandeurOk) {erreur += "COMMUNE DU DEMANDEUR - Vous devez indiquer une commune!\n";}
	if (!nomMadameOk) {erreur += "NOM DE L'ÉPOUSE - Vous devez indiquer un nom!\n";}
	if (!nomjeunefilleMadameOk) {erreur += "NOM DE JEUNE FILLE DU TITULAIRE - Vous devez indiquer un nom!\n";}
	if (!prenomMadameOk) {erreur += "PRÉNOM DE L'ÉPOUSE - Vous devez indiquer un prénom!\n";}
	if (!nomMonsieurOk) {erreur += "NOM DE L'ÉPOUX - Vous devez indiquer un nom!\n";}
	if (!prenomMonsieurOk) {erreur += "PRÉNOM DE L'ÉPOUX - Vous devez indiquer un prénom!\n";}
	if (!dateMariageOk) {erreur += "DATE DE MARIAGE - Vous devez indiquer une date de mariage!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'envoi d'une demande d'acte de décès
function verifActeDeces(f)
{
	var nombreActeOk = champSelectAlpha(f.nombreActe);
	var demandeurOk = champRadio(f.demandeur);
	var nomDemandeurOk = champTexteObligatoire(f.nomDemandeur);
	var nomjeunefilleDemandeurOk = champTexteFacultatif(f.nomjeunefilleDemandeur);
	var prenomDemandeurOk = champTexteObligatoire(f.prenomDemandeur);
	var adresseDemandeurOk = champTextAreaObligatoire(f.adresseDemandeur);
	var codePostalOk = champTexteObligatoire(f.codepostalDemandeur);
	var communeDemandeurOk = champTexteObligatoire(f.communeDemandeur);
	var nomTitulaireOk = champTexteObligatoire(f.nomTitulaire);
	var nomjeunefilleTitulaireOk = champTexteFacultatif(f.nomjeunefilleTitulaire);
	var prenomTitulaireOk = champTexteObligatoire(f.prenomTitulaire);
	var dateDecesOk = champTexteObligatoire(f.dateDeces);
	var erreur = "";

	if (!nombreActeOk) {erreur += "NOMBRE D'ACTE - Vous devez indiquer le nombre d'actes que vous souhaitez recevoir!\n";}
	if (!demandeurOk) {erreur += "VOUS ÊTES... - Vous devez indiquer votre statut!\n";}
	if (!nomDemandeurOk) {erreur += "NOM DU DEMANDEUR - Vous devez indiquer un nom!\n";}
	if (!nomjeunefilleDemandeurOk) {erreur += "NOM DE JEUNE FILLE DU DEMANDEUR - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!prenomDemandeurOk) {erreur += "PRÉNOM DU DEMANDEUR - Vous devez indiquer un prénom!\n";}
	if (!adresseDemandeurOk) {erreur += "ADRESSE DU DEMANDEUR - Vous devez indiquer une adresse!\n";}
	if (!codePostalOk) {erreur += "CODE POSTAL DU DEMANDEUR - Vous devez indiquer un code postal!\n";}
	if (!communeDemandeurOk) {erreur += "COMMUNE DU DEMANDEUR - Vous devez indiquer une commune!\n";}
	if (!nomTitulaireOk) {erreur += "NOM DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!nomjeunefilleTitulaireOk) {erreur += "NOM DE JEUNE FILLE DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!prenomTitulaireOk) {erreur += "PRÉNOM DU TITULAIRE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!dateDecesOk) {erreur += "DATE DE DÉCÈS - Vous devez indiquer une date de décès!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

// Vérification à l'envoi d'une intervention technique
function verifInterventionTechnique(f)
{
	var demandeurOk = champRadio(f.demandeur);
	var nomDemandeurOk = champTexteObligatoire(f.nomDemandeur);
	var prenomDemandeurOk = champTexteObligatoire(f.prenomDemandeur);
	var adresseDemandeurOk = champTextAreaObligatoire(f.adresseDemandeur);
	var codePostalOk = champTexteObligatoire(f.codepostalDemandeur);
	var communeDemandeurOk = champTexteObligatoire(f.communeDemandeur);
	var telephoneDemandeurOk = champTexteFacultatif(f.telephoneDemandeur);
	var mailDemandeurOk = champMail(f.mailDemandeur);
	var interventionOk = champRadio(f.intervention);
	var erreur = "";

	if (!demandeurOk) {erreur += "VOUS ÊTES... - Vous devez indiquer votre statut!\n";}
	if (!nomDemandeurOk) {erreur += "NOM - Vous devez indiquer un nom!\n";}
	if (!prenomDemandeurOk) {erreur += "PRÉNOM - Vous devez indiquer un prénom!\n";}
	if (!adresseDemandeurOk) {erreur += "ADRESSE - Vous devez indiquer une adresse!\n";}
	if (!codePostalOk) {erreur += "CODE POSTAL - Vous devez indiquer un code postal!\n";}
	if (!communeDemandeurOk) {erreur += "COMMUNE - Vous devez indiquer une commune!\n";}
	if (!telephoneDemandeurOk) {erreur += "TÉLÉPHONE - Vous avez écrit trop de caractères dans ce champ!\n";}
	if (!mailDemandeurOk) {erreur += "MAIL - Cette adresse mail n'est pas valide!\n";}
	if (!interventionOk) {erreur += "INTERVENTION - Vous devez préciser votre demande!\n";}

	if (erreur.length > 0)
	{alert(erreur); return false;}
	else
	{return true;}
}

