/*------------------------------
  Fonction AJAX
  update : 2007-11-12
  ------------------------------
  data : information à envoyer au serveur
  page : fichier à ouvrir coté serveur
  method : POST ou GET
  elem : element DIV à mettre à jour
------------------------------*/

/*------------------------------
  EXEMPLE 1

   <select size="1" name="cat"
   OnFocus="Ajax('id='+this.value,'query_cpte.php', 'GET','compteur');"
   OnChange="Ajax('id='+this.value,'query.php', 'POST','contenu');"
   onKeyUp="Ajax('id='+this.value,'query.php', 'POST','contenu');">
   <option value="-1">Choisir</option>
   <option value="1">abc</option>
   <option value="2">def</option>
   </select>
   <div id="compteur">
   </div>
   <div id="contenu">   
   </div>

------------------------------*/


function Ajax(data, page, method, elem) {
/*------------------------------
  Création de l'objet
------------------------------*/

  if(window.ActiveXObject) {
    // Internet Explorer
    var XMLObj = new ActiveXObject("Microsoft.XMLHTTP") ;
  }
  else {
    // Firefox
    var XMLObj = new XMLHttpRequest();
  }

  // Définition de l'endroit d'affichage:
  var content = document.getElementById(elem);


/*------------------------------
  methode d'ouverture du fichier
------------------------------*/

  //si on envoie par la méthode GET:
  if(method == "GET") {
    if(data == 'null') {
      // Ouverture du fichier
      XMLObj.open("GET", page);
    }
    else {
      // Ouverture du fichier en methode GET
      XMLObj.open("GET", page+"?"+data);
    }
  }
  else if(method == "POST") {
    // Ouverture du fichier en methode POST
    XMLObj.open("POST", page);
  }

/*------------------------------
  traite le retour du fichier appelé
------------------------------*/

  XMLObj.onreadystatechange = function() {
    // tant que la réponse n'est pas arrivée, afficher l'image d'attente
    if (XMLObj.readyState < 4) {
      content.innerHTML = '<center><img src="images/boutons/wait.gif" width="20" height="20" /></center>';
    }
    else {
      // retourner la réponse
      content.innerHTML = XMLObj.responseText;
    }
  }


/*
  Envoi de la requete au serveur
*/
  if(method == "GET") {
    XMLObj.send(null);
  }
  else if(method == "POST") {
    XMLObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XMLObj.send(data);
  }
}


