function launchOnEnter(expression) {
  if(event.keyCode==3 || event.keyCode==13) {
    eval(expression);
  }
}

function emptySearch(inputObj,txt){
  if(inputObj.value==txt){
    inputObj.value="";
  } 
}
function fillSearch(inputObj,txt){
  if(inputObj.value==""){
    inputObj.value=txt;
  } 
}

function setMailAction(arbo) {
  document.forms['submitor'].mailaction.value = arbo;
}

function setDestinataireMail(idDestinataire, languageProprio) {
  document.forms['submitor'].membreid.value = idDestinataire;
}



function setEnr(enregistrementid,firstenr,nbenr) {
  document.getElementById('submitor').enregistrementid.value = enregistrementid;
  document.getElementById('submitor').nbenr.value = nbenr;
  document.getElementById('submitor').firstenr.value = firstenr;
} 

  
function go(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec) {
  document.getElementById('submitor').target='';
  document.getElementById('submitor').typerubrique.value = typerubrique;
  document.getElementById('submitor').rubriqueid.value = rubriqueid;
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').offset.value = offset;
  document.getElementById('submitor').nbrec.value = nbrec;
  document.getElementById('submitor').firstrec.value = firstrec;
  document.getElementById('submitor').submit();
} 

function goMethod(typerubrique,rubriqueid,elementid,offset,nbrec,firstrec,method) {
  if(method) {
    document.getElementById('submitor').method = method;
  }
  document.getElementById('submitor').target='';
  document.getElementById('submitor').typerubrique.value = typerubrique;
  document.getElementById('submitor').rubriqueid.value = rubriqueid;
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').offset.value = offset;
  document.getElementById('submitor').nbrec.value = nbrec;
  document.getElementById('submitor').firstrec.value = firstrec;
  document.getElementById('submitor').submit();
}

function goPdf(typerubrique, rubriqueid, elementid, offset, nbrec, firstrec, height, width, ajout) {
  window.open('','popupDetails'+ajout,'scrollbars,resizable,status=yes,toolbar=no,directories=no,width='+width+',height='+height);
  document.getElementById('submitor').target = 'popupDetails'+ajout;
  document.forms['submitor'].typerubrique.value = typerubrique;
  document.forms['submitor'].rubriqueid.value = rubriqueid;
  document.forms['submitor'].elementid.value = elementid;
  document.forms['submitor'].offset.value = offset;
  document.forms['submitor'].nbrec.value = nbrec;
  document.forms['submitor'].firstrec.value = firstrec;
  /* document.forms['submitor'].target="pdf"+Math.floor(Math.random()*10000); */
  document.forms['submitor'].action=root+"DirectPdf.aspx";
  document.forms['submitor'].submit();
  document.forms['submitor'].action="xslt.aspx"; 
  document.forms['submitor'].target='';
}


function goPop(typerubrique, rubriqueid, elementid, offset, nbrec, firstrec, height, width, ajout) {
 window.open('','popupDetails'+ajout,'scrollbars,resizable,status=yes,toolbar=no,directories=no,width='+width+',height='+height);
 document.getElementById('submitor').target = 'popupDetails'+ajout;
 document.getElementById('submitor').typerubrique.value = typerubrique;
 document.getElementById('submitor').rubriqueid.value = rubriqueid;
 document.getElementById('submitor').elementid.value = elementid;
 document.getElementById('submitor').offset.value = offset;
 document.getElementById('submitor').nbrec.value = nbrec;
 document.getElementById('submitor').firstrec.value = firstrec;
 document.getElementById('submitor').submit();
 document.getElementById('submitor').target = '';
}

function goCB(elementid, sessionuniqueid) {
  document.getElementById('submitor').action=root+"envoiPaiement.aspx";
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').sessionuniqueid.value = sessionuniqueid;
  document.getElementById('submitor').submit();
}



/* Pour lancer l'enregistreur qui sert à initialiser le paiement, on est obligé de passer par une requete ajax, car on ne peut pas submit 2 formulaires (pour appeler paypal, on submit deja le formulaire de paypal)
si dans le temps, un enr est ajouté sur cette page, il faut modifier l'appel de la  fonction ajaxEnregistrementPaypal(), en augmentant le nbEnr et sa définition en récuperant l'enr correspondant
si possible, demander à PJ */

//Fonction qui lance l'enregistreur qui initialise le paiement (lance l'enregistreur 59)
function ajaxEnregistrementPaypal(rubriqueId, enregistrementId, firstEnr, nbEnr, elementId, comefrom){
  enr2 = document.getElementById('enr2').value;
  request = new activsoft.ajax.RequestToSend();          
  request.page = "xslt.aspx";
  request.nbTries = 3;
  request.request = 'rubriqueid='+ rubriqueId +'&enregistrementid='+ enregistrementId +'&typerubrique=1&elementid='+elementId+'&firstenr='+ firstEnr +'&nbenr='+nbEnr+'&enr2='+enr2+'&actionner=CRYPTAGE&comefrom='+comefrom; 
  request.method = "POST";
  request.afterLoadCallBack = function() { beforeGoPaypal() };  
  request.httpErrorCallBack = affichageErreurPaypal; 
  request.send();
}

function affichageErreurPaypal(){
  // Le message d'erreur se trouve dans l'xsl (59.xsl) pour permettre une traduction plus aisée.
  alert(erreurAjaxPaypal);
}

function beforeGoPaypal(){
  var cryptage = activsoft.ajax.util.xpathNodeList("/BODY/CRYPTAGE",request.xmlDocumentLoaded,request.xmlDocumentLoaded);
  var trameCrypte = retourneValeurNoeud(cryptage[0].childNodes[0])
  if(trameCrypte != ''){
    document.getElementById('encrypted').value = trameCrypte;
    goPaypal(); 
  }
  else{
    alert(erreurAjaxPaypal);
    return;
  }
}

function goPaypal() {
  var ppFrm = document.getElementById('paypalForm');
  ppFrm.submit(); 
}


function getRadioValue(radio,msg) {
  for (var i=0; i<radio.length;i++) {
    if (radio[i].checked) {
      return radio[i].value;
    }
  }
  return false;
}

function notgood(field,msg) {
  field.focus();
  alert(msg);
  return false;
}

function isFull(field,msg){
  if (field.value=='') {return notgood(field,msg);}
  return true;
}

function isDigit(field,msg) {
  i = field.value.charCodeAt(0);
  alert(i);
  if (!((47<i)&&(i<58))){
    return notgood(field,msg);
  }
  return true;
}

function isAllDigits(champ,msg){
   var chiffres = new RegExp("[^0123456789\.,]*");
   var verif;
   verif = chiffres.test(champ.value);
   if((verif == false)||(champ.value=='')){
    return notgood(champ,msg);
   }
   return true;
}

function isSelect(field,msg){
  if (field.selectedIndex==0 && field.options[0].value=="") {return notgood(field,msg);}
  return true;
}

function isMail(field,msg) {
  email=field.value;
  arobase=email.indexOf('@');
  point=email.indexOf('.',arobase);
  longueur=email.length;
  if(arobase<=0||point<=arobase+1||longueur<=point+1) {return notgood(field,msg);}
  return true;
}

function getDateValue(dateStr){
  
  //Modified by DO 12/31/2003
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  var datestatus=true;
  datemsg="";
  
  if (matchArray == null || matchArray[1]==null)
  {
    datemsg="----- Please enter date as mm/dd/yyyy " + "\n";
    return false;
  }
  else
  {
    if(matchArray[3]==null || matchArray[5]==null)
    {
      datemsg="----- Please enter date as mm/dd/yyyy " + "\n";
      return false;
    }
  }
  
  month = parseInt(matchArray[3],10);
  day = parseInt(matchArray[1],10);  
  year = parseInt(matchArray[5],10);
  
  if (month < 1 || month > 12)
  { 
    datemsg=datemsg + "----- Month must be between 1 and 12." + "\n";
    datestatus=false;
  }
  
  if (day < 1 || day > 31)
  {
    datemsg=datemsg + "----- Day must be between 1 and 31." + "\n";
    datestatus=false;
  }
  
  if ((month==4 || month==6 || month==9 || month==11) && day==31)
  {
    datemsg=datemsg + "----- Month " + month + " doesn`t have 31 days!" + "\n";
    datestatus=false;
  }
  
  if (month == 2)
  { 
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day==29 && !isleap))
    {
      datemsg=datemsg + "----- February " + year + " doesn`t have " + day + " days!" + "\n";
      datestatus=false;
    }
  }  
  if(datestatus){
    var zeDate = new Date(year,month-1,day);    
    return zeDate;
  }
  else{
    return null;
  }

}

function isInf(val1, val2 ) {
  return val1<val2;
}

function isInfEgal(val1, val2 ) {
  return val1<=val2;
}

function isSup(val1, val2 ) {
  return val1>val2;
}

function isSupEgal(val1, val2 ) {
  return val1>=val2;
}

function findPosX(obj)
{
  var curleft = 0;
  if(obj.offsetParent)
      while(1) 
      {
        curleft += obj.offsetLeft;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.x)
      curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
      while(1)
      {
        curtop += obj.offsetTop;
        if(!obj.offsetParent)
          break;
        obj = obj.offsetParent;
      }
  else if(obj.y)
      curtop += obj.y;
  return curtop;
}

function goMail(elementid,zeracine) {
  mailfen = window.open('','mail','scrollbars,toolbar=no,directories=no,width=350,height=200');
  racine=zeracine;
  
  imgLoad =new Image; imgLoad.src= racine + 'img/wait.gif';
  imgLoad.height=73;
  imgLoad.width=75;
  
  mailfen.moveTo((screen.width/2)-(350/2),(screen.height/2)-(200/2));
  
  wait = setTimeout("if(imgLoad.complete){writeMessageBeforeMailAndSend("+elementid+");}",315);    
}  

function writeMessageBeforeMailAndSend(elementid){
  mailfen.document.writeln('<html>');
  mailfen.document.writeln('<head>');
  mailfen.document.writeln('  <title>Envoi de message</title>');
  mailfen.document.writeln('</head>');
  mailfen.document.writeln('<body>    ');
  mailfen.document.writeln('  <table cellpadding="0" border="0" cellspacing="0" width="100%">');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          <img height="73" width="75" id="wait" src="' + racine + 'img/wait.gif"/>');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center" style="font-family:verdana;font-size:10px;">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          Veuillez patienter...');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('  </table>   ');    
  mailfen.document.writeln('</body>');
  mailfen.document.writeln('</html>');
  
  document.getElementById('submitor').target = 'mail';
  document.getElementById('submitor').action = racine + 'xsltMailer.aspx';
  ///alert(document.getElementById('submitor').elementid);
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').submit();
  document.getElementById('submitor').reset();
  document.getElementById('submitor').target = '';
  document.getElementById('submitor').action= root + 'xslt.aspx';    
}

function goMailAdvance(elementid,zeracine,xslt,language) {
  mailfen = window.open('','mail','scrollbars,toolbar=no,directories=no,width=350,height=200');
  racine=zeracine;
  imgLoad =new Image; imgLoad.src= racine + 'img/wait.gif';
  imgLoad.height=73;
  imgLoad.width=75;
  
  mailfen.moveTo((screen.width/2)-(350/2),(screen.height/2)-(200/2));
  
  wait = setTimeout("if(imgLoad.complete){writeMessageBeforeMailAndSendAdvance('"+elementid+"','"+xslt+"','"+language+"');}",600);    
} 

function writeMessageBeforeMailAndSendAdvance(elementid,xslt,language){
  if(language == 'es'){
    titre = 'Enviando mensaje';
    texte = 'Por favor, espere';
  }
  else if(language == 'en'){
    titre = 'Sending message';
    texte = 'Please wait';
  }
  else if(language == 'de'){
    titre = 'Senden einer Nachricht';
    texte = 'Bitte warten';
  }
  else if(language == 'it'){
    titre = 'Invio messaggio';
    texte = 'Si prega di attendere';
  }
  else if(language == 'nl'){
    titre = 'Bericht verzenden';
    texte = 'Please wait';
  }
  else if(language == 'pt'){
    titre = 'Enviando mensagem';
    texte = 'Aguarde';
  }
  else{
    titre = 'Envoi du message';
    texte = 'Veuillez patienter';
  }
  mailfen.document.writeln('<html>');
  mailfen.document.writeln('<head>');
  mailfen.document.writeln('  <title>' + titre  + '</title>');
  mailfen.document.writeln('</head>');
  mailfen.document.writeln('<body>    ');
  mailfen.document.writeln('  <table cellpadding="0" border="0" cellspacing="0" width="100%">');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        &#160;');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          <img height="73" width="75" id="wait" src="' + racine + 'img/wait.gif"/>');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('    <tr>');
  mailfen.document.writeln('      <td align="center" style="font-family:verdana;font-size:10px;">');
  mailfen.document.writeln('        <span class="texte">');
  mailfen.document.writeln('          ' + texte + '');
  mailfen.document.writeln('        </span>');
  mailfen.document.writeln('      </td>');
  mailfen.document.writeln('    </tr>');
  mailfen.document.writeln('  </table>   ');    
  mailfen.document.writeln('</body>');
  mailfen.document.writeln('</html>');
  
  document.getElementById('submitor').target = 'mail';
  document.getElementById('submitor').action = racine + xslt;
  document.getElementById('submitor').elementid.value = elementid;
  document.getElementById('submitor').submit();
  document.getElementById('submitor').reset();
  document.getElementById('submitor').target = '';
  document.getElementById('submitor').action=racine + 'xslt.aspx';
}
  
function showMoreSuggest(text){
  var div=document.getElementById('hiddenSuggest');
  var lien=document.getElementById('lienplus');
  if(div.style.display==''){
    div.style.display='none';
    lien.innerHTML='+'+text;
  }
  else{
    div.style.display='';
    lien.innerHTML='-'+text;
  }
}

function showMoreSuggestGeneral(text){
  var div=document.getElementById('hiddenSuggestGeneral');
  var lien=document.getElementById('lienplusgeneral');
  if(div.style.display==''){
    div.style.display='none';
    lien.innerHTML='+'+text;
  }
  else{
    div.style.display='';
    lien.innerHTML='-'+text;
  }
}
  
function changePic(Id){
  document.getElementById('grandePhoto').src=eval('grandePhoto'+Id)   
  clearInterval(wait);
}

//On parcours le tableau jusqu'a trouver l'image en cours, et on prend la suivante.
//Si c'est la dernière on reprend la première
function changePicAuto(){
  var iloop=0;
  var exit=false;
  
  while(iloop<=(tabIds.length-2) && exit==false){      
    if(tabIds[iloop]==curId){
      iloop++;
      exit=true;
    }
    else{
      iloop++;
    }      
    if(iloop>tabIds.length-2){
      iloop=0;
      exit==true;    
    }
  }
  document.getElementById('grandePhoto').src=eval('grandePhoto'+tabIds[iloop])
  curId = tabIds[iloop];
}

function launchSlide(){
  wait=(setInterval("changePicAuto()",3000));
}


// Permet de configurer la langue du calendrier passé en paramètre en fonction de la langue du site
// reflétée par @arboLangage
function cfgLangueCalendrier(unCalendrier, arboLangage)
{
  // On va configurer en fonction d'arboLangage qui renseigne la langue
  switch ( arboLangage )
  {
    // FR
    case '0000' :
      unCalendrier.cfg.setProperty("START_WEEKDAY", 1);
      unCalendrier.cfg.setProperty("MONTHS_LONG",    ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]);					
			unCalendrier.cfg.setProperty("WEEKDAYS_SHORT", ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]);
    break;
    case '0001' :
      unCalendrier.cfg.setProperty("START_WEEKDAY", 1);
      unCalendrier.cfg.setProperty("MONTHS_LONG",    ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);					
			unCalendrier.cfg.setProperty("WEEKDAYS_SHORT", ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]);
    break;
    // ESP
    case '0002' :
      unCalendrier.cfg.setProperty("START_WEEKDAY", 1);
      unCalendrier.cfg.setProperty("MONTHS_LONG",    ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]);					
			unCalendrier.cfg.setProperty("WEEKDAYS_SHORT", ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"]);
    break;
  }
}

// Permet de remplir l'input dont l'ID est passé en paramètre avec une date
// tableauDates : un Array d'objets Date. On remplira avec le 0
function remplirInputDate(idInput, tableauDates)
{
  var laDate = tableauDates[0];
  var jour = "";
  var mois = "";

  jour = normaliseDate(laDate.getDate());
  mois = normaliseDate((laDate.getMonth() + 1)); 
  
  document.getElementById(idInput).value = jour + '/' + mois + '/' + laDate.getFullYear();
}

// Permet d'ajouter un 0 devant le jour ou le mois.
function normaliseDate(valeur){
  var normalisedDate;
  
  if(valeur <= 9){
    normalisedDate = '0'+valeur;
  }
  else{
    normalisedDate = valeur;
  }
  
  return normalisedDate;
}


var requeteEnCours = 0;
var requeteAJAX;
// Déclenche une requête AJAX permettant de retrouver les données correspondant
// à l'élément sélectionné dans listeSource
// !! La rubrique qui génère les données doit utiliser elementid
// @preSelection : Dans certains cas, on a besoin de présélectionner une des valeurs qui va être ramenée dans la liste cible
// ce paramètre sert à préciser cette valeur.
// Utilisée partout où on a des listes liées
function ajaxListeDeroulanteRecherche(idListeSource, idListeCible, idRubrique, preSelection)
{
  if ( requeteEnCours == 0 )
  {
    requeteEnCours = 1;
    var listeSource = document.getElementById(idListeSource);
    var listeCible = document.getElementById(idListeCible);
    requeteAJAX = new activsoft.ajax.RequestToSend();
    requeteAJAX.page = root + "xslt.aspx";
    requeteAJAX.method = 'POST';
    requeteAJAX.request = "typerubrique=1&rubriqueid=" + idRubrique + "&elementid=" + listeSource.value;
    requeteAJAX.afterLoadCallBack = function() { remplirListeDeroulante(idListeCible, preSelection) }  
    requeteAJAX.send();
  }
  else
  {
    setTimeout(function() {ajaxListeDeroulanteRecherche(idListeSource, idListeCible,idRubrique)}, 100);
  }        
}


// Remplit la liste déroulante dont l'ID est passé en paramètre avec le XML de requeteAJAX
function remplirListeDeroulante(idListeCible, preSelection)
{
  var laListe = document.getElementById(idListeCible);
  var langue = document.getElementById('langue').value;
  

  // On vide la liste de ce qu'elle contenait
  laListe.options.length = 0;
  
  // Ajout d'un élément vide, seulement si on n'a pas de pré-selection
  if ( !preSelection )
  {
    // On determine le texte du slot vide en fonction de ce que contient l'ID de la liste cible
    var titre;
    
    
    if ( idListeCible.indexOf('region') != -1 )
    {
   
      if(langue == 'es'){
        titre = 'Elija un región';
      }
      else if (langue == 'en'){
        titre = 'Choose a region';
      }
      else if (langue == 'pt'){
        titre = 'Escolha o região';
      }
      else if (langue == 'nl'){
        titre = 'Kies het streek';
      }
      else if (langue == 'it'){
        titre = 'Scegli il regione';
      }
      else if (langue == 'de'){
        titre = 'Wählen das region';
      }
      else{
        titre = 'Choisir une région';
      } 
    }
      
    if ( idListeCible.indexOf('departement') != -1)
    {
      if(langue == 'es'){
        titre = 'Elija un provincia';
      }
      else if (langue == 'en'){
        titre = 'Choose a department';
      }
      else if (langue == 'pt'){
        titre = 'Escolha o distrito';
      }
      else if (langue == 'nl'){
        titre = 'Kies het departement';
      }
      else if (langue == 'it'){
        titre = 'Scegli il dipartimento';
      }
      else if (langue == 'de'){
        titre = 'Wählen das bundeslandt';
      }
      else{
        titre = 'Choisir un département';
      } 
    }
      
    if ( idListeCible.indexOf('ville') != -1)
    {
      if(langue == 'es'){
        titre = 'Elija un ciudad';
      }
      else if (langue == 'en'){
        titre = 'Choose a city';
      }
      else if (langue == 'pt'){
        titre = 'Escolha o cidade';
      }
      else if (langue == 'nl'){
        titre = 'Kies het stad';
      }
      else if (langue == 'it'){
        titre = 'Scegli il città';
      }
      else if (langue == 'de'){
        titre = 'Wählen das stadt';
      }
      else{
        titre = 'Choisir une ville';
      } 
    }
      
          
    laListe.options[0] = new Option(titre, '');
  }
  
  // On va chercher les elements qui vont servir a remplir la liste
  var lesElements = activsoft.ajax.util.xpathNodeList("/BODY//UNELEMENT",requeteAJAX.xmlDocumentLoaded,requeteAJAX.xmlDocumentLoaded);
  
  /* On sait que le XML est de la forme
      <UNELEMENT>
        <VALUE>la_value</VALUE>
        <LIBELLE>le_libelle</LIBELLE>
        <NBANNONCES>le_nombre</NBANNONCES>
      </UNELEMENT>
  */
  
  // Donc on parcours la collection...
  for ( var i = 0 ; i < lesElements.length ; i++ )
  {
    var unOption = document.createElement('option');
    // ...et on prend les childNodes qu'il faut
    unOption.value = lesElements[i].childNodes[0].firstChild.nodeValue;
    if(lesElements[i].childNodes[1].childNodes.length>0 && lesElements[i].childNodes[2].childNodes.length>0) {
      if (lesElements[i].childNodes[2].firstChild.nodeValue >= '0')
        {unOption.text = lesElements[i].childNodes[1].firstChild.nodeValue;}
      else
        {unOption.text = lesElements[i].childNodes[1].firstChild.nodeValue + ' (' + lesElements[i].childNodes[2].firstChild.nodeValue + ')';}
    }
    else {
      unOption.text = 'Zone sans nom (' + unOption.value + ')';
    }
    if ( preSelection )
    {
      if ( preSelection == lesElements[i].childNodes[0].firstChild.nodeValue )
      {
        unOption.setAttribute("selected", "selected");
      }
    }
    // On choisit où insérer : en effet avec preselection on remplit à partir de 0, sinon à partir de 1 car le slot 0 est déjà pris
    // i+1 car on a déjà mis un élément "vide" en 0
    if ( preSelection )
      laListe.options[i] = unOption;
    else
      laListe.options[i+1] = unOption;
  }
  
  requeteEnCours = 0;
}


// Permet d'enregistrer les critères de recherche simple
function setCriteresRechercheSimple(typeBien, nbPersonnes, idTheme, dateDebut, dateFin, idPays, idRegion, idDepartement, idVille)
{
  for ( var i = 0 ; i < document.getElementsByName('rec10').length ; i++ ) {
    if ( typeBien.indexOf(document.getElementsByName('rec10')[i].value) != -1 ) {
      document.getElementsByName('rec10')[i].checked = true;
    }
  }
  document.forms['submitor'].rec11.options[document.forms['submitor'].rec11.selectedIndex].value = nbPersonnes;
  document.forms['submitor'].rec12.options[document.forms['submitor'].rec12.selectedIndex].value = idTheme;
  document.forms['submitor'].rec13.value = dateDebut;
  if ( dateDebut != '' ) document.forms['submitor'].rec13.disabled = false;
  document.forms['submitor'].rec14.value = dateFin;
  if ( dateFin != '' ) document.forms['submitor'].rec14.disabled = false;
  document.forms['submitor'].rec15.options[document.forms['submitor'].rec15.selectedIndex].value = idPays;
  document.forms['submitor'].rec16.options[document.forms['submitor'].rec16.selectedIndex].value = idRegion;
  document.forms['submitor'].rec17.options[document.forms['submitor'].rec17.selectedIndex].value = idDepartement;
  document.forms['submitor'].rec18.options[document.forms['submitor'].rec18.selectedIndex].value = idVille;
}

// Permet de ré-initialiser les rec qui sont utilisés pour la recherche de location
function resetCriteresRechercheSimple()
{
  for ( var i = 0 ; i < document.getElementsByName('rec10').length ; i++ ) {
    document.getElementsByName('rec10')[i].checked = false;
  }
  document.getElementsByName('rec11')[0].options[document.getElementsByName('rec11')[0].selectedIndex].value = '';
  document.getElementsByName('rec12')[0].options[document.getElementsByName('rec12')[0].selectedIndex].value = '';
  document.getElementsByName('rec13')[0].value = '';
  document.getElementsByName('rec14')[0].value = '';
  document.getElementsByName('rec15')[0].options[document.getElementsByName('rec15')[0].selectedIndex].value = '';
  document.getElementsByName('rec16')[0].options[document.getElementsByName('rec16')[0].selectedIndex].value = '';
  document.getElementsByName('rec17')[0].options[document.getElementsByName('rec17')[0].selectedIndex].value = '';
  document.getElementsByName('rec18')[0].options[document.getElementsByName('rec18')[0].selectedIndex].value = '';
}

// Permet d'effacer les critères de la recherche avancée
// Utile pour repartir vers une recherche simple quand on clique sur "recherche" dans l'encart de droite
function resetCriteresRechercheAvancee()
{
  var frm = document.forms['submitor'];
  frm.rec19.value = '';
  frm.rec20.value = '';
  frm.rec21.value = '';
  frm.rec22.value = '';
  frm.rec23.value = '';
  frm.rec24.value = '';
  frm.rec25.value = '';
  frm.rec26.value = '';
}

// Permet de n'afficher que la partie du formulaire qui convient aux locataires
// Utilisée sur la page d'inscription
/* function afficherFormulaireLocataire()
{
  for ( var i = 0 ; i < document.getElementsByName('formulaire_proprietaire').length ; i++ )
  {
    document.getElementsByName('formulaire_proprietaire')[i].style.display = 'none';
  }
}
 */


// Permet de n'afficher que la partie du formulaire qui convient aux propriétaires
// Utilisée sur la page d'inscription
/* function afficherFormulaireProprietaire()
{
  for ( var i = 0 ; i < document.getElementsByName('formulaire_proprietaire').length ; i++ )
  {
    document.getElementsByName('formulaire_proprietaire')[i].style.display = 'block';
  }
} */


function verifSaisieInscription()
{
  // On vérifie les champs obligatoires 
  // Dans un premier temps on verifie les champs commun au 2 types d'inscription (Locataire / Proprietaire)
  if ( 
      document.getElementsByName('enr2')[0].value == '' ||
      document.getElementsByName('enr3')[0].value == '' ||
      document.getElementsByName('enr4')[0].value == '' ||
      document.getElementsByName('enr5')[0].value == '' ||
      document.getElementsByName('enr6')[0].value == '' ||
      document.getElementsByName('enr7')[0].value == '' ||
      document.getElementsByName('enr8')[0].value == '' ||
      document.getElementsByName('enr9')[0].value == ''
    )
  {
    alert('Tous les champs marqués d\'une étoile sont obligatoires');
    return false;
  }
  
  // Le champ qui permet de differencier, une inscription proprietaire ou locataire  (Depend de l'id de la rubrique)
  if(document.getElementById('statutInscription').value == 7){
    // Alors on teste les champs specifiques à l'inscription du proprietaire
    if (
         document.getElementsByName('enr11')[0].value == '' ||
         document.getElementsByName('enr13')[0].value == '' ||
         document.getElementsByName('enr14')[0].value == '' ||
         document.getElementsByName('enr15')[0].value == '' 
       )
    {
      alert('Tous les champs marqués d\'une étoile sont obligatoires');
      return false;
    }
  }
  else if(document.getElementById('statutInscription').value == 48){
    if (
         document.getElementsByName('enr10')[0].value == '' ||
         document.getElementsByName('enr11')[0].value == '' ||
         document.getElementsByName('enr15')[0].value == '' ||
         document.getElementsByName('enr21')[0].value == '' ||
         document.getElementsByName('enr23')[0].value == '' ||
         document.getElementsByName('enr24')[0].value == ''
       )
    {
      alert('Tous les champs marqués d\'une étoile sont obligatoires');
      return false;
    }
  }
  
  // On vérifie le mail avec plus d'attention
  if ( !isMail(document.getElementsByName('enr5')[0], 'L\'adresse email est incorrecte.') )
  {
    return false;
  }
  
  // Les deux mots de passe sont-ils identiques ?
  if ( document.getElementsByName('enr6')[0].value != document.getElementsByName('enr7')[0].value )
  {
    alert('Le mot de passe et sa confirmation ne sont pas identiques.');
    return false;
  }
  
  // Acceptation des CGU
  if ( document.getElementsByName('enr8')[0].checked == false )
  {
    alert('Vous devez accepter les Conditions Générales d\'Utilisation.');
    return false;
  }
  

// Pour le type d'inscription proprietaire.
/*   if (document.getElementById('statutInscription').value == 7)
  {
    // Le code postal
    if ( document.getElementsByName('enr13')[0].value.length != 5 )
    {
      alert('Le code postal est incorrect.');
      return false;
    }
    if ( !isAllDigits(document.getElementsByName('enr13')[0], 'Le code postal est incorrect.') )
      return false; 
      
    // Le téléphone
    if ( document.getElementsByName('enr15')[0].value.length < 5 )
    {
      alert('Le téléphone est incorrect.');
      return false;
    }
    //if ( !isAllDigits(document.getElementsByName('enr24')[0], 'Le téléphone est incorrect.') )
    //  return false;
  } */
  return true;
}




// Vérifie que les saisies pour la modification du profil sont correctes
// @estProprietaire : booléen indiquant si on doit vérifier les champs spéciaux pour propriétaire
//
function verifModificationProfil(estProprietaire, estAgence)
{
  // On vérifie les champs obligatoires
  if ( document.forms['submitor'].enr10.value == '' ||
    document.forms['submitor'].enr11.value == '' ||
    document.forms['submitor'].enr12.value == '' )
  {
    alert('Tous les champs marqués d\'une étoile sont obligatoires');
    return false;
  }
  
  // Vérifications en plus pour les propriétaires
  if ( estProprietaire )
  {
    if ( 
      document.forms['submitor'].enr15.value == '' ||
      document.forms['submitor'].enr17.value == '' ||
      document.forms['submitor'].enr18.value == '' ||
      document.forms['submitor'].enr19.value == '' )
    {
      alert('Tous les champs marqués d\'une étoile sont obligatoires');
      return false;
    }
    
    // Le code postal
   /*  if ( document.forms['submitor'].enr17.value.length != 5 )
    {
      alert('Le code postal est incorrect.');
      return false;
    }
    if ( !isAllDigits(document.forms['submitor'].enr17, 'Le code postal est incorrect.') )
      return false; */
      
    // Le téléphone
    /* if ( document.forms['submitor'].enr19.value.length != 10 )
    {
      alert('Le téléphone est incorrect.');
      return false;
    }
    if ( !isAllDigits(document.forms['submitor'].enr19, 'Le téléphone est incorrect.') )
      return false; */
  }
  else if ( estAgence )
  {
    if ( 
      document.forms['submitor'].enr15.value == '' ||
      document.forms['submitor'].enr19.value == '' ||
      document.forms['submitor'].enr23.value == '')
    {
      alert('Tous les champs marqués d\'une étoile sont obligatoires');
      return false;
    }
  }
  
  
  return true;
}



// Permet de vérifer que les champs destinés au message privé sont 
// bien remplis
function validPM(inscription)
{
  // Pour l'inscription, des contrôles de saisies en plus
  if ( inscription )
  {
    if ( document.getElementsByName('enr13')[0].value == '' ||
      document.getElementsByName('enr14')[0].value == '' ||
      document.getElementsByName('enr15')[0].value == '' ||
      document.getElementsByName('enr16')[0].value == '' ||
      document.getElementsByName('enr17')[0].value == '' ||
      document.getElementsByName('enr18')[0].value == '' )
    {
      alert('Tous les champs d\'inscription sont obligatoires :\n\n\t- nom\n\t- prenom\n\t- email\n\t- mot de passe\n\t- pays\n');
      return false;
    }
    // L'email bien formé
    if ( !isMail(document.getElementsByName('enr15')[0], 'L\'email n\'est pas correctement formé.') )
      return false;
      
    // Les mots de passe identiques
    if ( document.getElementsByName('enr16')[0].value != document.getElementsByName('enr17')[0].value )
    {
      alert('Le mot de passe n\'est pas recopié deux fois de façon identique.');
      return false;
    }
    // Les CGU
    if ( document.getElementsByName('enr19')[0].checked == false )
    {
      alert('Vous devez accepter les Conditions Générales d\'Utilisation.');
      return false;
    }
  }
  
  if ( document.getElementsByName('enr12')[0].value == '' )
  {
    alert('Veuillez remplir le titre et le corps du message.');
    return false
  }
  
  
  return true;
}


// Permet de changer l'état des checkbox dont le nom est passé en paramètre
// L'état = coché ou pas coché
// @nomCheckbox : la valeur de l'attribut "name" des checkbox visées
// @cochee : booléen indiquant si la checkbox doit être cochée
function changerEtatCheckboxByName(nomCheckbox, cochee)
{
  var nbCheckbox = document.getElementsByName(nomCheckbox).length;
  for ( var i = 0 ; i < nbCheckbox ; i++ )
  {
    document.getElementsByName(nomCheckbox)[i].checked = cochee;
  }
}


// Retourne le nombre de checkbox ayant le nom passé en paramètre
// et qui sont dans l'état passé en paramètre
function getNombreCheckboxEtatByName(nomCheckbox, cochee)
{
  var nbCheckbox = document.getElementsByName(nomCheckbox).length;
  var nbCheckboxEtat = 0;
  
  for ( var i = 0 ; i < nbCheckbox ; i++ )
  { 
    if ( document.getElementsByName(nomCheckbox)[i].checked == cochee )
    {
      nbCheckboxEtat++;
    }
  }
  return nbCheckboxEtat;
}


// Permet de générer une chaîne de caractère avec les valeurs cochées des checkbox en ordre croissant
function genererRecOrdered(nameCheckbox)
{
  var lesCheckbox = document.getElementsByName(nameCheckbox);
  var lesCochees = Array();
  var i;
  var condition = '';
  
  // On récupère toutes les checkbox cochées
  for ( i = 0 ; i < lesCheckbox.length; i++ )
  {
    if ( lesCheckbox[i].checked )
      lesCochees.push(lesCheckbox[i]);
  }
  
  // Et on tri
  var echange;
  var longueur = lesCochees.length
  
  do
  {
    echange = false;
    for ( i = 0 ; i < longueur - 1 ; i++ )
    {
      if ( lesCochees[i].value > lesCochees[i + 1].value )
      {
        var temp = lesCochees[i];
        lesCochees[i] = lesCochees[i + 1];
        lesCochees[i + 1] = temp;
        echange = true;
      }
    }
    longueur--;
  } while ( echange == true )
  
  // On construit la chaîne avec les valeurs ordonnées  
  var chaineOrdered = ''
  for ( i = 0 ; i < lesCochees.length ; i++ )
    chaineOrdered += lesCochees[i].value + ',';
  
  // On enlève la dernière virgule
  return chaineOrdered.substring(0, chaineOrdered.length - 1);
}


function verifSaisieDispoPlanning()
{
  if (document.getElementById('typeBien') == 6001 || document.getElementById('typeBien') == 6002 || document.getElementById('typeBien') == 6003 || document.getElementById('typeBien') == 6005 || document.getElementById('typeBien') == 6006 ) {
    if (document.getElementById('enr5') == '') {
      alert('Tous les champs avec étoile sont obligatoires.');
      return false;
    }
    else
    {
      return true;
    }
  }
  else
  {
    return true;
  }
    
}

function sendp() {
  if (document.getElementById('remail').value != ''){
    if(isMail(document.forms['submitor'].remail, 'Adresse email invalide')){
      document.forms['submitor'].login.value=document.forms['submitor'].remail.value;
      setMailAction('recupPassword');
      go(1, 4, '00040006', '', '', '', 200, 640, '');
    }
  }
  else{
    alert('Vous devez saisir une adresse email pour recevoir votre mot de passe.');
  } 
}

function addPanier(bienId)
{
  if ( requeteEnCours == 0 )
  {
    requeteEnCours = 1;
    requeteAJAX = new activsoft.ajax.RequestToSend();
    requeteAJAX.page = root + "xslt.aspx";
    requeteAJAX.method = 'POST';
    requeteAJAX.request = "typerubrique=1&rubriqueid=46&elementid=" + bienId;
    requeteAJAX.afterLoadCallBack = function() { afficheResultatAddPanier() }  
    requeteAJAX.send();
  }
  else
  {
    setTimeout(function() {addPanier(bienId)}, 100);
  }        
}

function afficheResultatAddPanier(){
  retour = activsoft.ajax.util.xpathNodeList("/BODY/RETOUR",requeteAJAX.xmlDocumentLoaded,requeteAJAX.xmlDocumentLoaded);
  valeur = retourneValeurNoeud(retour[0].childNodes[0]);
  
  if(valeur == 0 || valeur == 1){
    // 0 si tout va bien
    // 1 si l'annonce existe déjà dans le panier
    alert("Cette annonce a été ajoutée à votre selection");
  }
  else{
    alert("Une erreur s'est produite lors de l'ajout de l'annonce au panier");
  }
  requeteEnCours = 0;
}

function retourneValeurNoeud(unNoeud){
  if(unNoeud.textContent == undefined){
    return unNoeud.text;
  }
  else{
    return unNoeud.textContent;
  }
}

function show(id) {
  document.getElementById(id).style.display = '';
}
    
function hide(id) {
  document.getElementById(id).style.display = 'none';
}


function fillInputByDropListe(idInput, nameCheckBox) {
  var nbCheckbox = document.getElementsByTagName('input').length;
  var listeCheckBox = '';
  var valueCheckBox;
  var y = 1;
   
  for ( var i = 0 ; i < nbCheckbox ; i++ )
  {
    if ( document.getElementsByTagName('input')[i].type == 'checkbox' && document.getElementsByTagName('input')[i].name == nameCheckBox )
    {
      if(document.getElementsByTagName('input')[i].checked == true)
      {
        currentid = document.getElementsByTagName('input')[i].value;
        if(listeCheckBox != '')
        {
          listeCheckBox = listeCheckBox+', '+document.getElementById('libelle_'+currentid).innerHTML;
          y = y+1;
        }
        else
        {
          listeCheckBox = document.getElementById('libelle_'+currentid).innerHTML;
        } 
      }
    }           
  }
  document.getElementById(idInput).value = listeCheckBox;
}

function verifNbChecked(nbChecked){
  if(nbChecked > 1){
    return false;
  }
  else{
    return true;
  }
}


/**
 * Concatène les values des checkbox chéckées ayant pour nom le paramètre
 * @name
 */
function generateIdAjax(name) {
  var nbCheckbox = document.getElementsByTagName('input').length;
  var id = "";
  var longueurChaine = 0;
  var longeurChainePetit = 0;
  var chaineFormater = "";

  for ( var i = 0 ; i < nbCheckbox ; i++ )  {    
    if ( document.getElementsByTagName('input')[i].type == 'checkbox' && document.getElementsByTagName('input')[i].name == name ) {
      if(document.getElementsByTagName('input')[i].checked == true) {        
        id += document.getElementsByTagName('input')[i].value+',';
      }
    }           
  }
  
 longueurChaine = id.length;
 longeurChainePetit = Number(longueurChaine - 1);
 chaineFormater = id.substring(0,longeurChainePetit); 
 
 if(chaineFormater == ""){
   chaineFormater = -1;
 }
 
 return chaineFormater;
} 

function affichagePrixFormule(idAjax)
{
  request = new activsoft.ajax.RequestToSend();          
  request.page = "xslt.aspx";
  request.nbTries = 3;
  request.request = 'rubriqueid=52&typerubrique=1&elementid='+idAjax;
  request.method = "POST";
  request.afterLoadCallBack = function() { okFormule() };  
  request.httpErrorCallBack = affichageErreur; 
  request.send();
}

function affichageErreur()
{
  alert('Une erreur est survenue');
}

function okFormule()
{
  var unPrix = activsoft.ajax.util.xpathNodeList("/BODY/PRIX",request.xmlDocumentLoaded,request.xmlDocumentLoaded);
  var prix = retourneValeurNoeud(unPrix[0].childNodes[0])

  document.getElementById('prixTotal').innerHTML = prix; 
  document.getElementById('enr2').value = prix;
  
}


// Une variable globale pour les deux fonctions ajax du login
var requeteAjaxLogin;


/**
 * Envoie à la rubrique AJAX les infos de connexion de l'utilisateur
 * Configure la requête pour que ajaxLoginTraitement() soit appelée lors du retour de la requête
 * Les paramètres sont là uniquement dans un but d'évolutivité facile
 * @ idRubriqueActuelle : La rubrique sur laquelle se trouve l'internaute. Utile pour envoyer un go() si l'identification s'est bien passée
 * @ elementIdActuel : L'elementid en cours. Utile pour envoyer un go() si l'identification s'est bien passée
 * @ idRubriqueLogin : l'ID de la rubrique qui va renvoyer le statut de l'internaute
 * @ idEnrLogin : L'ID du champ contenant le login
 * @ idEnrMdp : l'ID du champ contenant le mot de passe
 */
function ajaxLoginSend(idRubriqueAcutelle, elementidActuel, idRubriqueLogin, idEnrLogin, idEnrMdp) {
  // On récupère les infos qui nous intéressent
  login = document.getElementById(idEnrLogin).value;
  mdp = document.getElementById(idEnrMdp).value;
  
  requeteAjaxLogin = new activsoft.ajax.RequestToSend();
  requeteAjaxLogin.page = root + "xslt.aspx";
  requeteAjaxLogin.method = 'POST';
  requeteAjaxLogin.request = "typerubrique=1&rubriqueid=" + idRubriqueLogin + "&login=" + login + "&password=" + mdp;
  requeteAjaxLogin.afterLoadCallBack = function() { ajaxLoginTraitement(idRubriqueAcutelle, elementidActuel) }  
  requeteAjaxLogin.send();
}

/**
 * En fonction du résultat de la requête AJAX de login, affiche le bon message à l'internaute :
 *    - Email / mot de passe invalide
 *    - Compte pas encore validé
 *    - Si la connexion est OK, redirige l'internaute vers la rubrique où il est actuellement
 * @ idRubriqueActuelle : La rubrioque vers laquelle l'internaute sera redirigée si la connexion se passe bien
 * @ elementidActuel : L'elementid qui sera envoyé au go()
 */
function ajaxLoginTraitement(idRubriqueActuelle, elementidActuel) {
  // On va chercher les elements qui vont servir a remplir la liste
  var noeudEtatInternaute = activsoft.ajax.util.xpathNodeList("/BODY/INTERNAUTE/ETAT",requeteAjaxLogin.xmlDocumentLoaded,requeteAjaxLogin.xmlDocumentLoaded);
  // noeudEtatInternaute[0] amène dans le noeud ETAT
  // firstChild.nodeValue donne la valeur entre la balise ETAT
  // On test la présence de chilNode car si ETAT est vide (mauvais couple login / mdp), l'affectation directe provoque un crash
  var etatInternaute = '';
  if ( noeudEtatInternaute[0].firstChild ) {
    etatInternaute = noeudEtatInternaute[0].firstChild.nodeValue;
  }
  
  /* On sait que le XML est de la forme
      <INTERNAUTE>
        <ETAT>etat_de_son_inscription</ETAT>
      </INTERNAUTE>
    */
  // Etats possibles
  // 22001 : en attente
  // 22002 : activé
  // Ni l'un ni l'autre : le couple login / mdp n'a rien renvoyé donc erreur (en pratique, la balise ETAT est vide)
  
  switch (etatInternaute) {
    case '22002' :
      // Compte activé, on déclenche l'enregistreur de login et on redirige vers la page où est déjà l'internaute
      setEnr(2, 501, 3);
      go(1, idRubriqueActuelle, elementidActuel, '', '', '');
      break;
    case '22001' :
      // Compte en attente, on va afficher le message d'erreur approprié
      // On commence par cacher le bloc "se souvenir"
      document.getElementById('divSeSouvenir').style.display = 'none';
      // Puis éventuellement l'erreur d'avant
      document.getElementById('erreurMauvaisCouple').style.display = 'none';
      // Et on affiche le message
      document.getElementById('erreurNonActif').style.display = '';
      //On agrandi le cadre de connexion pour le message s'affiche correctement.
      document.getElementById('div_connexion').style.height = "110px";
      break;
    default :
      // Mauvais login/mdp, on va afficher le message d'erreur approprié
      // On commence par cacher le bloc "se souvenir"
      document.getElementById('divSeSouvenir').style.display = 'none';
      // Puis éventuellement l'erreur d'avant
      document.getElementById('erreurNonActif').style.display = 'none';
      //On rétrécit le cadre de connexion pour le message s'affiche correctement.
      document.getElementById('div_connexion').style.height = "93px";
      // Et on affiche le message
      document.getElementById('erreurMauvaisCouple').style.display = '';
      break;
  }
  
}



/**
 * Vérifie que l'utilisateur a le droit de cocher la checkbox qu'il vient de cocher.
 * Si oui, concatène les ID des formules cochées et envoie une requête AJAX pour récupérer le prix
 * Sinon, message d'erreur et décochage
 * Utilisée par 51.xsl
 * @idJustChecked = l'ID de la checkbox qui a déclenchée la fonction (donc qui vient de se faire cocher)
 */
function superviserCochage(idJustChecked, msgErreur) {
  if ( !peutCocher() ) {
    alert(msgErreur);
    document.getElementById(idJustChecked).checked = false;
  }
  else {
    // Si tout va bien, on génère les IDs concaténés et on va chercher le prix
    var idAjax = generateIdAjax('enr3');
    affichagePrixFormule(idAjax);
  }

}


/**
 * Vérifie que l'utilisateur n'a coché qu'une seule checkbox standard et qu'une seule
 * checkbox premium.
 * @returns true si une de chaque, false si plus.
 */
function peutCocher() {
  
  // Nb de checkbox standart cochées
  var cbxStandard = new Array();
  var nbStandard = 0;
  var i = 0;
  // getElementsByClassName() : voir creation-annonce.js
  getElementsByClassName(document.getElementById('tableauChoix'), 'checkBoxStandard', cbxStandard);
  while ( nbStandard <= 1 && i < cbxStandard.length ) {
    if ( cbxStandard[i].checked == true ) {
      nbStandard++;
    }
    i++;
  }
  
  // Il ne faut qu'une seule checkBox cochée
  if ( nbStandard > 1 ) {
    return false;
  }
  else {
    // Nb de checkbox premium cochées
    var cbxPremium = new Array();
    var nbPremium = 0;
    getElementsByClassName(document.getElementById('tableauChoix'), 'checkBoxPremium', cbxPremium);
    i = 0;
    while ( nbPremium <= 1 && i < cbxPremium.length ) {
      if ( cbxPremium[i].checked == true ) {
        nbPremium++;
      }
      i++;
    }
    if ( nbPremium > 1 ) {
      return false;
    }
    else {
      return true;
    }
  }
}


/**
 * Vérifie que l'utuilisateur a bien sélectionné au moins une formule
 * @nomCbx : le "name" des checkbox de choix de formule
 * @erreurChoixFormule : Message d'erreur si on n'a pas choisit de formule
 *
 * @returns true si c'est le cas, false sinon
 */
function validerChoixFormule(nomCbx, erreurChoixFormule) {
  var i = 0;
  var cbxCochees = 0;
  var cbx = document.getElementsByName(nomCbx);
  for ( i = 0 ; i < cbx.length ; i++ ) {
    if ( cbx[i].checked ) {
      cbxCochees++;
    }
  }
  
  if ( cbxCochees == 0 ) {
    alert(erreurChoixFormule);
    return false;
  }
  else {
    return true;
  }
}



function initRadioButtonMassif(className, name){
  if(name != ""){
    for(var i=0; i<document.getElementsByName(name).length; i++){
      document.getElementsByName(name)[i].checked = false;
    }
  }
  else if (className != ""){
    for(var i=0; i<document.getElementsByClassName(className).length; i++){
      document.getElementsByClassName(className)[i].checked = false;
    }
  }
}


/**
 * Si le pays sélectionné dans la liste 'select_pays' est un pays de l'UE et pas la France,
 * affiche la zone de saisie de la TVA.
 * Sinon, masque cette zone
 *
 * @param  pays Array contenant les pays de l'UE (sans la France)
 * @param  idChampSaisieTVA L'ID du champ qui reçoit le numéro intra-com.
 * @return 
 */
function superviserSaisieTVA(pays, idChampSaisieTVA) {  
  if ( arrayContains(pays, document.getElementById('select_pays').value) ) {
      document.getElementById('tvaIntraCommunautaire').style.display = 'block';
  }
  else {
      document.getElementById(idChampSaisieTVA).value = '';
      document.getElementById('tvaIntraCommunautaire').style.display = 'none';  
  }
}




/**
 * Si le pays sélectionné dans la liste 'enr4' est un pays de l'UE et pas la France,
 * et si le nom de société n'est pas vide, affiche la zone de saisie de la TVA.
 * Sinon, masque cette zone
 * @param  pays Array contenant les pays de l'UE (sans la France)
 * @param  idChampSociete ID du champ qui reçoit le nom de la société
 * @param  idChampTVA ID du champ qui reçoit le numéro intra-com.
 * @param  idSelectPays ID de la liste déroulante permettant le choix du pays
 * @return 
 */
function superviserSaisieTVASociete(pays, idChampSociete, idChampTVA, idSelectPays) {
  if ( document.getElementById(idChampSociete).value != '' && arrayContains(pays,document.getElementById(idSelectPays).value) ) {
    document.getElementById('tvaIntraCommunautaire').style.display = 'block';
  }
  else {
    document.getElementById(idChampTVA).value = '';
    document.getElementById('tvaIntraCommunautaire').style.display = 'none';    
  }
}


/**
 * Recherche dans l'Array botteDeFoin la valeur aiguille
 * @param  botteDeFoin L'array dans lequel on veut chercher
 * @param  aiguille La valeur que l'on recherche
 * @return true si botteDeFoin contient aiguille, false sinon
 */
function arrayContains(botteDeFoin, aiguille) {
  for ( var i = 0 ; i < botteDeFoin.length ; i++ ) {
    if ( botteDeFoin[i] == aiguille ) {
      return true;
    }
  }
  return false;
}


function verifRenouvellement(){
  if(document.getElementById('typeAnnonce').value == ''){
    return false;
  }
  else{
    return true;
  }
}

/**
 * Déclenchée lors du clic sur "Ok" dans le cartouche d'accès direct
 * Contrôle que la saisie est bien composée seulement de chiffres
 */
function accesDirect(msgErreur) {
  var c = document.getElementById('idAnnonceDirect');

  if ( c.value != ''  && isAllDigits(c, msgErreur ) ){
    go(1,5,c.value,'','','');
  } 
}


function verifCreationPromo(langue,dateDebut,dateFin,ancienPrix,newPrix,dureeLocation){

  var erreurDateDebut;
  var erreurDateFin;
  var erreurAncienPrix;
  var erreurNewPrix;
  var erreurDureeLocation;
  var erreurAncienPrixSup;
  var erreurDateDebutSupDateFin;
  
  if (langue == 'en'){
    erreurDateDebut = 'Please enter an arrival date';
    erreurDateFin = 'Please enter a return date';
    erreurAncienPrix = 'Please enter a previous price';
    erreurNewPrix = 'Please enter a new price';
    erreurDureeLocation = 'Please enter a length of rent';
    erreurAncienPrixSup = 'The new price can not be greater than the old price';
    erreurDateDebutSupDateFin = 'The arrival date can not be higher than the return date';
  }
  else if(langue == 'es'){
    erreurDateDebut = 'Por favor, introduzca una fecha de llegada';
    erreurDateFin = 'Por favor, introduzca una fecha de regreso';
    erreurAncienPrix = 'Por favor, introduzca un precio previo';
    erreurNewPrix = 'Por favor, introduzca un nuevo precio';
    erreurDureeLocation = 'Por favor, introduzca un periodo de alquiler';
    erreurAncienPrixSup = 'El nuevo precio no puede ser mayor que el precio previo';
    erreurDateDebutSupDateFin = 'La fecha de llegada no puede ser superior a la fecha de regreso';
  }
  else if(langue == 'de'){
    erreurDateDebut = 'Bitte geben Sie ein Ankunftsdatum';
    erreurDateFin = 'Bitte geben Sie ein Rückflug-Datum';
    erreurAncienPrix = 'Bitte geben Sie eine frühere Preis';
    erreurNewPrix = 'Bitte geben Sie einen neuen Preis';
    erreurDureeLocation = 'Bitte geben Sie eine Länge der Miete';
    erreurAncienPrixSup = 'Der neue Preis kann nicht größer sein als der alte Preis';
    erreurDateDebutSupDateFin = 'Das Anreisedatum kann nicht höher sein als das Rückreisedatum';
  }
  else if(langue == 'it'){
    erreurDateDebut = 'Si prega di inserire una data di arrivo';
    erreurDateFin = 'Si prega di inserire una data di ritorno';
    erreurAncienPrix = 'Inserisci un prezzo precedente';
    erreurNewPrix = 'Si prega di inserire un nuovo prezzo';
    erreurDureeLocation = 'Si prega di inserire un periodo di noleggio';
    erreurAncienPrixSup = 'Il nuovo prezzo non può essere superiore al vecchio prezzo';
    erreurDateDebutSupDateFin = 'La data di arrivo non può essere superiore alla data di ritorno';
  }
  else if(langue == 'nl'){
    erreurDateDebut = 'Geef een aankomstdatum';
    erreurDateFin = 'Geef een terugkeer datum';
    erreurAncienPrix = 'Geef een eerdere prijs';
    erreurNewPrix = 'Geef een nieuwe prijs';
    erreurDureeLocation = 'Voer een huurperiode';
    erreurAncienPrixSup = 'De nieuwe prijs kan niet groter zijn dan de oude prijs';
    erreurDateDebutSupDateFin = 'De aankomst datum kan niet hoger zijn dan de datum van terugkeer';
  }
  else if(langue == 'pt'){
    erreurDateDebut = 'Por favor, indique uma data de chegada';
    erreurDateFin = 'Por favor, indique uma data de retorno';
    erreurAncienPrix = 'Digite um preço anterior';
    erreurNewPrix = 'Por favor, indique um novo preço';
    erreurDureeLocation = 'Por favor, indique um período de aluguer';
    erreurAncienPrixSup = 'De aankomst datum kan niet hoger zijn dan de datum van terugkeer';
    erreurDateDebutSupDateFin = 'A data de chegada não pode ser superior à data de retorno';
  }
  else{
    erreurDateDebut = 'Veuillez saisir une date d\'arrivée';
    erreurDateFin = 'Veuillez saisir une date de retour';
    erreurAncienPrix = 'Veuillez saisir un ancien prix';
    erreurNewPrix = 'Veuillez saisir un nouveau prix';
    erreurDureeLocation = 'Veuillez saisir une durée de location';
    erreurAncienPrixSup = 'Le nouveaux prix ne peut pas être supérieur à l\'ancien prix';
    erreurDateDebutSupDateFin = 'La date d\'arrivée ne peut pas être supérieur à la date de retour';
  }

  if(dateDebut == ''){
    alert(erreurDateDebut);
    return false;
  }
  
  if(dateFin == ''){
    alert(erreurDateFin);
    return false;
  }
  
  if(ancienPrix == ''){
    alert(erreurAncienPrix);
    return false;
  }
  
  if(newPrix == ''){
    alert(erreurNewPrix);
    return false;
  }
  
  if(dureeLocation == ''){
    alert(erreurDureeLocation);
    return false;
  }
  
  if (parseInt(newPrix) > parseInt(ancienPrix)){
    alert(erreurAncienPrixSup);
    return false;
  }
  
  if(dateDebut != '' && dateFin != ''){
    var responseDate = compareDateFromCalendar(dateDebut,dateFin);  
      
    if(responseDate == 1){
      alert(erreurDateDebutSupDateFin);
      return false;
    }
  } 
  
  
  
return true;
}


function compareDateFromCalendar(date1,date2){

  /* 1 : Date1 > Date2
     2 : Date1 < Date2
     3 : Date1 = Date2*/
  
  var response;

  var jour_date1;
  var mois_date1;
  var annee_date1;
  
  var jour_date2;
  var mois_date2;
  var annee_date2;
  
  
  var arrayDateDebut = date1.split('/');
  
  jour_date1 = arrayDateDebut[0];
  mois_date1 = arrayDateDebut[1] - 1;
  annee_date1 = arrayDateDebut[2];
  
  dateToCompare1 = new Date(0);
  dateToCompare1.setFullYear(annee_date1, mois_date1, jour_date1)
  
 /* dateToCompare1 = new Date();
  dateToCompare1.setDate(jour_date1);
	dateToCompare1.setMonth(mois_date1);
	dateToCompare1.setYear(annee_date1);
  */
  
  var arrayDate2 = date2.split('/');
  
  jour_date2 = arrayDate2[0];
  mois_date2 = arrayDate2[1] - 1;
  annee_date2 = arrayDate2[2];
  
  dateToCompare2 = new Date(0);
  dateToCompare2.setFullYear(annee_date2, mois_date2, jour_date2)
  
  /*
  dateToCompare2 = new Date();
  dateToCompare2.setDate(jour_date2);
	dateToCompare2.setMonth(mois_date2);
	dateToCompare2.setYear(annee_date2); */

  if(dateToCompare1 > dateToCompare2){
    response = 1;
  }
  else if(dateToCompare1 < dateToCompare2){
    response = 2;
  }
  else{
    response = 3;
  }

  return response;  

}

function verifCreationLastMinute(langue,dateDebut,dateFin,prix,dureeLocation,dateDuJour,limitMonth){

  var erreurDateDebut;
  var erreurDateFin;
  var erreurPrix;
  var erreurDureeLocation;
  var erreurDateDebutSupDateFin;
  var erreurDateDebutMonth;
  
  if (langue == 'en'){
    erreurDateDebut = 'Please enter an arrival date';
    erreurDateFin = 'Please enter a return date';
    erreurPrix = 'Please enter a price';
    erreurDureeLocation = 'Please enter a length of rent';
    erreurDateDebutSupDateFin = 'The arrival date can not be higher than the return date';
    erreurDateDebutMonth = 'You can not create a last-minute after the next 3 months';
  }
  else if(langue == 'es'){
    erreurDateDebut = 'Por favor, introduzca una fecha de llegada';
    erreurDateFin = 'Por favor, introduzca una fecha de regreso';
    erreurPrix = 'Por favor, introduzca un precio';
    erreurDureeLocation = 'Por favor, introduzca un periodo de alquiler';
    erreurDateDebutSupDateFin = 'La fecha de llegada no puede ser superior a la fecha de regreso';
    erreurDateDebutMonth = 'Usted no puede crear un último minuto después de los próximos 3 meses';
  }
  else if(langue == 'de'){
    erreurDateDebut = 'Bitte geben Sie ein Ankunftsdatum';
    erreurDateFin = 'Bitte geben Sie ein Rückflug-Datum';
    erreurPrix = 'Bitte geben Sie einen Preis';
    erreurDureeLocation = 'Bitte geben Sie eine Länge der Miete';
    erreurDateDebutSupDateFin = 'Das Anreisedatum kann nicht höher sein als das Rückreisedatum';
    erreurDateDebutMonth = 'Sie können nicht zu einem Last-Minute nach der nächsten 3 Monate';
  }
  else if(langue == 'it'){
    erreurDateDebut = 'Si prega di inserire una data di arrivo';
    erreurDateFin = 'Si prega di inserire una data di ritorno';
    erreurPrix = 'Inserisci un prezzo';
    erreurDureeLocation = 'Si prega di inserire un periodo di noleggio';
    erreurDateDebutSupDateFin = 'La data di arrivo non può essere superiore alla data di ritorno';
    erreurDateDebutMonth = 'Non è possibile creare un last-minute, dopo i prossimi 3 mesi';
  }
  else if(langue == 'nl'){
    erreurDateDebut = 'Geef een aankomstdatum';
    erreurDateFin = 'Geef een terugkeer datum';
    erreurPrix = 'Vul een prijs';
    erreurDureeLocation = 'Voer een huurperiode';
    erreurDateDebutSupDateFin = 'De aankomst datum kan niet hoger zijn dan de datum van terugkeer';
    erreurDateDebutMonth = 'U kunt geen een last-minute na de volgende 3 maanden';
  }
  else if(langue == 'pt'){
    erreurDateDebut = 'Por favor, indique uma data de chegada';
    erreurDateFin = 'Por favor, indique uma data de retorno';
    erreurPrix = 'Digite um preço';
    erreurDureeLocation = 'Por favor, indique um período de aluguer';
    erreurDateDebutSupDateFin = 'A data de chegada não pode ser superior à data de retorno';
    erreurDateDebutMonth = 'Você não pode criar um no último minuto após os próximos 3 meses';
  }
  else{
    erreurDateDebut = 'Veuillez saisir une date d\'arrivée';
    erreurDateFin = 'Veuillez saisir une date de retour';
    erreurPrix = 'Veuillez saisir un prix';
    erreurDureeLocation = 'Veuillez saisir une durée de location';
    erreurDateDebutSupDateFin = 'La date d\'arrivée ne peut pas être supérieur à la date de retour';
    erreurDateDebutMonth = 'Vous ne pouvez créer une dernière minute que sur une période comprise dans les 3 prochains mois';
  }

  if(dateDebut == ''){
    alert(erreurDateDebut);
    return false;
  }
  
  if(dateFin == ''){
    alert(erreurDateFin);
    return false;
  }
  
  if(prix == ''){
    alert(erreurPrix);
    return false;
  }

  if(dureeLocation == ''){
    alert(erreurDureeLocation);
    return false;
  }
  
  if(dateDebut != '' && dateFin != ''){
    var responseDate = compareDateFromCalendar(dateDebut,dateFin);  
      
    if(responseDate == 1){
      alert(erreurDateDebutSupDateFin);
      return false;
    }
  } 
  
  if(dateFin != ''){
    var resultCompare = compareMonthDateFromCalendar(dateDuJour, dateFin, limitMonth);
    
    if(resultCompare == false){
      alert(erreurDateDebutMonth);
      return false;
    }
  }
  
  return true;
}



function compareMonthDateFromCalendar(date1, date2, limitMonth){

  var resultNbMonth;
  var jour_date1;
  var mois_date1;
  var annee_date1;
  
  var jour_date2;
  var mois_date2;
  var annee_date2;
  
  var arrayDate1 = date1.split('/');
  var arrayDate2 = date2.split('/');
  
  jour_date1 = parseInt(arrayDate1[0]);
  mois_date1 = parseInt(arrayDate1[1]) - 1;
  annee_date1 = parseInt(arrayDate1[2]);
  
  jour_date2 = parseInt(arrayDate2[0]);
  mois_date2 = parseInt(arrayDate2[1]) - 1;
  annee_date2 = parseInt(arrayDate2[2]);
  
  resultNbMonth = (annee_date2 - annee_date1)*12 + (mois_date2 - mois_date1);
  
  if(resultNbMonth > limitMonth){
    return false;
  }
  else if(resultNbMonth == limitMonth){
    if(jour_date2 > jour_date1){
      return false;
    }
  }
  return true;
}



function check_number_input(input,test)
{/*appel de la fonction check_number_input(this)*/
  if(test==0) { //Check int
    var content = input.value;
    result = content.replace(/([^0123456789]*)/g,"");
    input.value = result;
  }
  if(test==1) { //Check float
    var content = input.value;
    result = content.replace(/([^0123456789\.,]*)/g,"");
    result = result.replace(/,/g,".");
    result = result.replace(/^\.([0123456789\.]*)/,"0.$1");
    result = result.replace(/\.([0123456789]*)\./g,".$1")
    input.value = result;
  }
  if(test==2) { //Check phone
    var content = input.value;
    result = content.replace(/([^0123456789 ]*)/g,"");
    input.value = result;
  }
}  



function verifCreationDemandeEvaluation(langue,dateDebut,dateFin,nomLocataire,prenomLocataire){

  var erreurPrenomLocataire;
  var erreurNomLocataire;
  var erreurDateDebut;
  var erreurDateFin;
  var erreurDateDebutSupDateFin;
  
  if (langue == 'en'){
    erreurDateDebut = 'Please enter an arrival date';
    erreurDateFin = 'Please enter a return date';
    erreurPrenomLocataire = 'Please enter your first name';
    erreurNomLocataire = 'Please enter your name';
    erreurDateDebutSupDateFin = 'The return date must be greater than the arrival date';
  }
  else if(langue == 'es'){
    erreurDateDebut = 'Por favor, introduzca una fecha de llegada';
    erreurDateFin = 'Por favor, introduzca una fecha de regreso';
    erreurPrenomLocataire = 'Por favor, introduzca su apellido';
    erreurNomLocataire = 'Por favor, introduzca su nombre';
    erreurDateDebutSupDateFin = 'La fecha de regreso debe ser mayor que la fecha de llegada';
  }
  else if(langue == 'de'){
    erreurDateDebut = 'Bitte geben Sie ein Ankunftsdatum';
    erreurDateFin = 'Bitte geben Sie ein Rückflug-Datum';
    erreurPrenomLocataire = 'Bitte geben Sie Ihren Vornamen ein';
    erreurNomLocataire = 'Bitte geben Sie Ihren Namen';
    erreurDateDebutSupDateFin = 'Die Rückkehr Datum muss größer sein als das Anreisedatum';
  }
  else if(langue == 'it'){
    erreurDateDebut = 'Si prega di inserire una data di arrivo';
    erreurDateFin = 'Si prega di inserire una data di ritorno';
    erreurPrenomLocataire = 'Inserisci il tuo nome';
    erreurNomLocataire = 'Inserisci il tuo nome';
    erreurDateDebutSupDateFin = 'La data ritorno deve essere superiore alla data di arrivo';
  }
  else if(langue == 'nl'){
    erreurDateDebut = 'Geef een aankomstdatum';
    erreurDateFin = 'Geef een terugkeer datum';
    erreurPrenomLocataire = 'Geef uw voornaam';
    erreurNomLocataire = 'Vul uw naam';
    erreurDateDebutSupDateFin = 'De terugkeer datum moet groter zijn dan de dag van aankomst';
  }
  else if(langue == 'pt'){
    erreurDateDebut = 'Por favor, indique uma data de chegada';
    erreurDateFin = 'Por favor, indique uma data de retorno';
    erreurPrenomLocataire = 'Por favor digite seu primeiro nome';
    erreurNomLocataire = 'Digite seu nome';
    erreurDateDebutSupDateFin = 'A data de retorno deve ser maior que a data de chegada';
  }
  else{
    erreurDateDebut = 'Veuillez saisir une date d\'arrivée';
    erreurDateFin = 'Veuillez saisir une date de retour';
    erreurPrenomLocataire = 'Veuillez saisir votre prénom';
    erreurNomLocataire = 'Vous devez saisir votre nom';
    erreurDateDebutSupDateFin = 'La date de retour ne peut être inférieur à la date d\'arrivée';
  }
  
  if(erreurNomLocataire == ''){
    alert(erreurNomLocataire);
    return false;
  }

  if(prenomLocataire == ''){
    alert(erreurPrenomLocataire);
    return false;
  }
  
  if(dateDebut == ''){
    alert(erreurDateDebut);
    return false;
  }
  
  if(dateFin == ''){
    alert(erreurDateFin);
    return false;
  }

  
  if(dateDebut != '' && dateFin != ''){
    var responseDate = compareDateFromCalendar(dateDebut,dateFin);  
      
    if(responseDate == 1){
      alert(erreurDateDebutSupDateFin);
      return false;
    }
  } 
  
  
  
  return true;
}


function verifDepotEvaluation(langue,dateDuJour,dateFinSejour){
  var erreurDate;
  
  if (langue == 'en'){
    erreurDate='You can submit your testimonial only after the end of your stay';
  }
  else if(langue == 'es'){
    erreurDate='Usted puede presentar su evaluación sólo después de la final de su estancia';
  }
  else if(langue == 'de'){
    erreurDate='Sie können Ihre Beurteilung vorlegen erst nach dem Ende Ihres Aufenthaltes'; 
  }
  else if(langue == 'it'){
    erreurDate='Puoi inviare la tua valutazione solo dopo la fine del tuo soggiorno';
  }
  else if(langue == 'nl'){
    erreurDate='U kunt uw beoordeling pas na het einde van uw verblijf';
  }
  else if(langue == 'pt'){
    erreurDate='Você pode enviar sua avaliação somente após o final de sua estadia';
  }
  else{
    erreurDate='Vous pourrez déposer votre appréciation seulement après la date de fin de votre séjour';
  }

  if(dateDuJour != '' && dateFinSejour != ''){
    var responseDate = compareDateFromCalendar(dateDuJour,dateFinSejour);  
      
    if(responseDate == 2){
      alert(erreurDate);
      return false;
    }
  }
  return true;  

}

function verifAutorisationDemandeEvaluation(langue,dateDebut,dateFin){

  var erreurDateDebut;
  var erreurDateFin;
  var erreurDateDebutSupDateFin;
  
  if (langue == 'en'){
    erreurDateDebut = 'Please enter an arrival date';
    erreurDateFin = 'Please enter a return date';
    erreurDateDebutSupDateFin = 'The return date must be greater than the arrival date';
  }
  else if(langue == 'es'){
    erreurDateDebut = 'Por favor, introduzca una fecha de llegada';
    erreurDateFin = 'Por favor, introduzca una fecha de regreso';
    erreurDateDebutSupDateFin = 'La fecha de regreso debe ser mayor que la fecha de llegada';
  }
  else if(langue == 'de'){
    erreurDateDebut = 'Bitte geben Sie ein Ankunftsdatum';
    erreurDateFin = 'Bitte geben Sie ein Rückflug-Datum';
    erreurDateDebutSupDateFin = 'Die Rückkehr Datum muss größer sein als das Anreisedatum';
  }
  else if(langue == 'it'){
    erreurDateDebut = 'Si prega di inserire una data di arrivo';
    erreurDateFin = 'Si prega di inserire una data di ritorno';
    erreurDateDebutSupDateFin = 'La data ritorno deve essere superiore alla data di arrivo';
  }
  else if(langue == 'nl'){
    erreurDateDebut = 'Geef een aankomstdatum';
    erreurDateFin = 'Geef een terugkeer datum';
    erreurDateDebutSupDateFin = 'De terugkeer datum moet groter zijn dan de dag van aankomst';
  }
  else if(langue == 'pt'){
    erreurDateDebut = 'Por favor, indique uma data de chegada';
    erreurDateFin = 'Por favor, indique uma data de retorno';
    erreurDateDebutSupDateFin = 'A data de retorno deve ser maior que a data de chegada';
  }
  else{
    erreurDateDebut = 'Veuillez saisir une date d\'arrivée';
    erreurDateFin = 'Veuillez saisir une date de retour';
    erreurDateDebutSupDateFin = 'La date de retour ne peut être inférieur à la date d\'arrivée';
  }
  
  
  if(dateDebut == ''){
    alert(erreurDateDebut);
    return false;
  }
  
  if(dateFin == ''){
    alert(erreurDateFin);
    return false;
  }

  
  if(dateDebut != '' && dateFin != ''){
    var responseDate = compareDateFromCalendar(dateDebut,dateFin);  
      
    if(responseDate == 1){
      alert(erreurDateDebutSupDateFin);
      return false;
    }
  } 
  
  
  
  return true;
}