// creo la richiesta asincrola per l'url specificato
// e gli assegno l'handler handleResponse()
// url - url della richiesta
// id - id dell'oggetto di destinazione (se necessario)
function createNewsletterRequest(email, id) {
    var req;
    req = false;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e) {
            req = false;
        }
        // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                req = false;
            }
        }
    }
    if (req) {
        var r = document.getElementById(id);
        r.innerHTML = '<i>Attendere...</i>';

        var url = "js/proxy.asp?url=http://newsletter.seitek.eu/proxy.asp"
        req.onreadystatechange = handleNewsletterResponse(req, id, url);

        // inserisco un valore pseudo-casuale nella richiesta
        // in modo da non consentire l'utilizzo della cache
        var sep = (-1 < url.indexOf("?")) ? "&" : "?"
        url = url + sep + "__=" + encodeURIComponent((new Date()).getTime());

        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send("Action=addcontact&UserName=marchiani&UserList=Sito&ContactEMail=" + email);
    }
    else {
        alert("XMLDOM non supportato.");
    }
}

// gestisco la risposta della richiesta
function handleNewsletterResponse(req, id, url) {
    return function() {
        if (req.readyState == 4) {
            var r = document.getElementById(id);
            r.innerText = req.responseText;
        }
    }
}	

