function ajax_get_xhr() {
    try {
        xhr = new XMLHttpRequest(); // Firefox
    } catch(e1) {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e2) {
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
    return xhr;
}

function ajax_sel_add_option(sel, opt) {
    try {
        sel.add(opt, null);
    } catch (e) {
        sel.add(opt); // Explorer
    }
}

/*
 * NOTA: JavaScript non permette il passaggio di parametri per riferimento, quindi
 * non e' possibile passare alla funzione direttamente document.nome_form.nome_input.value
 * Per ovviare a cio' viene utilizzata la funzione eval alla quale viene passato il parametro
 * come stringa :)
 */
function ajax_comuni_make_select(value) {
    if (xhr.readyState == 4) {
        var valori = eval('(' + xhr.responseText + ')'); 
        //alert(xhr.responseText);
        if (valori.length == 1) {
            eval(value + "=\"" + valori[0] + "\"");
            return;
        }
        eval(value + "= \""+ valori.length + " comuni trovati ...\"");
        if (valori.length == 0) return;
        var sel = document.getElementById("myselect");
        sel.style.display = "block";
        var option = document.createElement("option");
        option.text = "--seleziona--";
        ajax_sel_add_option(sel, option);
        for (var i = 0; i < valori.length; i++) {
            var option = document.createElement("option");
            option.text = valori[i];
            ajax_sel_add_option(sel, option);
        }
    }
}

function ajax_comuni_submit_form(form_name) {
    var url = "cc_cap.php";
    //var content = "op=comune&cap=" + document.protocollo_arrivo.cap.value;
    var content = "op=comune&cap=" + eval("document." + form_name + ".cap.value");
    
    //document.protocollo_arrivo.comune.value = "Sto cercando ...";
    eval("document." + form_name + ".comune.value = \"Sto cercando ...\"");

    ajax_get_xhr();
//    xhr.onreadystatechange = function() { make_select("document.protocollo_arrivo.comune.value"); };
    xhr.onreadystatechange = function() { ajax_comuni_make_select("document." + form_name + ".comune.value"); };

    xhr.open("POST", url, true);        
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(content);
}

function ajax_comuni_onchange_select(form_name) {
    var sel = document.getElementById("myselect");
    var selected = sel.options[sel.selectedIndex].text;
    eval("document." + form_name + ".comune.value = \""+ selected +"\"");
    //document.protocollo_arrivo.comune.value = selected;
    /* Rimuovo tutti gli elementi dalla select e la nascondo */
    while (sel.length > 0) {
        sel.remove(sel.length - 1);
    }
    sel.style.display = "none";
}

function ajax_documenti_onreadystate(id) {
    if (xhr.readyState == 4) {
        document.getElementById("status_"+id).innerHTML = "";
        // DEBUG
        //alert(xhr.responseText);
    }
}

function ajax_area_submit_form(form, url, area, id) {
    var op = "area_remove";
    if (form.aree.checked) {
        op = "area_add";
    }
    var content  = "op="+op+"&id="+id+"&area="+area;

    var loading_img = new Image();
    loading_img.src = "/wiki/theme/default/img/loading.gif";
    
    document.getElementById("status_"+id).innerHTML = "<img src=\"/wiki/theme/default/img/loading.gif\">";
    //document.getElementById("request_status").innerHTML = "Working ...";
    ajax_get_xhr();
    xhr.onreadystatechange = function() {ajax_documenti_onreadystate(id); };
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr.send(content);
}
