// gestione apertura e chiusura dei box e movimenti dei pulsanti di controllo
function nascondiBox_mostraPulsante(
                                    elBox,
                                    elPulsanteControllo,
                                    puntoBoxNascosto,
                                    puntoPulsanteScoperto,
                                    tempoAnimazioneBox,
                                    tempoAnimazionePulsante) {
    elBox.stop(true, false).animate({
        left: puntoBoxNascosto
    }, tempoAnimazioneBox,	function() {
        elPulsanteControllo.stop(true, false).animate({left: puntoPulsanteScoperto}, tempoAnimazionePulsante);
    })
}

function gestisciMovimentiPulsante(
                                    elPulsanteControllo,
                                    puntoPulsanteAperto,
                                    puntoPulsanteScoperto,
                                    puntoPulsanteNascosto,
                                    tempoAnimazione) {
    elPulsanteControllo.mouseenter(function() {
        $(this).stop(true, false).animate({
            left: puntoPulsanteAperto}, tempoAnimazione)
    });
    elPulsanteControllo.mouseleave(function() {
        var puntoFinale;
        if (boxOpen) { // questa è una variabile booleana globale
            puntoFinale = puntoPulsanteNascosto;
        } else {
            puntoFinale = puntoPulsanteScoperto;
        }
        $(this).stop(true, false).animate({
            left: puntoFinale}, tempoAnimazione)
    });
}

function mostraBox(
                    elBox,
                    puntoBoxAperto,
                    tempoAnimazione) {
    elBox.stop(true, false).animate({left: puntoBoxAperto}, tempoAnimazione);
}

/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */

// apertura link in una nuova scheda o finestra
function targetBlank() {
    $('.new_window').click(function(e) {
        e.preventDefault();
        window.open($(this).attr('href'));
    });	    
}

/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */

// tolgo Header e Footer
function nascondi_TopBottom() {  
	$("#header").hide();
    $("#thumb-tray").hide();
    $("#footer").hide();
    setDimensions();

    // lievi re-impostazioni dovute al fatto che le immagini sforano
    var altezzaGalleria = $("#galleria").height();
    $("#galleria > ul#supersized > li > a > img").css("height", altezzaGalleria + "px");
    $("#galleria > ul#supersized > li > a > img").css("top", "0");    
}

// mostro Header e Footer
function mostra_TopBottom() {
    $("#header").show();
    $("#thumb-tray").show();
    $("#footer").show();
    setDimensions();
    
    // lievi risettaggi inversi????? da controllare    
}

/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */

// gestione settaggio delle dimensioni x visione Full Screen
function setDimensions () {
    // prelevo le altezze degli elementi modificabili
    var altezzaSchermo = $(window).height();
	var altezzaHeader = prendiAltezza($("#header"));
	var altezzaFooter = prendiAltezza($("#footer"));
    var altezzaThumbs = prendiAltezza($("#thumb-tray"));
    
    var altezzaGalleria = altezzaSchermo - altezzaHeader - altezzaFooter - altezzaThumbs;
    $("#galleria").css("height", altezzaGalleria + "px");
	$("#galleria").css("top", altezzaHeader + "px");
}

function prendiAltezza(elemento) {
    if ((elemento.length == 0) || (elemento.is(":hidden"))) {
        return 0;
    } else {
        return elemento.height();
    }
}

/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------- */

// gestione apertura e chiusura menu
function handleMenu() {    
    // aggiunta per menu di 2° livello
    var menu2ndlevel = $("ul#navigation").find("ul ul").parent().find("> a");
    if (menu2ndlevel.length > 0) { // controllo se ci sono menu di 2° livello
        menu2ndlevel.css("background-image", "url('/img/freccia_menu.png')");
        menu2ndlevel.css("background-repeat", "no-repeat");
        menu2ndlevel.css("background-position", "right center");
    }
    
    // gestione aree e menu con le immagini
    $("ul#navigation > li").mouseenter(function() {
        if (!$(this).hasClass("active")) {
            var immagineCorrente = $(this).find(" > a > img");
            immagineCorrente.attr("src", immagineCorrente.attr("src").replace(".png", "_on.png"));
        }
        apri($(this));
    });
    $("ul#navigation > li").mouseleave(function() {
        if (!$(this).hasClass("active")) {
            var immagineCorrente = $(this).find(" > a > img");
            immagineCorrente.attr("src", immagineCorrente.attr("src").replace("_on.png", ".png"));
        }
        chiudi($(this));
    });
    
    // gestione apertura menu di 2° livello
    $("ul#navigation > li > ul > li").mouseenter(function() {
        if ($(this).find("ul").length > 0) {
            apri($(this));
        }
    });
    $("ul#navigation > li > ul > li").mouseleave(function() {
        if ($(this).find("ul").length > 0) {
            chiudi($(this));
        }
    });
}

apri=function(el) {
    $(el).addClass("open");
    $(el).find('> ul').stop(true, true).fadeIn(200);
    
}
chiudi=function(el) {
    $(el).removeClass("open");
    $(el).find('> ul').stop(true, true).fadeOut(200);
}

