// Fonction de blocage de la saisie si elle n'est pas conforme
function bloque(formulaire,champ) {
// Creation d'un raccourci pour manipuler le champ
	var controle = eval('document.' + formulaire + '.' + champ);

// On se place sur le champ incrimine
	controle.focus();

// On selectionne le contenu pour faciliter la reprise de la saisie
	controle.select();
	}


// Fonction de controle des champs vides

// Debut du message qui sera affiche 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 reinitialisation
var mess_init = "Les champs suivants sont necessaires au traitement de votre demande :\n";

// Variable marquant l'erreur (0 : tout va bien, 1 : blocage demande)
var necessaire = 0;

function vide(formulaire,champ,alerte) {

// Creation d'un raccourci pour manipuler le champ a 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 caractere (vide)
		if ( controle.value.length < 1 ) {

// On ajoute l'intitule 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 une liste
	if ( controle.type == 'select-one' ) {

// Si c'est le premier element qui est selectionne (element vide a indiquer dans le HTML)
		if ( controle.options[0].selected ) {
			mess += alerte;
			mess += "\n";
			necessaire = 1;
			}
		}
	}

// Fonction de validation du formulaire
function resultat(formulaire) {

	// Si on a marque qu'au moins un champ etait vide
	if ( necessaire == 1 ) {

	// Affichage du message d'erreur avec tous les champs en erreur
		alert(mess);
		}

	// Si aucun champ n'est vide
	else {
		var formu = eval('document.' + formulaire);

	// Validation du formulaire
		formu.submit();
		}

	// Quoi qu'il arrive, on re-initialise le message d'erreur pour permettre un autre passage des tests
	mess = mess_init;
	necessaire = 0;
}


// Fonction de controle de validite de la saisie
// Creation d'une variable pour marquer s'il y a incoherence de saisie ou pas
var probleme = 0;

function validite(formulaire,champ,format,mini,maxi) {

// Initialisation de la variable
	probleme = 0;

// Les differents tests possibles :
// On affecte a la variable 'RE' le test d'expression reguliere souhaite
//	A	: alphabetique
	if ( format == "A" ) { RE = /^([A-Za-z]+[ ]*[-]*[A-Za-z]*)+$/;}

//	CP	: code postal francais (5 chiffres)
	if ( format == "CP" ) { RE = /^\d{5}$/;}

//	EMAIL	: email
	if ( format == "EMAIL" ) { RE = /^[A-Za-z0-9\.\-_]+[@][A-Za-z0-9\-\.]+[\.][A-Za-z][A-Za-z][A-Za-z]?$/;}

// Creation d'un raccourci pour manipuler le champ a tester
	var controle = eval('document.' + formulaire + '.' + champ);

// On ne fera les tests que si le champ est rempli d'au moins un caractere (pas vide)
	if (controle.value.length > 0) {

// Si on ne trouve pas dans le champ l'expression reguliere recherchee
		if (!RE.test(controle.value)) {

// Envoi d'une alerte
			alert('Votre saisie est incorrecte.');

// On marque que la saisie n'est pas coherente
			probleme = 1;
			}

// Tests de longueur du champ (nombre de caracteres saisis)
// Si il a ete specifie '0', le test n'est pas effectue
		if ( mini != 0 ) {

// Si la longueur de la saisie est inferieure au minimum demande
			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 superieure au maximum demande
		if ( maxi != 0 ) {
			if ( controle.value.length > maxi ) {
				alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.');
				probleme = 1;
				}
			}

// Si on a marque qu'il y avait un probleme
		if ( probleme == 1 ) {

// On active le blocage du champ
			bloque(formulaire,champ);
			}
		}
	}


// Fonction de verification d'une plage de nombres (entre X et Y)
function check_num(formulaire,champ,plancher,plafond) {

// Creation d'un raccourci pour manipuler le champ a tester
	var controle = eval('document.' + formulaire + '.' + champ);

// Si la valeur de la saisie est inferieure au plancher demande
	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 superieure au plafond demande
	if ( controle.value > plafond ) {
		alert('Votre saisie ne doit pas etre superieure a ' + plafond + '.');
		bloque(formulaire,champ);
		}
	}

	function check_vide() {
vide('formulaire','email','- Adresse e-mail');

	// Validation (sous conditions) du formulaire
	resultat('formulaire');
	}