//
//Fonctions de base pour ajax
//
//

/*AJAX*/
var xmlhttp=false;
function createXmlHttpObject()
{
  /*@cc_on @*/
  /*@if (@_jscript_version >= 5)
  // Partie JScript spécifique à IE
   try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
     xmlhttp = false;
    }
   }
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  	try {
  		xmlhttp = new XMLHttpRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }
  if (!xmlhttp && window.createRequest) {
  	try {
  		xmlhttp = window.createRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }
}


function doAjaxGet(url, callBackFunction)
{
if (typeof netscape != 'undefined' && typeof netscape.security != 'undefined') {
//decommenter cette ligne pour tester le script en local
                netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
        }
 var xmlResponse = null;
 var txtResponse = null;
 createXmlHttpObject();
 xmlhttp.open("GET", url,true); // le troisième paramètre (true) indique que la requete est asynchrone : elle ne vas pas bloquer la page en cours
 xmlhttp.onreadystatechange=function() { //on attache notre fonction de callback
  if (xmlhttp.readyState==4) { // il y'a 4 etats differents pour xmlHttpObject l'etat 4 indique la fin de la requte
    if (xmlhttp.status == 200)  //le code de statut 200 indique que tout s'est bien passé 
    {
      txtResponse = xmlhttp.responseText;  //ces deux variables peuvent etre apellé par la fonction
      xmlResponse = xmlhttp.responseXML;   //  de callback
        
      eval(callBackFunction); //execution de notre fonction de callback
    }    
  }
 }
 xmlhttp.send(null);
} 

