/*****************************************************************************/
// lib che consente di gestire le <select> in cascata
// ad es. selezione provincia --> elenco comuni
/*****************************************************************************/

// La pagina collegata all'esempio non fa altro che al submit richiamare se stessa 
// ed in base ai valori segnalati nelle combobox che contiene, carica le stesse 
// con valori diversi.
// Nello specifico la prima combobox che contiene "numeri", "lettere" influenza 
// il contenuto della seconda combo che verrà riempita di numeri o lettere. 
// Alla selezione di un valore nella seconda combobox la pagina ne richiama una nuova 
// che stampa brutalmente i valori che gli vengono spediti tramite l'azione di submit.


var req;
var old_value_combobox  = "";       // variabile che contiene il valore dell'ultimo combobox su cui è andato il focus
var old_name_combobox   = "";       // variabile che contiene il nome dell'ultimo combobox su cui è andato il focus
var is_onclick_combobox = false;    // variabile che indica se si è premuto col mouse sulla combobox su cui si ha il focus

// funzione che viene chiamata quando la combobox riceve il focus
function inFocus2(oggetto) {
    old_value_combobox  =   oggetto.value;
    old_name_combobox   =   oggetto.name;
}

// funzione che viene eseguita alla perdita del focus da parte del combobox e simula il comportamento del click
// sul pulsante submit del form
function lostFocus2(oggetto, submitName, submitValue) {
    
    var form = document.forms[0];
    var url = form.action;
    
    // se l'oggetto che perde il focus è lo stesso di quello per cui ho memorizzato il suo vecchio valore e
    // quest'ultimo è diverso da quello corrente eseguo il submit del form
    if ( old_value_combobox!=oggetto.value && old_name_combobox==oggetto.name ) {
        //document.forms[0].action="invia_domanda.cgi?cerca_prov="+oggetto.value;
        //document.forms[0].cerca_prov = oggetto.name;
        //alert(oggetto.value);
        
        var saveByEnter = document.getElementById('prov2');
        saveByEnter.name = 'prov2';
        saveByEnter.value = oggetto.value;
        document.forms[0].action = url+"?"+submitName+"="+submitValue;
        document.forms[0].submit();
    }
}

//--> funzione che viene eseguita al click sul combobox
function onCBClick2(oggetto, submitName, submitValue) {
    
    var form = document.forms[0];
    var url = form.action;
    // controllo se è già stato premuto il tasto del mouse
    if( is_onclick_combobox == true )  {
        // mi comporto come se la combobox perda il fuoco
        is_onclick_combobox = false;
        lostFocus2(oggetto, submitName, submitValue, url)
        old_value_combobox = oggetto.value;
        old_name_combobox = oggetto.name;
    } else {
        // se non è stato premuto imposto la variabile a true per segnalare la prima pressione
        is_onclick_combobox = true;
    }
}

