        function xhrReponse(ret)
        {
        //alert(ret);
        	if(ret == 'BADQUERY')
                        alert('Erreur de requete. Veuillez contacter un administrateur intranet');
                if(ret == 'NOREP')
                        return false;
                else
                        eval(ret);
        }


    //______________________________________________
    //     UTILISATION DE XmlHttpRequest
    //ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
    
    
    function xhrSendQuery(url, methode, data, fonctionRetour) 
    {
        
        //DCN le 17/07/07
        //Le fait de rajouter var rend la variable locale à la fonction et autorise donc le multiple asynchronous xhr !!
        var xhr;
        
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e2) {
               try {
                   xhr = new XMLHttpRequest();
               }
               catch(e3) {
                   xhr = false;
                   alert('XmlHttpRequest n\'est pas supporté sur votre ordinateur');
               }
            }
        }   

        if(url===undefined) {
            alert('Vous devez définir l\'adresse du script à appeler !');
            return;
        } 
        if(methode===undefined) {
           methode = "GET";
        }   
        if(methode!="GET" && methode!="POST") {
            alert('Vous ne pouvez utiliser que la methode GET ou POST');
            return;
        }      

        xhr.onreadystatechange = function()
        {
            //On ne peut pas utiliser "return" pour renvoyer la valeur. Il faut forcement appeler une fonction
            //Si elle a été passé en parametre on l'utilise, sinon on appele une fonction standard "xhrReponse(rep)"
            if (xhr.readyState == 4) 
            {    
                if(xhr.status=="200") 
                  ret = RTrim(xhr.responseText);
                  
                else
                  ret = false;
                if(fonctionRetour===undefined)
                  xhrReponse(ret);
                else  
                  //eval(fonctionRetour(ret));
                  eval(fonctionRetour + '(unescape(\'' + escape(ret) + '\'));' );
                                   
                //delete xhr;
            }      
        }

        xhr.open(methode, url);
        if(methode=="POST")  {
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send(data);
        }    
        else
            xhr.send('');

    }  
 
    function RTrim(sString) 
    {
        while ( sString.substring(sString.length-1, sString.length)==' ' || sString.substring(sString.length-1, sString.length)=='\n' || sString.substring(sString.length-1, sString.length)=='\r' )
        {
            sString = sString.substring(0,sString.length-1);
        }
        return sString;
    }    
    

