// JavaScript Document
////////////////////////////////////////
// 												//
// 	formulaire de verification			//
// 	version (16/09/03)					//
// 	Christian Chevalier					//
// 	Correction : (12/01/04)			//
// 												//
////////////////////////////////////////
// TYPE D'APPEL DE LA FONCTION version (12/01/04)
//function verif() {
//	var erreur = ""
//	erreur += verif_champs("toto","dire coucou","vide")
//	erreur += verif_champs("toto","mettre un chiffre","n")
//	erreur += verif_champs("tutu","cocher le cb","cb")
//	erreur += verif_champs("titi","cocher un bouton radio","r")
//	
//	if (erreur!="") {
//		alert("il faut :\r" + erreur);
//		return false
//	} else {
//		return true
//	}
function verif_champs(nom_du_champs,message,verif)  {
	var obj = verifFindObj(nom_du_champs) ;
	
	if (obj==null) {
		return "l\'objet " + nom_du_champs + " n\'existe pas..." ;
	}
	
	if (verif=="vide") { // verifier que les champs ne soient pas vides
		if (obj.value=="") {
			setBG(obj,true) ;
			return "- " + message + "\r";
		} else {
			setBG(obj,false) ;
			return ""
		}
	}
	
	if (verif=="n") { // verifier que les champs est bien numérique
		if (isNaN(obj.value)) {
			setBG(obj,true) ;
			return "- " + message + "\r";
		} else {
			setBG(obj,false) ;
			return ""
		}
	}
	
	if (verif=="cb") { // verifier que les checkbox est bien coché
		if (obj.checked==false) {
			setBG(obj,true) ;
			return "- " + message + "\r";
		} else {
			setBG(obj,false) ;
			return ""
		}
	}
			
	if (verif=="r") { // verifier qu'au moins un bouton radio est coché
		var str = ""
		for (var i = 0;i < obj.length;i++) {
			if (obj[i].checked) {
				str =  "";
			setBG(obj,true) ;
				return str
			} else {
				setBG(obj,false) ;
				str =  "- " + message + "\r";
			}
		}
		return str
	}
		
	if (verif=="s") { // verifier que le select n'est pas à zéro
		if (obj.value=="0") {
			setBG(obj,true) ;
			return "- " + message + "\r";
		} else {
			setBG(obj,false) ;
			return ""
		}
	}
		
	
	if (verif=="@") { // verifier l'adresse email
		if (!checkEmail(obj)) {
			setBG(obj,true) ;
			return "- " + message + "\r";
		} else {
			setBG(obj,false) ;
			return ""
		}
	}
		
}


function setBG(o,b) {
	if (b) { 
		o.style.backgroundColor = "#FFFFCC" ;
	} else {
		o.style.backgroundColor = "" ;
	}
}



function checkEmail(emailInputBox) { 
	var emailString = emailInputBox.value; 
	var addressIsValid = false; 
	var invalidPatterns = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; 
	var validPatterns = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; 
	if (window.RegExp){ 
	if (!invalidPatterns.test(emailString) && validPatterns.test(emailString)) { 
		addressIsValid = true; 
	} else { 
		addressIsValid = false; 
	} 
	} else { 
		if(emailString.indexOf("@") >= 0) 
		addressIsValid = true; 
	} 
	if (!addressIsValid) { 
		emailInputBox.focus(); 
		emailInputBox.select(); 
	} 
	return addressIsValid; 
}


function verifFindObj(theObj, theDoc) {
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length){
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}

