// ===========================================================
// Script di base per l'utilizzo di richieste XML per l'aggiornamento
// della pagina web (AJAX)
// ===========================================================


/*
 * Crea, in modo dipendente dal browser, un opportuno oggetto
 * per la gestione della richiesta XML al server
 */
function newXMLHttpRequest() {
    var xmlRequest = false;
    if (window.XMLHttpRequest) {
        xmlRequest = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        try {
            xmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e1) {
            try {
                xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e2) {
                xmlRequest = false;
            }
        }
    }
    return xmlRequest;
}


/*
 * Handler per il dispatching della gestione della risposta XML
 * alla funzione indicata come parametro.
 *
 * request: oggetto che rappresenta la richiesta asincrona XML
 *
 * responseXmlHandler: funzione che dovrà gestire la risposta XML
 * e l'aggiornamento dinamico della pagina web
 */
function getReadyStateHandler(request, responseXmlHandler) {
    return function () {
        if (request.readyState == 4) {
            if (request.status == 200) {
                responseXmlHandler(request.responseXML);
            }
            else {
                alert("HTTP error " + request.status + ": " + request.statusText);
            }
        }
    }
}

/*
 * Handler per il dispatching della gestione della risposta XML
 * alla funzione indicata come parametro.
 *
 * request: oggetto che rappresenta la richiesta asincrona XML
 *
 * responseTextHandler: funzione che dovrà gestire la risposta testuale
 * e l'aggiornamento dinamico della pagina web
 */
function getReadyStateHandlerText(request, responseTextHandler) {
    return function () {
        if (request.readyState == 4) {
            if (request.status == 200) {
                responseTextHandler(request.responseText);
            }
            else {
                alert("HTTP error " + request.status + ": " + request.statusText);
            }
        }
    }
}

function populateTableData(text) {
    var destination = document.getElementById('tableData');
    destination.innerHTML = text;
}
