/********************************************
  Vérification de formulaire
    - champ vide
	- champ à valeur numérique
	- Email
---------------------------------------------
# Compatible : Tout navigateur compatible DOM 
exeption : ie 4.0/4.5 mac
---------------------------------------------
Ce script est libre d'utilisation a condition
de laisser inclus tout les commentaires.
Ce script été réalisé par Xside pour
le compte de pressmix. 
---------------------------------------------
Dernière modif : 14/02/2002
---------------------------------------------
@@ browser.js obligatoire  <---####
---------------------------------------------
*/

function toObligatoire(whoChecker,whoCheck) {
	// Rend un champ obligatoire ou optionnel
	// à utiliser avec un checkbox

	if(ie5 && whoCheck) {
	   if(whoChecker.checked) document.all[whoCheck].optionnal=false
	   if(!whoChecker.checked) document.all[whoCheck].optionnal=true
	}
}

function isblank(s) {
  // Pour vérifier les champ vides
    for(var i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if ((c != ' ') && (c != '\n') && (c != '\t') && (s.indexOf('Votre')=="-1")) {
			return false;
			break;
		}
    }
return true
}

function verify(f)
  // La fonction principale de vérification du formulaire nommé f
  // A appeler en onClick uniquement.
 {
    var msg;
    var empty_fields = "";
    var errors = "";
	var courant

 for(var i = 0; i < document.forms[f].length; i++) {
   var e = document.forms[f].elements[i];
   courant=e
		if ((e.type == "text") || (e.type == "textarea") || (e.type == "password") || (e.type == "file") || (e.selection)) 
        {	 
		 if(!e.optionnal) {
            // Pour les champ non optionnel vérifie les champ vides
            if (((e.value == null) || (e.value == "") || isblank(e.value)) && !e.optionnal && !e.selection)
            {
                empty_fields += "\n          " + e.name;
                break;
            }
		 if (e.selection) {
			 // Vérification des select.
			 if(e.type=="select") {
				 if(e.selectedIndex=="-1") {
					 errors += "Tous les champ doivent être selectionné.\n";
					 break;
				 }
			 }
		 }
         if ((e.numeric || (e.min != null) || (e.max != null)) && !e.optionnal) {
            // Vérification des champ numériques.
			var v = parseFloat(e.value);
			if (isNaN(v) || ((e.min != null) && (v < e.min)) || ((e.max != null) && (v > e.max))) 
			 {
				errors += "Le  "+e.name+" ne doit contenir que des caractéres numériques. \n Pas de ( ou de - ou autres caractéres spéciaux.";
				if (e.min != null) 
					errors += " plus grand que " + e.min;
				if (e.max != null && e.min != null) 
					errors += " et plus petit que " + e.max;
				else if (e.max != null)
					errors += " plus petit que " + e.max;
				errors += "\n";
			   }
	       }
		   if (e.mail && !e.optionnal) {
			// Vérification des champ emails.			   
				a = e.value
				taille = a.length
				aze = a.indexOf("@")
				qsd = a.lastIndexOf(".")
			if ( qsd < 1 || qsd > taille - 3)
				{
						errors += "L'email que vous avez entré n'est pas valide";
						errors += "\n";
				}
			else if (aze < 2 || aze > taille - 5) {
				errors += "L'email que vous avez entré n'est pas valide";
				errors += "\n";
			 }
			}
if ((empty_fields=="") && (errors=="")) continue;
else break;
	 }
   }
}
	// En cas d'erreur sur un champ la vérification s'arréte et génére
	//    - Un alert affichant les erreurs et le nom du champ
	//    - Change la class du champ incriminé (ie5)

	msg  = "______________________\n\n"
    if (empty_fields) msg += "Le champ "+courant.name+" est vide.\n Vous devez le remplir.\n"
    if (errors) msg +=errors;
    msg += "______________________\n"

	if ((empty_fields=="") && (errors=="")) document.forms[f].submit();
	else {
		alert(msg);
		courant.focus()
	    if(ie5) {
			courant.style.backgroundColor="#778CAA";
			courant.style.color="White";
		}
	 }
}