var alert_chaine = "";
    var alert_vide = "Veuillez remplir le champ : ";
	var alert_mdp_1 = "Veuillez saisir des mots de passe identiques SVP.";
	var alert_mdp_2 = "Veuillez saisir au minimum ";
	var alert_mdp_3 = " caractères pour le ";
	var alert_confirm_1 = "Voulez-vous vraiment enregistrer les modifications ?";
    var alert_lechamp = "Le champ : ";
	var alert_checkbox = "Veuillez au moins faire une sélection.";
	var alert_email = "Veuillez rentrer un e-mail valide pour le champ :";
	var alert_site = "Veuillez rentrer une adresse du type www.site.com pour le champ :";
	var alert_heure = "Veuillez rentrer une heure sous la forme 00:00 pour le champ :";
	var alert_checkbox = "Veuillez sélectionner au moins une valeur pour le champ :";
	var alert_date = "Veuillez saisir une date au format jj/mm/aaaa pour le champ :";
	var alert_date_naiss = "Veuillez saisir une date au format jj/mm/aaaa infèrieure à aujourd'hui pour le champ :";
	var alert_radio = "Veuillez sélectionner au moins une valeur pour le champ :";
	var confirm_sup_checkbox = "Etes-vous certain de vouloir supprimer les éléments cochées ?";
	var confirm_sup_checkbox_champ_form = "Etes-vous certain de vouloir supprimer les champs cochées et tous les enregistrements liés à chacun d'eux ?";
	var confirm_sup = "Etes-vous certain de vouloir supprimer cet élément ?";
	var confirm_sup_champ_form = "Etes-vous certain de vouloir supprimer ce champ et tous les enregistrements liés à celui-ci ?";
	var confirm_sup_insc = "Souhaitez-vous supprimer l'inscription à votre site de ce contact ?\n(Le contact ne sera pas supprimé)";
	var confirm_sup_insc_contact = "Souhaitez-vous supprimer l'inscription et la fiche contact de cet utilisateur ?";
	var confirm_sup_form = "ATTENTION !!\n\n Si vous supprimez ce formulaire, toutes les données enregistrées à partir de ce formulaire seront perdues ! \n\nEtes-vous certain de vouloir supprimer ce formulaire et tout ce qui est en rapport avec lui ?";
	var confirm_enr = "Etes-vous certain de vouloir enregistrer un nouvel élément ?";
	var alert_entier = " doit être un entier.\n";
	var alert_liste = "Veuillez sélectionner un élément de la liste pour le champ : ";
    var radio_selected = false;
    var checkbox_selected = false;
	
	//PROGRAMME OGP
	var alert_confirm_deter = "Voulez-vous vraiment enregistrer cette détermination en base ?";
	var alert_confirm_convention = "Voulez-vous vraiment enregistrer cette nouvelle convention en base ?";

//Fonction permettant la validation finalle, changer le style du champ
function validation(retValue, formType,fieldType,fieldId)
{
	if(retValue == false ) {
			//Si c'est un champ d'un tableau :
				if(formType==1){
            fieldObj.parentNode.parentNode.setAttribute("class","mainFormError_tab");
            fieldObj.parentNode.parentNode.setAttribute("className","mainFormError_tab");
            //fieldObj.parentNode.parentNode.focus();
			
			fieldObj.parentNode.parentNode.parentNode.setAttribute("class","");
            fieldObj.parentNode.parentNode.parentNode.setAttribute("className","");
            //fieldObj.parentNode.parentNode.parentNode.focus();
			
			}	
			//Si c'est un form :
				if(formType==2){
            			
			if(fieldType!="checkbox" && fieldType!="radio"){
				fieldObj.parentNode.getElementsByTagName("label")[0].style.color= "red";
				 fieldObj.style.backgroundColor= "#FFF0F0";
				}else{				
				fieldObj.parentNode.parentNode.getElementsByTagName("label")[0].style.color= "red";
				fieldObj.parentNode.style.color= "red";					  
								}

			}
			//Si c'est un champ libre :
				if(formType==3){
            fieldObj.setAttribute("class","mainFormError_tab");
            fieldObj.setAttribute("className","mainFormError_tab");
            //fieldObj.focus();

			fieldObj.parentNode.setAttribute("class","mainFormError_tab");
            fieldObj.parentNode.setAttribute("className","mainFormError_tab");
            //fieldObj.parentNode.focus();
			}
			
			//Si c'est un form :
				if(formType==4){
					
			if(fieldType!="checkbox" && fieldType!="radio"){
				 fieldObj.style.backgroundColor= "#FFF0F0";
				}else{				
				fieldObj.parentNode.style.color= "red";					  
								}
			
			}
            return false;
	}
        if(retValue == true ) {
			//Si c'est un champ d'un tableau :
				if(formType==1){
            
			
			}	
			//Si c'est un form :
				if(formType==2){

			if(fieldType!="checkbox" && fieldType!="radio"){
				fieldObj.parentNode.getElementsByTagName("label")[0].style.color= "black";
            	fieldObj.style.backgroundColor= "#EAEAFD";
				}else{				
				fieldObj.parentNode.parentNode.getElementsByTagName("label")[0].style.color= "black";
				fieldObj.parentNode.style.color= "black";					  
								}
								

			}
			//Si c'est un champ libre :
				if(formType==3){
            
			}
			
			//Si c'est un form :
				if(formType==4){
            if(fieldType!="checkbox" && fieldType!="radio"){
            	fieldObj.style.backgroundColor= "#EAEAFD";
				}else{				
				fieldObj.parentNode.style.color= "black";					  
								}
			}
            return true;
	}
}
    /************************************************ DEBUT DES TESTS  ******************************************/

function validateField(formType, fieldId, fieldType, required, param1, param2, param3)
{
    fieldObj = document.getElementById(fieldId);
    var element_type = fieldObj.type;
    var element_name = fieldObj.name;
    var element_title = fieldObj.title;
    var element_value = Trim(fieldObj.value);
     if (fieldType != "checkbox")
      var obj_name = document.getElementsByName(element_name);
    if(fieldType == 'hidden' || fieldType == 'NP' )
      return;

    retValue = true;

    /************************************************ CHAMP DE TYPE TEXTE  ******************************************/
    if(fieldType == 'text'  && required == 1)
    {
        if (element_value == '') {
          alert_chaine += alert_vide+element_title+".\n";
          retValue = false;
        }else{
          retValue = true;
        }		

	//alert(fieldObj.parentNode.className);
	  
	  validation(retValue,formType,fieldType);
    }
	/************************************************ CHAMP DE TYPE TEXTAREA ******************************************/
    if(fieldType == 'textaera' && required == 1)
    {
        if (element_value == '') {
	    alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
        }else{
            retValue = true;
        }		

	  
	  validation(retValue,formType,fieldType);
    }
    /************************************************ CHAMP NUMERIQUE DE TYPE ENTIER ******************************************/
    if(fieldType == 'num' && required == 1)
    {
        if (element_value.length == 0) {
            //alert(alert_vide+element_title);
			alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
            }else{
            var exp=new RegExp("^[0-9]*$","g");
            if( !exp.test(element_value)) {
				alert_chaine += alert_lechamp+element_title+alert_entier;
                retValue = false;
                }else{
                retValue = true;
            }
        }
        
	    validation(retValue,formType,fieldType);
    }

    /************************************************ CHAMP DE TYPE SELECT ******************************************/
    if(fieldType == 'select' && required == 1)
    { 
        if (element_type.indexOf("select") > -1) {
			var index = fieldObj.selectedIndex;                        
            if (index <= 0) {
                alert_chaine += alert_liste+element_title+".\n";
                retValue = false;
                }else{
                retValue = true;
            }
        }
        
	    validation(retValue,formType,fieldType);
    }
	 /************************************************ CHAMP DE TYPE SELECT ******************************************/
    if(fieldType == 'multi-select' && required == 1)
    { 
        if (element_type.indexOf("select") > -1) {
			var index = fieldObj.selectedIndex;                        
            if (index < 0) {
                alert_chaine += alert_liste+element_title+".\n";
                retValue = false;
                }else{
                retValue = true;
            }
        }
        
	    validation(retValue,formType,fieldType);
    }
	
    /******************************************************************************************/
    if(fieldType == 'liste_emails'  && required == 1)
    {
         if (element_value.length == 0) {
            //alert(alert_vide+element_title);
			alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
            }else{
				var liste_emails = element_value.replace(',',';');
				var emails = liste_emails.split(';');
				var nb_emails = emails.length;
				var i=0;
				while(i<nb_emails){
					apos=emails[i].indexOf("@");
					dotpos=emails[i].lastIndexOf(".");
	
					if (apos<1||dotpos-apos<2) 
					{
						retValue = false;
						if(alert_chaine =='')
							alert_chaine += 'Veuillez vérifier la syntaxe pour :\n';
						alert_chaine += emails[i]+"\n";
					}
					else
					{
						if(dotpos+3<=emails[i].length){
							if(retValue!=false)
								retValue = true;
						}else{
							retValue = false;	
							if(alert_chaine =='')
								alert_chaine += 'Veuillez vérifier la syntaxe pour :\n';
							alert_chaine += emails[i]+"\n";
						}
					}
					i++;
				}

        }
        
	    validation(retValue,formType,fieldType);
    }

    /******************************************************************************************/
    if(fieldType == 'email'  && required == 1)
    {
         if (element_value.length == 0) {
            //alert(alert_vide+element_title);
			alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
            }else{
			    apos=fieldObj.value.indexOf("@");
				dotpos=fieldObj.value.lastIndexOf(".");

				if (apos<1||dotpos-apos<2) 
				{
					retValue = false;
					alert_chaine += alert_email+element_title+".\n";
				}
				else
				{
					if(dotpos+3<=element_value.length)
						retValue = true;
					else{
						retValue = false;	
						alert_chaine += alert_email+element_title+".\n";
					}
				}

        }
        
	    validation(retValue,formType,fieldType);
    }
 /******************************************************************************************/
    if(fieldType == 'siteweb'  && required == 1)
    {
         if (element_value.length == 0) {
			alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
            }else{
				
				c1=fieldObj.value.indexOf("www",0);				
				c2=fieldObj.value.indexOf(".",3);
				c3=fieldObj.value.lastIndexOf(".");
				c4=fieldObj.value.length;
				c4=c4-7;
				c2 = c2-3;
				c3 = c3-6;
				if (c1+c2==0 && c3>0 && c4>2 ) 
				{
					retValue = true;
				}
				else
				{
					retValue = false;
					alert_chaine += alert_site+element_title+".\n";				
				}
				
        }
        
	    validation(retValue,formType,fieldType);
    }
/******************************************************************************************/
    if(fieldType == 'password'  && required == 1)
    {
        if (element_value == '') {
			alert_chaine += alert_vide+element_title+".\n";			
            retValue = false;
            }else{
				nb_caract = eval(param1)-1; 
				longeur_chaine = eval(element_value.length);
				//alert(longeur_chaine+">"+nb_caract);
				if(longeur_chaine>nb_caract){
            		retValue = true;
				}else{
					alert_chaine += alert_mdp_2+param1+alert_mdp_3+element_title+".\n";			
            		retValue = false;
				}
        }		

	  
	  validation(retValue,formType,fieldType);
    }
/******************************************************************************************/
    if(fieldType == 'checkbox'  && required == 1)
   {
        if (element_value == '') {
          alert_chaine += alert_vide+element_title+".\n";
          retValue = false;
        }else{
          retValue = true;
        }	
	  
	  validation(retValue,formType,fieldType,fieldId);
    }
/******************************************************************************************/
    if(fieldType == 'radio'  && required == 1)
    { 
		var objs=obj_name; 
		var ids = document.getElementById(fieldId);
		retValue = false;
		//alert("ids : " + ids + " value : " + ids.value + " length : " + obj_name.length );
        for(i=0;i<obj_name.length;i++) {
		//Si l'objet en cours en coché on renvoie true 
		if (objs[i].checked == true) {	
			retValue = true; 
            }
       }	
	   if (!retValue){
	   alert_chaine += alert_radio+element_title+".\n";
	   }
	   
	   validation(retValue,formType,fieldType);       
    }   

 /************************************************ CHAMP DE TYPE DATE  ******************************************/
    if(fieldType == 'date'  && required == 1)
    {
        if (element_value == '') {
          alert_chaine += alert_date+element_title+".\n";
          retValue = false;
        }else{
// J'utilise split pour créer un tableau dans lequel je récupère les jour mois année
// J'attends bien sûr une date formatée en JJ/MM/AAAA
   var ladate = (element_value).split("/");

// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) {
	    alert_chaine += alert_date+element_title+".\n";
   		retValue = false;
   }else{
// Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]));

// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
   var annee = unedate.getYear();
   if ((Math.abs(annee)+"").length < 4) 
   		annee = annee + 1900;

// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
   if ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])))			
          retValue = true;
	else{
		alert_chaine += alert_date+element_title+".\n";
		retValue = false;
	}
	}
        }		
	  validation(retValue,formType,fieldType);
    }


	 /************************************************ CHAMP DE TYPE TEXTE  ******************************************/
    if(fieldType == 'telephone'  && required == 1)
    {
        if (element_value == '') {
          alert_chaine += alert_vide+element_title+".\n";
          retValue = false;
        }else{
          retValue = true;
        }		

	//alert(fieldObj.parentNode.className);
	  
	  validation(retValue,formType,fieldType);
    }

/************************************************ CHAMP DE TYPE HEURE 00:00  ******************************************/
    if(fieldType == 'heure'  && required == 1)
    { 
         if (element_value.length == 0) {
			alert_chaine += alert_vide+element_title+".\n";
            retValue = false;
            }else{
				valeur = fieldObj.value.split(":");
				var exp=new RegExp("^[0-9]*$","g");
				var exp2=new RegExp("^[0-9]*$","g");
				if(valeur.length==2){
					if(valeur[0].length==2 && valeur[1].length==2 && valeur[0]<24 && valeur[1]<60){
						if( exp.test(valeur[0]) && exp2.test(valeur[1])){
							retValue = true;
						}else{
					retValue = false;
					alert_chaine += alert_heure+element_title+".\n";				
				}
					}else{
					retValue = false;
					alert_chaine += alert_heure+element_title+".\n";				
				}
				}else{
					retValue = false;
					alert_chaine += alert_heure+element_title+".\n";				
				}
				
        }
        
	    validation(retValue,formType,fieldType);

    }

/******************************************************************************************/

			return retValue;	

}




		/*	function validateDate(fieldId,  fieldType, required,  minDateStr, maxDateStr)
			{
					retValue = true;

				fieldObj = document.getElementById(fieldId);	
				dateStr = fieldObj.value;


				if(required == 0  && dateStr == '')
				{
					return true;
				}


				if(dateStr.charAt(2) != '/'  || dateStr.charAt(5) != '/' || dateStr.length != 10)
				{
					retValue = false;
				}	

				else	// format's okay; check max, min
				{
					currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30  + parseInt(dateStr.substr(6,4),10)*365;
					//alert(currDays);

					if(maxDateStr != '')
					{
						maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30  + parseInt(maxDateStr.substr(6,4),10)*365;
						//alert(maxDays);
						if(currDays > maxDays)
							retValue = false;
					}

					if(minDateStr != '')
					{
						minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30  + parseInt(minDateStr.substr(6,4),10)*365;
						//alert(minDays);
						if(currDays < minDays)
							retValue = false;
					}
				}

				if(retValue == false)
				{
					fieldObj.setAttribute("class","mainFormError");
					fieldObj.setAttribute("className","mainFormError");
					fieldObj.focus();
					return false;
				}
				
				
			}*/

		//-->
