/* auteur: Jean-Benoît Murat */
/* Date de création: 07/10/2004 */

/*     Fonctions de contrôle de champs de formulaires coté client   */

//Diverses expressions régulières utiles

// Expressions régulières de test de longueur
var regExpEmpty=/^$/g;					// Accepte une chaine vide
var regExp8Chars=/^[0-9a-zA-Z]{8,}$/g;			// Accepte une chaine d'au moins 8 carctères alphanumeriques (pour un mot de passe par exemple).

// Expressions régulières de test de types liés à internet

var regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;										// Accepte une adresse email. Ex : toto@toto.com

//Les deux fonction suivantes servent à identifier si une chaine de caractère est compatible ou non avec une expression régulière passée en paramètre
function matchRegularExpression(valeur, regularExpression)
{
	var resultat = valeur.match(regularExpression);
	if(resultat!=null && resultat.length==1) return true;
	else return false;
}

function doesntMatchRegularExpression(valeur, regularExpression)
{
	if(matchRegularExpression(valeur, regularExpression)) return false;
	else return true;
}

/*
les fonctions de contrôle suivantes prennent toutes comme argument la valeur de l'attribut "value" d'un champ de formulaire de type "text" ou "password"
*/

function isEmpty(valeur)
{
	return matchRegularExpression(valeur, regExpEmpty);
}

function isNotEmpty(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmpty);
}

function isNotEmailAdress(valeur)
{
	return doesntMatchRegularExpression(valeur, regExpEmailAdress);
}

function check()
{
		/*	Ajouter dans cette fonction l'ensemble des controles à faires sur les champs de formulaires avant soumission du formulaire.	*/

		var test=true;
		var message='';
		
		// Exemple d'un contrôle sur un champ au format adresse IP
		// nb: vous pouvez copier-coller cet exempl autant de fois qu'un contrôle sera nécessaire sur un champ
		
		//Remplacer "test" par la valeur de l'attribut "name" de votre formulaire à controler.
		//Remplacer "item1" par la valeur de l'attribut "name" de votre champ à controler.

		//Fin de l'exemple
		
		// Exemple d'un contrôle sur un champ au format email
		// nb: vous pouvez copier-coller cet exempl autant de fois qu'un contrôle sera nécessaire sur un champ
		
		//Remplacer "test" par la valeur de l'attribut "name" de votre formulaire à controler.
		//Remplacer "item1" par la valeur de l'attribut "name" de votre champ à controler.
		
		if (isEmpty(document.formulaire_contact.email.value))
		{
			message='\nIl manque votre email.\nSans lui nous ne pourrions vous répondre.';
			test=false;
		} else if (isNotEmailAdress(document.formulaire_contact.email.value))
		{
			message='\nVotre email semble invalide.\nSans lui nous ne pourrions vous répondre';
			test=false;
		}

		
		if (isEmpty(document.formulaire_contact.contenu_message.value))
		{
			message+='\n\nPas de message ?';
			test=false;
		}		
		//Fin de l'exemple
		
		if (message!='') alert(message);
		return test;
}
