﻿//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];
    }
}



//PAYS

//fonction pour le listing initial des pays (onLoad sur body)
function listerPays (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(){recevoirListePays(XHR);};
    XHR.send(null);
  }
  return;
}
function recevoirListePays(XHR){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterListePays(XHR.responseText);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function traiterListePays(reponse){
  var pays;
  pays=getE('listepays');
  pays.innerHTML=reponse;
}

//Villes

function listerVilles (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(){recevoirListeVilles(XHR, idPays);};
      XHR.send(null);
      bouton=getE("btn"+idPays);
      bouton.href="javascript:listerVilles('http://www.wata.net/_ajax/paysUnique.asp', '"+idPays+"', 'ouvert')";
    }else{
      XHR.onreadystatechange=function(){recevoirPays(XHR, idPays);};
      XHR.send(null);
      bouton=getE("btn"+idPays);
      bouton.href="javascript:listerVilles('http://www.wata.net/_ajax/listerVilles.asp', '"+idPays+"', 'ferme')";
    }
  }
  return;
}

//si liste des villes fermée
function recevoirListeVilles(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 recevoirPays(XHR, idPays){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterPays(XHR.responseText, idPays);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function traiterPays(reponse, idPays){
  var pays;
  pays=getE('pays'+idPays);
  pays.innerHTML=reponse;
}

//AGENCES
//meme chose que pour les villes mais concernant les agences
function listerAgences (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(){recevoirListeAgences(XHR, idVille);};
      XHR.send(null);
      bouton=getE("btnVille"+idVille);
      bouton.href="javascript:listerAgences('http://www.wata.net/_ajax/villeUnique.asp', '"+idVille+"', 'ouvert')";
    }else{
      XHR.onreadystatechange=function(){recevoirVille(XHR, idVille);};
      XHR.send(null);
      bouton=getE("btnVille"+idVille);
      bouton.href="javascript:listerAgences('http://www.wata.net/_ajax/listerAgences.asp', '"+idVille+"', 'ferme')";
    }
  }
  return;
}

//si liste des agences fermée
function recevoirListeAgences(XHR, idVille){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterListeAgences(XHR.responseText, idVille);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function traiterListeAgences(reponse, idVille){
  var ville;
  ville=getE('ville'+idVille);
  ville.innerHTML=ville.innerHTML+reponse;
}

//si liste des agences ouverte
function recevoirVille(XHR, idVille){
  if (XHR.readyState==4){
    if(XHR.status==200){
      traiterVille(XHR.responseText, idVille);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}
function traiterVille(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";
}

//gestion des thèmes
function ouvrirListeThemes (url, idTheme, status, idAgence){
  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_Theme=' + idTheme + "&status=" + status + "&id_agence=" + idAgence, true);
      XHR.onreadystatechange=function(){recevoirListeThemes(XHR)};
      XHR.send(null);
  }
  return;
}

function recevoirListeThemes(XHR){
  if (XHR.readyState==4){
    // alert(XHR.readyState);
    if(XHR.status==200){
      traiterListeThemes(XHR.responseText);
    }else{
      alert("Erreur durant l'éxecution de la requête!");
    }
  }
}

function traiterListeThemes(reponse){
  var theme;
  theme=getE('lnksThemes');
  theme.innerHTML=reponse;
}

