// SYNCHRONE

function Requete(fichier, typeRetour) {
  if(window.XMLHttpRequest) {
    // FIREFOX alert("FIREFOX");
    xhr_object = new XMLHttpRequest();
  }
  else if(window.ActiveXObject) {
  // IE alert("IE");
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else {
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    return(false);
  }

  xhr_object.open("GET", fichier, false);
  xhr_object.send(null);
  if(xhr_object.readyState == 4) {
    if(typeRetour=='Text') return(xhr_object.responseText);
    else return(xhr_object.responseXML);
  }
  else {
    alert("La connexion avec le site à été perdue.");
    return(false);
  }
}

// ASYNCHRONE (utilisé pour controler la saisie des contacts)

var createXHRObject = function() {
  var tempXHR = null;
        
  // Instantiation de notre objet XMLHttpRequest
  if(window.XMLHttpRequest) 
    tempXHR = new XMLHttpRequest();                      // Firefox
  else if(window.ActiveXObject) 
    tempXHR = new ActiveXObject("Microsoft.XMLHTTP");    // Internet Explorer
  else   
    return null;                                         // XMLHttpRequest non supporté par le navigateur
           
  return tempXHR;
}
  
  
var makeRequest = function(query, donneesPost) {
        
// lorsque la requete change d'etat
// on vérifie qu'elle est finit (readyStat ==4)
// si oui on indique que la requete est finit et on
// appelle la fonction qui va afficher les resultats
  xhr_object.onreadystatechange = function() {
    if(xhr_object.readyState == 4) {
      if(xhr_object.status == 200) {
        isRequestActive = false;
        ReponseRequeteAsynch(); // cette fonction est appelée une fois la requete terminée
        xhr_object.abort();
      }
    }
  }

  // initialise une nouvelle requete, avec la méthode post ou get, sur l'url spécifiée en mode asynchrone
  if(donneesPost != undefined) {
    xhr_object.open('POST', query, true);
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr_object.send(donneesPost);
  } else {
    xhr_object.open('GET', query, true);
    xhr_object.send(null);
  }
  // on indique qu'il y a une requete d'active 
  isRequestActive = true;
}