/***
    VALIDATION DU FORMULAIRE DE RECHERCHE D'EMPLOI       (OK alert JS)
*/
function valid_recherche_emploi(form) { 
   var v = 0;
        
   if (valid_text(form.elements['ANNONCE[mots-cles]'].value,'Mots clés') == true) { ++v; }
   if (valid_text(form.elements['ANNONCE[id_geographie]'].value,'Département') == true) { ++v; }
   if (valid_text(form.elements['ANNONCE[id_secteur_activite]'].value,'Secteur d\'activité') == true) { ++v; }
   if (valid_text(form.elements['ANNONCE[id_type_contrat]'].value,'Type de contrat') == true) { ++v; }

   if (v==0) {
        jAlert('Veuillez renseigner au moins un critère de recherche.', 'Echec de la recherche');
   } else {
        form.submit();
   }
}
/***
    SELECTIONNER UNE ANNONCE       (OK alert JS)
*/
function selectionner_annonce(id) {

    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                      if (xhr.responseText.substr(0,6)=='ERROR-') {
                            jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Sélection d\'annonce');
                      } else {
                            jAlert(xhr.responseText, 'Sélection d\'annonce', function() {
                                top.location.replace(top.document.location);
                            });
                      }
              } else {
                      jAlert('Une erreur est survenue durant l\'enregistrement de votre alerte mail, veuillez rééssayer ultérieurement.', 'Sélection d\'annonce');
              }
         }
    };

    var OnOff = true;
    var m = 'selA_'+id;
    if (top.document.getElementById(m).checked!=true) {
       OnOff = false;
    }    
    var data = 'ANNONCE[id]=' + id;
    data += '&OnOff='  + OnOff;
    
    xhr.open('POST', 'http://'+location.host+'/ajax/selectionner_annonce.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}
/***
    ENREGISTREMENT D'UNE ALERTE MAIL       (OK alert JS)
*/
function enregistrer_alerte_mail() {

    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                      if (xhr.responseText.substr(0,6)=='ERROR-') {
                            jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Alerte mail');
                      } else {
                            jAlert(xhr.responseText, 'Alerte mail', function() {
                                top.location.replace(top.document.location);
                            });
                      }
              } else {
                      jAlert('Une erreur est survenue durant l\'enregistrement de votre alerte mail, veuillez rééssayer ultérieurement.', 'Alerte mail');
              }
         }
    };
    
    var data = 'ANNONCE[mots-cles]=' + top.document.forms['recherche_emploi'].elements['ANNONCE[mots-cles]'].value;
    data += '&ANNONCE[id_geographie]='  + top.document.forms['recherche_emploi'].elements['ANNONCE[id_geographie]'].value;
    data += '&ANNONCE[id_secteur_activite]='  + top.document.forms['recherche_emploi'].elements['ANNONCE[id_secteur_activite]'].value;
    data += '&ANNONCE[id_type_contrat]='  + top.document.forms['recherche_emploi'].elements['ANNONCE[id_type_contrat]'].value;

    xhr.open('POST', 'http://'+location.host+'/ajax/enregistrer_alerte_mail.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}
/***
    SUPPRESSION D'UNE ALERTE MAIL       (OK alert JS)
*/
function supprimer_alerte_mail(id,titre) {
         
         jConfirm("Etes-vous certain de vouloir supprimer l\'alerte \""+titre+"\"?", 'Alerte mail', function(r) {
                 if (r === true) {
                       frames['frm_alerte_mail'].location.href='http://'+location.host+'/md/supprimer_alerte_mail.php?ALERTE_CANDIDAT[id]='+id;
                 }
         });
}
/***
    ACTIVATION / DESACTIVATION D'UNE ALERTE MAIL      (OK alert JS)
*/
function activer_alerte_mail(id,titre,activation) {

         var new_activation = 'oui';
         if (activation == 'oui') {
             var msg = 'Etes-vous certain de vouloir désactiver l\'alerte \"'+titre+'\"?';
             new_activation = 'non';
         } else {
             var msg = 'Etes-vous certain de vouloir activer l\'alerte \"'+titre+'\"?';
             new_activation = 'oui';
         }
         jConfirm(msg, 'Alerte mail', function(r) {
               if (r === true) {
                     frames['frm_alerte_mail'].location.href='http://'+location.host+'/md/activer_alerte_mail.php?ALERTE_CANDIDAT[id]='+id+'&ALERTE_CANDIDAT[activation]='+new_activation;
               }
         });
}
/***
    INSCRIPTION D'UN CANDIDAT       (OK alert JS)
*/
function enregistrer_candidat()
{
         var xhr; 
         try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
         catch (e) 
         {
              try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
              catch (e2) 
              {
                try {  xhr = new XMLHttpRequest();  }
                catch (e3) {  xhr = false;   }
              }
         }
          
         xhr.onreadystatechange  = function()
         {
               if(xhr.readyState == 4)
               {
                    if(xhr.status  == 200) {
                            if (xhr.responseText.substr(0,6)=='ERROR-') {
                                  jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Mon compte');
                            } else {
                                  jAlert(xhr.responseText, 'Mon compte', function() {
                                          if (IsNumberString(top.document.forms['moncompte'].elements['id_annonce'].value)) {
                                                //on vient de la consultation d'une annonce : redirection vers postuler non loger
//TODO TODO TODO TODO TODO
                                                top.document.location.href = 'http://'+location.host+'/postuler_non_log.php?ANNONCE[id]='+top.document.forms['moncompte'].elements['id_annonce'].value;
                                          } else if (top.document.forms['moncompte'].elements['id_candidat'].value=='') {
                                                 //on vient de s'inscrire : redirection vers l'accueil
                                                 top.document.location.href = 'http:///www.carriereonlinedom.fr/';
                                          } else {
                                                //on reste sur la même page
                                                top.location.replace(top.document.location);
                                          }
                                  });
                            }
                    } else {
                            jAlert('Une erreur est survenue durant l\'enregistrement de vos informations, veuillez rééssayer ultérieurement.', 'Mon compte');
                    }
               }
         }; 
         var civilite = 'Monsieur';
         var emailing_coldom = 'non';
         var emailing_partenaires = 'non';
         if (top.document.forms['moncompte'].elements['CANDIDAT[emailing_coldom]'].checked) {
              emailing_coldom = 'oui';
         }         
         if (top.document.forms['moncompte'].elements['CANDIDAT[emailing_partenaires]'].checked) {
              emailing_partenaires = 'oui';
         }
         var radio_civilite = top.document.forms['moncompte'].elements['CANDIDAT[civilite]'];
         for (var i=0; i<radio_civilite.length;i++) {
             if (radio_civilite[i].checked) {
                civilite = radio_civilite[i].value;
                break;
             }
         }
         
         var data = 'CANDIDAT[civilite]=' + civilite;
         data += '&CANDIDAT[nom]='  + top.document.forms['moncompte'].elements['CANDIDAT[nom]'].value;
         data += '&CANDIDAT[prenom]='  + top.document.forms['moncompte'].elements['CANDIDAT[prenom]'].value;
         data += '&CANDIDAT[identifiant]='  + top.document.forms['moncompte'].elements['CANDIDAT[identifiant]'].value;
         data += '&CANDIDAT[mot_de_passe]='  + top.document.forms['moncompte'].elements['CANDIDAT[mot_de_passe]'].value;
         data += '&CANDIDAT[adresse]='  + top.document.forms['moncompte'].elements['CANDIDAT[adresse]'].value;
         data += '&CANDIDAT[adresse2]='  + top.document.forms['moncompte'].elements['CANDIDAT[adresse2]'].value;
         data += '&CANDIDAT[code_postal]='  + top.document.forms['moncompte'].elements['CANDIDAT[code_postal]'].value;
         data += '&CANDIDAT[ville]='  + top.document.forms['moncompte'].elements['CANDIDAT[ville]'].value;
         data += '&CANDIDAT[telephone]='  + top.document.forms['moncompte'].elements['CANDIDAT[telephone]'].value;
         data += '&CANDIDAT[email]='  + top.document.forms['moncompte'].elements['CANDIDAT[email]'].value;
         data += '&CANDIDAT[emailing_coldom]='  + emailing_coldom;
         data += '&CANDIDAT[emailing_partenaires]='  + emailing_partenaires;
         data += '&id_candidat='  + top.document.forms['moncompte'].elements['id_candidat'].value;
         data += '&id_annonce='  + top.document.forms['moncompte'].elements['id_annonce'].value;

         xhr.open('POST', 'http://'+location.host+'/ajax/enregistrer_candidat.php',  true); 
         xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         xhr.send(data);
}
/***
    SUPPRESSION D'UN CANDIDAT       (OK alert JS)
*/
function supprimer_compte_candidat(id)
{
         jConfirm("Etes-vous certain de vouloir supprimer votre compte ?", 'Mon compte', function(r) {
               if (r === true) {
                     top.document.location.href='http://'+location.host+'/md/supprimer_candidat.php?CANDIDAT[id]='+id;
               }
         });
}
/***
    IDENTIFICATION D'UN CANDIDAT       (OK alert JS)
*/
function submit_identification_candidat() {
   //déconnection
   if (top.document.forms['identification_candidat'].elements['CANDIDAT[deconnection]'].value == 'true') {
       top.document.location.href = 'http://'+location.host+'/md/deconnection_candidat.php';
       return true;
   }

   //connection
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                 if (xhr.responseText != '') {
                      jAlert(xhr.responseText, 'Echec d\'identification');
                 } else {
                      if (top.document.forms['identification_candidat'].mem_identification.checked) {                                                                                   
                             var myArray=new Array();
                             myArray['identifiant']=top.document.forms['identification_candidat'].elements['CANDIDAT[identifiant]'].value;
                             myArray['mot_de_passe']=top.document.forms['identification_candidat'].elements['CANDIDAT[mot_de_passe]'].value;
                             Set_Cookie('identification', serializeArray(myArray))
                      } else {
                             Delete_Cookie('identification');
                      }
                      if (IsNumberString(top.document.forms['identification_candidat'].elements['ANNONCE[id]'].value)) {
                           top.document.location.href = 'http://'+location.host+'/postuler.php?ANNONCE[id]='+top.document.forms['identification_candidat'].elements['ANNONCE[id]'].value;
                      } else {
                           top.location.replace(top.document.location);
                      }
                 }
              } else {
                      jAlert('Une erreur est survenue durant votre identification, veuillez rééssayer ultérieurement.', 'Echec d\'identification');
              }
         }
    };
    
    var data = 'CANDIDAT[identifiant]=' + top.document.forms['identification_candidat'].elements['CANDIDAT[identifiant]'].value;
    data += '&CANDIDAT[mot_de_passe]='  + top.document.forms['identification_candidat'].elements['CANDIDAT[mot_de_passe]'].value;
    
    xhr.open('POST', 'http://'+location.host+'/ajax/identification_candidat.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data); 

}
/***
    SUPPRESSION D'UN CV CANDIDAT       (OK alert JS)
*/
function supprime_cv(id) 
{
         jConfirm("Etes-vous certain de vouloir supprimer votre cv ?", 'Suppression de CV', function(r) {
               if (r === true) {
                     frames['supprimer_cv'].location.href='http://'+location.host+'/md/supprimer_cv.php?CV[id]='+id;
               }
         });
}
/***
    SUPPRESSION D'UNE LETTRE CANDIDAT       (OK alert JS)
*/
function supprime_lettre(id) 
{
         jConfirm("Etes-vous certain de vouloir supprimer votre lettre de motivation ?", 'Suppression lettre de motivation', function(r) {
               if (r === true) {
                     frames['supprimer_lettre'].location.href='http://'+location.host+'/md/supprimer_lettre.php?LETTRE[id]='+id;
               }
         });
}
/***
    POSTULER A UNE ANNONCE      (OK alert JS)
*/
function valid_postuler(form) 
{
         var err='';
         
         if (isMail(form.elements['CANDIDAT[email]'].value) != true) {
             err+='\n-Email';
         }
         if (form.elements['CANDIDATURE[message_email]'].value == '') {
             err+='\n-Message';
         }         

         if (err!='') {
              err2='Les champs suivants ne sont pas correctement renseignés :';
              err2+=err;
              jAlert(err2, 'Postuler');
              /*alert(err2);*/
              return false;         
         } else {
              form.elements['action'].value = 'POSTULER';
              form.submit();
         }
}
/***
    DEPOSER UN CV      (OK alert JS)
*/
function valid_depot_cv(form)
{
         var err='';
         
         var d='';
         d = form.elements['CVTHEQUE[jour_disponibilite]'].value+'/'+form.elements['CVTHEQUE[mois_disponibilite]'].value+'/'+form.elements['CVTHEQUE[annee_disponibilite]'].value;
         if (d!='jj/mm/aaaa' && d!='//') {
              if (!isDate(d)) {
                 err+='\n-Date de disponibilité';
              }
         }

         if (err!='') {
              err2='Les champs suivants ne sont pas correctement renseignés :';
              err2+=err;
              jAlert(err2, 'Mon Compte');
              /*alert(err2);*/
              return false;         
         } else {
              form.elements['action'].value = 'INSERT';
              form.submit();
         }
}
/***
    MOT DE PASSE OUBLIE       (OK alert JS)
*/
function motdepasseoublie() {
    
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                  if (xhr.responseText.substr(0,6)=='ERROR-') {
                         jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Réinitialisation mot de passe');
                  } else {
                         jAlert(xhr.responseText, 'Réinitialisation mot de passe');
                  }
              } else {
                      jAlert('Une erreur est survenue durant l\'exécution de votre demande, veuillez rééssayer ultérieurement.', 'Réinitialisation mot de passe');
              }
         }
    };
    
    var data = 'email=' + top.document.forms['mdpoublie'].elements['email'].value;
    
    xhr.open('POST', 'http://'+location.host+'/ajax/motdepasseoublie.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}
/***
    ENVOYER OFFRE A UN AMI       (OK alert JS)
*/
function envoiaunami() {
 
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                  if (xhr.responseText.substr(0,6)=='ERROR-') {
                         jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Envoyer une offre d\'emploi à un ami', function(r) {
                                  top.location.replace(top.document.location);
                         });
                  } else {
                         jAlert('Cette offre d\'emploi a été envoyée à votre ami.', 'Envoyer une offre d\'emploi à un ami', function(r)
                         {
                                       top.document.location.href='http://'+location.host+'/detail.php?ANNONCE[id]='+top.document.forms['frm_envoiaunami'].elements['ANNONCE[id]'].value;
                         });
                  }
              } else {
                  jAlert('Une erreur est survenue durant l\'exécution de votre demande, veuillez rééssayer ultérieurement.', 'Envoyer une offre d\emploi à un ami');
              }
         }
    };
    
    var prospect_coldom = 'non';
    var prospect_partenaires = 'non';
    if (top.document.forms['frm_envoiaunami'].elements['prospect_coldom'].checked) {
          prospect_coldom = 'oui';
    }         
    if (top.document.forms['frm_envoiaunami'].elements['prospect_partenaires'].checked) {
          prospect_partenaires = 'oui';
    }
    var data = 'e_nom=' + top.document.forms['frm_envoiaunami'].elements['e_nom'].value;
    data += '&e_email='  + top.document.forms['frm_envoiaunami'].elements['e_email'].value;
    data += '&e_email2='  + top.document.forms['frm_envoiaunami'].elements['e_email2'].value;
    data += '&c_message='  + top.document.forms['frm_envoiaunami'].elements['c_message'].value;
    data += '&cle_captcha='  + top.document.forms['frm_envoiaunami'].elements['cle_captcha'].value;
    data += '&e_captcha='  + top.document.forms['frm_envoiaunami'].elements['e_captcha'].value;
    data += '&ANNONCE[id]='  + top.document.forms['frm_envoiaunami'].elements['ANNONCE[id]'].value;
    data += '&ANNONCE[libelle]='  + top.document.forms['frm_envoiaunami'].elements['ANNONCE[libelle]'].value;
    data += '&prospect_coldom='  + prospect_coldom;
    data += '&prospect_partenaires='  + prospect_partenaires;
    
    xhr.open('POST', 'http://'+location.host+'/ajax/envoi-a-un-ami.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
}
/***
    CONTACT       (OK alert JS)
*/
function valid_contact(form)
{
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();  }
          catch (e3) {  xhr = false;   }
        }
    }
    
    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState == 4)
         {
              if(xhr.status  == 200) {
                  if (xhr.responseText.substr(0,6)=='ERROR-') {
                         jAlert(xhr.responseText.substr(6,xhr.responseText.length), 'Contactez-nous');
                  } else {
                         top.document.location.href='http://'+location.host+'/index.php';
                  }
              } else {
                  jAlert('Une erreur est survenue durant l\'exécution de votre demande, veuillez rééssayer ultérieurement.', 'Contactez-nous');
              }
         }
    };
    
    var data = 'c_nom=' + top.document.forms['frm_contact'].elements['c_nom'].value;
    data += '&c_email='  + top.document.forms['frm_contact'].elements['c_email'].value;
    data += '&c_objet='  + top.document.forms['frm_contact'].elements['c_objet'].value;
    data += '&c_message='  + top.document.forms['frm_contact'].elements['c_message'].value;

    xhr.open('POST', 'http://'+location.host+'/ajax/contact.php',  true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(data);
    
}
/***
    IMPRIMER UNE ANNONCE       (OK alert JS)
*/
function imprimer_annonce(id) {
         top.window.open('http://'+location.host+'/imprimer.php?ANNONCE[id]='+id,'','toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=yes,menuBar=no,width=850,height=700');
}

////////////////////////////////////////////////
// FONCTIONS GENERIQUES
////////////////////////////////////////////////
function valid_text(saisie,origine) 
{
       saisie = trim(saisie); 
       if(saisie!=origine) {
              return true;
       }
       return false;
}
function trim (myString)
{
         return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 
function IsNumberString(NumStr)
{
     var regEx=/^[0-9]+$/;
     if (regEx.test(NumStr)) {
          return true;
     }
     return false;
}
function IsAlphaNumString(NumStr)
{
    var regEx=/^[A-Za-z0-9]+$/;
    var ret=false;
    if (regEx.test(NumStr)) ret=true;
    return ret;
}
function IsAlphaString(NumStr)
{
    var regEx=/^[A-Za-z]+$/;
    var ret=false;
    if (regEx.test(NumStr)) ret=true;
    return ret;
} 
function addslashes( str ) {
    return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
}
function isDate(d) {
 // Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa

 if (d == "") // si la variable est vide on retourne faux
 return false;

 // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
 j = parseInt(d.split("/")[0], 10); // jour
 m = parseInt(d.split("/")[1], 10); // mois
 a = parseInt(d.split("/")[2], 10); // année

 // Si l'année n'est composée que de 2 chiffres on complète automatiquement
 if (a < 1000) {
 if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
 else a+=1900;
 }

 // Définition du dernier jour de février
 // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
 if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
 else fev = 28;

 // Nombre de jours pour chaque mois
 nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

 // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
 return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

function isMail(myString) {
   var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var ret=false;
   if (regEx.test(myString)) ret=true;
   return ret;
} 

function HTMLentities(texte) {
    texte = texte.replace(/"/g,'&quot;'); // 34 22
    texte = texte.replace(/&/g,'&amp;'); // 38 26
    texte = texte.replace(/\'/g,'&#39;'); // 39 27
    texte = texte.replace(/</g,'&lt;'); // 60 3C
    texte = texte.replace(/>/g,'&gt;'); // 62 3E
    texte = texte.replace(/\^/g,'&circ;'); // 94 5E
    texte = texte.replace(/‘/g,'&lsquo;'); // 145 91
    texte = texte.replace(/’/g,'&rsquo;'); // 146 92
    texte = texte.replace(/“/g,'&ldquo;'); // 147 93
    texte = texte.replace(/”/g,'&rdquo;'); // 148 94
    texte = texte.replace(/•/g,'&bull;'); // 149 95
    texte = texte.replace(/–/g,'&ndash;'); // 150 96
    texte = texte.replace(/—/g,'&mdash;'); // 151 97
    texte = texte.replace(/˜/g,'&tilde;'); // 152 98
    texte = texte.replace(/™/g,'&trade;'); // 153 99
    texte = texte.replace(/š/g,'&scaron;'); // 154 9A
    texte = texte.replace(/›/g,'&rsaquo;'); // 155 9B
    texte = texte.replace(/œ/g,'&oelig;'); // 156 9C
    texte = texte.replace(//g,'&#357;'); // 157 9D
    texte = texte.replace(/ž/g,'&#382;'); // 158 9E
    texte = texte.replace(/Ÿ/g,'&Yuml;'); // 159 9F
    // texte = texte.replace(/ /g,'&nbsp;'); // 160 A0
    texte = texte.replace(/¡/g,'&iexcl;'); // 161 A1
    texte = texte.replace(/¢/g,'&cent;'); // 162 A2
    texte = texte.replace(/£/g,'&pound;'); // 163 A3
    //texte = texte.replace(/ /g,'&curren;'); // 164 A4
    texte = texte.replace(/¥/g,'&yen;'); // 165 A5
    texte = texte.replace(/¦/g,'&brvbar;'); // 166 A6
    texte = texte.replace(/§/g,'&sect;'); // 167 A7
    texte = texte.replace(/¨/g,'&uml;'); // 168 A8
    texte = texte.replace(/©/g,'&copy;'); // 169 A9
    texte = texte.replace(/ª/g,'&ordf;'); // 170 AA
    texte = texte.replace(/«/g,'&laquo;'); // 171 AB
    texte = texte.replace(/¬/g,'&not;'); // 172 AC
    texte = texte.replace(/­/g,'&shy;'); // 173 AD
    texte = texte.replace(/®/g,'&reg;'); // 174 AE
    texte = texte.replace(/¯/g,'&macr;'); // 175 AF
    texte = texte.replace(/°/g,'&deg;'); // 176 B0
    texte = texte.replace(/±/g,'&plusmn;'); // 177 B1
    texte = texte.replace(/²/g,'&sup2;'); // 178 B2
    texte = texte.replace(/³/g,'&sup3;'); // 179 B3
    texte = texte.replace(/´/g,'&acute;'); // 180 B4
    texte = texte.replace(/µ/g,'&micro;'); // 181 B5
    texte = texte.replace(/¶/g,'&para'); // 182 B6
    texte = texte.replace(/·/g,'&middot;'); // 183 B7
    texte = texte.replace(/¸/g,'&cedil;'); // 184 B8
    texte = texte.replace(/¹/g,'&sup1;'); // 185 B9
    texte = texte.replace(/º/g,'&ordm;'); // 186 BA
    texte = texte.replace(/»/g,'&raquo;'); // 187 BB
    texte = texte.replace(/¼/g,'&frac14;'); // 188 BC
    texte = texte.replace(/½/g,'&frac12;'); // 189 BD
    texte = texte.replace(/¾/g,'&frac34;'); // 190 BE
    texte = texte.replace(/¿/g,'&iquest;'); // 191 BF
    texte = texte.replace(/À/g,'&Agrave;'); // 192 C0
    texte = texte.replace(/Á/g,'&Aacute;'); // 193 C1
    texte = texte.replace(/Â/g,'&Acirc;'); // 194 C2
    texte = texte.replace(/Ã/g,'&Atilde;'); // 195 C3
    texte = texte.replace(/Ä/g,'&Auml;'); // 196 C4
    texte = texte.replace(/Å/g,'&Aring;'); // 197 C5
    texte = texte.replace(/Æ/g,'&AElig;'); // 198 C6
    texte = texte.replace(/Ç/g,'&Ccedil;'); // 199 C7
    texte = texte.replace(/È/g,'&Egrave;'); // 200 C8
    texte = texte.replace(/É/g,'&Eacute;'); // 201 C9
    texte = texte.replace(/Ê/g,'&Ecirc;'); // 202 CA
    texte = texte.replace(/Ë/g,'&Euml;'); // 203 CB
    texte = texte.replace(/Ì/g,'&Igrave;'); // 204 CC
    texte = texte.replace(/Í/g,'&Iacute;'); // 205 CD
    texte = texte.replace(/Î/g,'&Icirc;'); // 206 CE
    texte = texte.replace(/Ï/g,'&Iuml;'); // 207 CF
    texte = texte.replace(/Ð/g,'&ETH;'); // 208 D0
    texte = texte.replace(/Ñ/g,'&Ntilde;'); // 209 D1
    texte = texte.replace(/Ò/g,'&Ograve;'); // 210 D2
    texte = texte.replace(/Ó/g,'&Oacute;'); // 211 D3
    texte = texte.replace(/Ô/g,'&Ocirc;'); // 212 D4
    texte = texte.replace(/Õ/g,'&Otilde;'); // 213 D5
    texte = texte.replace(/Ö/g,'&Ouml;'); // 214 D6
    texte = texte.replace(/×/g,'&times;'); // 215 D7
    texte = texte.replace(/Ø/g,'&Oslash;'); // 216 D8
    texte = texte.replace(/Ù/g,'&Ugrave;'); // 217 D9
    texte = texte.replace(/Ú/g,'&Uacute;'); // 218 DA
    texte = texte.replace(/Û/g,'&Ucirc;'); // 219 DB
    texte = texte.replace(/Ü/g,'&Uuml;'); // 220 DC
    texte = texte.replace(/Ý/g,'&Yacute;'); // 221 DD
    texte = texte.replace(/Þ/g,'&THORN;'); // 222 DE
    texte = texte.replace(/ß/g,'&szlig;'); // 223 DF
    texte = texte.replace(/à/g,'&aacute;'); // 224 E0
    texte = texte.replace(/á/g,'&aacute;'); // 225 E1
    texte = texte.replace(/â/g,'&acirc;'); // 226 E2
    texte = texte.replace(/ã/g,'&atilde;'); // 227 E3
    texte = texte.replace(/ä/g,'&auml;'); // 228 E4
    texte = texte.replace(/å/g,'&aring;'); // 229 E5
    texte = texte.replace(/æ/g,'&aelig;'); // 230 E6
    texte = texte.replace(/ç/g,'&ccedil;'); // 231 E7
    texte = texte.replace(/è/g,'&egrave;'); // 232 E8
    texte = texte.replace(/é/g,'&eacute;'); // 233 E9
    texte = texte.replace(/ê/g,'&ecirc;'); // 234 EA
    texte = texte.replace(/ë/g,'&euml;'); // 235 EB
    texte = texte.replace(/ì/g,'&igrave;'); // 236 EC
    texte = texte.replace(/í/g,'&iacute;'); // 237 ED
    texte = texte.replace(/î/g,'&icirc;'); // 238 EE
    texte = texte.replace(/ï/g,'&iuml;'); // 239 EF
    texte = texte.replace(/ð/g,'&eth;'); // 240 F0
    texte = texte.replace(/ñ/g,'&ntilde;'); // 241 F1
    texte = texte.replace(/ò/g,'&ograve;'); // 242 F2
    texte = texte.replace(/ó/g,'&oacute;'); // 243 F3
    texte = texte.replace(/ô/g,'&ocirc;'); // 244 F4
    texte = texte.replace(/õ/g,'&otilde;'); // 245 F5
    texte = texte.replace(/ö/g,'&ouml;'); // 246 F6
    texte = texte.replace(/÷/g,'&divide;'); // 247 F7
    texte = texte.replace(/ø/g,'&oslash;'); // 248 F8
    texte = texte.replace(/ù/g,'&ugrave;'); // 249 F9
    texte = texte.replace(/ú/g,'&uacute;'); // 250 FA
    texte = texte.replace(/û/g,'&ucirc;'); // 251 FB
    texte = texte.replace(/ü/g,'&uuml;'); // 252 FC
    texte = texte.replace(/ý/g,'&yacute;'); // 253 FD
    texte = texte.replace(/þ/g,'&thorn;'); // 254 FE
    texte = texte.replace(/ÿ/g,'&yuml;'); // 255 FF
    return texte;
}
function urlencode (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
 
    var hexStr = function (dec) {
        return '%' + dec.toString(16).toUpperCase();
    };
 
    var ret = '',
            unreserved = /[\w.-]/; // A-Za-z0-9_.- // Tilde is not here for historical reasons; to preserve it, use rawurlencode instead
    str = (str+'').toString();
 
    for (var i = 0, dl = str.length; i < dl; i++) {
        var ch = str.charAt(i);
        if (unreserved.test(ch)) {
            ret += ch;
        }
        else {
            var code = str.charCodeAt(i);
            // Reserved assumed to be in UTF-8, as in PHP
            if (code === 32) {
                ret += '+'; // %20 in rawurlencode
            }
            else if (code < 128) { // 1 byte
                ret += hexStr(code);
            }
            else if (code >= 128 && code < 2048) { // 2 bytes
                ret += hexStr((code >> 6) | 0xC0);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 2048 && code < 65536) { // 3 bytes
                ret += hexStr((code >> 12) | 0xE0);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 65536) { // 4 bytes
                ret += hexStr((code >> 18) | 0xF0);
                ret += hexStr(((code >> 12) & 0x3F) | 0x80);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
        }
    }
    return ret;
}

function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}


function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}
function Delete_Cookie( name, path, domain ) {
if ( Get_Cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function serializeArray(a)
{
	var serializedString = '';
	var arrayLength = 0;
	for(var aKey in a)
	{
		//key definition
		if(aKey * 1 == aKey) //is_numeric?
		{
			//integer keys look like i:key
			serializedString += 'i:' + aKey + ';';	
		}
		else
		{
			//string keys look like s:key_length:key;
			serializedString += 's:' + aKey.length + ':"' + aKey + '";';
		}
		
		//value definition
		if(a[aKey] * 1 == a[aKey])
		{
			//integer value look like i:value
			serializedString += 'i:' + a[aKey] + ';';	
		}
		else if(typeof(a[aKey]) == "string")
		{
			//string value look like s:key_length:value;
			serializedString += 's:' + a[aKey].length + ':"' + a[aKey] + '";';
		}
		else if(a[aKey] instanceof Array)
		{
			serializedString += serializeArray(a[aKey]);
		}
		arrayLength++;
	}
	serializedString = 'a:' + arrayLength + ':{' + serializedString + '}';
	
	return serializedString;
}

