function ahah(url,target) {
    // native XMLHttpRequest object
    document.getElementById(target).innerHTML = 'sending...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {ahahDone(target);};
        req.open("GET", url, true);
        req.send(null);
        // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {ahahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
}

function ahahDone(target) {
    // only if req is "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            results = req.responseText;
            document.getElementById(target).innerHTML = results;
        } else {
            document.getElementById(target).innerHTML="ahah error:n" +
            req.statusText;
        }
    }
}

// secondo esempio

function ahahPost(url,target,formid) {

    var params = '';
    var elem = document.getElementById(formid).elements;
    
    for(var i = 0; i < elem.length; i++) {
        if (elem[i].type == "checkbox") {
            if (elem[i].checked) {
                params += elem[i].name + '=' + elem[i].value + '&'; 
            }
        }
        else {
            params += elem[i].name + '=' + elem[i].value + '&';
        }
    }
        
    params = params.slice(0,params.length-1);
        
    document.getElementById(target).innerHTML = 'loading data...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {ahahDone(target);};
        req.open("POST", url, true);
        req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        req.setRequestHeader("Content-length", params.length);
        req.setRequestHeader("Connection", "close");
        req.send(params);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {ahahDone(target);};
            req.open("POST", url, true);
            req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            req.setRequestHeader("Content-length", params.length);
            req.setRequestHeader("Connection", "close");
            req.send(params);
        }
    }
}

//Terzo esempio

function callAHAH(url, pageElement, callMessage, errorMessage) {
    document.getElementById(pageElement).innerHTML = callMessage;
    try {
        req = new XMLHttpRequest(); 
        /* e.g. Firefox */
    } catch(e) {
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");  
            /* some versions IE */
        } catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");  
            /* some versions IE */
        } catch (E) {
            req = false;
        } 
    } 
}
    req.onreadystatechange
    = function() {responseAHAH(pageElement, errorMessage);};
    req.open("GET",url,true);
    req.send(null);
}

function responseAHAH(pageElement, errorMessage) {
if(req.readyState == 4) {
if(req.status == 200) {
output = req.responseText;
document.getElementById(pageElement).innerHTML
= output;
} else {
document.getElementById(pageElement).innerHTML
= errorMessage+"\n"+responseText;
}
}
}
