/*
	Version 1.1 : 28/04/03 : Ajout de reloaddiplome
	Version 1.2 : 13/05/03 : Ajout du test sur étape 2 formulaire inscription
*/

var defaultEmptyOK = false;

function isEmpty(s)
{
	return ((s == null) || (s.length == 0));
}

function isDigit (c)
{
	return ((c >= "0") && (c <= "9"));
}

function checkInteger(iString) {
	RE = /^[0-9]+$/;
	return (RE.test(iString));
}

function isCodePostal (myStr)
{
	if ( ( myStr.length != 5) ) {
		return false;
	}
	if ( !( checkInteger(myStr) )) {
		return false;
	}
	return true;
}

function isemail(formulaire,champ,alerte) {
	// Création d'un raccourci pour manipuler le champ à tester
	var controle = eval('document.' + formulaire + '.' + champ);
	
	RE = /^[A-Za-z0-9\.\-_]+[@][A-Za-z0-9\-\.]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/;
	if (!RE.test(controle.value)) {
		// On ajoute l'intitulé du champ dans le message d'erreur
		mess += alerte;
		mess += "\n";

		// On marque qu'il ne faut pas valider le formulaire
		necessaire = 1;
	}
}


date_en_cours = 0;
function checkDispo(nDelai)
{
	dateDispo = new Date( document.f_inscription.ENR_AnDispo.value, document.f_inscription.ENR_MoisDispo.value - 1, document.f_inscription.ENR_jourDispo.value, "0", "0" );
	dateMaximum = new Date(); // aujourd'hui
	ateMaximum.setMonth( dateMaximum.getMonth() + nDelai );

	if (dateDispo.getTime() > dateMaximum.getTime()) {
		alert("La date entrée est trop lointaine,\nvotre inscription est impossible actuellement\n\nNous vous invitons à revenir vous inscrire plus tard.");
		document.f_inscription.ENR_jourDispo.value = "";
		document.f_inscription.ENR_AnDispo.value = "";
	}
}

function checkDispobis(nDelai)
{

	dateDispo = new Date( document.inscription.anneeDispo_ENR.value, document.inscription.moisDispo_ENR.value - 1, 1, "0", "0" );
	
	dateMaximum = new Date(); // aujourd'hui
	dateMaximum.setMonth( dateMaximum.getMonth() + nDelai );
	
	if (dateDispo.getTime() > dateMaximum.getTime()) {
		alert("La date entrée est trop lointaine,\nvotre inscription est impossible actuellement\n\nNous vous invitons à revenir vous inscrire plus tard.");
//		document.inscription.ENR_jourDispo.value = "";
		document.inscription.anneeDispo_ENR.value = "";
	}
}



/*
	Fonction qui copie la valeur d'un champs du formulaire vers un autre.
	Exemple : CIVI Ville d'un etablissement
*/
function CopierTexte(sFormu, sFrom, sTo) 
{
	var objFrom = eval('document.' + sFormu + '.' + sFrom);
	var objTo = eval('document.' + sFormu + '.' + sTo);
	
	objTo.value = objFrom.value;
}


// Début de la partie non-spécifique à la page

// Fonction de blocage de la saisie si elle n'est pas conforme
function bloque(formulaire,champ) {
	// Création d'un raccourci pour manipuler le champ
	var controle = eval('document.' + formulaire + '.' + champ);
	
	// On se place sur le champ incriminé
	controle.focus();
	
	// On sélectionne le contenu pour faciliter la reprise de la saisie
	controle.select();
}


// Fonction de contrôle des champs vides

// Début du message qui sera affiché en cas d'un ou plusieurs champ(s) vide(s)
var mess = "Les champs suivants sont necessaires au traitement de votre demande :\n";

// Copie pour réinitialisation
var mess_init = "Les champs suivants sont necessaires au traitement de votre demande :\n";

// Variable marquant l'erreur (0 : tout va bien, 1 : blocage demandé)
var necessaire = 0;

function vide(formulaire,champ,alerte) {
	// Création d'un raccourci pour manipuler le champ à tester
	var controle = eval('document.' + formulaire + '.' + champ);
	
	// Si c'est un champ 'text'
	if ( controle.type == 'text' ) {
		// Et que la valeur du champ comporte moins de 1 caractère (vide)
		if ( controle.value.length < 1 ) {
			// On ajoute l'intitulé du champ dans le message d'erreur
			mess += alerte;
			mess += "\n";
	
			// On marque qu'il ne faut pas valider le formulaire
			necessaire = 1;
		}
	}

	// Si c'est un champ de type mot de passe
	if ( controle.type == 'password' ) {
		if ( controle.value.length < 1 ) {
			mess += alerte;
			mess += "\n";
			necessaire = 1;
		}
	}

	// Si c'est un champ de type texte multilignes
	if ( controle.type == 'textarea' ) {
		if ( controle.value.length < 1 ) {
			mess += alerte;
			mess += "\n";
			necessaire = 1;
		}
	}

	// Si c'est une liste
	if ( controle.type == 'select-one' ) {
		// Si c'est le premier élément qui est sélectionnée (élément vide à indiquer dans le HTML)
		if ( controle.options[0].selected ) {
			mess += alerte;
			mess += "\n";
			necessaire = 1;
		}
	}

	// Si c'est une case à cocher
	if ( controle.type == 'checkbox' ) {
		// Quand elle est cochée, l'état est 'true', ici on cherche l'inverse (false)
		if (!controle.status) {
			mess += alerte;
			mess += "\n";
			necessaire = 1;
		}
	}
}

// Fonction pour le test des boutons radio
function vide_radio(formulaire,champ,alerte) {
	// Création d'un raccourci pour manipuler le champ à tester
	var controle = eval('document.' + formulaire + '.' + champ);
	
	// On déclare par défaut que les champs ne sont pas cochés,
	var non = "hs";
	for ( i = 0; i < controle.length; i++ ) {
		// Si on trouve un bouton coché, on le marque
		if (controle[i].status) {
			non = "ok";
		}
	}

	// Si on n'a pas marqué un champ comme 'coche' (ok)
	if ( non != "ok" ) {
		mess += alerte;
		mess += "\n";
		necessaire = 1;
	}
}


// Fonction de validation du formulaire
function resultat(formulaire) {
	var bResult;
	// Si on a marqué qu'au moins un champ était vide
	if ( necessaire == 1 ) {
		// Affichage du message d'erreur avec tous les champs en erreur
		alert(mess);
		bResult= false;
	}

	// Si aucun champ n'est vide
	if ( necessaire == 0 ) {
		bResult= true;
	}

	// Quoi qu'il arrive, on ré-initialise le message d'erreur pour permettre un autre passage des tests
	mess = mess_init;
	necessaire = 0;

	return bResult;
}

function reloaddiplome(champ) {
	// Création d'un raccourci pour manipuler le champ à modifier
	var formulaire = eval('document.inscription');
	var controle = eval('document.inscription.reloadDiplome');
	controle.value = "1";

	return formulaire.submit();
}


// Fonction de contrôle de validité de la saisie
// Création d'une variable pour marquer s'il y a incohérence de saisie ou pas
var probleme = 0;

// Version 1.0a : 08/04/03
function validite(formulaire,champ,format,mini,maxi) {

	// Initialisation de la variable
	probleme = 0;

	// Les différents tests possibles :
	// On affecte à la variable 'RE' le test d'expression régulière souhaité
	// A : alphabétique
	if ( format == "A" ) {
		RE = /^[A-Za-zàâäéèêëîïôùûçü\s,'\-]+$/;
		strMsg = "Votre saisie doit être alphabétique";
	}
	// AN : alphanumérique
	if ( format == "AN" ) { 
		RE = /^[A-Za-zàâäéèêëîïôùûçü\s,'0-9\-]+$/;
		strMsg = "Votre saisie doit être alphanumérique";
	}
	// N : numérique
	if (( format == "N" ) || ( format == "NS" )) {
		RE = /^[\s\d]+$/;
		strMsg = "Votre saisie doit être numérique";
	}
	// CP : code postal français (5 chiffres)
	if ( format == "CP" ) {
		RE = /^\d{5}$/;
		strMsg = "Votre saisie doit être un code postal valide";
	}
	// D : Date (xx/xx/xx ou xx/xx/xxxx ou xx-xx-xx ou xx-xx-xxxx)
	if ( format == "D" ) {
		RE = /^\d{2}([\/]|[\-])+\d{2}([\/]|[\-])+\d{2}(\d{2})*$/;
		strMsg = "Votre saisie doit être une date valide";
	}
	// EMAIL : email
	if ( format == "EMAIL" ) {
		RE = /^[A-Za-z0-9\.\-_]+[@][A-Za-z0-9\-\.]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/;
		strMsg = "Votre saisie doit être une adresse électronique valide";
	}

	// Création d'un raccourci pour manipuler le champ à tester
	var controle = eval('document.' + formulaire + '.' + champ);

	// On ne fera les tests que si le champ est rempli d'au moins un caractère (pas vide)
	if (controle.value.length > 0) {
		// Si on ne trouve pas dans le champ l'expression régulière recherchée
		if (!RE.test(controle.value)) {
			// Envoi d'une alerte
			alert(strMsg);

			// On marque que la saisie n'est pas cohérente
			probleme = 1;
		}

			if ( format == "N" ) {
				if  (( mini != 0 ) &&  ( maxi != 0 ) && (( controle.value > maxi ) || ( controle.value < mini ))) {
					alert('Vous devez saisir une valeur.');
					probleme = 1;
				}
			} else {
				// Tests de longueur du champ (nombre de caractères saisis)
				// Si il a été spécifié '0', le test n'est pas effectué
				if ( mini != 0 ) {
					// Si la longueur de la saisie est inférieure au minimum demandé
					if ( controle.value.length < mini ) {
						// Envoi d'une alerte
						alert('Vous devez saisir au moins ' + mini + ' caracteres.');
						probleme = 1;
					}
				}
		
				// Si la longueur de la saisie est supérieure au maximum demandé
				if ( maxi != 0 ) {
					if ( controle.value.length > maxi ) {
						alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.');
						probleme = 1;
					}
				}
			}

		// Si on a marqué qu'il y avait un problème
		if ( probleme == 1 ) {
			// On active le blocage du champ
			bloque(formulaire,champ);
		}
	}
}


// Fonction de vérification d'une plage de nombres (entre X et Y)
function check_num(formulaire,champ,plancher,plafond) {
	// Création d'un raccourci pour manipuler le champ à tester
	var controle = eval('document.' + formulaire + '.' + champ);
	
	// Si la valeur de la saisie est inférieure au plancher demandé
	if ( controle.value < plancher ) {
	
	// Envoi d'une alerte
	alert('Votre saisie ne doit pas etre inferieure a ' + plancher + '.');
	
	// On active le blocage du champ
	bloque(formulaire,champ);
	}
	
	// Si la valeur de la saisie est supérieure au plafond demandé
	if ( controle.value > plafond ) {
	alert('Votre saisie ne doit pas etre superieure a ' + plafond + '.');
	bloque(formulaire,champ);
	}
}


// Fonction pour vérifier la cohérence de deux saisies de mot de passe
// Cette fonction se déclenche à partir du second champ uniquement
function check_pw(formulaire,champ1,champ2) {
	// Création de deux raccourcis pour manipuler les champ à comparer
	var prems = eval('document.' + formulaire + '.' + champ1);
	var deuze = eval('document.' + formulaire + '.' + champ2);

	// Si le premier champ n'est pas rempli
	if (!prems.value) {
		// Envoi d'une alerte
		alert('Vous n\'avez pas saisi votre mot de passe');

		// On active le blocage du champ
		bloque(formulaire,champ1);
	} else {
		// Si le premier champ est rempli
		// Si la saisie des deux champ est différente
		if ( prems.value != deuze.value ) {
			// Envoi d'une alerte
			alert('La confirmation de votre mot de passe n\'est pas exacte.');

			// Ré-initialisation des deux champs
			deuze.value = "";
			prems.value = "";

			// On active le blocage du champ
			bloque(formulaire,champ1);
		}
	}
}
// Fin de la partie non-spécifique à la page


// Début de la partie spécifique à la page

	// Fonction pour tester les champs vides (une ligne par champ)
	// Pour autoriser un champ vide, ne pas le référencer dans la liste
	function check_vide_insc(quellePage) {
		if (quellePage==1) {
			vide('inscription', 'ENR_Nom', '- Nom');
			vide('inscription', 'ENR_Prenom', '- Prenom');
			vide('inscription', 'ENR_VilleNaissance', '- Ville de naissance');
			vide('inscription', 'ENR_PaysNaissance', '- Pays de naissance');
			
			vide('inscription', 'ENR_Nationalite', '- Nationalité');
            
            vide('inscription', 'ENR_isDoubleNat', '- Double Nationalité');
			
			vide('inscription', 'ENR_RuePerso', '- Adresse permanente (rue)');
			vide('inscription', 'ENR_VillePerso', '- Adresse permanente (ville)');
			vide('inscription', 'ENR_TelPerso', '- Adresse permanente (téléphone)');
			vide('inscription', 'ENR_PaysPerso', '- Adresse permanente (pays)');
			
			vide('inscription','ENR_MelPro','- Adresse e-mail');
			
			vide('inscription', 'ENR_SituFam', '- Situation de famille');
			vide('inscription', 'ENR_SituPro', '- Situation professionelle');
			vide('inscription', 'ENR_TypeMission', '- Type de mission');

			vide('inscription', 'ENR_Duree', '- Durée de la mission');

			vide('inscription', 'ENR_NiveauEtude', '- Niveau d\'étude');
            
            if ( document.getElementById('ENR_Linkcv').innerText == '' ) {
			mess += '- CV';
			mess += "\n";
			necessaire = 1;
		        };

		} else if (quellePage==2) {
			vide('inscription', 'ENR_Pseudo', '- Pseudo');
			vide('inscription', 'ENR_Login', '- Login');
			vide('inscription', 'ENR_Pass1', '- Mot de passe');
			vide('inscription', 'ENR_Pass2', '- Confirmation mot de passe');
			vide('inscription', 'ENR_RemReponse1', '- Réponse reminder');
			vide('inscription', 'ENR_RemReponse1', '- Confirmation réponse reminder');
		} else if (quellePage==3) {

			vide('demande_apd', 'ENR_Nom_pere', '- Nom du pére');
			vide('demande_apd', 'ENR_Prenom_pere', '- Prenom  du pére');
			vide('demande_apd', 'ENR_VilleNaissance_pere', '- Ville de naissance  du pére');
			vide('demande_apd', 'ENR_Nationalite_pere', '- Nationalité  du pére');
			vide('demande_apd', 'jourNaissance_ENR_pere', '- Le jour de naissance du pére');
			vide('demande_apd', 'anneeNaissance_ENR_pere', '- Année de naissance du pére');

			vide('demande_apd', 'ENR_Nom_mere', '- Nom de la mére');
			vide('demande_apd', 'ENR_Prenom_mere', '- Prenom  de la mére');
			vide('demande_apd', 'ENR_VilleNaissance_mere', '- Ville de naissance  de la mére');
			vide('demande_apd', 'ENR_Nationalite_mere', '- Nationalité de la mére');
			vide('demande_apd', 'jourNaissance_ENR_mere', '- Jour de naissance de la mére');
			vide('demande_apd', 'anneeNaissance_ENR_mere', '- Année de naissance de la mére');



		}
		// Validation (sous conditions) du formulaire
		return resultat('inscription');
	}


	// Fonction pour tester les champs vides (une ligne par champ)
	// Pour autoriser un champ vide, ne pas le référencer dans la liste
	function check_forum() {
		vide('fforum', 'sujet', '- Un sujet');
		vide('fforum', 'message', '- Unmessage');
		vide('fforum', 'auteur', '- Un nom d\'auteur');
			
		vide('fforum','email','- Une adresse e-mail');
		isemail('fforum','email','- Une adresse e-mail valide');

		// Validation (sous conditions) du formulaire
		return resultat('fforum');
	}

	function CheckNum(txtBox){
		if (event.keyCode==9) return;
		var chars = "0123456789";
		var len = txtBox.value.length;
		var sReturn='';
		var car='';

			for (i=0;i<len;i++) {
				car = txtBox.value.charAt(i);
				if(chars.indexOf(car)>=0) {
					sReturn+=car;
				}
			}
			txtBox.value=sReturn;
	}