﻿//!!!!!!!!!!!!!!!!!!!!!!J'ai enleve tout les accents des commentaires javascript car parfois le code javascript foirait a cause des accents (mais parfois pas??), je sais pas pq??, donc j'ai prefere les enleve tous pour etre sur!!



//variables globales
var varG_mode=0;


//permet de savoir si on doit verifier si les champs obligatoires sont remplis ou pas avant de pouvoir sauver...
var var_globale_verifChampsObligatoires=true;



////////////////////////////////////////////////////FUNCTIONS////////////////////////////////////////
////////////////////////////////////////DEBUT FONCTIONS POUR AFFICHER INFOBULLE/////////////////////////////
//pris du net mais legerement modifie
    var infobulle_visible=false; // La variable infobulle_visible nous dit si la bulle est visible ou non
    
    function GetId(id)
    {
    return document.getElementById(id);
    }

    function AdapterXyInfobulle(e) { //e represente l'evenement apparement??
      if(infobulle_visible) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
        if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
        GetId("infobulle_js").style.left=e.pageX + 5+"px";
        GetId("infobulle_js").style.top=e.pageY + 10+"px";
        }
        else {
        if(document.documentElement.clientWidth>0) {
    	GetId("infobulle_js").style.left=20+event.x+document.documentElement.scrollLeft+"px";
    	GetId("infobulle_js").style.top=10+event.y+document.documentElement.scrollTop+"px";
        } else {
    	GetId("infobulle_js").style.left=20+event.x+document.body.scrollLeft+"px";
    	GetId("infobulle_js").style.top=10+event.y+document.body.scrollTop+"px";
    	     }
        }
      }
    }

    function AfficherInfobulle(text) 
    {
      if(infobulle_visible==false) 
      {
          GetId("infobulle_js").style.visibility="visible"; // Si elle est cachee (la verif n'est qu'une securite) on le rend visible.
          GetId("infobulle_js").innerHTML = text; // Cette fonction est a ameliorer, il parait qu'elle n'est pas valide (mais elle marche)
          infobulle_visible=true;
      }
    }
    
    function CacherInfobulle() 
    {
        if(infobulle_visible==true) 
        {
            GetId("infobulle_js").style.visibility="hidden"; // Si la bulle etait visible on la cache
            infobulle_visible=false;
        }
    }
    document.onclick=AdapterXyInfobulle; // des qu'on clique, on appelle la fonction AdapteXyInfobulle pour mettre a jour la position de la bulle.
////////////////////////////////////////FIN FONCTIONS POUR AFFICHER INFOBULLE/////////////////////////////



/////////////////////////////////////////////////////////////
function deleteTags(var_string)
{    
//fonction qui permet d'enlever les tags ouvrant et fermant d'une string, peut importe le tag...
//car parfois je veux faire un alert d'un texte qui a un tag et je ne veux pas voir le tag dans l'alert...(exemple : pour <label for= >...</label>)
    
    var var_string_retour=var_string.replace(/</g,'@%%'); //je remplace le caractere '<' (balise ouvrante) par '@%%' /g=global (expression reguliere) POUR CREER DELIMITEUR POUR SPLITTER DANS TABLEAU --> ici je met 2% comme ca apres en faisant un split sur '@%' j'isole les tags sur une ligne du tableau et je peux recuperer le reste
    var var_string_retour=var_string_retour.replace(/>/g,'@%');  //je remplace le caractere '>' (balise fermante) par '@%' /g=global (expression reguliere) POUR CREER DELIMITEUR POUR SPLITTER DANS TABLEAU -->ici je met 1 seul % comme ca, ca extrait dans le tableau de facon correct la fin du tag...
       
    var tab_string=var_string_retour.split('@%'); //je split dans un tableau comme ca apres j'analyse et je garde que ce que j'ai besoin
    
    
    var_string_retour='';
    
    for (var ii=0;ii<tab_string.length;ii++)
    {
        //alert(ii);
        //alert(tab_string);
                
        if (tab_string[ii].substring(0,1)!='%') //si le 1er caractere du tableau est '%' c'est que c'est un residu du tag...donc je ne prends pas
        {
            var_string_retour+=tab_string[ii];
        }     
    }
    
    if (var_string_retour.substring(0,1)=='*') //si premier caractere est une '*' (champ obligatoire)
    {
        var_string_retour=var_string_retour.replace('*',''); //on efface la premiere asterisque(*) (qui se trouve en 1ere position) du contenu du label car quand champ obligatoire contient une (*) et je n'ai pas besoin de cette (*) dans l'alert javascript
    }
    
//PLV MODIF 24/08/2009    
//certains champs contiennent des &nbsp; -->les enlever pour faire un alert...
//PLV MODIF 28/08/2009
//    var_string_retour=var_string_retour.replace(/&nbsp;/g,'');
//je n'arrive pas à trouver un exemple dans lequel il y avait une chaine avec des &nbsp posant problèmes??, je ne sais plus pq j'ai du faire ca...puis c pas logique de remplacer &nbsp par RIEN car il n'y aura plus de blanc du tout?? -->maintenant je remplace par caractère blanc(pour être sûr)...ce sera mieux
    var_string_retour=var_string_retour.replace(/&nbsp;/g,' ');
//PLV Fin MODIF 28/08/2009    
//PLV Fin MODIF 24/08/2009

    return var_string_retour;
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//par ex dans un textarea pour empecher l'utilisateur d'entrer plus qu'un nombre de caracteres determines
function limite(zone,max,langue)
{
    CacherInfobulle();        
    AfficherInfobulle(max-zone.value.length);
    
	if(zone.value.length>max)
	{
	    if (langue=='NL') //TRADUCTION TOM PENXTEN OK
	    {
		    alert('MAXIMUM ' + max + ' tekens!!');
		}
		else
	    {
		    alert('MAXIMUM ' + max + ' caract\350res!!'); // \350 = e accent grave en octal (trouve sur le site http://www.pyrat.net/JavaScript-alert-et-accents.html) sinon probleme pour afficher l'accent...
		}		
		zone.value=zone.value.substring(0,max);
	}
	
	return;
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//pris sur le net
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//pris du net --> expression reguliere...
function IsUnsignedFloat(chaine){
  //var reg= /^[0-9]+[,]?[0-9]+$/;
  //var reg= /^[0-9]*[,]*[0-9]+$/
  //var reg= /^[0-9]*,*[0-9]+$/
  //var reg= /^[0-9]*,?[0-9]+$/
  var reg= /^[0-9]+((,?[0-9]+)|[0-9]*)$/
  return reg.test(chaine);
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//pris du net --> expression reguliere...
function IsUnsignedInteger(chaine){
  var reg= /^[0-9]+$/;
  return reg.test(chaine);
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//pris du net
//ca aurait ete mieux une fonction avec date europeenne mais je n'ai trouve que ca...enfin c pas grave je convertis avant d'appeler la fonction...
function DateAmericaineValide(chaine_date_americaine) {
//retourne vrai si la date (au format americain est une date valide...(avec verification annee bissextile en fevrier??,...)
    var reg = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    return reg.test(chaine_date_americaine);    
}
/////////////////////////////////////////////////////////////////////////////////////////////      
//Verifie l'adresse E-Mail --> pris du net --> expression reguliere...
function AdresseEmailValide(adresse_email){
  var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
  return reg.test(adresse_email);
}
/////////////////////////////////////////////////////////////////////////////////////////////      

function SetStreet(langue,NomRueFR,NomRueNL,CodePostal,CommuneFR,CommuneNL,NomChampRue,NomChampCodePostalCommune)
{
    if (langue=='NL')
    {    
    
//affecter rue NL    
//        window.opener.document.forms[0].elements[NomChampRue].value=NomRueNL;
//OU (LES 2 MARCHENT)
        window.opener.document.getElementById(NomChampRue).value=NomRueNL;

//affecter commune NL
//        window.opener.document.forms[0].elements[NomChampCommune].value=CommuneNL;
//OU (LES 2 MARCHENT)
        //window.opener.document.getElementById(NomChampCommune).value=CommuneNL;
        
//affecter le code postal + commune (combo) --> pas trouve autre moyen que de faire dans une boucle... -->je parcours tout les elements de la liste de choix...        
        for (var i = 0; i < window.opener.document.forms[0].elements[NomChampCodePostalCommune].options.length; i++) 
        {                 
          if (window.opener.document.forms[0].elements[NomChampCodePostalCommune].options[i].text==CodePostal + ' ' + CommuneNL)
          {
                    window.opener.document.forms[0].elements[NomChampCodePostalCommune].options[i].selected = true;
                    break;
          }
        }                          
    }
    else
    {
    
//affecter commune NL        
//        window.opener.document.forms[0].elements[NomChampRue].value=NomRueFR;
//OU (LES 2 MARCHENT)
        window.opener.document.getElementById(NomChampRue).value=NomRueFR;

//affecter commune FR
//        window.opener.document.forms[0].elements[NomChampCommune].value=CommuneFR;
//OU (LES 2 MARCHENT)
        //window.opener.document.getElementById(NomChampCommune).value=CommuneFR;
        
//affecter le code postal + commune (combo) --> pas trouve autre moyen que de faire dans une boucle... -->je parcours tout les elements de la liste de choix...        
        for (var i = 0; i < window.opener.document.forms[0].elements[NomChampCodePostalCommune].options.length; i++) 
        {                 
          if (window.opener.document.forms[0].elements[NomChampCodePostalCommune].options[i].text==CodePostal + ' ' + CommuneFR)
          {
                    window.opener.document.forms[0].elements[NomChampCodePostalCommune].options[i].selected = true;
                    break;
          }
        }                                  
    }

//affecter le code postal --> pas trouve autre moyen que de faire dans une boucle... -->je parcours tout les elements de la liste de choix...
        //for (var i = 0; i < window.opener.document.forms[0].elements[NomChampCodePostal].options.length; i++) 
        //{                 
          //if (window.opener.document.forms[0].elements[NomChampCodePostal].options[i].text==CodePostal)
          //{
          //          window.opener.document.forms[0].elements[NomChampCodePostal].options[i].selected = true;
          //          break;
          //}
        //}          
    
    //METTRE LOCALITE = Bruxelles ou Brussel !!
    //+ charger code postaux via table...-->prendre composant aspx?? ou alors construire la liste via un label dynamique...
    
    window.close();
	return;
}
/////////////////////////////////////////////////////////////////////////////////////////////      
function LinkPopup(UrlLink,Param,Langue)
{
    if (trim(document.getElementById(Param).value).length<3)
    {
        if (Langue=='NL') //TRADUCTION TOM PENXTEN OK
        {
            //alert('U moet in het veld "' + deleteTags(document.getElementById(Param.replace('TextBox','Label')).innerHTML) + '" minstens 3 tekens invoeren om een zoekopdracht te kunnen uitvoeren!!');
            //plus de champ associe donc on enleve sinon fait une erreur...
            alert('U moet in het veld  minstens 3 tekens invoeren om een zoekopdracht te kunnen uitvoeren!!');
        }
        else
        {   
            //alert('Vous devez introduire au moins 3 caract\350res dans le champ "' + deleteTags(document.getElementById(Param.replace('TextBox','Label')).innerHTML) + '" pour effectuer une recherche!!');
            //plus de champ associe donc on enleve sinon fait une erreur...            
            alert('Vous devez introduire au moins 3 caract\350res dans le champ pour effectuer une recherche!!');
        }

        document.getElementById(Param).focus();        
        document.getElementById(Param).select();                
        return;
    }
    
    var var_height=400;
    var var_width=650; 
    //pour centrer le popup       
    var var_top=(screen.height-var_height)/2;
    var var_left=(screen.width-var_width)/2;
    
    //fenetre=window.open(UrlLink+document.getElementById(Param).value,'_blank','location=no,scrollbars=yes,top=' + var_top + ',left=' + var_left + ',height=' + var_height + ',width=' + var_width);
    
    fenetre=window.open('','_blank','location=no,scrollbars=yes,top=' + var_top + ',left=' + var_left + ',height=' + var_height + ',width=' + var_width);
    
    //fenetre=window.open(UrlLink+document.getElementById(Param).value,'_blank','location=no,scrollbars=yes,top=10,left=10,height=' + var_height + ',width=' + var_width);
    //fenetre=window.open(UrlLink+document.getElementById(Param).value,'_blank','location=no,scrollbars=yes,height=' + var_height + ',width=' + var_width);
    
	//fenetre=window.open(UrlLink+document.getElementById(Param).value,'_blank','location=no,scrollbars=yes,height=400,width=550');
	
	if (Langue=='NL') //TRADUCTION TOM PENXTEN OK
	{
	    fenetre.document.write('<html><head><title>Wordt geladen, even geduld...</title><body>Wordt geladen, even geduld...<img src=Images/loading.gif></body></html>'); //l'image de loading s'affiche pas...pq??
	    //doit etre retradruit	    
    }
    else
    {
	    //fenetre.document.write('<html><head><title>Chargement en cours, veuillez patienter...</title><body>Chargement en cours, veuillez patienter...<img src=Images/loading.gif></body></html>'); //l'image de loading s'affiche pas...pq??
	    fenetre.document.write('<html><head><title>Recherche en cours, veuillez patienter...</title><body>Recherche en cours, veuillez patienter...<img src=Images/loading.gif></body></html>'); //l'image de loading s'affiche pas...pq??
    }	    
	
	//redirection vers la fenetre de la recherche des rues
	//PLV MODIF 04/11/2010
	//fenetre.location =UrlLink+document.getElementById(Param).value;
//obligé de faire ça sinon problème d'accent dans IE (lors de la recherche d'addresse), donc il faut transformer les accents par un code spécial (via fonction decodeURI)
	fenetre.location =UrlLink+encodeURI(document.getElementById(Param).value);
	//PLV Fin MODIF 04/11/2010
		
		
	return;
}
/////////////////////////////////////////////////////////////////////////////////////////////      

function CheckForm(formulaire,langue)
{
/////////////////////////////////////////////////////////////////////////////////////////////
    //alert(varG_mode);
    if (formulaire.name=='FormConnection')
    {
        if (varG_mode==0 || varG_mode==1 || varG_mode==2 || varG_mode==3) //0=connexion normale ; 1=changer mot de passe; 2=creer un compte; 3=modifier la langue
        {
            if (!AdresseEmailValide(trim(formulaire.elements['TextBoxEmail'].value)))
            {       
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('Ongeldig e-mailadres!!');        
                }
                else
                {
                    alert('Adresse e-mail invalide!!');
                }
                formulaire.elements['TextBoxEmail'].focus(); 
                formulaire.elements['TextBoxEmail'].select();                 
                return false;
            }
        }
/////////////////////////////////////////////////////////////////////////////////////////////                      
        if (varG_mode==1) //changer mot de passe
        {
            if (formulaire.elements['TextBoxOldPassword'].value=='')
            {
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('U moet het oude paswoord invoeren!!');
                }
                else
                {
                    alert('Vous devez introduire l\'ancien mot de passe!!');
                }        
                formulaire.elements['TextBoxOldPassword'].focus();                                
                formulaire.elements['TextBoxOldPassword'].select();                                                
                return false;
            }
/////////////////////////////////////////////////////////////////////////////////////////////                          
            if (formulaire.elements['TextBoxNewPassword'].value=='')
            {
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('U moet het nieuwe paswoord invoeren!!');
                }
                else
                {
                    alert('Vous devez introduire le nouveau mot de passe!!');
                }        
                formulaire.elements['TextBoxNewPassword'].focus();                                
                formulaire.elements['TextBoxNewPassword'].select();                                                
                return false;
            }
/////////////////////////////////////////////////////////////////////////////////////////////              
            if (formulaire.elements['TextBoxNewPassword'].value!=formulaire.elements['TextBoxNewPasswordConfirmation'].value)
            {
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('Het nieuwe paswoord ter bevestiging is niet hetzelfde als het paswoord ter bevestiging!!');
                }
                else
                {
                    alert('Le nouveau mot de passe de confirmation n\'est pas le m\352me que le mot de passe de confirmation!!');        
                }

                formulaire.elements['TextBoxNewPassword'].focus();         
                formulaire.elements['TextBoxNewPassword'].select();                         
                return false;
            }                        
        }
/////////////////////////////////////////////////////////////////////////////////////////////              
        if (varG_mode==2) //creer un compte
        {  
          //alert(varG_mode);     
          if (formulaire.elements['TextBoxPassword'].value=='')
          {
            if (langue=='NL') //TRADUCTION TOM PENXTEN OK
            {
                alert('U moet een paswoord invoeren!!');
            }
            else
            {
                alert('Vous devez introduire un mot de passe!!');
            } 
            formulaire.elements['TextBoxPassword'].focus();                        
            formulaire.elements['TextBoxPassword'].select();                                    
            return false;        
          }
    /////////////////////////////////////////////////////////////////////////////////////////////              

          if (formulaire.elements['TextBoxPasswordConfirmation'].value=='')
          {
            if (langue=='NL')
            {
                alert('U moet een paswoord ter bevestiging invoeren!!'); //TRADUCTION TOM PENXTEN OK
            }
            else
            {
                alert('Vous devez introduire un mot de passe de confirmation!!');

            }        
            formulaire.elements['TextBoxPasswordConfirmation'].focus();                                
            formulaire.elements['TextBoxPasswordConfirmation'].select();                                            
            return false;
          }
    /////////////////////////////////////////////////////////////////////////////////////////////                    

          if (formulaire.elements['TextBoxPassword'].value!=formulaire.elements['TextBoxPasswordConfirmation'].value)
          {
            if (langue=='NL') //TRADUCTION TOM PENXTEN OK
            {
                alert('Het paswoord ter bevestiging is niet hetzelfde als het paswoord!!');
            }
            else
            {
                alert('Le mot de passe de confirmation n\'est pas le m\352me que le mot de passe!!');        
            }

            formulaire.elements['TextBoxPasswordConfirmation'].focus();         
            formulaire.elements['TextBoxPasswordConfirmation'].select();                     
            return false;
          }

    /////////////////////////////////////////////////////////////////////////////////////////////              
          if (formulaire.elements['liste_langue'].options[formulaire.elements['liste_langue'].options.selectedIndex].text=='')
          {
            if (langue=='NL')
            {
                alert('U moet een taal kiezen!!'); //TRADUCTION TOM PENXTEN OK
            }
            else
            {
                alert('Vous devez choisir une langue!!');        
            }

            formulaire.elements['liste_langue'].focus();
            
            return false;
          }                    
        }
/////////////////////////////////////////////////////////////////////////////////////////////                      
    }
    else if (formulaire.name=='FormForm')   
    {                        
            if ((trim(formulaire.elements['TextBoxAdresseEmail'].value)!='') && (!AdresseEmailValide(trim(formulaire.elements['TextBoxAdresseEmail'].value))))
            {       
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('Ongeldig e-mailadres!!');        
                }
                else
                {
                    alert('Adresse e-mail invalide!!');
                }
                formulaire.elements['TextBoxAdresseEmail'].focus(); 
                formulaire.elements['TextBoxAdresseEmail'].select();                 
                return false;
            }    
///////////////////////////CHAMPS OBLIGATOIRES//////////////////////////////////////////////////////////////////
//on veut pouvoir aussi sauver temporairement, car formulaire est assez long donc si sauvetage temporaire, pas de verifications des champs obligatoires...
//alert(var_globale_verifChampsObligatoires);
    if (var_globale_verifChampsObligatoires)
    {
///////////////////////////CHAMPS OBLIGATOIRES TEXTBOX, DROPDOWNLIST, TEXTAREA (TOUT EN UN)/////////////////////////////////////////////
        //je split le champ hidden (qui contient les label associes aux champs obligatoires) dans un tableau pour pouvoir faire une boucle de traitement...
        var var_chaine_HiddenFieldCheckForm=document.getElementById('HiddenFieldCheckForm').value;
        var tableauFieldHiddenCheckForm=var_chaine_HiddenFieldCheckForm.split(';');
        var var_nom_control; //sans mettre var c considere comme variable globale...moi je veux des var loc
        var var_nom_label;
        var var_contenu_label;
        
        var tableauTypesControlAssociesAuLabel = 
        [
            'TextBox'
            ,'DropDownList'
            ,'TextArea'
	    ];
	    
	    var typeControlAssocieAuLabel;
	    
	    var bool_contenu_control_vide;


        for (var jj=0; jj<tableauFieldHiddenCheckForm.length; jj++)  //on parcourt tout les elements du tableau (champ asp hidden) contenant les label asp associes aux controls obligatoires du formulaire...
        {        
        
                        var_nom_label=tableauFieldHiddenCheckForm[jj];
                        
                        typeControlAssocieAuLabel='';
                        
                        for (var kk=0; kk<tableauTypesControlAssociesAuLabel.length; kk++)                           
                        {
                            //on remplace le nom du label par une des valeurs contenu dans le tableau et on regarde si le control associe existe...
                            var_nom_control=tableauFieldHiddenCheckForm[jj].replace('Label',tableauTypesControlAssociesAuLabel[kk]);                            

                            if (document.getElementById(var_nom_control)) //control existe -->on a trouve -->on sort de la boucle
                            {                            
                                typeControlAssocieAuLabel=tableauTypesControlAssociesAuLabel[kk]; //on affecte le type de control a la variable
                                break;
                            }                                          
                        }
                        
                        if (typeControlAssocieAuLabel=='') //le control associe n'existe pas
                        {
//j'ai ajoute cette condition car parfois j'ai des champs FR ET NL (terminant par 'FR' et 'NL') invisible pour le porteur du projet...et donc alors erreur si je ne teste pas ici...                        
                            if (!( (Right(var_nom_label.toUpperCase(),2)=='FR') || (Right(var_nom_label.toUpperCase(),2)=='NL') ))
                            {
                                //si le label n'a pas de control associe (ce qui devrait pas arriver, car on le verifie lorsque l'on coche la case a cocher obligatoire dans ecran admin, mais bon on ne sait jamais, si on ecrit direct dans la db sans passer par ecran admin...)-->on affiche un message et on passe a l'element suivant sans continuer le traitement de la boucle for pour ce control
                                alert('Association Problem of Label ' + var_nom_label + ' to control ' + var_nom_control);
                                continue;                            
                            }
                            else
                            {
                                continue;
                            }                                                                                    
                        }
                        
                        var_contenu_label=deleteTags(document.getElementById(var_nom_label).innerHTML); //on delete les tags car il y a un <label for="">...</label> dans le text du label donc je ne veux pas que ca s'affiche lors de l'alert javascript                        
                        
                        
                        if (typeControlAssocieAuLabel=='DropDownList')
                        {
                            bool_contenu_control_vide=trim(formulaire.elements[var_nom_control].options[formulaire.elements[var_nom_control].selectedIndex].text)==''
                        }
                        else
                        {
                            bool_contenu_control_vide=trim(document.getElementById(var_nom_control).value)==''
                        }
                        
                        
                        if (bool_contenu_control_vide) //si contenu du control est vide
                        {
                            if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                            {                                          
                                alert('HET VELD "' + var_contenu_label + '" MOET VERPLICHT WORDEN INGEVULD!!');
                            }
                            else
                            {                                          
                                alert('LE CHAMP "' + var_contenu_label + '" EST OBLIGATOIRE!!');
                            }           
                            
//PLV MODIF 14/08/2009                            
                            if (!document.getElementById(var_nom_control).disabled) //car si combo CP-commune est disabled et vide(ce qui ne devrait pas arriver), probleme pour mettre le focus dans IE et alors il ne renvoie pas return false!! dans FF marche bien
                            {
                                
                                document.getElementById(var_nom_control).focus();
                            }
//PLV Fin MODIF 14/08/2009                            
                            
                            if (typeControlAssocieAuLabel!='DropDownList')
                            {
//sert a quoi?? PLV 31/08/2009                            
                                document.getElementById(var_nom_control).select(); //cette methode n'est pas supporte par un dropdownlist...
                            }
                            return false;                            
                        }
////////////////////////////////////////////////////////////////////////////////////////////////                        
        }//fin for (var jj=0; jj<tableauFieldHiddenCheckForm.length; jj++)
///////////////////////////FIN CHAMPS OBLIGATOIRES TEXTBOX, DROPDOWNLIST, TEXTAREA (TOUT EN UN)/////////////////////////////////////////////


//PLV MODIF 31/08/2009
/////////////////////////REMPLIR UNE ET UNE SEULE ADRESSE (A BRUXELLES OU HORS DE BRUXELLES) DES "RENSEIGNEMENTS PRATIQUES"////////////////////////
//si rempli aucun champ de aucune des deux adresses...
if  ( 
        (document.getElementById('TextBoxRueBxl').value=='') 
        &&
        (document.getElementById('TextBoxNrrueBxl').value=='') 
        &&
        (document.getElementById('TextBoxNrboiteBxl').value=='') 
        &&
        (document.getElementById('DropDownListCPCommuneBxl').value==0) 
        &&
        (document.getElementById('TextBoxRueHorsBxl').value=='') 
        &&
        (document.getElementById('TextBoxNrrueHorsBxl').value=='') 
        &&
        (document.getElementById('TextBoxNrboiteHorsBxl').value=='') 
        &&
        (document.getElementById('TextBoxCodePostalHorsBxl').value=='') 
        &&
        (document.getElementById('TextBoxLocaliteHorsBxl').value=='') 
    )
{
    if (langue=='NL')
    {
        alert('U dient ofwel het Brusselse adres, ofwel het adres buiten Brussel in te vullen!!');
    }
    else
    {
        alert('Vous devez remplir soit l\'adresse bruxelloise soit l\'adresse hors de Bruxelles!!');    
    }
    
    document.getElementById('TextBoxRechercheRueBxl').focus();
    return false; 
}  
///////////////
//si rempli des champs des deux adresses... 
if  ( 
        (
            (document.getElementById('TextBoxRueBxl').value!='') 
            ||
            (document.getElementById('TextBoxNrrueBxl').value!='') 
            ||
            (document.getElementById('TextBoxNrboiteBxl').value!='') 
            ||
            (document.getElementById('DropDownListCPCommuneBxl').value!=0) 
        )
        &&
        (
            (document.getElementById('TextBoxRueHorsBxl').value!='') 
            ||
            (document.getElementById('TextBoxNrrueHorsBxl').value!='') 
            ||
            (document.getElementById('TextBoxNrboiteHorsBxl').value!='') 
            ||
            (document.getElementById('TextBoxCodePostalHorsBxl').value!='') 
            ||
            (document.getElementById('TextBoxLocaliteHorsBxl').value!='')
        )
    )
{
    if (langue=='NL')
    {
        alert('U dient ofwel het Brusselse adres, ofwel het adres buiten Brussel in te vullen!!');
    }
    else
    {
        alert('Vous devez remplir soit l\'adresse bruxelloise soit l\'adresse hors de Bruxelles!!');    
    }
    document.getElementById('TextBoxRechercheRueBxl').focus();    
    return false; 
}  
///////////////
//si rempli au moins un champ de la 1ere adresse mais incomplet!!-->manque des champs à remplir...
if  ( 
        (document.getElementById('TextBoxRueBxl').value!='') 
        ||
        (document.getElementById('TextBoxNrrueBxl').value!='') 
        ||
        (document.getElementById('TextBoxNrboiteBxl').value!='') 
        ||
        (document.getElementById('DropDownListCPCommuneBxl').value!=0) 
    )
{
    var TableauControls =
    [
    'TextBoxRueBxl',
    'TextBoxNrrueBxl',
    'DropDownListCPCommuneBxl'    
    ];
				

    for (var ii=0; ii<TableauControls.length; ii++)
    {
        var_nom_control=TableauControls[ii];        
        
        if (document.getElementById(var_nom_control).value=='') 
        {          
            var_nom_label=document.getElementById('Label' + var_nom_control.replace('TextBox','').replace('DropDownList',''))
            
            var_contenu_label=deleteTags(var_nom_label.innerHTML); //on delete les tags car il y a un <label for="">...</label> dans le text du label donc je ne veux pas que ca s'affiche lors de l'alert javascript
            
            if (langue=='NL')
            {
                alert('HET VELD "' + var_contenu_label + '" MOET VERPLICHT WORDEN INGEVULD!!');
            }
            else
            {                                          
                alert('LE CHAMP "' + var_contenu_label + '" EST OBLIGATOIRE!!');
            }
            
            if (!document.getElementById(var_nom_control).disabled) //car si combo CP-commune est disabled et vide(ce qui ne devrait pas arriver), probleme pour mettre le focus dans IE et alors il ne renvoie pas return false!! dans FF marche bien
            {
                                    
                document.getElementById(var_nom_control).focus();
            }
            
            return false; 
        }
   }
}  
//si rempli au moins un champ de la 2eme adresse mais incomplet!!-->manque des champs à remplir...
if  ( 
        (document.getElementById('TextBoxRueHorsBxl').value!='') 
        ||
        (document.getElementById('TextBoxNrrueHorsBxl').value!='') 
        ||
        (document.getElementById('TextBoxNrboiteHorsBxl').value!='') 
        ||
        (document.getElementById('TextBoxCodePostalHorsBxl').value!='') 
        ||
        (document.getElementById('TextBoxLocaliteHorsBxl').value!=0)         
    )
{
    var TableauControls =
    [
    'TextBoxRueHorsBxl',
    'TextBoxNrrueHorsBxl',
    'TextBoxCodePostalHorsBxl',    
    'TextBoxLocaliteHorsBxl'
    ];
				

    for (var ii=0; ii<TableauControls.length; ii++)
    {
        var_nom_control=TableauControls[ii];
        
        if (document.getElementById(var_nom_control).value=='') 
        {          
            var_nom_label=document.getElementById('Label' + var_nom_control.replace('TextBox','').replace('DropDownList',''))
            
            var_contenu_label=deleteTags(var_nom_label.innerHTML); //on delete les tags car il y a un <label for="">...</label> dans le text du label donc je ne veux pas que ca s'affiche lors de l'alert javascript
            
            if (langue=='NL')
            {
                alert('HET VELD "' + var_contenu_label + '" MOET VERPLICHT WORDEN INGEVULD!!');
            }
            else
            {                                          
                alert('LE CHAMP "' + var_contenu_label + '" EST OBLIGATOIRE!!');
            }
                                                
            if (!document.getElementById(var_nom_control).disabled) //car si combo CP-commune est disabled et vide(ce qui ne devrait pas arriver), probleme pour mettre le focus dans IE et alors il ne renvoie pas return false!! dans FF marche bien
            {
                                    
                document.getElementById(var_nom_control).focus();
            }
           
           return false; 
        }
   }
}  
/////////////////////////Fin REMPLIR UNE ET UNE SEULE ADRESSE (A BRUXELLES OU HORS DE BRUXELLES) DES "RENSEIGNEMENTS PRATIQUES"////////////////////////
//PLV Fin MODIF 31/08/2009

   
    
/////////////////////////CHAMPS AUTRE OBLIGATOIRES////////////////////////////////////////////
if ( (document.getElementById('DropDownListActionPublicVise').value=='60') && (trim(document.getElementById('TextBoxActionPublicVisePrecisionAutre').value)=='') )
{
                            var_contenu_label=var_contenu_label=deleteTags(document.getElementById('LabelActionPublicVisePrecisionAutre').innerHTML); //on delete les tags car il y a un <label for="">...</label> dans le text du label donc je ne veux pas que ca s'affiche lors de l'alert javascript;
                            
                            if (langue=='NL')
                            {                                          
                                alert('HET VELD "' + var_contenu_label + '" MOET VERPLICHT WORDEN INGEVULD!!');
                            }
                            else
                            {                                          
                                alert('LE CHAMP "' + var_contenu_label + '" EST OBLIGATOIRE!!');
                            }                        
                            
                            document.getElementById('TextBoxActionPublicVisePrecisionAutre').focus();
                            //document.getElementById('TextBoxActionPublicVisePrecisionAutre').select();

                            return false;    
}
///////////////////////
if ( (document.getElementById('CheckBoxTypeIndicateurEvaluationProjet40').checked) && (trim(document.getElementById('TextBoxTypeIndicateurEvaluationProjet40Autre').value)=='') )
{
                            var_contenu_label=var_contenu_label=deleteTags(document.getElementById('LabelTypeIndicateurEvaluationProjet40Autre').innerHTML); //on delete les tags car il y a un <label for="">...</label> dans le text du label donc je ne veux pas que ca s'affiche lors de l'alert javascript;
                            
                            if (langue=='NL')
                            {                                          
                                alert('HET VELD "' + var_contenu_label + '" MOET VERPLICHT WORDEN INGEVULD!!');
                            }
                            else
                            {                                          
                                alert('LE CHAMP "' + var_contenu_label + '" EST OBLIGATOIRE!!');
                            }                        
                            
                            document.getElementById('TextBoxTypeIndicateurEvaluationProjet40Autre').focus();
                            //document.getElementById('TextBoxInfoComplIndicateurPrecisionAutre').select();

                            return false;    
}
/////////////////////////CHAMPS AUTRE OBLIGATOIRES////////////////////////////////////////////
    
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////GROUPE DE CHECKBOX OU IL FAUT COCHER AU MOINS UNE CHECKBOX///////////////////////////

///////////////////////////THEMES DE L'ACTION////////////////////////////////////////////////////
        var TableauCheckBox =
                [
                'CheckBoxTypeActionTheme10',
                'CheckBoxTypeActionTheme20',
                'CheckBoxTypeActionTheme30',
                'CheckBoxTypeActionTheme40',
                'CheckBoxTypeActionTheme50'
				];
				
        var var_au_moins_un_checkbox_coche=false;
                
        var var_nom_checkbox;
        
        
        for (var ii=0; ii<TableauCheckBox.length; ii++) 
        {   
        
            var_nom_checkbox=TableauCheckBox[ii];

            if  (
                    formulaire.elements[var_nom_checkbox].checked
                )
            {
                var_au_moins_un_checkbox_coche=true;
            }            
        }
        
        if (!var_au_moins_un_checkbox_coche) //si pas au moins un checkbox coche
        {
            if (langue=='NL')
                {   
                    //traduction TOM PENXTEN
                    alert('U moet minstens een vakje aanvinken voor de tabel "' + "Thema's van de actie" + '"!!');
                }            
            else
                {
                    alert('Vous devez cocher au moins une case \340 cocher pour le tableau "' + "Th\350mes de l'action" + '"!!');
                } 
                
            formulaire.elements[TableauCheckBox[0]].focus();                        
            formulaire.elements[TableauCheckBox[0]].select();
                                    
            return false;
        }                                             
///////////////////////////FIN THEMES DE L'ACTION////////////////////////////////////////////////////


///////////////////////////DATES DE L'ACTION////////////////////////////////////////////////////
        var TableauCheckBox =
                [
//PLV MODIF 20/08/2009
/*                    
                'CheckBoxTypeActionDate10',
*/
//PLV Fin MODIF 20/08/2009                
                'CheckBoxTypeActionDate20',
                'CheckBoxTypeActionDate25',                
                'CheckBoxTypeActionDate30',
                'CheckBoxTypeActionDate40',
                'CheckBoxTypeActionDate50',
                'CheckBoxTypeActionDate60',
                'CheckBoxTypeActionDate70',
                'CheckBoxTypeActionDate80',
                'CheckBoxTypeActionDate90'
				];
				
        var var_au_moins_un_checkbox_coche=false;
                
        var var_nom_checkbox;
        
        
        for (var ii=0; ii<TableauCheckBox.length; ii++) 
        {   
        
            var_nom_checkbox=TableauCheckBox[ii];

            if  (
                    formulaire.elements[var_nom_checkbox].checked
                )
            {
                var_au_moins_un_checkbox_coche=true;
            }            
        }
        
        if (!var_au_moins_un_checkbox_coche) //si pas au moins un checkbox coche
        {
            if (langue=='NL')
                {   
                    //traduction TOM PENXTEN
                    alert('U moet minstens een vakje aanvinken voor de tabel "' + "Data van de actie" + '"!!');
                }            
            else
                {
                    alert('Vous devez cocher au moins une case \340 cocher pour le tableau "' + "Dates de l'action" + '"!!');
                } 
                
            formulaire.elements[TableauCheckBox[0]].focus();                        
            formulaire.elements[TableauCheckBox[0]].select();                        

            return false;
        }                                             
///////////////////////////FIN DATES DE L'ACTION////////////////////////////////////////////////////

///////////////////////////RADIO BUTTONS////////////////////////////////////////////////////
        var TableauCheckBox =
                [
                'RadioButtonListActionParticipeSelectionTrophee_0',
                'RadioButtonListActionParticipeSelectionTrophee_1'
				];
				
        var var_au_moins_un_checkbox_coche=false;
                
        var var_nom_checkbox;
        
        
        for (var ii=0; ii<TableauCheckBox.length; ii++) 
        {   
        
            var_nom_checkbox=TableauCheckBox[ii];

            if  (
                    formulaire.elements[var_nom_checkbox].checked
                )
            {
                var_au_moins_un_checkbox_coche=true;
            }            
        }
        
        if (!var_au_moins_un_checkbox_coche) //si pas au moins un checkbox coche
        {
            if (langue=='NL')
                {   
                    //traduction TOM PENXTEN
                    alert('U moet een radio button aanvinken!!');
                }            
            else
                {
                    alert('Vous devez cocher un bouton radio!!');
                } 
                

            formulaire.elements[TableauCheckBox[0]].focus(); 
            formulaire.elements[TableauCheckBox[0]].select(); //sélectionne le radio button
            
            return false;
        }                                             
///////////////////////////Fin RADIO BUTTONS////////////////////////////////////////////////////
               
////////////////////////////FIN GROUPE DE CHECKBOX OU IL FAUT COCHER AU MOINS UNE CHECKBOX///////////////////////////
        
///////////////////////////FIN CHAMPS OBLIGATOIRES//////////////////////////////////////////////////////////////////         
    }//fin if (var_globale_verifChampsObligatoires)
         
/*         
//////////////////////////VERIF FORMAT//////////////////////////////////////////////////////////////////////////         
///////////////////////////CHAMPS FORMAT FLOAT//////////////////////////////////////////////////////////////////                                                                
//simplification
        var TableauElementsFormatFloat = 
                [
				];

        var var_nom_textbox;
        var var_nom_label;
        var var_contenu_label;


        for (var ii=0; ii<TableauElementsFormatFloat.length; ii++) 
        {           
           var_nom_textbox=TableauElementsFormatFloat[ii];
           var_nom_label=TableauElementsFormatFloat[ii].replace('TextBox','Label');
           var_contenu_label=deleteTags(document.getElementById(var_nom_label).innerHTML);

            if  (
                    (trim(formulaire.elements[var_nom_textbox].value)!='')
                    &&
                    (!IsUnsignedFloat(trim(formulaire.elements[var_nom_textbox].value)))
                )
            {
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK
                {
                    alert('HET VELD "' + var_contenu_label + '" HEEFT EEN ONGELDIG FORMAAT, ENKEL EEN REEEL GETAL!! (bijv.: 100 of 100,5)');
                }
                else
                {
                    alert('FORMAT INVALIDE POUR LE CHAMP "' + var_contenu_label + '"!! UNIQUEMENT UN NOMBRE REEL!! (par exemple: 100 ou 100,5)');
                } 
                formulaire.elements[var_nom_textbox].focus();                        
                formulaire.elements[var_nom_textbox].select();                                    
                return false;                                             
            }
        }        
////////////////////////////////////////////////////////////////////////////////////////////////////////            
/////////////////////////////////////////////////////////////////////////////////////////////                                                                
///////////////////////////FIN CHAMPS FORMAT FLOAT//////////////////////////////////////////////////////////////////                                         

//////////////////////////////CHAMPS FORMAT ENTIER///////////////////////////////////////////////
//simplification
        var TableauElementsFormatInteger = 
                [
				];

        var var_nom_textbox;
        var var_nom_label;
        var var_contenu_label;

        for (var ii=0; ii<TableauElementsFormatInteger.length; ii++) 
        {   
        
           var_nom_textbox=TableauElementsFormatInteger[ii];
           var_nom_label=TableauElementsFormatInteger[ii].replace('TextBox','Label');
           var_contenu_label=deleteTags(document.getElementById(var_nom_label).innerHTML);

            if  (
                    (trim(formulaire.elements[var_nom_textbox].value)!='')
                    &&
                    (!IsUnsignedInteger(trim(formulaire.elements[var_nom_textbox].value)))
                )
            {
                if (langue=='NL') //TRADUCTION TOM PENXTEN OK + WIM DE RAEDT
                {
                    alert('HET VELD "' + var_contenu_label + '" HEEFT EEN ONGELDIG FORMAAT, ENKEL EEN GEHEEL GETAL!!');
                }
                else
                {
                    alert('FORMAT INVALIDE POUR LE CHAMP "' + var_contenu_label + '"!! UNIQUEMENT UN NOMBRE ENTIER!!');
                } 
                formulaire.elements[var_nom_textbox].focus();                        
                formulaire.elements[var_nom_textbox].select();                                    
                return false;                                             
            }
        }
//////////////////////////////FIN CHAMPS FORMAT ENTIER///////////////////////////////////////////////                       

//////////////////////////FIN VERIF FORMAT//////////////////////////////////////////////////////////////////////////         
/////////////////////////////////////////////////////////////////////////////////////////////                              
/////////////////////////////////////////////////////////////////////////////////////////////*/

/////////////////////////////////////////////////////////////////////////////////////////////                          
//PLV MODIF 10/08/2009
//obligé de faire ca car j'ai mis les deux combobox CP+commune a disabled(pour pas qu'on puisse changer le code postal manuellement) et si c disabled, la valeur n'est pas transmise au formulaire lors du submit, ici j'enleve le disabled juste avant le submit, comme ca j'ai la valeur
        document.getElementById('DropDownListCPCommuneBxl').disabled='';
        document.getElementById('DropDownListCPCommuneBxlActionLieu').disabled='';
//PLV Fin MODIF 10/08/2009
/////////////////////////////////////////////////////////////////////////////////////////////                          
       
    }//Fin else if (formulaire.name=='FormForm')
       
    return true;

}
/////////////////////////////////////////////////////////////////////////////////////////////      

function ForgottenPassword(langue)
{
   var adresse_email=document.getElementById('TextBoxEmail').value
   if (!AdresseEmailValide(adresse_email))
   {   
     if (langue=='NL') //TRADUCTION TOM PENXTEN OK
     {
        alert('Gelieve een geldig e-mailadres in te voeren in het veld "E-mail"!!');
        document.getElementById('TextBoxEmail').focus();         
        document.getElementById('TextBoxEmail').select();                 
     }
     else
     {
        alert('Veuillez introduire une adresse e-mail valide dans le champ "E-mail"!!');     
        document.getElementById('TextBoxEmail').focus();                 
        document.getElementById('TextBoxEmail').select();                         
     }
   }
   else
   {
//AJAX 23/11/2009
//transformation via un appel ajax...plus propre et plus beau   
        //window.open('ForgottenPassword.aspx?Email=' + adresse_email + '&language=' + langue,'_blank','width=200,height=200,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
                
//appel ajax        
        //j'affiche le message de retour dans un alert                
        //je split car je veux récupérer le message, pas réussi à utiliser la propriété responseXML donc je prend responseText en splittant --> ça marche aussi
        //je met du code dans une chaine que j'exécuterai dans un eval lors de la réponse du server dans l'appel ajax...obligé de faire comme ça car je ne sais pas quand l'appel est terminé hors de la fonction AJAX...(sauf si je suis en mode synchrone)
        //dans la page ForgottenPassword.aspx, mon message est entouré de *@*, donc je dois splitter et prendre le 2ème indice (ç-à-d indice 1 car commence à zéro) de mon tableau dans lequel ma chaine est splitée...
        //xhr.responseText est le texte de la page retournée par le server
        var var_chaine_eval_ajax="var tab_string=xhr.responseText.split('*@*');alert(tab_string[1]);"
        //var var_chaine_eval_ajax="alert(xhr.responseText);"

//appel à la fonction ajax en mode asynchrone...
        FunctionAjaxAsynchrone("POST",'ForgottenPassword.aspx','Email=' + adresse_email + '&language=' + langue,'ImageLoadingForgottenPassword',var_chaine_eval_ajax);  
        
//si "GET" alors parametres_url=null et on met les paramètres dans l'url // SI POST on passe juste le nom de la page et les paramètres de l'url sont mis dans un autre paramètre séparés par des '&'              
//GET dans IE marche que la première fois?? pq?? alors que dans FF marche tjs??-->testé avec exemple ForgottenPassword
//        FunctionAjaxAsynchrone("GET",'ForgottenPassword.aspx?Email=' + adresse_email + '&language=' + langue,null,'ImageLoadingForgottenPassword',var_chaine_eval_ajax);


///////////////////


//si je veux faire un appel synchrone -->en mode synchrone, dans IE, l'image_loading apparait pas?? pq??
//        FunctionAjaxSynchrone("POST",'ForgottenPassword.aspx','Email=' + adresse_email + '&language=' + langue,'ImageLoadingForgottenPassword',var_chaine_eval_ajax);  

//si "GET" alors parametres_url=null et on met les paramètres dans l'url // SI POST on passe juste le nom de la page et les paramètres de l'url sont mis dans un autre paramètre séparés par des '&'              
//GET dans IE marche que la première fois?? pq?? alors que dans FF marche tjs??-->testé avec exemple ForgottenPassword
//        FunctionAjaxSynchrone("GET",'ForgottenPassword.aspx?Email=' + adresse_email + '&language=' + langue,null,'ImageLoadingForgottenPassword',var_chaine_eval_ajax);

//FIN AJAX 23/11/2009           
   }
}
/////////////////////////////////////////////////////////////////////////////////////////////      

function SetConnectionMode(mode,langue)
{
///////////////////////////////////////////////////////////////////////////////////////////    
///AJAX 23/11/2009
//rendre l'image de loading invisible
    //document.getElementById('ImageLoadingForgottenPassword').style.visibility='hidden';
//mieux de mettre syle.display car style.visibility garde la place de l'image --> décalage, style.display efface complétement l'image, sans décalage ni trou!!    
    document.getElementById('ImageLoadingForgottenPassword').style.display='none';
///FIN AJAX 23/11/2009    
///////////////////////////////////////////////////////////////////////////////////////////    
    var ligne_password = document.getElementById('Password');
    var ligne_old_password = document.getElementById('OldPassword');
    var ligne_new_password = document.getElementById('NewPassword');
    var ligne_new_password_confirmation = document.getElementById('NewPasswordConfirmation');            
    
    var ligne_password_confirmation = document.getElementById('PasswordConfirmation');
    var ligne_langue = document.getElementById('Langue');
    
    
    //alert (mode);
///////////////////////////////////////////////////////////////////////////////////////////        
    if (mode=='0') //connexion normale
    {            
        document.getElementById('LabelTitreIdentification').style.display=''; //rend visible -->vide comme ca prend valeur par defaut --> donc visible --> seul moyen que j'ai trouve pour que ca marche sous IE et firefox...                   
        document.getElementById('LabelTitreModifierPassword').style.display='none';
        document.getElementById('LabelTitreCreerUnCompte').style.display='none';
        //
        document.getElementById('LabelTitreModifierLangue').style.display='none';
                
                    
        ligne_password.style.display=''; //rend visible -->vide comme ca prend valeur par defaut --> donc visible --> seul moyen que j'ai trouve pour que ca marche sous IE et firefox...
        ligne_old_password.style.display='none'; //rend invisible
        ligne_new_password.style.display='none'; //rend invisible
        ligne_new_password_confirmation.style.display='none'; //rend invisible
        
        ligne_password_confirmation.style.display='none';
        ligne_langue.style.display='none';        
        
    
        document.getElementById('LabelLienModifierPassword').style.display=''; //visible
        document.getElementById('LabelLienAnnuler').style.display='none'; //invisible
        document.getElementById('LabelLienSignIn').style.display=''; 
        document.getElementById('LabelLienPasswordForgotten').style.display=''        
        //
        document.getElementById('LabelLienModifierLangue').style.display='';         
        
        document.getElementById('ButtonSeConnecter').style.display='';
        document.getElementById('ButtonModifierPassword').style.display='none';
        document.getElementById('ButtonSignIn').style.display='none';
        //
        document.getElementById('ButtonModifierLangue').style.display='none'; 
        
        document.title=document.getElementById('LabelTitreIdentification').innerHTML;                    
    }
///////////////////////////////////////////////////////////////////////////////////////////        
    else if (mode=='1')//changement mot de passe
    {
        document.getElementById('LabelTitreIdentification').style.display='none';
        document.getElementById('LabelTitreModifierPassword').style.display='';
        document.getElementById('LabelTitreCreerUnCompte').style.display='none'; 
        //
        document.getElementById('LabelTitreModifierLangue').style.display='none';
              
    
        ligne_password.style.display='none';
        ligne_old_password.style.display='';
        ligne_new_password.style.display='';
        ligne_new_password_confirmation.style.display='';

        ligne_password_confirmation.style.display='none';
        ligne_langue.style.display='none';        
        
        document.getElementById('LabelLienModifierPassword').style.display='none'; //invisible
        document.getElementById('LabelLienAnnuler').style.display=''; //visible
        document.getElementById('LabelLienSignIn').style.display='none';
        document.getElementById('LabelLienPasswordForgotten').style.display='none'               
        //
        document.getElementById('LabelLienModifierLangue').style.display='none';                 
        
        document.getElementById('ButtonSeConnecter').style.display='none';
        document.getElementById('ButtonModifierPassword').style.display='';
        document.getElementById('ButtonSignIn').style.display='none';
        //
        document.getElementById('ButtonModifierLangue').style.display='none'; 
        
        document.title=document.getElementById('LabelTitreModifierPassword').innerHTML;                    
    }
///////////////////////////////////////////////////////////////////////////////////////////        
    else if (mode=='2')//creer un compte
    {
        document.getElementById('LabelTitreIdentification').style.display='none';
        document.getElementById('LabelTitreModifierPassword').style.display='none';
        document.getElementById('LabelTitreCreerUnCompte').style.display='';
        //
        document.getElementById('LabelTitreModifierLangue').style.display='none';
        
        
    
        ligne_password.style.display='';
        ligne_old_password.style.display='none';
        ligne_new_password.style.display='none';
        ligne_new_password_confirmation.style.display='none';
        
        ligne_password_confirmation.style.display='';
        ligne_langue.style.display='';        
        
        document.getElementById('LabelLienModifierPassword').style.display='none';
        document.getElementById('LabelLienAnnuler').style.display='';
        document.getElementById('LabelLienSignIn').style.display='none';
        document.getElementById('LabelLienPasswordForgotten').style.display='none'                
        //
        document.getElementById('LabelLienModifierLangue').style.display='none';                 
        
        document.getElementById('ButtonSeConnecter').style.display='none';
        document.getElementById('ButtonModifierPassword').style.display='none';
        document.getElementById('ButtonSignIn').style.display='';
        //
        document.getElementById('ButtonModifierLangue').style.display='none';
        
        document.title=document.getElementById('LabelTitreCreerUnCompte').innerHTML;                            
    }
///////////////////////////////////////////////////////////////////////////////////////////    
    else if (mode=='3')//modifier la langue
    {
        document.getElementById('LabelTitreIdentification').style.display='none';
        document.getElementById('LabelTitreModifierPassword').style.display='none';
        document.getElementById('LabelTitreCreerUnCompte').style.display='none';
        //
        document.getElementById('LabelTitreModifierLangue').style.display='';
        
            
        ligne_password.style.display='';
        ligne_old_password.style.display='none';
        ligne_new_password.style.display='none';
        ligne_new_password_confirmation.style.display='none';
        
        ligne_password_confirmation.style.display='none';
        ligne_langue.style.display='';        
        
        document.getElementById('LabelLienModifierPassword').style.display='none';
        document.getElementById('LabelLienAnnuler').style.display='';
        document.getElementById('LabelLienSignIn').style.display='none';
        document.getElementById('LabelLienPasswordForgotten').style.display='none'        
        //
        document.getElementById('LabelLienModifierLangue').style.display='none';                 
        
        
        document.getElementById('ButtonSeConnecter').style.display='none';
        document.getElementById('ButtonModifierPassword').style.display='none';
        document.getElementById('ButtonSignIn').style.display='none';
        //
        document.getElementById('ButtonModifierLangue').style.display='';
        
        document.title=document.getElementById('LabelTitreModifierLangue').innerHTML;                                    
    }
///////////////////////////////////////////////////////////////////////////////////////////        
//positionner le combo langue sur la langue par defaut de la page...
        for (var i = 0; i < document.forms[0].elements['liste_langue'].options.length; i++) 
        {                 
          if (document.forms[0].elements['liste_langue'].options[i].text==langue)
          {
                    document.forms[0].elements['liste_langue'].options[i].selected = true;
                    break;
          }
        }                          
///////////////////////////////////////////////////////////////////////////////////////////    
    document.getElementById('TextBoxEmail').focus(); //met le focus par defaut sur le champ E-mail
    document.getElementById('TextBoxEmail').select();
    varG_mode=mode; //met le mode courant dans la variable globale javascript
///////////////////////////////////////////////////////////////////////////////////////////////////////
/*
//Creer ligne d'un tableau dynamiquement
      var tableau = document.getElementById('TableIdentification');
      var ligne=tableau.insertRow(3);
      var cellule = ligne.insertCell();
      cellule.innerText = "The added cell"; 
      var cellule = ligne.insertCell();
      cellule.innerText = "The added cell2";       
*/


/*
//effacer ligne d'un tableau dynamiquement
      var tableau = document.getElementById('TableIdentification');
      tableau.deleteRow(3); //effacer 4eme ligne du tableau car indice commence a 0
      tableau.deleteRow(3); //effacer 5eme ligne du tableau car quand on efface une ligne le compteur est dynamique...donc il y a une ligne en moins
      tableau.deleteRow(3); //effacer 6eme ligne du tableau car quand on efface une ligne le compteur est dynamique...donc il y a une ligne en moins
*/      
/*
//effacer toute la table
      var element = document.getElementById('TableIdentification');
      while (element.firstChild) 
      {
	    element.removeChild(element.firstChild);
   	  }     
*/   	  
}
/////////////////////////////////////////////////////////////////////////////////////////////
function GoToDossiersList(langue)
{
 if (langue=='FR')
 {
    if (confirm('Etes vous s\373r de vouloir annuler?'))
    {
        window.location='DossiersList.aspx';
    }
 }
 else
 {
//traduction PLO OK
    if (confirm('Bent u zeker dat u wil annuleren?'))
    {
        window.location='DossiersList.aspx';
    }
 }
  
 return;
}
/////////////////////////////////////////////////////////////////////////////////////////////
/*
function ResetForm(langue)
{
//je gere moi meme le reset car l'evenement on reset se declenche avant le reset et moi j'ai besoin de l\'avoir apres pour adapter le tableau du bas...
 if (langue=='FR')
 {
    if (confirm('Etes vous s\373r de vouloir annuler toutes les modifications du formulaire?'))
    {
        document.forms[0].reset();
    }
 }
 else
 { //TRADUCTION TOM PENXTEN OK
    if (confirm('Bent u zeker dat u alle wijzigingen in het formulier wil annuleren?'))
    {
        document.forms[0].reset();
    }
 }
 
 return;
}
*/
/////////////////////////////////////////////////////////////////////////////////////////////
function OpenPopup(UrlPopup,HauteurPopup,LargeurPopup)
{    
    var var_height=HauteurPopup; //400;
    var var_width=LargeurPopup; //650; 
    //pour centrer le popup       
    var var_top=(screen.height-var_height)/2;
    var var_left=(screen.width-var_width)/2;
        
    window.open(UrlPopup,'_blank','resizable=yes,location=no,scrollbars=yes,top=' + var_top + ',left=' + var_left + ',height=' + var_height + ',width=' + var_width);    
    
	return;
}
/////////////////////////////////////////////////////////////////////////////////////////////      
function CheckAssociatedElement()
{   
    var var_nom_label=document.getElementById('LabelNomControlContenu').innerHTML; //on lit le nom du control sur la page admin...            
    
    
    if (var_nom_label.substring(0,5)!='Label') 
    {
        alert('Vous ne pouvez cocher la case "champ associ\351 obligatoire" que pour les labels!!');
        return false; //pour ne pas cocher le checkbox       
    }
    
    
    var tableauTypesControlAssociesAuLabel = 
    [
        'TextBox'
        ,'DropDownList'
        ,'TextArea'
    ];
    
    var typeControlAssocieAuLabel='';
    
    for (var kk=0; kk<tableauTypesControlAssociesAuLabel.length; kk++)                           
    {
         //on remplace le nom du label par une des valeurs contenu dans le tableau et on regarde si le control associe existe...
        var_nom_control=var_nom_label.replace('Label',tableauTypesControlAssociesAuLabel[kk]);                            

        if (window.opener.document.getElementById(var_nom_control)) //control existe sur la page appellante -->on a trouve -->on sort de la boucle
        {                            
            typeControlAssocieAuLabel=tableauTypesControlAssociesAuLabel[kk]; //on affecte le type de control a la variable
            break;
        }                                          
    }
                           
    if (typeControlAssocieAuLabel=='') //le control associe n'existe pas
    {   
        //si le label n'a pas de control associe --> pas mettre d'accent dans le commentaire sinon ca fait foire la suite...parfois oui parfois non?? je comprends pas bien...dans d'autres parties du code, le probleme n'apparait pas...mais ici oui...pq??
        alert('Il n\'y a pas de contr\364le associ\351 \340 ce Label!!');
        return false; //pour ne pas cocher le checkbox        
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////      
function RuleOfCssClass(var_cssClass) //inspire du net
{
    var targetrule='';
    
    var mysheet=document.styleSheets[0];
    var myrules=mysheet.cssRules? mysheet.cssRules: mysheet.rules; //(operateur ternaire(if then else) (dans le test on regarde si le browser supporte "mysheet.cssRules" --> alors c'est Firefox sinon c'est IE...) 1er(cssRules) pour FF, 2eme(rules) pour IE

    
    for (var i=0; i<myrules.length; i++)
    {
        if(myrules[i].selectorText.toLowerCase()=='.' + var_cssClass.toLowerCase()) //oblige de mettre un '.' devant car class "maison" commence par un '.' --> met en lowercase car parfois IE transforme en majuscule?? -->selectorText renvoie le nom de la classe...
        {
            targetrule=myrules[i].style.cssText;
            break;
        }
    }
    return targetrule;
}
/////////////////////////////////////////////////////////////////////////////////////////////      
function AfficherCacherChampsAutre()
{               
    if (document.getElementById('DropDownListActionPublicVise').value==60) //='Autre'
    {
        document.getElementById('LabelActionPublicVisePrecisionAutre').style.display=''; //visible    
        document.getElementById('TextBoxActionPublicVisePrecisionAutre').style.display=''; //visible
    }
    else
    {
        document.getElementById('LabelActionPublicVisePrecisionAutre').style.display='none'; //invisible       
        document.getElementById('TextBoxActionPublicVisePrecisionAutre').value=''; //mettre a blanc        
        document.getElementById('TextBoxActionPublicVisePrecisionAutre').style.display='none'; //invisible   
    }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////        

    if (document.getElementById('CheckBoxTypeIndicateurEvaluationProjet40').checked) //='Autre'
    {
        document.getElementById('LabelTypeIndicateurEvaluationProjet40Autre').style.display=''; //visible    
        document.getElementById('TextBoxTypeIndicateurEvaluationProjet40Autre').style.display=''; //visible
    }
    else
    {
        document.getElementById('LabelTypeIndicateurEvaluationProjet40Autre').style.display='none'; //invisible       
        document.getElementById('TextBoxTypeIndicateurEvaluationProjet40Autre').value=''; //mettre a blanc        
        document.getElementById('TextBoxTypeIndicateurEvaluationProjet40Autre').style.display='none'; //invisible   
    }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////                                
    return;
}
///////////////////////////////////////////////////////////////////////////////////////


function EditDossier(langue)
{
//NOUVELLE VERSION avec un tableau contenant la version prec contenant un indice de type caractere(le nom du champ) et comme valeur la valeur du champ
//+ comparaison avec version prec
//inspire du net
 //Il est possible d'utiliser des indices personnalises pour indexer les valeurs du tableau, on parle alors de tableau associatif. Javascript autorise en effet l'utilisation d'une chaine ou d'un nombre specifique pour indexer les valeurs du tableau. Voici un exemple de representation d'un tableau associatif :
//http://www.commentcamarche.net/contents/javascript/jstab.php3

////////////////////////////////////////////////////////////////////////////////////////////      
 //si il y a une version prec et qu'on est en mode admin (si le bouton existe c'est qu'on est en mode admin)
  if ( (document.getElementById('HiddenFieldListeChampsAediter_version_prec').value!='') && (document.getElementById('ButtonLabellisationAdmin')) )
  {
        var tab_stringToutDedans_version_prec=[]; //pour declarer comme tableau local, car si je met dans boucle for --> ca fait une erreur??   
        var tab_string_version_prec=document.getElementById('HiddenFieldListeChampsAediter_version_prec').value.split('*@*');

        for (var zz=0;zz<tab_string_version_prec.length;zz++)
        {
            var tab_string2_version_prec=tab_string_version_prec[zz].split('=');
            //je remplis le tableau avec des indices de type caractere(nom du champ) et comme valeur la valeur du champ...
//oblige de faire comme ca car il peut y avoir plusieurs fois le caractere du delimiteur (ici "=") dans la meme chaine mais moi je veux splitter que sur le premier delimiteur trouve, donc je fais un replace de la chaine "avant"(c-a-d le nom du champ) (+le delimiteur) par du vide ('') comme ca j'obtiens toujours la chaine apres le premier delimiteur meme si plusieurs delimiteurs dans la chaine...                    
            //tab_stringToutDedans_version_prec[tab_string2_version_prec[0]]=tab_string2_version_prec[1];
            tab_stringToutDedans_version_prec[tab_string2_version_prec[0]]=tab_string_version_prec[zz].replace(tab_string2_version_prec[0] + '=','');
        }
  }  
////////////////////////////////////////////////////////////////////////////////////////////    
//EDITION DU DOSSIER

  var var_nom_champ;
  var var_valeur;
  var tab_string2=[];
  
 
  var tab_string=document.getElementById('HiddenFieldListeChampsAediter').value.split('*@*');
  for (var ii=0;ii<tab_string.length;ii++)
  {    
    tab_string2=tab_string[ii].split('=');
    var_nom_champ=tab_string2[0];
    

    //var_valeur=tab_string2[1];
//oblige de faire comme ca car il peut y avoir plusieurs fois le caractere du delimiteur (ici "=") dans la meme chaine mais moi je veux splitter que sur le premier delimiteur trouve, donc je fais un replace de la chaine "avant"(c-a-d le nom du champ) (+le delimiteur) par du vide ('') comme ca j'obtiens toujours la chaine apres le premier delimiteur meme si plusieurs delimiteurs dans la chaine...        
    var_valeur=tab_string[ii].replace(var_nom_champ + '=','');

        
    if (var_nom_champ.toUpperCase().indexOf('RADIOBUTTON')==0)
    {
    //oblige de faire comme ca-->concatener '_' + valeur car le formulaire asp renvoie le nom du group de radiobutton(tableau) et pas le radio button selectionne mais il renvoie aussi la valeur et je me suis arrange pour que la valeur soit la meme que le suffixe (dans le nom du radiobutton) qui suit le nom du radiobutton group(tableau)
        if (document.getElementById(var_nom_champ+'_'+var_valeur)) //si champ existe car on ne sait jamais que le champ a ete renomme...
        {
            document.getElementById(var_nom_champ+'_'+var_valeur).checked=true;
        }
    }        
//PLV MODIF 04/11/2010
/*

    else if (var_nom_champ.toUpperCase().indexOf('CHECKBOX')==0)
    {
        if (document.getElementById(var_nom_champ)) //si champ existe car on ne sait jamais que le champ a ete renomme...
        {
            document.getElementById(var_nom_champ).checked=true;
        }
    }
*/    
    else if (var_nom_champ.toUpperCase().indexOf('CHECKBOX')==0)
    {
        if (document.getElementById(var_nom_champ)) //si champ existe car on ne sait jamais que le champ a ete renomme...
        {
            if (var_valeur==1) //obligé de faire ça, car sinon est toujours coché!!
            {
                document.getElementById(var_nom_champ).checked=true;
            }
        }
    }
//PLV Fin MODIF 04/11/2010        
    else if ( (var_nom_champ.toUpperCase().indexOf('TEXTBOX')==0) || (var_nom_champ.toUpperCase().indexOf('TEXTAREA')==0) )
    {   
                
        if (document.getElementById(var_nom_champ)) //si champ existe car on ne sait jamais que le champ a ete renomme...
        {
            document.getElementById(var_nom_champ).value=var_valeur;
                        
        }
    } 
    else if (var_nom_champ.toUpperCase().indexOf('DROPDOWNLIST')==0)
    {
        if (document.getElementById(var_nom_champ)) //si champ existe car on ne sait jamais que le champ a ete renomme...
        {
            for (var jj = 0; jj < document.forms[0].elements[var_nom_champ].options.length; jj++) 
            {           
              if (document.forms[0].elements[var_nom_champ].options[jj].value==var_valeur)
              {
                        document.forms[0].elements[var_nom_champ].options[jj].selected = true;
                        break;
              }
            }
        }
    }
      
////////////////////////////////////////////////////////////////////////////////////////////    
//rendre certains boutons a disabled en fonction du statut du dossier, on regarde le statut en regardant quel statut est passe dans les parametres
//PLV MODIF 14/08/2009
    else
    {    
        if (var_nom_champ=='id_type_statut_dossier')
        {
            if (var_valeur=='10') //sauvetage temporaire
            {            
                if (document.getElementById('ButtonLabellisationAdmin')) //si existe car si on est pas en admin existe pas
                {
                    document.getElementById('ButtonLabellisationAdmin').disabled=true;
                    document.getElementById('ButtonRefuserLabellisationAdmin').disabled=true;
                } 
            }
            else if (var_valeur=='20') //sauvetage total
            {
                if (document.getElementById('ButtonLabellisationAdmin')) //si existe car si on est pas en admin existe pas
                {            
                    document.getElementById('ButtonLabellisationAdmin').disabled=true;
                    document.getElementById('ButtonRefuserLabellisationAdmin').disabled=true;
                }
            }
            else if (var_valeur=='30') //envoi données admin
            {   
//PLV MODIF 21/10/2010                         
//on veut pouvoir cliquer sur le bouton "Sauver temporairement" pour pouvoir modifier le dossier mais uniquement si on est en mode admin, comme ça les traducteurs peuvent traduire en NL, puis seulement quand on a tout vérifié on labellise
//                document.getElementById('ButtonSauverTemporairement').disabled=true;
                if (!document.getElementById('ButtonLabellisationAdmin')) //si on est pas connecté en mode admin
                {
                    document.getElementById('ButtonSauverTemporairement').disabled=true;
                }
//PLV Fin MODIF 21/10/2010                
                document.getElementById('ButtonEnvoyerVersAdmin').disabled=true;
                if (!document.getElementById('ButtonLabellisationAdmin')) //je rends le bouton a disabled que si on est pas en mode admin car si on est en mode admin, on veut encore pouvoir sauver avant de valider le dossier
                {
                    if (document.getElementById('ButtonSauver')) //obbligé de tester si le bouton existe car je le rends invisible en asp car on en veut plus pour le moment et donc si invisible-->il n'existe plus en html et donc erreur javascript sans faire ça...
                    {
                        document.getElementById('ButtonSauver').disabled=true;
                    }                        
                    desactiverFormulaire(''); //desactive tout sauf bouton annuler et bouton logout                    
                }
            }
            else if (var_valeur=='40') //labellisé           
            {
//PLV MODIF 28/08/2009            
/*
                document.getElementById('ButtonSauverTemporairement').disabled=true;
                document.getElementById('ButtonSauver').disabled=true;            
                document.getElementById('ButtonEnvoyerVersAdmin').disabled=true;  
                if (document.getElementById('ButtonLabellisationAdmin')) //si existe car si on est pas en admin existe pas
                {                                              
                    document.getElementById('ButtonLabellisationAdmin').disabled=true;
                    document.getElementById('ButtonRefuserLabellisationAdmin').disabled=true;
                }
*/                
                desactiverFormulaire(''); //desactive tout sauf bouton annuler et bouton logout                                                
//PLV Fin MODIF 28/08/2009                                            
            }
            else if (var_valeur=='50') //refus de labellisation
            {
//PLV MODIF 28/08/2009            
/*            
                document.getElementById('ButtonSauverTemporairement').disabled=true;
                document.getElementById('ButtonSauver').disabled=true;            
                document.getElementById('ButtonEnvoyerVersAdmin').disabled=true;
                if (document.getElementById('ButtonLabellisationAdmin')) //si existe car si on est pas en admin existe pas
                {                
                    document.getElementById('ButtonLabellisationAdmin').disabled=true;
                    document.getElementById('ButtonRefuserLabellisationAdmin').disabled=true;
                }
*/                
                desactiverFormulaire(''); //desactive tout sauf bouton annuler et bouton logout
           }                
//PLV Fin MODIF 28/08/2009                                                       
        }
    }//fin else rendre certains boutons a disabled 
//PLV MODIF 14/08/2009
////////////////////////////////////////////////////////////////////////////////////////////    
////////////////////////////////////////////////////////////////////////////////////////////      
  }//FIN DU FOR CHAMPS A EDITER 
////////////////////////////////////////////////////////////////////////////////////////////    

//PLV MODIF 18/08/2009
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//VERSION PREC
//NOUVELLE FACON, pouvoir afficher en rouge meme ce qui est vide dans la version suivante...
//on parcourt l'ensemble des controls du formulaire via getElementsByTagName...

 //si il y a une version prec et qu'on est en mode admin (si le bouton existe c'est qu'on est en mode admin)            
 //document.write(document.getElementById('HiddenFieldListeChampsAediter_version_prec').value);
  if ( (document.getElementById('HiddenFieldListeChampsAediter_version_prec').value!='') && (document.getElementById('ButtonLabellisationAdmin')) )
  {                
////////////////////////////////////////////////////////////////////////////////////////////        

        var var_champs = '';
        var var_type='';
        var var_valeur_version_prec=''
//////////////////////////////////////////////////////////////////////                
        var_champs=document.getElementsByTagName('input'); //recoit tout les composant input

        for(var i=0; i<var_champs.length; i++) 
        {
          //alert(var_champs[i].getAttribute("id"));
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_type=var_champs[i].getAttribute("type");
                var_valeur=document.getElementById(var_nom_champ).value;

                if ((var_type.toLowerCase()=='button') || (var_type.toLowerCase()=='submit') || (var_type.toLowerCase()=='hidden'))
                {
                    continue;                   
                }         
                 
                                 
                if (var_type.toLowerCase()=='checkbox')
                {
                    if (!document.getElementById(var_nom_champ).checked)
                    {
                        var_valeur='';
                    }
                }
                
                
                if (tab_stringToutDedans_version_prec[var_nom_champ]==undefined)
                {
                    var_valeur_version_prec='';  
                }
                else
                {
                    var_valeur_version_prec=tab_stringToutDedans_version_prec[var_nom_champ];
                }
                
                
                if (var_valeur_version_prec!=var_valeur) //alors version prec differente de version qui suit-->mettre composant en rouge
                {                
                    //si checkbox, on ne peut pas colorer le fond...donc je colore le label associe au checkbox...
                    if (var_type.toLowerCase()=='checkbox')
                    {
                        var_nom_champ=var_nom_champ.replace(/CheckBox/g,'Label');
                    }                
                    
                    document.getElementById(var_nom_champ).style.backgroundColor='#FF7F50';//'tomato';
                }
               //test// if (var_type.toLowerCase()=='radio') {document.write(var_nom_champ);} 
        }
//////////////////////////////////////////////////////////////////////                
//////////////////////////////////////////////////////////////////////                
        var_champs=document.getElementsByTagName('textarea');
        for(var i=0; i<var_champs.length; i++) 
        {
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_valeur=document.getElementById(var_nom_champ).value;
                                                                
                
                if (tab_stringToutDedans_version_prec[var_nom_champ]==undefined)
                {
                    var_valeur_version_prec='';  
                }
                else
                {
                    var_valeur_version_prec=tab_stringToutDedans_version_prec[var_nom_champ];
                }
                
                if (var_valeur_version_prec==var_valeur)
                {
                    continue;
                }
                
                
                //oblige de faire ça car QUAND RETOUR A LA LIGNE, entre ce qui est lu dans le champ hidden(version prec) et dans le champ via javascript(version suivante), dans l'ancienne version il y a un caractere 13 qui n 'apparait pas dans l'autre, dans l'autre juste caractere 10, pour etre sur je remplace les caracteres 13 et 10 dans les deux variables, sans faire ca, ca marche pas!!!
                //je sais pas pq car reagit comme ca!!
                var reg=new RegExp(String.fromCharCode(10),'g');
                var reg2=new RegExp(String.fromCharCode(13),'g');
                var_valeur_version_prec=var_valeur_version_prec.replace(reg,'');
                var_valeur_version_prec=var_valeur_version_prec.replace(reg2,'');
                var_valeur=var_valeur.replace(reg,'');
                var_valeur=var_valeur.replace(reg2,'');
                
                                                                                             
                
                if (var_valeur_version_prec!=var_valeur) //alors version prec differente de version qui suit-->mettre composant en rouge
                {                
                    
                    document.getElementById(var_nom_champ).style.backgroundColor='#FF7F50';//'tomato';
                    
                }
        }
//////////////////////////////////////////////////////////////////////                
//////////////////////////////////////////////////////////////////////                
        var_champs=document.getElementsByTagName('select');
        for(var i=0; i<var_champs.length; i++)
        {
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_valeur=document.getElementById(var_nom_champ).value;
                                                                
                
                if (tab_stringToutDedans_version_prec[var_nom_champ]==undefined)
                {
                    var_valeur_version_prec='';  
                }
                else
                {
                    var_valeur_version_prec=tab_stringToutDedans_version_prec[var_nom_champ];
                }
                
                
                
                if (var_valeur_version_prec!=var_valeur) //alors version prec differente de version qui suit-->mettre composant en rouge
                {                
                    
                    document.getElementById(var_nom_champ).style.backgroundColor='#FF7F50';//'tomato';
                }
        }
//////////////////////////////////////////////////////////////////////                
  }//FIN IF si il y a une version prec et qu'on est en mode admin   
////////////////////////////////////////////////////////////////////////////////////////////        
  return;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//PLV Fin MODIF 18/08/2009


//////////////////////////////////////////////////////////////////////////////////////
//pris du net
function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////FONCTIONS POUR VERSION IMPRIMABLE + EXPORT EXCEL///////////////////////////////////////////////////
function enleve_liens_tri_tableau_asp(chaine)
{
//enleve les liens automatiques (generes en asp) pour trier le tableau-->pas besoin de ces liens pour l'exportation excel ni pour la version imprimable sinon erreur quand on clique sur ces liens...

/*
exemple: 

<TR class=TableauEntete>
<TD><A href="javascript:__doPostBack('DataGrid$ctl01$ctl00','')">N° agrement</A></TD>
<TD><A href="javascript:__doPostBack('DataGrid$ctl01$ctl01','')">Centre d'examen</A></TD>
<TD><A href="javascript:__doPostBack('DataGrid$ctl01$ctl02','')">Date d'echeance</A></TD></TR>

a remplacer par :

<TR class=TableauEntete>
<TD>N° agrement</TD>
<TD>Centre d'examen</TD>
<TD>Date d'echeance</TD></TR>

*/
	var chaine_return='';
	var indice_fin_dopostback=0;
	var chaine_temp='';

	
	chaine = chaine.replace(/<TD>/g,'<td>'); //je remplace d'abord les TD majuscule en minuscule car dans IE TD est mis en majuscule (et en firefox en minuscule) quand le code asp est genere -->//g veut dire global pour remplacer partout, sans mettre "g" car remplace que la premiere occurence...
	

	var Tableau = chaine.split(/<td>/);// Fractionnement dans un tableau sur le mot delimiteur <td>



	for(var i=0; i<Tableau.length; i++)
	{
		chaine_temp=Tableau[i];

		if (chaine_temp.toLowerCase().indexOf('<a href="javascript:__dopostback')!=-1) //-1 si pas present...je cherche la chaine '<TD><A href="javascript:__doPostBack' --> alors c'est qu'il y a un lien de tri genere automatiquement par ASP... //je met toLowerCase() car dans firefox c mis en minuscule...
		{
			indice_fin_dopostback=chaine_temp.indexOf('">'); //en cherchant cette chaine j'ai la fin du __doPostBack...
			
			chaine_temp='<td>'+chaine_temp.substr(indice_fin_dopostback+2,chaine_temp.length-(indice_fin_dopostback+1)); //je reconstruis la chaine...


//pour IE en majuscule
			chaine_temp=chaine_temp.replace(/<\/A>/,''); //enleve la balise de fin '</A>' car plus de lien...oblige de mettre un '\' devant le '/' car expression reguliere... //
//pour firefox en minuscule
			chaine_temp=chaine_temp.replace(/<\/a>/,''); //enleve la balise de fin '</a>' car plus de lien...oblige de mettre un '\' devant le '/' car expression reguliere...

			chaine_return+=chaine_temp; //je concatene la chaine reconstruite a la chaine a renvoyer...
			
		}		
		else
		{
			chaine_return+='<td>'+chaine_temp; //sinon je concatene dans la chaine a renvoyer la chaine_temp precedee d'un <td> (car chaque ligne commence par un td a cause du fractionnement dans le tableau mais chaque td a ete efface lors du fractionnement)
		}		

	}

	return chaine_return;
}
///////////////////////////////
function f_version_imprimable_chaine_a_ecrire(ID_version_imprimable)
{
//permet de retourner la version imprimable(code HTML) se situant dans une balise DIV dont l'id est passe en parametre...
//permet aussi de recuperer les CSS...

//sans mettre cette ligne la police des cellules du tableau n'apparait pas correctement...je sais pas pq??
var chaine_return='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';

chaine_return+='\n<html>';
chaine_return+='\n<head>';
chaine_return+='\n<title>'+document.title+'</title>'; //recuperation du titre;


//Listage des CSS de la page courante pour transfert a la popup imprimable
var i;
for(i=0 ; i<document.styleSheets.length ; i++)
{
    if(document.styleSheets[i].href==window.location || !document.styleSheets[i].href) //pour les feuilles de style attachees
    { //premier teste concerne Firefox le second concerne IE
    //on souhaite recupere le contenu de cette feuille de style inline.
        if(document.styleSheets[i].cssText) //concerne IE
        {
            chaine_return+='\n<style type="text/css">'+document.styleSheets[i].cssText+'</style>';
        }
        else //pas IE
        {
            chaine_return+='\n<style type="text/css">';
            var j;
            for(j=0 ; j<document.styleSheets[i].cssRules.length ; j++)
            {
                chaine_return+='\n'+document.styleSheets[i].cssRules[j].cssText;
            }
            chaine_return+='\n</style>';
        }
    }
    else
    {
        chaine_return+='\n<link href="'+document.styleSheets[i].href+'" rel="stylesheet" type="text/css">';
    }
}    

chaine_return+='\n</head>';
chaine_return+='\n<body>';
chaine_return+='\n<div id="content">'+document.getElementById(ID_version_imprimable).innerHTML+'\n</div>'; //j'ecris le bloc passe en parametre...
chaine_return+='\n</body>';
chaine_return+='\n</html>';

return enleve_liens_tri_tableau_asp(chaine_return);
//return chaine_return;
}
/////////////////////////////////////////////////
function f_version_imprimable(ID_version_imprimable)
{
//inspire d'un script trouve sur le net
//permet d'afficher une version imprimable d'un morceau d'une page HTML dont on passe l'id (par exemple balise <DIV>) d'un bloc de la page
//maintenant on appelle une deuxieme fonction-->decoupage plus propre...

//var var_largeur=screen.width
//var var_hauteur=screen.height

//var _options='width='+var_largeur + ',height='+var_hauteur + ',scrollbars=yes,resizable=yes,location=no,status=yes,top=0,left=0';
//quand j'essaie d'ouvrir la fenetre en plein ecran, c'est trop grand?? pq??

//var _options='width='+screen.width + ',height='+screen.height + ',scrollbars=yes,resizable=yes,location=no';

//var _options='scrollbars=yes,resizable=yes,location=no,status=yes';

var _options='';

var popup=window.open('','_blank',_options);


//on ecrit d'abord un message de chargement car parfois ca peut etre long et on a pas l'impression que ca charge...car page completement blanche...(je met une balise <DIV> pour pouvoir effacer ce message une fois que la page est chargee...)
popup.document.write('<DIV id="chargement">Loading in progress, please wait...</DIV>');



//on ecrit a la volee le contenu de la popup
popup.document.write(f_version_imprimable_chaine_a_ecrire(ID_version_imprimable));


//effacement du message de chargement une fois que le contenu de la version imprimable est charge...
popup.document.getElementById('chargement').innerHTML='';


popup.document.close(); //sans faire ca, avec Firefox, il y a un chargement infini de la page...
return false; //en retournant false, apres le click la fenetre ne remonte pas vers le haut...
}

///////////////////////////////
function f_affecte_champ_hidden_version_imprimable(champ_hidden,ID_version_imprimable)
{
//permet d'affecter a un champ cache le code html (version imprimable) a exporter en excel dans ce cas-ci...ce champ cache sera lue par la page asp pour pouvoir faire l'export excel...
	document.getElementById(champ_hidden).value=f_version_imprimable_chaine_a_ecrire(ID_version_imprimable);
	return true;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////FIN FONCTIONS POUR VERSION IMPRIMABLE + EXPORT EXCEL///////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function SurlignerDossiers()
{
    //return; //pour le moment je ne gère pas ça!!
    if (!document.getElementById('DataGrid')) //si datagrid existe pas --> si creation, sans faire ca, erreur
    {
        return;
    }
    
    if (document.getElementById('DataGrid').rows[0].cells[3].innerHTML!='E-mail')
    {
        return; //c'est qu'on est pas en mode admin et donc on ne colorie pas...
    }
    
    if (!document.getElementById('DataGrid')) //si le datagrid existe pas, car creation...sinon erreur!!
    {
        return;
    }   
    
    for (var ii=1;ii<document.getElementById('DataGrid').rows.length;ii++) //je commence a l'indice 1 au lieu de zero car premiere ligne=entete et pas besoin de tester la premiere ligne
    {
        if (document.getElementById('DataGrid').rows[ii].cells[9].innerHTML=='N') //login inactif
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneInactif';        
        }        
        else
        if (document.getElementById('DataGrid').rows[ii].cells[8].innerHTML=='Refus de labellisation')
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneRefusLabellisationAdmin';        
        }         
        else        
        if (document.getElementById('DataGrid').rows[ii].cells[8].innerHTML=='Labellisé')
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneLabellisationAdmin';        
        }         
        else
        if (document.getElementById('DataGrid').rows[ii].cells[8].innerHTML=='Envoi des données à l\'administrateur')
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneEnvoyeAdmin';        
        }         
        else    
        if (document.getElementById('DataGrid').rows[ii].cells[8].innerHTML=='Sauvé totalement')
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneSauve';        
        }         
        else 
        {
            document.getElementById('DataGrid').rows[ii].className='TabSurligneSauveTemporairement'; 
        } 
        
        
        if (document.getElementById('DataGrid').rows[ii].cells[10].innerHTML=='OUI')
        {
            document.getElementById('DataGrid').rows[ii].cells[10].className='TabSurligneParticipeTrophees';        
        }              
    }
    return;
}
///////////////////////////////////////////////////////////////////////////////////////////
function filtrerDossiers()
{            
    var_nbr_dossiers=0;
//////////////////////////////////////////////////////////////////////////////////////////////////////            
    for (var ii=1;ii<document.getElementById('DataGrid').rows.length;ii++) //je commence a l'indice 1 au lieu de zero car premiere ligne=entete et pas besoin de tester la premiere ligne
    {  
//////////////////////////////////////////////////////////////////////////////////////////////////////    
        if (document.getElementById('CheckBoxSauveTemporairement').checked)
        {                       
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneSauveTemporairement')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneSauveTemporairement')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }        
//////////////////////////////////////////////////////////////////////////////////////////////////////    
        if (document.getElementById('CheckBoxSauve').checked)
        {
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneSauve')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneSauve')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }
//////////////////////////////////////////////////////////////////////////////////////////////////////            
        if (document.getElementById('CheckBoxEnvoyeAdmin').checked)
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneEnvoyeAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneEnvoyeAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }
//////////////////////////////////////////////////////////////////////////////////////////////////////            
        if (document.getElementById('CheckBoxLabellisationAdmin').checked)
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneLabellisationAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneLabellisationAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }
//////////////////////////////////////////////////////////////////////////////////////////////////////
        if (document.getElementById('CheckBoxRefusLabellisationAdmin').checked)
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneRefusLabellisationAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneRefusLabellisationAdmin')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }
//////////////////////////////////////////////////////////////////////////////////////////////////////
        if (document.getElementById('CheckBoxInactif').checked)
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneInactif')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if (document.getElementById('DataGrid').rows[ii].className=='TabSurligneInactif')
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
            }
        }
//////////////////////////////////////////////////////////////////////////////////////////////////////
//PLV MODIF 01/09/2009
        if (document.getElementById('CheckBoxParticipeTrophees').checked)
        {            
            if  (document.getElementById('DataGrid').rows[ii].className=='TabSurligneParticipeTrophees')
            {
                document.getElementById('DataGrid').rows[ii].style.display=''; //affiche la ligne
                var_nbr_dossiers++;
            }
        }
        else //si decoche
        {            
            if  (
                    (document.getElementById('DataGrid').rows[ii].cells[10].className=='TabSurligneParticipeTrophees')
                    &&                    
                    (document.getElementById('DataGrid').rows[ii].style.display=='') //obligé de faire le deuxieme test aussi sinon affiche pas le bon nombre de records parfois...
                )                    
            {
                document.getElementById('DataGrid').rows[ii].style.display='none'; //n'affiche pas la ligne
                
                var_nbr_dossiers=var_nbr_dossiers-1; //obligé de faire ca sinon met pas bien a jour le nombre de records car, ce champ n'est pas exclusif...cohabite avec les autres statuts...                

            }
        }        
//PLV Fin MODIF 01/09/2009        
//////////////////////////////////////////////////////////////////////////////////////////////////////
    }  
//maj du nbre_dossiers
    document.getElementById('LabelNbrDossiers').innerHTML=var_nbr_dossiers + ' dossiers<br /><br />'
//////////////////////////////////////////////////////////////////////////////////////////////////////    
    return;     
}

//PLV MODIF 28/08/2009
function desactiverFormulaire(champEval) //je passe un champ Eval car parfois on veut desactiver un autre formulaire que le formulaire courant --> ex: quand on refuse la labellisation --> on veut desactiver le formulaire parent...
{
//désactive le formulaire, rend tout les controls en lecture seule(disabled...)
//j'emploie disabled mais j'aurais pu aussi employer readonly à la place??comme ça on peut copier coller mais on se rend pas bien compte que c'est en lecture seule et pour les listes déroulante ou autre composant readonly marche pas??..??mais disabled on ne sait pas bien lire alors que readonly si?
        var var_champs = '';
        var var_type='';        
//////////////////////////////////////////////////////////////////////                
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
        var_champs=eval(champEval + "document.getElementsByTagName('input');"); //recoit tout les composant input

        for(var i=0; i<var_champs.length; i++) 
        {
          //alert(var_champs[i].getAttribute("id"));
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_type=var_champs[i].getAttribute("type");
                //var_valeur=document.getElementById(var_nom_champ).value;
                
//PLV MODIF 09/03/2010               
                //if ((var_type.toLowerCase()=='hidden') || (var_nom_champ=='ButtonAnnuler') || (var_nom_champ=='ButtonLogOut')) //pas besoin de désactiver champs "hidden" ni le bouton ButtonAnnuler(car on doit pouvoir revenir à la liste des dossiers) (idem pour ButtonLogOut-->on veut quand meme pouvoir se delogger meme si lecture seule)
//le bouton "Imprimer" doit être accessible même si on est en lecture seule...                
                if ((var_type.toLowerCase()=='hidden') || (var_nom_champ=='ButtonImprimer') || (var_nom_champ=='ButtonAnnuler') || (var_nom_champ=='ButtonLogOut')) //pas besoin de désactiver champs "hidden" ni le bouton ButtonAnnuler(car on doit pouvoir revenir à la liste des dossiers) (idem pour ButtonLogOut-->on veut quand meme pouvoir se delogger meme si lecture seule)
//PLV Fin MODIF 09/03/2010
                {
                    continue;                   
                }         
                 
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
                eval(champEval + "document.getElementById(var_nom_champ).disabled=true;");
        }       
/////////
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
        var_champs=eval(champEval + "document.getElementsByTagName('textarea');"); //recoit tout les composant textarea

        for(var i=0; i<var_champs.length; i++) 
        {
          //alert(var_champs[i].getAttribute("id"));
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_type=var_champs[i].getAttribute("type");
                //var_valeur=document.getElementById(var_nom_champ).value;

                 
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
                eval(champEval + "document.getElementById(var_nom_champ).disabled=true;");
        }
/////////
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
        var_champs=eval(champEval + "document.getElementsByTagName('select');"); //recoit tout les composant select

        for(var i=0; i<var_champs.length; i++) 
        {
          //alert(var_champs[i].getAttribute("id"));
          
                var_nom_champ=var_champs[i].getAttribute("id");
                var_type=var_champs[i].getAttribute("type");
                //var_valeur=document.getElementById(var_nom_champ).value;

                 
//obligé de mettre un champ eval car parfois on veut désactiver un autre formulaire que le formulaire courant-->parfois le parent (comme quand on refuse labellisation)-->alors on passe comme param-->'window.opener.'-->si formulaire courant alors param=''
                eval(champEval + "document.getElementById(var_nom_champ).disabled=true;");
        }
/////////
}
//PLV Fin MODIF 28/08/2009


//PLV MODIF 22/09/2009      
//parfois la session est expirée, je sais pas exactement quand?? normalement 180 minutes mais ça a l'air plus court à cause de settings sur le server web?? Donc on affiche un message d'avertissement prevenant de sauver les données toutes les 18 minutes...
//on lance le timer au début du formulaire dans fonction EditDossier si pas dossier en lecture seule
function TimerAfficheMessageSauvetage(langue,delai)
{   
//si bouton sauver temporairement disabled alors n'affiche pas le message car lecture seule
     if (!document.getElementById('ButtonSauverTemporairement').disabled)
     {
            if (langue=='FR')
            {
                alert('Attention, veuillez sauver (temporairement) ce formulaire fréquemment en bas de page afin de ne pas perdre des données.');
            }
            else
            {
                alert('Opgelet, gelieve dit formulier onderaan de pagina geregeld (tijdelijk) te bewaren om verlies van data te vermijden.');    
            }    
            
            //sans faire ça lance le timer qu'une fois...    
            setTimeout("TimerAfficheMessageSauvetage('" + langue + "'," + delai + ")",delai);        
     }
}               
//PLV Fin MODIF 22/09/2009

//PLV MODIF 26/10/2009
function GetTextFromParentTextArea(TextAreaParentName,TextAreaChildName)
{
    var var_texte=window.opener.document.getElementById(TextAreaParentName).value;
    if (trim(var_texte)!='')
    {       
       
        document.getElementById(TextAreaChildName).value=var_texte;
    }
    
    return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//PLV Fin MODIF 26/10/2009

//////////////////////////////////////////////AJAX//////////////////////////////////////////////
///AJAX 23/11/2009
//inspiré de http://siddh.developpez.com/articles/ajax/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            function getXhr()
            {
                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   //alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   alert("ERROR: Your browser doesn't support XMLHTTPRequest objects!! Please contact the administrator..."); 
				   xhr = false; 
				} 
                return xhr
			}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////			
///!!POUR BIEN FAIRE TOUJOURS UTILISER FONCTION AJAX ASYNCHRONE AVEC POST car avec IE y a des problèmes !!! si SYNCHRONE ou GET !!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////			
            /**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function FunctionAjaxAsynchrone(POST_GET,url,parametres_url,nom_image_loading,chaine_eval) //javascript n'attend pas la réponse du server pour continuer son script
			{
			    if (nom_image_loading!='')
			    {
                    //rendre l'image de loading (si on en a passé une en paramètre) visible pour faire patienter, avant la réponse du server
		            //document.getElementById('nom_image_loading).style.visibility='visible';
                    //mieux de mettre syle.display car style.visibility garde la place de l'image --> décalage, style.display efface complétement l'image, sans décalage ni trou!!    				
        		    document.getElementById(nom_image_loading).style.display='';
        		}
			
			    //init
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function() //sert que si on est en mode asynchrone??
				{
				    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
				    if(xhr.readyState == 4 && xhr.status == 200)
				    {
                        //alert(xhr.responseText) //xhr.responseText -->= texte de la page renvoyé par le server                       
                            
    	                if (nom_image_loading!='')
	    	            {
                            //rendre l'image de loading (si on en a passé une en paramètre) invisible dès qu'on a eu la réponse du server
                            //document.getElementById(nom_image_loading).style.visibility='hidden';
                            //mieux de mettre syle.display car style.visibility garde la place de l'image --> décalage, style.display efface complétement l'image, sans décalage ni trou!!    
                            document.getElementById(nom_image_loading).style.display='none';
        		        } 
        		        
        		        //éxécute le code javascript passé en paramètre...
                        eval(chaine_eval);        		        
			        }
                }			        
				    
			    //qu'est ce que ça change si je mets POST OU GET?? GET --> paramètre dans l'url --> max 255 caractères? // POST parmètres cachés-->on peut mettre bcp plus de paramètres...
				xhr.open(POST_GET,url,true); //si vaut true-->asynchrone, javascript ne va pas attendre la fin de l'appel ajax pour continuer son script, si false-->synchrone, javascrit va attendre la fin de l'appel ajax pour continuer son script...
    											
				//si "POST", il faut mettre les paramètres dans l'url et ajouter cette ligne-ci, sinon il ne trouve pas les paramètres...?
				if (POST_GET='POST')
				{
				    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
				}
				
				//GET dans IE marche que la première fois?? pq?? alors que dans FF marche tjs??-->testé avec exemple ForgottenPassword

                //si "POST", liste de paramètres dans la fonction send // si "GET" alors les paramètres=null			
				xhr.send(parametres_url);
//PAS BESOIN DE FAIRE UN FREE (ou equivalent??) vu qu'on a fait un NEW??				
			}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
			function FunctionAjaxSynchrone(POST_GET,url,parametres_url,nom_image_loading,chaine_eval) //javascript attend la réponse du server pour continuer son script (et freeze le navigateur pendant ce temps...??)
//en mode synchrone, je suis pas obligé de passer une image_loading ainsi qu'une chaine_eval, je pourrais simplement retourné la valeur xhr.responseText -->= texte de la page renvoyé par le server et traité l'affichage de l'image_loading et le traitement après l'appel apres l'appel ajax, hors de la fonction ajax mais je laisse comme ça, car ça ne gêne pas vraiment et c plus simple à gérer??
//en mode synchrone, dans IE, l'image_loading apparait pas?? pq?? car navigateur bloqué?? -->sinon en synchrone géré l'image hors de la fonction ajax...et pas de chaine_eval
			{
			    if (nom_image_loading!='')
			    {
                    //rendre l'image de loading (si on en a passé une en paramètre) visible pour faire patienter, avant la réponse du server
		            //document.getElementById('nom_image_loading).style.visibility='visible';
                    //mieux de mettre syle.display car style.visibility garde la place de l'image --> décalage, style.display efface complétement l'image, sans décalage ni trou!!    				
        		    document.getElementById(nom_image_loading).style.display='';
        		}
			
			    //init
				var xhr = getXhr();
				    
			    //qu'est ce que ça change si je mets POST OU GET?? GET --> paramètre dans l'url --> max 255 caractères? // POST parmètres cachés-->on peut mettre bcp plus de paramètres...
				xhr.open(POST_GET,url,false); //si vaut true-->asynchrone, javascript ne va pas attendre la fin de l'appel ajax pour continuer son script, si false-->synchrone, javascrit va attendre la fin de l'appel ajax pour continuer son script...
    											
				//si "POST", il faut mettre les paramètres dans l'url et ajouter cette ligne-ci, sinon il ne trouve pas les paramètres...?
				if (POST_GET='POST')
				{
				    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
				}
				
				//GET dans IE marche que la première fois?? pq?? alors que dans FF marche tjs??-->testé avec exemple ForgottenPassword

                //si "POST", liste de paramètres dans la fonction send // si "GET" alors les paramètres=null			
				xhr.send(parametres_url);
				
				//alert(xhr.responseText) //xhr.responseText -->= texte de la page renvoyé par le server                                       				    				
				                
    	        if (nom_image_loading!='')
	    	    {
                    //rendre l'image de loading (si on en a passé une en paramètre) invisible dès qu'on a eu la réponse du server
                    //document.getElementById(nom_image_loading).style.visibility='hidden';
                    //mieux de mettre syle.display car style.visibility garde la place de l'image --> décalage, style.display efface complétement l'image, sans décalage ni trou!!    
                    document.getElementById(nom_image_loading).style.display='none';
        	    }                               		        				

				//en mode synchrone on met le traitement à faire après la réponse du server après l'appel ajax et la fonction xhr.onreadystatechange ne sert plus à rien!!
        	    //éxécute le code javascript passé en paramètre...
                eval(chaine_eval);          	    
//PAS BESOIN DE FAIRE UN FREE (ou equivalent??) vu qu'on a fait un NEW??				
			}			
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///FIN AJAX 23/11/2009
//////////////////////////////////////////////FIN AJAX//////////////////////////////////////////////

////////////////////////////////////////////////////FIN FUNCTIONS////////////////////////////////////////
