﻿/** 
    Funzioni di gestione della Barra delle Categorie. 
    
    Questo permette di mostrare le categorie di livello 1 (GMV di lunghezza2) come
    un albero gerarchico.
    
    Per avviare la barra è necessario usare la funzione BarraCategorie_Init.
        
**/


// Variabile per gestire colore alternato delle celle
var BarraCategorie_color1 = "#e6e6e6";
var BarraCategorie_color2 = "#ffffff";
var BarraCategorie_coloreCella = BarraCategorie_color1;


function BarraCategorie_IsUsed() {

    var ObjID = document.getElementById("BarraCategorie_UserControl");
    return (ObjID != null);
}


function BarraCategorie_Init() 
{
     // Determina se il controllo è utilizzato all'interno della pagina.
    if (!BarraCategorie_IsUsed()) {
        alert('UserControl BarraCategorie non utilizzato. Non è necessario richiamare BarraCategorie_Init()');
        return (false);
    }

    // Setta le etichette dei controlli in base alla lingua selezionata
    var cat = document.getElementById("BarraCategorie_Cat1");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat1));
    cat = document.getElementById("BarraCategorie_Cat2");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat2));
    cat = document.getElementById("BarraCategorie_Cat3");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat3));
    cat = document.getElementById("BarraCategorie_Cat4");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat4));
    cat = document.getElementById("BarraCategorie_Cat5");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat5));
    cat = document.getElementById("BarraCategorie_Cat6");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat6));
    cat = document.getElementById("BarraCategorie_Cat7");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat7));
    cat = document.getElementById("BarraCategorie_Cat8");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat8));
    cat = document.getElementById("BarraCategorie_Cat9");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat9));
    cat = document.getElementById("BarraCategorie_Cat0");
    cat.appendChild(document.createTextNode(NetSellGui_Costumize_BarraCategorie_Cat0));
    return true;
}

// Questa funzione permette di aggiungere un item alla barra.
function BarraCategorie_AddItem(ItemKey, ItemValue, ItemImage, ItemClickValue,ItemIsNew) 
{

    // Recupera l'elemento dove dovrà aggiungere l'item
    var TheTable = document.getElementById("BarraCategorie_TabellaCategorie").getElementsByTagName("TBODY")[0];


    //PROMETHEUS: "Gestisci colori alternati"
    if (BarraCategorie_coloreCella == BarraCategorie_color1)
        BarraCategorie_coloreCella = BarraCategorie_color2;
    else
        BarraCategorie_coloreCella = BarraCategorie_color1;


    // Genera il nuovo item TR e associa la chiave ( utile per le cancellazioni )
    // e il valore da passare alla funzione quando viene cliccato un item.
        var TheTR = document.createElement("tr");
    TheTR.setAttribute("id", "BarraCategorie_ItemCategoria"+ItemKey);
    TheTR.setAttribute("ItemKey", ItemKey);
    TheTR.setAttribute("ItemClickValue", ItemClickValue);
    TheTR.setAttribute("style", "background-color:"+ BarraCategorie_coloreCella +";");
    
    // Crea i due TD (uno per l'immagine e uno per il testo)
    var TD1 = document.createElement("td");
    var TD2 = document.createElement("td");

    // Effettua l'attach del nome della classe per collegari allo stylesheet
    TD1.setAttribute("class", "BarraCategorie_CellaImmagineCategorie");
    // In base al parametro isNew determina quale stile applicare all'item
    if (ItemIsNew == 'S')
        TD2.setAttribute("class", "BarraCategorie_CellaTestoCategorie_isNew");
    else
        TD2.setAttribute("class", "BarraCategorie_CellaTestoCategorie");

    
    // Effettua la configurazione dell'elmento Passa i parametri alla funzione di
    // callback che si occupa della gestione del click
    TD2.setAttribute("onclick", "parent.BarraCategorie_CallBack_SelectedGmv('" + ItemKey + "')");

    
    // Effettua l'attach dei TD all'interno del TR creato
    TheTR.appendChild(TD1);
    TheTR.appendChild(TD2);

    // Se è stata passata una immagine la mostra nel TD1
    // PROMETHEUS: "togli immaginina"
    ItemImage = null;
    if (ItemImage != null) {
        var TheIMAGE = document.createElement("img");
        TheIMAGE.setAttribute("class", "BarraCategorie_ImmagineCategorie")
        TheIMAGE.setAttribute("src", ItemImage);
        TheIMAGE.setAttribute("alt", "");
        TD1.appendChild(TheIMAGE);
        TheIMAGE = null
    }
    
    // Attach del valore testuale. 
    var TD2T = document.createTextNode(ItemValue);
    TD2.appendChild(TD2T);
   
    // Effettua l'attach del TR
    TheTable.appendChild(TheTR);
       
    
    // Invalida tutti i riferimenti per eventuale garbace collector
    TD2T = null; TheTable = null;
    TD1 = null; TD2 = null; TheTR = null;
    AL2 = null;
}

// Questa funzione permette di eliminare un item dalla barra.
function BarraCategorie_DeleteItem(ItemKey) {
    var TheTable = document.getElementById("BarraCategorie_TabellaCategorie");
    var ToFind = document.getElementById("BarraCategorie_ItemCategoria" + ItemKey);
    if (ToFind != null)
        TheTable.removeChild(ToFind);

    // Invalida i riferimenti
    TheTable = null;ToFind = null;


}


// Questa funzione permette di nascondere la barra delle categorie
function BarraCategorie_NascondiBarra() {
    var ObjID = document.getElementById("BarraCategorie_UserControl");
    var ObjID2 = document.getElementById("BarraCategorie_RestoreBarraBtn");
    if (ObjID != null) {
        ObjID.style.visibility = "hidden";
        ObjID = null;
    }
    if (ObjID2 != null) {
        ObjID2.style.visibility = "visible";
        ObjID2 = null;
    }
}

// Questa funzione permette di mostrare la barra delle categorie quando
// risulta chiusa.
function BarraCategorie_MostraBarra() {
    var ObjID = document.getElementById("BarraCategorie_UserControl");
    var ObjID2 = document.getElementById("BarraCategorie_RestoreBarraBtn");
    if (ObjID != null) {
        ObjID.style.visibility = "visible";
        ObjID = null;
    }
    if (ObjID2 != null) {
        ObjID2.style.visibility = "hidden";
        ObjID2 = null;
    }
}
