function crea_XMLHttpRequest(){
    var obj = null;
    if(typeof(XMLHttpRequest) === "function" ||
            typeof(XMLHttpRequest) === "object"){
        obj = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        obj = createFromActiveX();
    }

    return obj;
}

function createFromActiveX() {
    var aVersions = [ "MSXML2.XMLHttp.5.0",
        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
        "MSXML2.XMLHttp","Microsoft.XMLHttp"
    ];

    for (var i = 0; i < aVersions.length; i++) {
        try {
            var oXmlHttp = new ActiveXObject(aVersions[i]);
            return oXmlHttp;
        } catch (oError) {
            //Do nothing
        }
    }
    return null;
}

function SendRequest(metodo, url, parametri, funzione_ritorno){
    var xhr = crea_XMLHttpRequest();
    if (xhr == null) return false;
    xhr.onreadystatechange = function(){
        if(xhr.readyState==4){
            var output_buffer = xhr.responseText;
            output_buffer = output_buffer;
            funzione_ritorno = funzione_ritorno.replace(
                        '%%BUFFER%%', 'output_buffer');
            eval(funzione_ritorno);
            xhr = null;
        }
    }
    if(metodo=="POST"){

        xml.open("POST", url, true);
        xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xml.send(args);

    } else {
        if(parametri!='') url += '?' + parametri;
        xhr.open("GET", url, true);
    }
    xhr.setRequestHeader("connection","close");
    xhr.send(null);
    return true;
}

