﻿//fonction de test de navigateur et instanciation du XHR en fonction du navigateur et de 
//  sa version
function getXHR() { 
  var XHR; 
  if (window.XMLHttpRequest) { 
    // Mozilla 
    XHR=new XMLHttpRequest(); 
      if (XHR.overrideMimeType) { 
      // problème firefox 
      XHR.overrideMimeType('text/xml'); 
    } 
  } else { 
    if (window.ActiveXObject) { 
      // C'est Internet explorer < IE7 
      try { 
        XHR=new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch(e) { 
        try { 
          XHR=new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch(e) { 
          XHR=null; 
        } 
      } 
    } 
  } 
  return XHR; 
}

//fonction pour instancier un élément du DOM qui fonctionne mieux que le simple getElementById
function getE(__ID){
    if(document.getElementById){
        return document.getElementById(__ID);
    }else if(document.all){
        return document.all[__ID];
    // Others
    }else if(document.layers){
        return document.layers[__ID];
    }
}

//fonction pour le listing initial des pays (onLoad sur body)
function RechercheListerPays (url){
  var XHR;
  XHR=getXHR();
  if (XHR==null){
    alert("Impossible d'utiliser Ajax sur votre navigateur. Veuillez le mettre à jour ou utiliser un navigateur compatible");
  }else{
    XHR.open('GET', url, true);
    XHR.onreadystatechange=function(){RechercheListerAgences(XHR);};
    XHR.send(null);
  }
  return;
}
function RechercheListerAgences(XHR){
  if (XHR.readyState==4){
    if(XHR.status==200){
      RechercheTraiterListePays(XHR.responseText);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function RechercheTraiterListePays(reponse){
  var pays;
  pays=getE('listepays');
  pays.innerHTML=reponse;
}

//Villes

function RechercheListerVilles (url, idPays, status){
  var XHR, bouton;
  XHR=getXHR();
  if (XHR==null){
    alert("Impossible d'utiliser Ajax sur votre navigateur. Veuillez le mettre à jour ou utiliser un navigateur compatible");
  }else{
    XHR.open('GET', url + '?id_pays=' + idPays, true);
    if (status == "ferme"){ //détecte le statut de l'élément du menu, et change le lien en fonction (ouverture et fermeture de menu)
      XHR.onreadystatechange=function(){RechercherRecevoirListeVilles(XHR, idPays);};
      XHR.send(null);
      bouton=getE("btn"+idPays);
      bouton.href="javascript:RechercheListerVilles('http://www.wata.net/_ajax/RecherchePaysUnique.asp', '"+idPays+"', 'ouvert')";
    }else{
      XHR.onreadystatechange=function(){RechercheRecevoirPays(XHR, idPays);};
      XHR.send(null);
      bouton=getE("btn"+idPays);
      bouton.href="javascript:RechercheListerVilles('http://www.wata.net/_ajax/RechercheListerVilles.asp', '"+idPays+"', 'ferme')";
    }
  }
  return;
}

//si liste des villes fermée
function RechercherRecevoirListeVilles(XHR, idPays){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterListeVilles(XHR.responseText, idPays);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function traiterListeVilles(reponse, idPays){
  var pays;
  pays=getE('pays'+idPays);
  pays.innerHTML=pays.innerHTML+reponse;
}

//si liste des villes ouverte
function RechercheRecevoirPays(XHR, idPays){
  if (XHR.readyState==4){
    if(XHR.status==200){
      RechercheTraiterPays(XHR.responseText, idPays);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function RechercheTraiterPays(reponse, idPays){
  var pays;
  pays=getE('pays'+idPays);
  pays.innerHTML=reponse;
}

//AGENCES
//meme chose que pour les villes mais concernant les agences
function RechercheListerAgences (url, idVille, status){
  var XHR, bouton;
  XHR=getXHR();
  if (XHR==null){
    alert("Impossible d'utiliser Ajax sur votre navigateur. Veuillez le mettre à jour ou utiliser un navigateur compatible");
  }else{
    XHR.open('GET', url + '?id_ville=' + idVille, true);
    if (status == "ferme"){
      XHR.onreadystatechange=function(){RechercheRecevoirListeAgences(XHR, idVille);};
      XHR.send(null);
      bouton=getE("btnVille"+idVille);
      bouton.href="javascript:RechercheListerAgences('http://www.wata.net/_ajax/RechercheVilleUnique.asp', '"+idVille+"', 'ouvert')";
    }else{
      XHR.onreadystatechange=function(){RechercheRecevoirVille(XHR, idVille);};
      XHR.send(null);
      bouton=getE("btnVille"+idVille);
      bouton.href="javascript:RechercheListeAgences('http://www.wata.net/_ajax/RechercheListeAgences.asp', '"+idVille+"', 'ferme')";
    }
  }
  return;
}

//si liste des agences fermée
function RechercheRecevoirListeAgences(XHR, idVille){
  if (XHR.readyState==4){
    if(XHR.status==200){
      RechercheTraiterListeAgences(XHR.responseText, idVille);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function RechercheTraiterListeAgences(reponse, idVille){
  var ville;
  ville=getE('ville'+idVille);
  ville.innerHTML=ville.innerHTML+reponse;
}

//si liste des agences ouverte
function RechercheRecevoirVille(XHR, idVille){
  if (XHR.readyState==4){
    if(XHR.status==200){
      RechercheTraiterVille(XHR.responseText, idVille);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function RechercheTraiterVille(reponse, idVille){
  var ville;
  ville=getE('ville'+idVille);
  ville.innerHTML=reponse;
}

//gestion du visuel

//visuel des pays
function listeOnMouseOver(elemID){
  var elem;
  elem = getE(elemID);
  elem.style.backgroundColor ="#FFDE8D";
}

function listeOnMouseOut(elemID){ 
  var elem;
  elem = getE(elemID);
  elem.style.backgroundColor ="#FFFFFF";
}

//visuel  des villes
function listeOnMouseOverVille(elemID){
  var elem;
  elem = getE('tblVilles'+elemID);
  elem.style.backgroundColor ="#FFDE8D";
}

function listeOnMouseOutVille(elemID){
  var elem;
  elem = getE('tblVilles'+elemID);
  elem.style.backgroundColor ="#FFFFFF";
}

//effectuer la recherche des agences
function lancerRecherche (url){
  var XHR, textZone, recherche;
  XHR=getXHR();
  textZone = getE('cadreRecherche');
  recherche = textZone.value;
  if (XHR==null){
    alert("Impossible d'utiliser Ajax sur votre navigateur. Veuillez le mettre à jour ou utiliser un navigateur compatible");
  }else{
    XHR.open('GET', url + '?recherche=' + recherche, true);
    XHR.onreadystatechange=function(){recevoirRecherche(XHR);};
    XHR.send(null);
  }
  return;
}

function recevoirRecherche(XHR){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterRecherche(XHR.responseText);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function traiterRecherche(reponse){
  var cadre;
  cadre=getE('cadreResultatsRecherche');
  cadre.innerHTML=reponse;
}

//recherche des pays
function lancerRecherchePays (url){
  var XHR, textZone, recherche;
  XHR=getXHR();
  textZone = getE('cadreRecherche');
  recherche = textZone.value;
  if (XHR==null){
    alert("Impossible d'utiliser Ajax sur votre navigateur. Veuillez le mettre à jour ou utiliser un navigateur compatible");
  }else{
    XHR.open('GET', url + '?recherche=' + recherche, true);
    XHR.onreadystatechange=function(){recevoirRecherchePays(XHR);};
    XHR.send(null);
  }
  return;
}

function recevoirRecherchePays(XHR){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterRecherchePays(XHR.responseText);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function traiterRecherchePays(reponse){
  var cadre;
  cadre=getE('cadreResultatsRecherche');
  cadre.innerHTML=reponse;
}