function getXhr()
{
    if(window.XMLHttpRequest)       // Firefox et autres
       var _xhr = new XMLHttpRequest();
    else if(window.ActiveXObject)   // Internet Explorer
    {
        try
        {
            var _xhr = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            var _xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else                            // XMLHttpRequest non supporté par le navigateur
    {
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       var _xhr = false;
    }
    return _xhr;
}

function xhrEvalCode(reponse)
{
    var evalStartIdx = reponse.indexOf('<!--TOEVAL');
    var evalEndIdx   = reponse.indexOf('TOEVAL//-->')
    if( evalStartIdx != -1 && evalEndIdx != -1 )
    {
        var evalCode = reponse.substring(evalStartIdx+10,evalEndIdx);
        evalCode = 'try {' + "\n" + evalCode + "\n" + '} catch(e) {}';
        eval(evalCode);
        var _reponse_before = reponse.substring(0,evalStartIdx);
        var _reponse_after  = reponse.substring(evalEndIdx+11,reponse.length);
        reponse = _reponse_before + _reponse_after;
    }
    return reponse;
}

/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData()
{
    var contentid = sendData.arguments[0];
    var data      = sendData.arguments[1];
    var page      = sendData.arguments[2];
    var method    = sendData.arguments[3];
    var affLoad   = sendData.arguments[4];
    var XhrObj = getXhr();
    if( XhrObj === false ) return;
    //définition de l'endroit d'affichage:
    if( contentid != 'null' )
    {
    
        //var content = $(contentid);
         var content = document.getElementById(contentid);
       // if( affLoad == 1 )      cc_loadingDiv(contentid);
       // else if( affLoad == 2 ) cc_loadingDiv('popupDivContent');
       
     	if( affLoad == 1 ){
     		content.innerHTML = "<img src='/images/loading.gif'>";
     	}
    }
    //si on envoie par la méthode GET:
    if(method == "GET")
    {
        var _data = page;
        if( data != 'null' ) _data += '?' + data;
        XhrObj.open("GET", _data);
    }
    else if(method == "POST")
    {
        //Ouverture du fichier en methode POST
        XhrObj.open("POST", page);
    }

    //Ok pour la page cible
    try
    {
        XhrObj.onreadystatechange = function()
        {
            try
            {
                if (XhrObj.readyState == 4 && (XhrObj.status == 200 || XhrObj.status == 304) )
                {
                    var reponse = XhrObj.responseText;
                    if( contentid != 'null' )
                    {
                        if( reponse.indexOf('NOTHINGTODO') != -1 ) return;
                        if( content.tagName == 'INPUT' )
                            content.value = reponse ;
                        else
                            content.innerHTML = reponse ;
                    }
                    xhrEvalCode(reponse);
                }
            }
            catch(e) { return; }
        }
        if(method == "GET")
        {
            XhrObj.send(null);
        }
        else if(method == "POST")
        {
            XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            XhrObj.send(data);
        }
    }
    catch(e)
    {
        XhrObj = null;
        return;
    }
}

/**
* Permet de récupérer les données d'un fichier via les XmlHttpRequest:
*/
function getFile(page)
{
    sendData('null', page, 'GET')
}

function getData()
{
    var data      = getData.arguments[0];
    var page      = getData.arguments[1];
    var method    = getData.arguments[2];
    var XhrObj = getXhr();
    if( XhrObj === false ) return;
    //si on envoie par la méthode GET:
    if(method == "GET")
    {
        var _data = page;
        if( data != 'null' ) _data += '?' + data;
        XhrObj.open("GET", _data,false);
    }
    else if(method == "POST")
    {
        //Ouverture du fichier en methode POST
        XhrObj.open("POST", page,false);
    }

    if(method == "GET")
    {
        XhrObj.send(null);
    }
    else if(method == "POST")
    {
        XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XhrObj.send(data);
    }
    var reponse = XhrObj.responseText;
    reponse = xhrEvalCode(reponse);
    return reponse;
}
