// JavaScript Document
function controle()
{    


	for (i = 0; i < document.forms[0].elements.length; i++) {
		
		e = document.forms[0].elements[i];
		requis=e.id.charAt(0); 
		nomid=e.id.substr(e.id.indexOf('_')+1);
		if ( requis == "*")  
		{
			switch (e.type) 
			{
				case "text":
				  if ( e.value.length < 1 )
				 
				    {  
					    if (navigator.appName == "Microsoft Internet Explorer" )
					    alert("La saisie du champ " + e.libelle + " est obligatoire");
						else
					     alert("La saisie du champ " + e.name + " est obligatoire");
						
				      e.focus();
				      return(false);
				    }
						if (nomid=='mail')
						{            verif=verifmail()  ;
								 	if (!verif) return(false);              
						}
						if (nomid=='cp' || nomid=="tel") 
						{            verif=verifnum()  ;
								 	if (!verif) return(false);              
						}
						if (nomid=="tel1") 
						{            verif=veriftel1()  ;
								 	if (!verif) return(false);              
						}
						
						
					 break;
				case "textarea":
				case "password":
				   if ( e.value.length < 1 )
				    {     if (navigator.appName == "Microsoft Internet Explorer" )
                          alert("La saisie du champ " + e.libelle + " est obligatoire");
						  else
						  alert("La saisie du champ " + e.name + " est obligatoire");
				      e.focus();
				      return(false);
				    }
					   
					  break;
			    case "select-one" : 
				
				case "select-multiple":       // 1er élément vide dans le formulaire HTML)
                   if ( e.options[0].selected )
				   {  
				        if (navigator.appName == "Microsoft Internet Explorer" )
				         alert("un choix dans la liste  " + e.libelle + " est obligatoire");
					     else
					     alert("un choix dans la liste  " + e.name + " est obligatoire");
					 
				      e.focus();
				      return(false);
				   
				    }
					break;
				case "checkbox":				//option si on veut une coche obligatoire 
				    if (!e.checked) 
					 { 
					    if (navigator.appName == "Microsoft Internet Explorer" )
					   alert(" La sélection  " + e.libelle + " est obligatoire");
					   else
					    alert(" La sélection  " + e.name + " est obligatoire");
					   
				   e.focus();
				   return(false);
				   
				    }
  					break;
					
			    case "radio":  //( chaque groupe de boutons radio doit avoir 1 bouton id="*")
				         var controle=eval('document.forms[0].'+e.name);
                         var non= "ko";
                         for ( j = 0; j < controle.length; j++ ) {
                         if (controle[j].checked) {					   
                           non = "ok";
                             }
                          }
		  
		    			if ( non != "ok" ) {
				 		   if (navigator.appName == "Microsoft Internet Explorer" )
					         alert(" La sélection  " + e.libelle + " est obligatoire");
					        else
					         alert(" La sélection  " + e.name + " est obligatoire");
				 		  e.focus();
				  		 return(false); 
						}
				   break;		

            } //fin switch
				// et non vide //on verifie le format en fonction du nom de l'identifiant
		}else 
		{      
		      
			     if ( e.value.length >0 )
			     {
			         switch (nomid )
			            {
				                case "mail":
					             verif=(verifmail());
								 if (!verif)  return(false); 
			                     break;
								case "cp":
								case "tel":
								 verif=(verifnum());
								 if (!verif) return(false);              
								 break;
								 case "tel1":
								 verif=(veriftel1());
								 if (!verif) return(false);              
								 break;
								
		                 }
				 }
			
		
		} //fin else 
		
     } //fin boucle for	 
	return(true);
}


function verifmail(){
	
//-------------Saisie ; au lieu du .----------------------------------------
	var pos_ptvirgule=e.value.indexOf(";");
//------------- Un seul @ possible -----------------------------------------	
	occurence=0;
	for (j=0;j<e.value.length;j++)
	  if ( e.value.charAt(j)=="@") occurence++; 

//--------------[Au moins un . ],[deux lettres entre @ et .] et [deux lettres après le point final]----	
	var pos_arobas=e.value.indexOf("@");
	var pos_point=e.value.lastIndexOf(".");
	var longueur=(e.value.length); 
	var ecart=Math.abs(pos_point-pos_arobas); // Deux lettres au moins entre @ et .
	 if (pos_point>=(longueur-2)|| pos_point==-1 || ecart<=2 || occurence!=1 || pos_ptvirgule!=-1)
	{  
	    if (navigator.appName == "Microsoft Internet Explorer" )
	    alert ("adresse e-mail invalide : "+e.value+" pour le champ: "+e.libelle);
		else
		alert ("adresse e-mail invalide : "+e.value+" pour le champ: "+e.name);
		
	   e.focus();	
	   return (false);
	}
	return (true);
}

function verifnum(){
	if (isNaN(e.value)) 
	{
		if (navigator.appName == "Microsoft Internet Explorer" )
	    alert ("valeur numerique attendue: "+e.value +" pour le champ: "+e.libelle);
		else
		alert ("valeur numerique attendue: "+e.value +" pour le champ: "+e.name);
		
	  e.focus();	
	  return (false); 
	 }
	  return (true);				
}

function veriftel1(){
	for (j=0;j<e.value.length;j++)
	 {    	car= e.value.charAt(j);
	  		if ( isNaN(car) && car!="." && car!="-" && car!=" ")
	   			{
					if (navigator.appName == "Microsoft Internet Explorer" )
	   				 alert ("Caractère numérique,.,- ou espace attendu: "+e.value +" pour le champ: "+e.libelle);
					else
					alert ("Caractère numérique,.,- ou espace attendu: "+e.value +" pour le champ: "+e.name);		
	  				e.focus();	
	  				return (false); 
	 			}
	 }
	  return (true);				
}


