// JavaScript Document
function controle()
{    
	langue=eval('document.forms[0].$Langue.value');
	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 (navigator.appName == "Microsoft Internet Explorer" )
	 	lib=e.libelle;
	 	else
	 	lib=e.name;  
		if ( requis == "*")  
		{
			switch (e.type) 
			{
				case "text":
				  if ( e.value.length < 1 )
				 
				    {  
					    messagetexte();
				        e.focus();
				        return(false);
				    }
						if (nomid=='mail')
						{            verif=verifmail()  ;
								 	if (!verif) return(false);              
						}
						if (nomid=='cp' || nomid=="tel") 
						{            verif=verifnum()  ;
								 	if (!verif) return(false);              
						}

					 break;
				case "textarea":
				case "password":
				   if ( e.value.length < 1 )
				    {    messagetexte();   
				         e.focus();
				         return(false);
				    }
					   
					  break;
			    case "select-one" : 
				
				case "select-multiple":       // 1er élément vide dans le formulaire HTML)
                   if ( e.options[0].selected )
				   {  
				        messageselect();
				         e.focus();
				        return(false); 
				    }
					break;
				case "checkbox":				//option si on veut une coche obligatoire 
				    if (!e.checked) 
					 {   messageselect();     
				         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" ) {			 		   
					         messageselect();
				 		     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;
								
		                 }
				 }
			
		
		} //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)
	{  
			 switch (langue)
			   { case 'fr':
	           	alert ("Format du champ: "+lib+ " invalide");
			  	 break;
			   	case 'gb':
			  	 alert ("Invalid format "+lib);
			  	 break;
			   	case 'de':
			  	 case 'nl':
			   	default :
			   alert ("Invalid format "+lib);
			  	 break;
			  } 
	   e.focus();	
	   return (false);
	}
	return (true);
}

function verifnum(){
		
	if (isNaN(e.value)) 
	{
		
	   		 switch (langue)
			   { case 'fr':
	           	alert ("valeur numerique pour le champ: "+lib+" attendue");
			  	 break;
			   	case 'gb':
			  	 alert ("numeric value in "+lib +" expected");
			  	 break;
			   	case 'de':
			  	 case 'nl':
			   	default :
			   	alert ("numeric value in "+lib +" expected");
			  	 break;
			  }   

	  e.focus();	
	  return (false); 
	 }
	  return (true);				
}

function messagetexte()
{
	switch (langue)
			   { case 'fr':
			   alert("La saisie du champ " + lib + " est obligatoire");
			   break;
			   case 'gb':
			   alert ("Input value in "+lib +" expected");
			   break;
			   case 'de':
			   case 'nl':
			   default :
			   alert ("Input value in "+lib +" expected");
			   break;
			  }
}
function messageselect()
{ 
	switch (langue)
			   { case 'fr':
			   alert("un choix dans la liste  " + lib + " est obligatoire");
			   break;
			   case 'gb':
			   alert ("Selected value in "+lib+" expected");
			   break;
			   case 'de':
			   case 'nl':
			   default :
			   alert ("Selected value in "+lib +" expected");
			   break;
			  }
	
}