/*************************************************************************
 * verification_formulaire.js
 * Copyright (c) François Pirsch 2007
 * http://aspirine.org/contact/
 * Distribué sous licence BSD.
 *
 *	30 Mars 2007
 *
 * Vérifie automatiquement la validité d'un formulaire avant envoi.
 * Installation :
 * 1. Copier ce fichier sur le site
 * 2. Le lier au fichier HTML contenant le formulaire :
 *   <script type="text/javascript" src="verification_formulaire.js"></script>
 * 3. Mettre onsubmit="return valideForm(this)" au formulaire à vérifier.
 *
 * Dans le formulaire :
 * - L'élément contenant l'adresse email doit s'appeler "email"
 * - S'il y a un champ de confirmation d'adresse email,
 *   il doit s'appeler "email2"
 * - Les champs obligatoires doivent être précédés par le caractère "*".
 *************************************************************************/

function valideForm(f) {
	var champsObligatoires = [];
	var erreurs = [];
	var adresse1;

	/*
	 * Cette fonction renvoie le texte écrit juste avant un élément donné.
	 * Elle parcourt l'arbre du document vers l'arrière jusqu'à trouver
	 * un textNode contenant autre chose que des espaces.
	 */
	function textePrecedent(element) {
		var ELEMENTNODE = 1;
		var TEXTNODE = 3;

		// Ce navigateur connaît-il le DOM ?
		if(!element.nodeType) return "no nodetype";

		// Tant qu'on n'a pas trouvé un textNode contenant autre chose que des espaces...
		while((element.nodeType != TEXTNODE) || (element.nodeValue.search(/^\s*$/) == 0)) {
			// On prend l'élément précédent.
			if(element.previousSibling)
				element = element.previousSibling;
			// S'il n'y a pas d'élément précédent on prend le précédent du parent.
			else if(element.parentNode && element.parentNode.previousSibling)
				element = element.parentNode.previousSibling;
			// On ne peut plus remonter, c'est qu'on n'a rien trouvé, on quitte.
			else return;

			// Si on arrive sur un élément qui a des descendants, on descend pour
			// trouver le texte le plus à droite.
			while((element.nodeType == ELEMENTNODE) && element.lastChild)
				element = element.lastChild;
		}
		return element.nodeValue;
	}

	/*
	 * Fonctions vérifiant la validité et la confirmation d'une adresse email.
	 */
	function valideEmail(adr1) {
		adresse1 = adr1;
		if(a
