/******************************************************
Nicolas Dalledonne
Verifie de maniére automatique les champs dans un formulaire 
déclarés comme obligatoires

o_ : champs obligatoire
o_email : champs obligatoire et vérifie la validité de l'email
o_num : champs obligatoire et vérifie que le champ est numérique
o_date : champs obligatoire et vérifie le champ à la date jj/mm/aaaa
******************************************************/
// Tableau contenant les messages a afficher dans l'alerte
tabMessage = Array("Certification*", "Certi*") ;
MsgObligatoire = "Champ obligatoire" ;
MsgObligatoireNum = "Ce champ oblitoire et numérique" ;
MsgObligatoireDate = "Format de date incorrecte" ;
MsgObligatoireEmail = "Adresse email non valide" ;



function decoErreur(id) {
	alert(id)
	document.getElementById(id).style.color = "#0099FF" ;
	document.getElementById(id).style.fontWeight = "bold" ;
	document.getElementById(id).style.letterSpacing = "1px" ;

	/*document.getElementById("f"+oName).style.margin = "3px 0px" ;
	document.getElementById("f"+oName).style.height = "30px" ;
	document.getElementById("f"+oName).style.lineHeight = "30px" ;
	*/
	
}

function verifChampCHECKBOX(oName,oId) {
	try {
		//document.getElementById("e"+oName).innerHTML = "" 		
		var o = document.getElementById(oId)
		
		// isole : o_mxx ou xx sera le numéro du messaga à afficher. 
		var reg = new RegExp("^o_m[0-9]{1,}", "g");
		var chaine = Array();
		var chaine = reg.exec(o.id) ;
		
		var erreur = "Ce champ est obligatoire" ;
		
		// Si la checkbox est coché il n'y a pas d'erreur
		if( o.checked == true ) {	
			 erreur = "" ;
		}	
		//alert('')
		if(erreur!='') {
			//document.getElementById("e"+oName).innerHTML = erreur ;
			decoErreur(oId);
		}
		
	return erreur ;
	} catch(e) {
	
	}
}


function verifChampSELECT(oName,oId) {
	try {
		//document.getElementById("e"+oName).innerHTML = "" 		
		var o = document.getElementById(oId)
		var erreur = "" ;
		
		if( o.selectedIndex == 0 ) {	
			erreur = "Ce champ est obligatoire" ;
		}
		if(erreur!='') {
			//document.getElementById("e"+oName).innerHTML = erreur ;
			decoErreur(oId);
		}
		
		return erreur ;
	} catch(e) {
	
	}
}

function verifChampRADIO(oName,oId,idForm) {
	try {
		//document.getElementById("e"+oName).innerHTML = "" 		
		var oForm = document.getElementById(idForm) ;	
		var taille = oForm.length
		var erreur = "Ce champ est obligatoire" ;
		
		// Parcours la balise form
		for(var i = 0; i<taille ; i++) {
			
			// Si l'attribut name de l'élement courant contient oName
			if( oForm[i].name.indexOf(oName) != -1 ) {
				if(oForm[i].checked == true ) {
					erreur = "" ;
				}
			}		
		}
		if(erreur!='') {
			//document.getElementById("e"+oName).innerHTML = erreur ;
			decoErreur(oId);
		}
		
		return erreur ;
	} catch(e) {
	
	}
}

function verifChampTXT(oName,oId) {
	try {
		//document.getElementById(oId).innerHTML = "" 		
		var o = document.getElementById(oId)
		var erreur = "" ;
		
		if( o.value == '' ) {	
			erreur = "Ce champ est obligatoire" ;
		} else {	
			// test si le champ est numérique
			if(o.id.indexOf("_num_")!=-1) {
				
				if(isNaN(o.value) ){
					erreur = "Ce champ est uniquement numerique" ;
				}
			}else if(o.id.indexOf("_date_")!=-1) {
				
				// test si le format de la date est du type mm/jj/aaaa
				var reg = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}", "g");
				var chaine = true ;
				chaine = reg.test(o.value) ;
				
				if( !(chaine) ){
					erreur = "Format de date incorrecte" ;
				}
			} else if(o.id.indexOf("o_email_")!=-1){ 
				if(email.search(/^[_a-z0-9-]+(.[_a-z0-9-]+)*[^._-]@[a-z0-9-]+(.[a-z0-9]{2,4})*$/) == -1) {
					erreur = "Email non valide incorrecte" ;
					alert(erreur)
				}
			
			}else {
				
			}			
		}
					// On ecrit le message d'erreur s'il a été définit
					//alert('')
		if(erreur!='') {
			//alert('')
			//document.getElementById("e"+oName).innerHTML = erreur ;
			decoErreur(oId);
		}
		

		return erreur ;
	} catch(e) {
	
	}
}

function sendForm(idForm) {
	//alert('')
	erreur = verifForm(idForm) ;
	if( erreur ) {
		document.getElementById(idForm).submit() ;
	} else {
		return erreur ;
	}

}

function verifForm(idForm) {
	//alert('dfgdfgdf')
	var etat = "true" ;
	var message = "" ; 
	var motObligatoire = "o_" ;						// Préfixe rajouté à l'idée du champ qui doit etre obligatoire
	var oForm = document.getElementById(idForm) ;	
	var taille = oForm.length
	var oId = '' ; 									// Id du champ courant
	var oName = '' ;								// Nom du champ courant
	var isObligatoire = '' ;
	var oType = '' ;								// Type du champ courant (txt, checkbox, radio etcc ...)
	
	// Parcours la balise form
	for(var i = 0; i<taille ; i++) {
		oId = oForm[i].id		
		isObligatoire = oId.indexOf(motObligatoire) ;
		// Si le mot obligatoire est présent dans l'id alors ce champs est oligatoire
		if( isObligatoire !=- 1 ) {
			oType = oForm[i].type ;
			oName = oForm[i].name ;
			switch(oType) {
				case 'textarea' :
				case 'password' :
				case 'text' :
					message += verifChampTXT(oName,oId) ;					
				break;
				case 'radio' :
					message += verifChampRADIO(oName,oId,idForm) ;					
				break;
				
				case 'select-one' :
					message += verifChampSELECT(oName,oId) ;					
				break;				
				
				case 'checkbox' :
					message += verifChampCHECKBOX(oName,oId) ;					
				break;				
				
				default :
					alert("default : "+oType+" - "+oName)
					alert('type de champ inconnu') ;
						
			} // switch	
			
					
		} // if : if( isObligatoire !=- 1 )
	} // for : 	for(var i in oForm) 
	
	
	// Si message n'est pas vide c'est qu'il y a des erreur (champ obligatoire non renseigner)
	if( message != '' ) {
		etat = false ;
	}
	
	return etat ;
		
}












function verifForm2Send(f){
//alert(f)
//alert(document.f)
//Un ou plusieurs champs n'ont pas été saisi, merci de les compléter

		document.getElementById('lib_erreur_contact').innerHTML="" ;

		document.getElementById('o_email_mail').style.color="#7E7F7F" ;
		document.getElementById('o_email_mail').style.border = '1px solid #A5A5A5'
		document.getElementById('lmail').style.color="#E5E5E5" ;
		
		document.getElementById('o_confirmation_mail').style.color="#7E7F7F" ;
		document.getElementById('o_confirmation_mail').style.border = '1px solid #A5A5A5'
		document.getElementById('lo_confirmation_mail').style.color="#E5E5E5" ;
		
		document.getElementById('o_message').style.color="#7E7F7F" ;
		document.getElementById('o_message').style.border = '1px solid #A5A5A5'
		document.getElementById('lo_message').style.color="#E5E5E5" ;

	var ret = verifForm2()
//alert(ret)	
	
	if(ret== true) {
		document.getElementById('fc').submit();
		return false
	} else {
	return false	
	}
}


function verifForm2(){
	var o;
	var erreur = true;
	

	o = document.getElementById('o_email_mail');
	//|| !isEmail(o.value)
	if (only_space(o.value) ) {
		//alert("Vous devez saisir une adresse email valide !");
		document.getElementById('o_email_mail').style.border = '1px solid #0099FF'
		document.getElementById('o_email_mail').style.color = '#0099FF'
		document.getElementById('lmail').style.color = '#0099FF'
			
		//o.focus();
		erreur= false;
	}
	
	if (o.value!=document.getElementById('o_confirmation_mail').value || only_space(document.getElementById('o_confirmation_mail').value)) {
		document.getElementById('o_confirmation_mail').style.border = '1px solid #0099FF'
		document.getElementById('o_confirmation_mail').style.color = '#0099FF'
		document.getElementById('lo_confirmation_mail').style.color = '#0099FF'

		//o.focus();
		erreur= false;
	}
	
	
	
	
	o = document.getElementById('o_message');
	if (only_space(o.value)) {
		document.getElementById('o_message').style.border = '1px solid #0099FF'
		document.getElementById('o_message').style.color = '#0099FF'
		document.getElementById('lo_message').style.color = '#0099FF'

		erreur= false;
	}
	/*
	
	o = f.inscription_password;
	if (only_space(o.value) || o.value.length<5 || !o.value.match('^[a-zA-Z0-9]*$')) {
		alert("Vous devez saisir un mot de passe d'au moins 5 caractères comportant uniquement des chiffres et des lettres sans accent !");
		o.focus();return false;
	}
	if (o.value!=f.confirm_password.value) {
		alert("Le mot de passe est différent de la confirmation !");
		o.focus();return false;
	}
	
	o=f.ok_cgv;
	if (!o.checked){
		alert("Vous devez accepter les conditions générales d'utilisation !");
		return false;
	}
	*/
	/*
	o=f.inscription_isMedecin;
	var okradio=false;
	for(i=0; i<o.length; i++) if (o[i].checked==true)	okradio=true;
	if (!okradio){
		alert("Vous devez indiquer si vous êtes un professionnel de santé !");
		return false;
	}
	
	if (f.newsletter.checked){
		o=f.data;
		okradio=false;
		for(i=0; i<o.length; i++) if (o[i].checked==true)	okradio=true;
		if (!okradio){
			alert("Vous devez indiquer la newsletter que vous souhaitez recevoir !");
			return false;
		}
	}
	*/
		
	if(erreur) {
		return true;
	} else {
		document.getElementById('lib_erreur_contact').innerHTML="Un ou plusieurs champs n'ont pas été saisi, merci de les compléter" ;

		return false ;
	}
}

function only_space(chaine) {
  if (chaine=="") {return true;}
  if (chaine==" ") {return true;}
  for (var i=0 ; i<chaine.length ; i++) {
    if (chaine.charAt(i)!=" ") {
      return false;
    }
  }
  return true;
}

