/* 
 *  _argomento.js
 *     funzioni per la gestione dell'interfaccia del contesto argomento.
 */


/*
 * *** Funzioni per la libreria DWR ***
 */

function ripulisciDaSettore(){
    var args = new Array();
    args[0] = "nessuno";

    DWRUtil.setValue("genereSettore", "");

    DWRUtil.removeAllOptions("argomentoOpt");
    DWRUtil.addOptions("argomentoOpt", args);
    DWRUtil.setValue("genereArgomento", "");
    var input = document.getElementById("genereArgomento");
    input.setAttribute("maxlength", "0"); 
    

    DWRUtil.removeAllOptions("disciplinaOpt");
    DWRUtil.addOptions("disciplinaOpt", args);
    DWRUtil.setValue("genereDisciplina", "");
    var input = document.getElementById("genereDisciplina");
    input.setAttribute("maxlength", "0");
}

function ripulisciDaArgomento(){
    var args = new Array();
    args[0] = "nessuno";

    DWRUtil.setValue("genereArgomento", "");
    

    DWRUtil.removeAllOptions("disciplinaOpt");
    DWRUtil.addOptions("disciplinaOpt", args);
    DWRUtil.setValue("genereDisciplina", "");
    var input = document.getElementById("genereDisciplina");
    input.setAttribute("maxlength", "0");
}

/*
function setIdSettoreCorrente(id){
    alert("setIdSettoreCorrente("+id+")");
    DWRUtil.useLoadingMessage();
    BI.setIdSettoreCorrente(setSettore, id);
}
*/

function setIdSettoreCorrente(){
    DWRUtil.useLoadingMessage();
    var id = DWRUtil.getValue("settoreOpt");
    //alert("settore: "+id);
    if (id!="nessuno")
        BI.setIdSettoreCorrente(setSettore, id);
}

function setSettore(gen){
    DWRUtil.setValue("genereSettore", gen);
    var input = document.getElementById("genereArgomento");
    input.setAttribute("maxlength", "30");    
    BI.getArgomentiCorrenti(getArgomentiCorrenti);
}

function getArgomentiCorrenti(args){
    DWRUtil.removeAllOptions("argomentoOpt");
    DWRUtil.addOptions("argomentoOpt", args);
    // imposto per ogni opzione la funzione di gestione
    var sel = document.getElementById("argomentoOpt");
    var selopt = sel.options;
    selopt[0].setAttribute("onClick", ("ripulisciDaArgomento()")); 
    for (var i=1; i<sel.length; i++){
        selopt[i].setAttribute("onClick", ("setIdArgomentoCorrente()")); 
    }
}
/*
function setIdArgomentoCorrente(id){
    DWRUtil.useLoadingMessage();
    BI.setIdArgomentoCorrente(setArgomento, id);
}
*/

function setIdArgomentoCorrente(){
    DWRUtil.useLoadingMessage();
    var id = DWRUtil.getValue("argomentoOpt");
    if (id!="nessuno")
        BI.setIdArgomentoCorrente(setArgomento, id);
}


function setArgomento(gen){
    DWRUtil.setValue("genereArgomento", gen);
    var input = document.getElementById("genereDisciplina");
    input.setAttribute("maxlength", "30");    
    BI.getDisciplineCorrenti(getDisciplineCorrenti);
}

function getDisciplineCorrenti(args){
    DWRUtil.removeAllOptions("disciplinaOpt");
    DWRUtil.addOptions("disciplinaOpt", args);
    // imposto per ogni opzione la funzione di gestione
    var sel = document.getElementById("disciplinaOpt");
    var selopt = sel.options;
    for (var i=1; i<sel.length; i++){
        selopt[i].setAttribute("onClick", ("setIdDisciplinaCorrente('"+selopt[i].value+"')")); 
    }
}


function setIntIdDisciplinaCorrente(id){
    DWRUtil.useLoadingMessage();
    BI.setIdDisciplinaCorrente(setDisciplina, id);
}


function setIdDisciplinaCorrente(){
    DWRUtil.useLoadingMessage();
    var id = DWRUtil.getValue("disciplinaOpt");
    if (id!="nessuno")
        BI.setIdDisciplinaCorrente(setDisciplina, id);
}

function setDisciplina(gen){
    if (gen!="<sconosciuto>"){
        DWRUtil.setValue("genereDisciplina", gen);
        var input = document.getElementById("genereDisciplina");
        input.setAttribute("maxlength", "30");    
    }
}

function doInsertQueryArgomento() {
    DWRUtil.useLoadingMessage();
    // per sicurezza..
    var sett = document.getElementById("genereSettore");
    setIdSettoreCorrente(sett.value);

    var argo = document.getElementById("genereArgomento");
    setIdArgomentoCorrente(argo.value);

    var disc = document.getElementById("genereDisciplina");
    setIntIdDisciplinaCorrente(disc.value);

    // comandiamo il controller
    retrieveURL('./Controller.do?query=__ARGUMENT_INSERT');
}



function doUpdateTemplateQueryArgomento() {
    DWRUtil.useLoadingMessage();
    // per sicurezza..
    //var sett = document.getElementById("genereSettore");
    //setIdSettoreCorrente(sett.value);
    //alert("settore: "+sett.value);

    //var argo = document.getElementById("genereArgomento");
    //setIdArgomentoCorrente(argo.value);
    //alert("argomento: "+argo.value);

    //var disc = document.getElementById("genereDisciplina");
    //setIdDisciplinaCorrente(disc.value);
    //alert("disciplina: "+disc.value);

    // comandiamo il controller
    retrieveURL('./Controller.do?query=__ARGUMENT_UPDATE_TEMPLATE');
}

function setIdSettoreCorrenteForUpdate(id){
    DWRUtil.useLoadingMessage();
    BI.setIdSettoreCorrente(setSettoreForUpdate, id);
}

function setSettoreForUpdate(gen){
    DWRUtil.useLoadingMessage();
    BI.getArgomentiCorrenti(getArgomentiCorrentiForUpdate);
}

function getArgomentiCorrentiForUpdate(args){
    DWRUtil.removeAllOptions("argomentoOpt");
    DWRUtil.addOptions("argomentoOpt", args);
    // imposto per ogni opzione la funzione di gestione
    var sel = document.getElementById("argomentoOpt");
    var selopt = sel.options;
    for (var i=1; i<sel.length; i++){
        selopt[i].setAttribute("onClick", ("setIdArgomentoCorrenteForUpdate('"+selopt[i].value+"')")); 
    }
}

function setIdArgomentoCorrenteForUpdate(id){
    DWRUtil.useLoadingMessage();
    BI.setIdArgomentoCorrente(setArgomentoForUpdate, id);
}

function setArgomentoForUpdate(gen){
    DWRUtil.useLoadingMessage();
    BI.getDisciplineCorrenti(getDisciplineCorrentiForUpdate);
}

function getDisciplineCorrentiForUpdate(args){
    DWRUtil.removeAllOptions("disciplinaOpt");
    DWRUtil.addOptions("disciplinaOpt", args);
    // imposto per ogni opzione la funzione di gestione
    var sel = document.getElementById("disciplinaOpt");
    var selopt = sel.options;
    for (var i=1; i<sel.length; i++){
        selopt[i].setAttribute("onClick", ("setIdDisciplinaCorrenteForUpdate('"+selopt[i].value+"')")); 
    }
}

function setIdDisciplinaCorrenteForUpdate(id){
    DWRUtil.useLoadingMessage();
    BI.setIdDisciplinaCorrente(null, id);
}

function updateArgomento(){
    DWRUtil.useLoadingMessage();
    //var g = document.getElementById("genere");
    //var i = document.getElementById("codArg");
    alert("genere: "+g.value);
    alert("id: "+i.value);
    BI.addArgomentoConIdDWR(doUpdateQueryArgomento, g.value, i.value);
}

function doUpdateQueryArgomento(f){
    DWRUtil.useLoadingMessage();
    if (f!=true){
        alert("INTERNAL ERROR: non posso eseguire l'aggiornamento");
    } else {
        retrieveURL('./Controller.do?query=__ARGUMENT_UPDATE');   
    }
}

/**************************************************************************
*   functions per la pagina argomenti_sf.jsp
***************************************************************************/

function selectArgument(index)
{
    BI.setArgument( refreshArgomenti_sf,index);
}

function refreshArgomenti_sf(f)
{
    if (!f){
        alert("INTERNAL ERROR: non posso eseguire il refresh della pagina");
    } else {
        retrieveURL('./Controller.do?query=__ARGOMENTO_SEARCH_ARGOMENTI_SF_REFRESH');   
    }
}