var EseguiSalvataggio = true;
function DivAperta() {
        EseguiSalvataggio = false;
    }

    function sleep(milliseconds) {
        var start = new Date().getTime();
        for (var i = 0; i < 1e7; i++) {
            if ((new Date().getTime() - start) > milliseconds) {
                break;
            }
        }
    }


//    function focusfreccia() {
//        var last;
//        alert("focusfreccia!!");
//        last = this;
//    }


function SalvaCampo(obj, tag, idcorso, coloreok) {

    //lo salva solo se l'autocomplete
    //non è visibile
    var nomediv = "AUTOCOMPLETE_CONTENUTO" + tag;
    var ObjDiv = document.getElementById(nomediv);
    if (ObjDiv) {
        sleep(100);
       // if (ObjDiv.style.display == "") return;
    }

    var valore = obj.value;
    obj.coloreok = coloreok;
    obj.style.backgroundColor = "#FFCC00";
    obj.tag = tag;
    obj.nomediv = nomediv;
    
    AjaxCall(obj, "ajax_salvacampo.php", "value=" + valore + "&tag=" + tag + "&id_course=" + idcorso, SalvaCampoOK, ProvaFail);
    
    
}

function SalvaCampoSubject(obj, riga, id_corso, sfondoafterupdate) {
    //lo salva solo se l'autocomplete
    //non è visibile
    var nomediv = "AUTOCOMPLETE_CONTENUTO_SUBECT_" + riga;
    var ObjDiv = document.getElementById(nomediv);
    if (ObjDiv) {
        //if (ObjDiv.style.display == "") return;
    }
    var valore = obj.value;
    obj.coloreok = sfondoafterupdate;
    obj.style.backgroundColor = "#FFCC00";
    obj.nomediv = nomediv;
    AjaxCall(obj, "ajax_salvacampo_subject.php", "value=" + valore + "&riga=" + riga + "&id_course=" + id_corso, SalvaCampoOK, ProvaFail);


}

function SalvaCampoTool(obj,id_tool,campo,riga) {
    //SalvaCampoTool(this,\''.$id_tool.'\',\''.$field.'\')"
    var nomediv = "AUTOCOMPLETE_CONTENUTO_" + campo + riga;
    var ObjDiv = document.getElementById(nomediv);
    if (ObjDiv) {
        //if (ObjDiv.style.display == "") return;
    }
    var valore = obj.value;
    obj.coloreok = ""; //sfondoafterupdate;
    obj.style.backgroundColor = "#FFCC00";
    obj.nomediv = nomediv;
    AjaxCall(obj, "ajax_salvacampo_tools.php", "campo=" + campo + "&value=" + valore + "&id_tool=" + id_tool, SalvaCampoOK, ProvaFail);

}


function SalvaCampoResource(obj, rigaSubject,rigaResource, id_corso, sfondoafterupdate,DivAutocomplete) {
    //lo salva solo se l'autocomplete
    //non è visibile
    var nomediv = DivAutocomplete;
    var ObjDiv = document.getElementById(nomediv);
    if (ObjDiv) {
        //if (ObjDiv.style.display == "") return;
    }
    var valore = obj.value;
    obj.coloreok = sfondoafterupdate;
    obj.style.backgroundColor = "#FFCC00";
    obj.nomediv = nomediv;
    AjaxCall(obj, "ajax_salvacampo_resource.php", "value=" + valore + "&RS=" + rigaSubject + "&RR=" + rigaResource + "&id_course=" + id_corso, SalvaCampoOK, ProvaFail);


}

function SalvaCampoContent(obj, rigaSubject, rigaResource,rigaContent, id_corso, sfondoafterupdate, DivAutocomplete) {
    //lo salva solo se l'autocomplete
    //non è visibile
    var nomediv = DivAutocomplete;
    var ObjDiv = document.getElementById(nomediv);
    if (ObjDiv) {
        //if (ObjDiv.style.display == "") return;
    }
    var valore = obj.value;
    obj.coloreok = sfondoafterupdate;
    obj.style.backgroundColor = "#FFCC00";
    obj.nomediv = nomediv;
    AjaxCall(obj, "ajax_salvacampo_content.php", "value=" + valore + "&RS=" + rigaSubject + "&RR=" + rigaResource + "&RC=" + rigaContent + "&id_course=" + id_corso, SalvaCampoOK, ProvaFail);


}

var NumeroRiga = -1;

function InitCourse(id_corso) {
    NumeroRiga = -1
    AddSubject(id_corso);
}

function GetMaxIndex() {
    NumeroRiga = NumeroRiga + 1;
    return NumeroRiga;
}
var ImgLoading = "<img src='img/loader.gif'  border='0'/>"

function AddCella(riga, id,NoLoadingImage,className,NoVertical) {
    var Cella = document.createElement("TD");
    if (id != "") {
        Cella.id = id;
    }
    if (NoLoadingImage) {
        Cella.innerHTML = "&nbsp;";
    }
    else {
        Cella.innerHTML = ImgLoading;
    }

    riga.appendChild(Cella);
    if (!NoVertical) {
        Cella.vAlign = "top"
    }
    
    if (!className) {

    } else {
    Cella.className = className;
    }
    return Cella;
}

//"RIGA_RS_" + RS
function GetMaxNumeroRigaPerSubject(RS) {
    //Legge tutte le righe
    var prefisso = "RIGA_RS_" + RS
    var tab = document.getElementById("TABELLA_SUBJECT");
    tabBody = tab.getElementsByTagName("TBODY").item(0);
    //righe = tabBody.getElementsByName(prefisso);
    var Indice = 0;
    for (var i = 0; i < tabBody.rows.length; i++) {
        idRiga = tabBody.rows[i].id;
        if (idRiga.indexOf(prefisso) > -1) {
            Indice = Indice + 1;
            /*
            Valore = (idRiga.replace(prefisso + "_", ""));
            if (isNaN(Valore) == false) {
                Valore = parseInt(Valore);
                if (Valore > Indice) Indice = Valore;
            }
            */
        }
        

        
    }

    return Indice;
    
}

function AggiungiRigaSubjectResource(indiceRiga,RS,RR,EmptySubject) {
   
    var tab = document.getElementById("TABELLA_SUBJECT");
    tabBody = tab.getElementsByTagName("TBODY").item(0);

    var NuovaRiga = tabBody.insertRow(indiceRiga);




    NuovaRiga.id = "RIGA_RS_" + RS + "_" + RR;
    NuovaRiga.name = "RIGA_RS_" + RS;

    NumeroRigaRS = GetMaxNumeroRigaPerSubject(RS);
    
    NumeroRigaRS = NumeroRigaRS % 2
    NuovaRiga.className = "riga_colore_RES_" + NumeroRigaRS;
    
    //creo le celle
    //1) subject
    CellaRS = AddCella(NuovaRiga, "", EmptySubject, "CampoSubject");
    if (!EmptySubject) {
        //se è un nuovo subject aggiungo la cella
        AjaxCall(CellaRS, "course_subject_add.php", "RS=" + RS, AddResultToCell, ProvaFail);
    }
    
    //2) learning resource
    CellaRR = AddCella(NuovaRiga, "CELLA_SUBJECT_" + RS,false,"CampoLearning");
    AjaxCall(CellaRR, "course_resource_add.php", "RS=" + RS + "&RR=" + RR, AddResultToCell, ProvaFail);
    //3) content
    CellaRC = AddCella(NuovaRiga, "CELLA_RESOURCE_" + RS + "_" + RR);
    AjaxCall(CellaRC, "course_content_add_table.php", "F=Y&RS=" + RS + "&RR=" + RR + "&RC=0", AddResultToCell, ProvaFail);


    AddCellsFiles(NuovaRiga, RS, RR, NuovaRiga.className);

}

function AddCellsFiles(NuovaRiga, RS, RR, StileUpload) {

    AddCella(NuovaRiga, "", true, "ColonnaBianca");

    //colonna del checkbox select all
    AddCella(NuovaRiga, "", true, "ColonnaFileType");

    AddCella(NuovaRiga, "", true, "ColonnaBianca");
    
    //<td class="ColonnaFileType" valign="top" id="SS_<? echo ($RS."_".$RR); ?>">
    
    var ListCodici=new Array("SS","SV","SA","V","T","OTH");
    
    
    
    for (i=0;i<ListCodici.length;i++){
        codice=ListCodici[i];
        AddCella(NuovaRiga, codice + "_" + RS + "_" + RR,true, "ColonnaFileType");
    }

    CellaUpload = AddCella(NuovaRiga, "", true, "ColonnaBianca",true);
    CellaUpload.className = StileUpload;
    CellaUpload.innerHTML='<a href="javascript:UploadFile(' + RS + ',' + RR + ');"><img src="img/upload.gif" border="0" /></a>'
}

function AddButtonAddSubject(riga) {

    //riga per il bottone Add Resource
    var tab = document.getElementById("TABELLA_SUBJECT");
    tabBody = tab.getElementsByTagName("TBODY").item(0);
    var IndiceRigaBottone = tabBody.rows.length - 1;
    var RigaBottone = tabBody.insertRow(IndiceRigaBottone);
    RigaBottone.height = "10";
    CellaRS = AddCella(RigaBottone, "", true);
    CellaBottoneAddResource = AddCella(RigaBottone, "CELLA_SUBJECT_" + riga);
    AjaxCall(CellaBottoneAddResource, "course_button_add_resource.php", "F=Y&RS=" + riga, AddResultToCell, ProvaFail);
    
}

function AddSubject(id_corso) {
    //leggo la max riga per questo corso.

    var riga = GetMaxIndex();
    Loader("Creating row...");


    //creo una riga vuota
    var tab = document.getElementById("TABELLA_SUBJECT");
    tabBody = tab.getElementsByTagName("TBODY").item(0);
    //la riga viene aggiunta alla penultima pos, perchè in fondo c'è il asto ADD
    var lastRow = tabBody.rows.length - 1;

    AggiungiRigaSubjectResource(lastRow, riga, 0, false);

    AddButtonAddSubject(riga);
         
}

function AddResultToCell(obj) {
   
    if (VerificaErrore(obj)) return;

    var caller = obj.caller;

    //caller è una cella
    caller.innerHTML = obj.responseText;

    
}

function AddContent(id_corso, RS,RR) {
    var riga_content = GetMaxIndex();

    nometabella = "TABELLA_CONTENT_RESOURCE_" + RS +"_" + RR;



    Loader("Creating row...");


    //riga per il bottone Add Resource
    var tab = document.getElementById(nometabella);
    tabBody = tab.getElementsByTagName("TBODY").item(0);
    //aggiungo in fondo una riga 
    var RigaContent = tabBody.insertRow(-1);
    Cella = AddCella(RigaContent, "", true);
    AjaxCall(Cella, "course_content_add.php", "F=Y&RS=" + RS + "&RR=" + RR + "&RC=" + riga_content, AddResultToCell, ProvaFail);
    
}

function AddContentOK(obj) {
    Loader("");
    if (VerificaErrore(obj)) return;

    var caller = obj.caller;



    var Cella = document.getElementById("CELLA_RESOURCE_" + caller.riga_subject + "_" + caller.riga_resource);
    var DivContenuto = document.createElement("div");
    DivContenuto.innerHTML = obj.responseText;
    Cella.appendChild(DivContenuto);

}


function GetIndiceCella(Obj) {
   
    while (Obj.tagName.toLowerCase() != "tr") {
        Obj = Obj.parentNode; // breaks if no "tr" in path to root
    }

    //estrae l'indice della riga della sua sezione (TBODY)
    return Obj.sectionRowIndex;
    
}


function AddResource(ObjImg,id_corso, riga_subject) {
    var riga = GetMaxIndex();
    Loader("Creating row...");

    //inserisce una riuga come il subject, ma senza subject e senza bottone ADD SUBJECT e ADD RESOURCE

    //1) leggo l'indice della riga del bottone che ha causato l'evento
    var IndiceRigaInsert = GetIndiceCella(ObjImg);
    //2) inserisco la riga alla sua posizione (il bottone scalerà di 2 -
    IndiceRigaInsert = IndiceRigaInsert;

    AggiungiRigaSubjectResource(IndiceRigaInsert, riga_subject, riga, true);
    
    /*
    var obj=new Object;
    obj.riga_subject = riga_subject;
    AjaxCall(obj, "course_add_resource_main.php", "RS=" + riga_subject + "&RR=" + riga + "&id_course=" + id_corso, AddResourceOK, ProvaFail);
    */
}

function AddResourceOK(obj) {
    Loader("");
    if (VerificaErrore(obj)) return;

    var caller= obj.caller;

   

    var Cella = document.getElementById("CELLA_SUBJECT_" + caller.riga_subject);
    var DivContenuto = document.createElement("div");
    DivContenuto.innerHTML = obj.responseText;
    Cella.appendChild(DivContenuto);
    
}

function Loader(txt) {

    ScriviDiv("COURSE_LOADER", txt);

}

function AddRiga() {
    var tab = document.getElementById("TAB_OKOK");
    tabBody = tab.getElementsByTagName("TBODY").item(0);
    var DIV = document.createElement("DIV");
    testo="<b><tr><td>pippo</b></td></tr>";
    DIV.innerHTML = testo;
    //DIV.innerHTML = "piop pio";

    tabBody.appendChild(DIV);
}

//riceve un oggetto Ajax tale e quale
function AddSubjectOK(obj) {
    Loader("");
    if (VerificaErrore(obj)) return;

    //aggiungo una riga a TABELLA_SUBJECT
    //va sempre aggiunto al BODY
    var tab = document.getElementById("TABELLA_SUBJECT");
    tabBody = tab.getElementsByTagName("TBODY").item(0);

   

    var Riga = document.createElement("TR");
    //var Cella = document.createElement("TD");
    //var DivContenuto = document.createElement("div");
    //Cella.innerHTML = obj.responseText;
    //Cella.appendChild(DivContenuto);
    //Riga.appendChild(Cella);
    Riga.innerHTML = obj.responseText;
    tabBody.appendChild(Riga);


  
    
}

function AutocompleteCampo(obj,tag,tutti) {

    
    var valore = obj.value;

    var nomediv = "AUTOCOMPLETE_CONTENUTO" + tag;
    
    //se non li sta cercando tutti, aspetta 3 caratteri
    if (!tutti) {
        if (valore.length < 3) {
            VisualizzaDiv(nomediv, 0);
            return;
        }

    }
    else {
        valore = "";
    }
    
    
    
    obj.tag = tag;
     
 
    AjaxCall(obj, "ajax_autocomplete_tag.php", "value=" + valore + "&tag=" + tag, AutocompleteCampoOK, ProvaFail);
}
//obj text box chiamante
//VistaDati vista del DB da cui pesacere i dati. Un solo campo
//idBox id della div contenitore x il risultato

function Autocomplete(obj, VistaDati,idBox,tutti,idcampoDestinazione) {
   
    var valore = obj.value;

    var idcampo=obj.id;

    var nomediv = idBox;

    if (!tutti) {
        if (valore.length < 3) {
            VisualizzaDiv(nomediv, 0);
            return;
        }
    }
    else {
        valore = "";
        idcampo = idcampoDestinazione;
    }
    
    
   
    obj.idBox = idBox;
    AjaxCall(obj, "ajax_autocomplete.php", "value=" + valore + "&view=" + VistaDati + "&idbox=" + idBox + "&idcampo=" + idcampo, AutocompleteOK, ProvaFail);

}

function AutocompleteOK(obj) {
     
    if (VerificaErrore(obj)) return;
    
    //caller è il campo testo che ha effettuato la chiamata
    var caller = obj.caller;
    var nomediv = caller.idBox;
   
    if (obj.responseText == "") {
        VisualizzaDiv(nomediv, 0);
        return;
    }  

    
    ScriviDiv(nomediv, obj.responseText);
    VisualizzaDiv(nomediv, 1);



}

function AutocompleteInsertValueField(cella, campo, idbox) {

    VisualizzaDiv(idbox, 0);

    var valore = cella.innerHTML;
    var CampoTesto = document.getElementById(campo);
    if (CampoTesto) {

        CampoTesto.value = valore;
        //scateno Onblur sul text box x salvare il campo
       
        try {
            CampoTesto.onblur();
        } catch (err) {
            //Handle errors here
        }
    }

}

function NascondiBox(idbox) {
    VisualizzaDiv(idbox, 0);
}

function RimuoviTabulazioniFireFox(testo) {
    
//    var lunghezzatesto;
//    lunghezzatesto=
    testo=trim(testo);
    testo=testo.replace(/\n/g,'');
    testo=testo.replace(/\t/g,'');
    testo=testo.replace(/\r/g,'');
    
    return testo;

 }
function trim(stringa)
 {   
    while (stringa.substring(0,1) == ' '){
        stringa = stringa.substring(1, stringa.length);    }    
        
    while (stringa.substring(stringa.length-1, stringa.length) == ' '){       
        stringa = stringa.substring(0,stringa.length-1);    }    
        
    return stringa;
   }

function AutocompleteSeleziona(cella, tag) {

    //alert("siamo dentro!");
    
    NascondiAutocomplete(tag);
    
    var valore;
    var text = cella.innerHTML;
    var CampoTesto = document.getElementById("CAMPO" + tag);
    if (CampoTesto) {
        
        valore = RimuoviTabulazioniFireFox(text);
        CampoTesto.value = valore;
        
        //scateno Onblur sul text box x salvare il campo
        try
        {
        CampoTesto.onblur();
    } catch (err) {
        //Handle errors here
    }

    }
    
}

function NascondiAutocomplete(tag) {
 //   EseguiSalvataggio = true;
    var nomediv = "AUTOCOMPLETE_CONTENUTO" + tag;
    VisualizzaDiv(nomediv, 0);
}



//riceve un oggetto Ajax tale e quale
function SalvaCampoOK(obj) {
    if (VerificaErrore(obj)) return;
    
    //caller è il campo testo che ha effettuato la chiamata
    var caller = obj.caller;
    caller.style.backgroundColor = caller.coloreok;
   color = "#000000";
    //nasconde la div, se ancora visibile
    var NomeDiv = "";
    /*
    if (caller.tag) {
        NomeDiv = "AUTOCOMPLETE_CONTENUTO" + caller.tag;
        VisualizzaDiv(NomeDiv, 0);
    }
    */

    if (caller.nomediv) {
        VisualizzaDiv(caller.nomediv, 0);
    }
    
    /*
    if (caller.riga) {
        NomeDiv = "AUTOCOMPLETE_CONTENUTO_SUBECT_" + caller.riga;
        VisualizzaDiv(NomeDiv, 0);
    }
    */
    
}


function AutocompleteCampoOK(obj) {
    //alert("AutocompleteCampoOK! " + obj.responseText);
    
    if (VerificaErrore(obj)) return;

    if (obj.responseText == "") return;

    //caller è il campo testo che ha effettuato la chiamata
    var caller = obj.caller;

    var nomediv="AUTOCOMPLETE_CONTENUTO" + caller.tag;
    ScriviDiv(nomediv, obj.responseText);
    VisualizzaDiv(nomediv, 1);
    
    
    
}
function ProvaFail() {
    alert("FAIL");
}

function VerificaErrore(obj) {
    return false;
}

function UploadFile(subject, risorsa) {
    
    //'url-iframe?KeepThis=true&TB_iframe=true&height=400&width=600
    ApriFinestra("uploadfile.php?RS=" + subject + "&RR=" + risorsa + "&KeepThis=true&TB_iframe=true&height=400&width=400&modal=true");
   
   
   // ApriFinestra("#TB_inline?height=100&width=100&inlineId=hiddenModalContent&modal=false");
}
function ApriImmagine(idfile) {
    ApriFinestra("VisualizzaImmagine.php?IDFILE=" + idfile + "&TB_iframe=true&height=600&width=580&modal=true");
}
function  VisualizzaMessCaricamento()
 {
    var TestoLoad="<font color='red'>Loading File....Please wait....</font>";
    //visualizzo div 
    ScriviDiv("caricamento",TestoLoad);
    //nascondo pulsanti
     var divUpload= document.getElementById("upload_file");
        if (divUpload) {
            divUpload.style.display="none";
            }
     var divCancel= document.getElementById("cancel_file");
        if (divCancel) {
            divCancel.style.display="none";
          }       

}

function ScriviDiv(div,txt) {
    var obj;
    obj=document.getElementById(div);
   // alert(obj);
    if (obj!=null){
        obj.innerHTML=txt;
    }
}




function UploadTool(id_tool) {

    //'url-iframe?KeepThis=true&TB_iframe=true&height=400&width=600
    ApriFinestra("uploadtool.php?id_tool=" + id_tool + "&KeepThis=true&TB_iframe=true&height=200&width=300&modal=true");

    // ApriFinestra("#TB_inline?height=100&width=100&inlineId=hiddenModalContent&modal=false");
}

function UploadToolOk() {
    ChiudiFinestra();
    SubmitForm('refresh', '');
}

function UploadOk(RS,RR,TIPO,idfile) {
    ChiudiFinestra();
    //Aggiorno via Ajax
    var obj = new Object;
    obj.RS=RS;
    obj.RR=RR;
    obj.TIPO = TIPO;

    AjaxCall(obj, "ajax_insertfile.php", "idfile=" + idfile, InsertFileOK, ProvaFail);

}

function InsertFileOK(obj) {

    if (VerificaErrore(obj)) return;

    if (obj.responseText == "") return;

    //caller è il campo testo che ha effettuato la chiamata
    var caller = obj.caller;


    //inserisco nella cella degli oggetti relativa
    //la tabela ricevuta da Ajax
    var NomeCella = caller.TIPO + '_' + caller.RS + '_' + caller.RR;
    var Cella = document.getElementById(NomeCella);
    if (Cella) {
        Cella.innerHTML = Cella.innerHTML + obj.responseText
    }


}

function Back(id) {
    parent.location.href = "select_course.php?ID=" + id;
}

//Tipo: R=resource - S=subject
function ObjResource(tipo, RS, RR, RC, IDFILE) {



    this.RS = RS;
    this.RR = RR;
    this.RC = RC; //questo, nel caso di file, è il tipo file
    this.IDFILE = IDFILE;
    
    this.tipo = tipo;
}

function GetChkSubject(ArrayResource) {

    
    var parametri = "";
    lista = document.getElementsByName("subject");
    for (i = 0; i < lista.length; i++) {
        if (lista[i].checked) {
            var arrParam = lista[i].id.split("_");
            var RS = arrParam[1];
            //var RR = arrParam[2];
            ArrayResource.push(new ObjResource("S", RS));
            parametri = parametri + "&S[]=" + RS;

        }
    }

    return parametri;
}

function GetChkResource(ArrayResource) {

   
    var parametri = "";
    lista = document.getElementsByName("resource");
    for (i = 0; i < lista.length; i++) {
        if (lista[i].checked) {
            var arrParam = lista[i].id.split("_");
            var RS = arrParam[1];
            var RR = arrParam[2];
            ArrayResource.push(new ObjResource("R", RS, RR));
            parametri = parametri + "&R[]=" + RS + "_" + RR;

        }
    }

    return parametri;
}

function GetChkContent(ArrayResource) {

    //var ArrayResource = new Array();
    var parametri = "";
    lista = document.getElementsByName("content");
    for (i = 0; i < lista.length; i++) {
        if (lista[i].checked) {
            var arrParam = lista[i].id.split("_");
            var RS = arrParam[1];
            var RR = arrParam[2];
            var RC = arrParam[3];
            ArrayResource.push(new ObjResource("C", RS, RR, RC));
            parametri = parametri + "&C[]=" + RS + "_" + RR + "_" + RC;

        }
    }

    return parametri;
}

function GetChkFile(ArrayResource) {

    //var ArrayResource = new Array();
    var parametri = "";
    lista = document.getElementsByName("file_resource");
    for (i = 0; i < lista.length; i++) {
        if (lista[i].checked) {
            var arrParam = lista[i].id.split("_");
            var RS = arrParam[1];
            var RR = arrParam[2];
            var TIPO = arrParam[3];
            var IDFILE = arrParam[4];
            ArrayResource.push(new ObjResource("C", RS, RR, TIPO, IDFILE));
            parametri = parametri + "&F[]=" + RS + "_" + RR + "_" + TIPO + "_" + IDFILE;

        }
    }

    return parametri;
}

function DeleteSelectedObject() {

    if (!confirm("Delete selcted objects?")) {
        return;
    }

    //costruisce la stringa dei parametri che passerà in post per il DELETE
    //e l'array degli oggetti selezionati per poi cancellarli a video

    var ArrayResource = new Array();
    var parametri = "";

    parametri = parametri + GetChkSubject(ArrayResource);
    parametri = parametri + GetChkResource(ArrayResource);
    parametri = parametri + GetChkContent(ArrayResource);
    parametri = parametri + GetChkFile(ArrayResource);
    if (parametri == "") {
        alert("Select at least one resource / subject / file to delete");
        return;
    }

    
    
    Loader("Deleting object... [press REFRESH/F5 in your Browser if the page doesn't refresh]");
    AjaxCall(ArrayResource, "course_delete_object.php", "A=A" + parametri, DeleteSelectedObjectOK, ProvaFail);

}

function CourseLoadOK(obj) {
    Loader("");
    if (VerificaErrore(obj)) return;

    if (obj.responseText == "") return;

    var Risultato = obj.responseText;
    ScriviDiv("CORSO", Risultato);
    Resetta();
}

function DeleteSelectedObjectOK(obj) {
    Loader("");
    if (VerificaErrore(obj)) return;

    if (obj.responseText == "") return;

    var Risultato = obj.responseText;
    
    //caller è il campo testo che ha effettuato la chiamata
    var caller = obj.caller;

    //ciclo nell'array di oggetti da eliminare
    //e verifico se sono andati a buon fine
    for (i = 0; i < caller.length; i++) {
        var NomeObj = "";

        //ObjResource(tipo, RS, RR, RC, IDFILE) {
        //this.RS = RS;
        //this.RR = RR;
        //this.RC = RC; //questo, nel caso di file, è il tipo file
        //this.IDFILE = IDFILE;
        //this.tipo = tipo;
        var Obj = caller[i];

        switch (Obj.tipo) {
            case "S":
                //statement;
                NomeObj = "RIGA_RS_" + Obj.RS;
                if (Risultato.indexOf(NomeObj)>-1) {
                    //eliminazione OK
                    NascondiElementiHTML("", NomeObj)
                }
                break;
            case "R":
                //statement;
                NomeObj = "RESOURCE_" + Obj.RS + "_" + Obj.RR;
                if (Risultato.indexOf(NomeObj) > -1) {
                    //eliminazione OK
                    NascondiElementiHTML("OBJ_" + NomeObj, "")
                }
                break;
            case "C":
                //statement;
                //statement;
                NomeObj = "CONTENT_" + Obj.RS + "_" + Obj.RR + "_" + Obj.RC;
                if (Risultato.indexOf(NomeObj) > -1) {
                    //eliminazione OK
                    NascondiElementiHTML("OBJ_" + NomeObj, "")
                }
                break;
            case "F":
                //nel FILE, RC rappresenta il tipo file
                NomeObj = "FILE_" + Obj.RS + "_" + Obj.RR + "_" + Obj.RC + "_" + Obj.IDFILE ;
                if (Risultato.indexOf(NomeObj) > -1) {
                    //eliminazione OK
                    NascondiElementiHTML("OBJ_" + NomeObj, "")
                }
                break;
            
        }

    }

    RefreshCorso();
    
    

}

function RefreshCorso() {
    //Ricarico comunque il blocco del corso.
    Loader("Loading... [press REFRESH/F5 in your Browser if the page doesn't refresh]");
    AjaxCall(null, "course_load.php", "LOAD=Y", CourseLoadOK, ProvaFail);
}

function NascondiElementiHTML(IdHide, NameHide) {
    if (IdHide == "") {
        //nasconde per NAME
        var lista = document.getElementsByName(NameHide);
        for (i = 0; i < lista.length; i++) {
            VisualizzaDiv(lista[i].id, 0);
        }
    }
    else {
        //nasconde per ID
        VisualizzaDiv(IdHide, 0) 
    }
}

function Publish(stato) {
    var ArrayResource = new Array();

    //ciclo e vedo quelli ceccati
    //costruisco la sequenza di parametri
    var parametri = "";

    //Estrazione di tutti i resource
    //name = resource
    //id=RESOURCE_
    parametri = parametri + GetChkResource(ArrayResource);

    //Estrazione di tutti i subject
    //name = resource
    //id=SUBJECT_
    parametri = parametri + GetChkSubject(ArrayResource);

    //Estrazione di tutti i content
    //name = content
    //id=CONTENT_
    parametri = parametri + GetChkContent(ArrayResource);

    //Estrazione di tutti i files
    //name = file_resource
    //id=FILE_#_#_TIPOFILE
    parametri = parametri + GetChkFile(ArrayResource);


    //se almeno una è stata selezionata - invio
    if (parametri == "") {
        alert("Select at least one resource / subject / file");
        return;
    }
    Loader("Publish... [press REFRESH/F5 in your Browser if the page doesn't refresh]");
    AjaxCall(ArrayResource, "lr_publish.php", "STATO=" + stato + parametri, RefreshCorso, ProvaFail);

}

//insert=1 : inserisce - =0 modifica
function EditMetadata(insert) {


    var ArrayResource = new Array();
       
    //ciclo e vedo quelli ceccati
    //costruisco la sequenza di parametri
    var parametri = "";
    
    //Estrazione di tutti i resource
    //name = resource
    //id=RESOURCE_
    parametri = parametri + GetChkResource(ArrayResource);
    
    //Estrazione di tutti i subject
    //name = resource
    //id=SUBJECT_
    parametri = parametri + GetChkSubject(ArrayResource);

    //Estrazione di tutti i content
    //name = content
    //id=CONTENT_
    parametri = parametri + GetChkContent(ArrayResource);

    //Estrazione di tutti i files
    //name = file_resource
    //id=FILE_#_#_TIPOFILE
    parametri = parametri + GetChkFile(ArrayResource);
    

    //se almeno una è stata selezionata - invio
    if (parametri == "") {
        alert("Select at least one resource / subject / file");
        return;
    }

    //Verificare di aver selezionato solo un CHK tra subject, resource, files

    if (insert == 0) {
        if (ArrayResource.length > 1) {
            alert("Select max one resource / subject");
            return;
        }
    }
   
    //controllo che sono in edit e in modifica singolo elemento
    
    if (insert ==1) {
        if (ArrayResource.length == 1) {
            insert = 0;
        } 
    
    }

    Loader("Loading...");
    AjaxCall(ArrayResource, "lr_edit_metadata.php", "A=" + insert  + parametri, EditMetadataOK, ProvaFail);


}

function EditMetadataOK(obj) {
    //ContenutoAjax
    
    Loader ("");
    if (VerificaErrore(obj)) return;

    if (obj.responseText == "") return;

    ScriviDiv("ContenutoAjax", obj.responseText);
    Resetta();
       
}
function VisualizzaContent(id,visualizza) {
   
    var nomeDiv = "DIV_CONTENT_" + id;
    VisualizzaDiv(nomeDiv, visualizza);
    
    var nomeDiv = "LINK_CONTENT_" + id;
    VisualizzaDiv(nomeDiv, visualizza);

    var nomeDiv = "LINK_SHOW_CONTENT_" + id;
    VisualizzaDiv(nomeDiv, !visualizza);
}

function DownloadFile(id, current_usr) {
    
     var prefisso="FILE_";

    oggetti = document.getElementsByTagName("INPUT")
    
    var param = "";
    for (var i = 0; i < oggetti.length; i++) {

        //se TIPO="" carica tutta la riga di una RESOURCE e di un SUBJECT
        if (oggetti[i].id.indexOf(prefisso) > -1) {
            if (oggetti[i].checked) {
                nome=oggetti[i].id;
                //rimuovo la parte "inutile"
                nome=nome.replace("FILE_","");
                param = param + "&F[]=" + nome;
            }
        }
    }

    if (param == "") {
        alert("Select a file");
        return;
    }

    window.open("downloadfile.php?USR=" + current_usr + "&ID=" + id + param);
}

function ShowTags() {
    //controllo se ci sono file selezionati
     oggetti = document.getElementsByTagName("INPUT")
     
     var param="";
     var prefisso="FILE_";
     
     for (var i = 0; i < oggetti.length; i++) {

        //se TIPO="" carica tutta la riga di una RESOURCE e di un SUBJECT
        if (oggetti[i].id.indexOf(prefisso) > -1) {
            if (oggetti[i].checked) {
                nome=oggetti[i].id;
                //rimuovo la parte "inutile"
                nome=nome.replace("FILE_","");
                param = param + "&F[]=" + nome;
            }
        }
    }

    if (param == "") {
        alert("Select a file");
        return;
    }
    
    a=window.open("ShowTags.php?ID=" + param,null,"height=500,width=540,scrollbars=yes,resizable=yes");
    a.focus();


}


function mostraNews(id) {


    a=window.open("ShowNews.php?ID="+id, null, "height=500,width=540,scrollbars=yes,resizable=yes");
    a.focus();


 }





//Funzioni per la ricerca by content //
//Array("CONTENT", "YEAR", "FORMAT", "LICENSE", "AUTHOR", "RESOURCE");
var FILTER_CONTENT = "";
var FILTER_YEAR = "";
var FILTER_FORMAT = "";
var FILTER_LICENSE = "";
var FILTER_AUTHOR = "";
var FILTER_RESOURCE = "";

function Filtra(campo, testo) {

    return;

    //seleziono tutti i checkbox per la tipologia


    var prefisso = campo;
    var testo = "";
    oggetti = document.getElementsByTagName("INPUT");
    for (var i = 0; i < oggetti.length; i++) {

        //se TIPO="" carica tutta la riga di una RESOURCE e di un SUBJECT
        if (oggetti[i].id.indexOf(prefisso) > -1) {
            if (oggetti[i].checked) {
                testo = testo + "#*#" + oggetti[i].value;
            }
        }

    }

    eval('FILTER_' + campo + '="' + testo + '"');
    var obj = new Object();
    obj.campo = campo;


    if (campo != "CONTENT") AjaxCall(obj, "load_content.php", "CONTENT=" + FILTER_CONTENT + "&YEAR=" + FILTER_YEAR + "&FORMAT=" + FILTER_FORMAT, FiltraOK, ProvaFail);

    if (campo != "YEAR") AjaxCall(obj, "load_format.php", "CONTENT=" + FILTER_CONTENT + "&YEAR=" + FILTER_YEAR + "&FORMAT=" + FILTER_FORMAT, FiltraOK, ProvaFail);

    if (campo != "FORMAT") AjaxCall(obj, "load_year.php", "CONTENT=" + FILTER_CONTENT + "&YEAR=" + FILTER_YEAR + "FORMAT=" + FILTER_FORMAT, FiltraOK, ProvaFail);

}

function FiltraOK(obj) {

}

function FilterByContent() {

    alert("Under construction!");
    return;

    var Campi = new Array("CONTENT", "YEAR", "FORMAT", "LICENSE", "AUTHOR", "RESOURCE");

    oggetti = document.getElementsByTagName("INPUT");

    for (var indice = 0; indice < oggetti.length; indice++) {
        prefisso = Campi[indice];
        //svuoto il variabilone
        eval('FILTER_' + prefisso + '=""');
        testo = "";
        for (var i = 0; i < oggetti.length; i++) {

            //se TIPO="" carica tutta la riga di una RESOURCE e di un SUBJECT
            if (oggetti[i].id.indexOf(prefisso) > -1) {
                if (oggetti[i].checked) {
                    testo = testo + "#*#" + oggetti[i].value;
                }
            }

        }
        //Imposta il variabilone
        eval('FILTER_' + prefisso + '="' + testo + '"');

    }

    AjaxCall(null, "select_by_content.php", "RESOURCE=" + FILTER_RESOURCE + "&AUTHOR=" + FILTER_AUTHOR + "&LICENSE=" + FILTER_LICENSE + "&CONTENT=" + FILTER_CONTENT + "&YEAR=" + FILTER_YEAR + "&FORMAT=" + FILTER_FORMAT, EditMetadataOK, ProvaFail);


}

function DeleteCourses() {
    if (confirm("Do you want delete selected courses?")) {
        var f = document.getElementById("form_delete");
        if (f) {
            f.submit();
        }
    }
}

function DeleteTools() {
    if (confirm("Do you want delete selected tools?")) {
        var f = document.getElementById("form_delete");
        if (f) {
            f.submit();
        }
    }
}
function OpenEditTool(id) {
    document.location.href = "index.php?P=tools_upload.php&F=UPLOAD&ID=" + id;
}