var global = this;

global.eval(); // pour l'évaluation des fonctions javascripts

// Connexion au serveur http
function getXhr()
{
  var xhr;

  if(window.XMLHttpRequest)         // Firefox et autres
    xhr = new XMLHttpRequest();
  else if(window.ActiveXObject)     // Internet Explorer
  {
    try
    {
      xhr = new ActiveXObject("Msxml2.XMLHTTP"); // IE version > 5
    }
    catch(e)
    {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  else // XMLHttpRequest non supporté par le navigateur
  {
    alert("Votre navigateur ne supporte pas les objets XMLHttpRequest !");
    xhr = false;
  }

  return xhr;

} // getXhr()

// Modification du contenu d'un identificateur id suivant le programme php
function setContenu(id,php)
{
  contenu(id,php,'POST',null);
}

function contenu(id, php, method, param)
{
  var c = document.getElementById(id);
  c.innerHTML = '...';
  
  var xhr = getXhr();  // Récupère la connexion au serveur http
  
  xhr.open(method, php, true);  //  Ouvre la connexion avec le serveur http avec comme url php
  if ('POST' == method)       // Encodage si méthode POST
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

  xhr.send(param);            //  Envoie l'url php pour exécution au serveur http avec les parametres param
                              //  si method = POST, sinon NULL

  // Exécution de la fonction dès que l'on obtient une réponse du serveur http
  xhr.onreadystatechange = function()
  {
    // Si on a tout reçu (4) et que le serveur est ok (200)
    // Modifie l'élément ayant pour identificateur id suivant le programme php 
    if(xhr.readyState == 4 && xhr.status == 200)
    {
	  c.innerHTML = xhr.responseText;
	  
      // Si on a du javascript on identifie les scripts et on force la valuation eval()
	  var allscript = c.getElementsByTagName('script');	  
	  for (var i=0; i<allscript.length; ++i)
	  {
	    window.eval(allscript[i].text);
	  }
    }
  }
  
} // contenu()

function contenu_syn(id, php, method, param)
{
  var c = document.getElementById(id);
  c.innerHTML = '...';
  
  var xhr = getXhr();  // Récupère la connexion au serveur http
  
  xhr.open(method, php, false);  //  Ouvre la connexion avec le serveur http avec comme url php
  if ('POST' == method)       // Encodage si méthode POST
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

  xhr.send(param);            //  Envoie l'url php pour exécution au serveur http avec les parametres param
                              //  si method = POST, sinon NULL

  // Exécution de la fonction dès que l'on obtient une réponse du serveur http
//  xhr.onreadystatechange = function()
//  {
    // Si on a tout reçu (4) et que le serveur est ok (200)
    // Modifie l'élément ayant pour identificateur id suivant le programme php 
//    if(xhr.readyState == 4 && xhr.status == 200)
//    {
      c.innerHTML = xhr.responseText;
      // Si on a du javascript on identifie les scripts et on force la valuation eval()
      var allscript = c.getElementsByTagName('script');	  
      for (var i=0; i<allscript.length; ++i)
      {
        window.eval(allscript[i].text);
      }
//    }
//  }
} // contenu()

