/*************************/
/* FICHIER JS PRINCIPAL */
/*************************/
/*
 * Ici on gere les onglets bas et les diaporamas du mainpage
 * Les autres comportements scriptés (formulaire et carte)
 * sont gérés directement dans les templates correspondants
 */

// variable globale pour maintenir l'ID du diaporama en cours
var diapoID;
var flagReecriture = false;

// JQUERY INIT
$(document).ready(function() {

    

    /********************************/
    /* GESTION DES ONGLETS BAS */
    /********************************/
    var jDiapo = $("#ONGLETS ul#diaporamas li");
    var jPanneauxV = $("#ONGLETS ul.panneauxVerticaux li div.panneauTitre");
    var jPanneauxVLi = $("#ONGLETS ul.panneauxVerticaux li");

    // Initialisation du fonctionnement des 3 onglets généraux
    $("#tabs").tabs();

    // clic sur un des trois onglets generaux
    $("#tabs ul.ui-tabs-nav li a").click(function() {
        var lesOnglets  = $("#tabs ul.ui-tabs-nav li");
        var monOnglet = $(this).parent();
        var classeCourant = "courant_"+monOnglet.attr("id")
        // reinit de l'onglet courant'
        jPanneauxVLi.removeClass("courant");
        // si panneau fermé, on ouvre
        if($("#ONGLETS").hasClass("ferme")) {
            $("#ONGLETS").removeClass("ferme");
            lesOnglets.removeClass("courant_ongletExt");
            lesOnglets.removeClass("courant_ongletInt");
            lesOnglets.removeClass("courant_ongletEven");
            monOnglet.addClass(classeCourant);
            // ouverture en fonction de la hauteur de l'ecran
            var marginBottom = $(window).height()-697;
            // si ecran trop petit on passe en absolute pour avoir un ascenseur
            if(marginBottom<-3) {
                $("#ONGLETS").css({"position":"absolute"});
            }

            jPanneauxV.css({"opacity":"1"});
            $("#ONGLETS").animate({"margin-bottom":marginBottom+"px"}, 200);
            if(jDiapo.hasClass("diapo-haut")) {
                jDiapo.animate({"top":"1000px"},250, detruireDiapo);
            }

            // on active l'onglet haut "accueil"
            $("div.menuTop ul li").removeClass("courant");
            $("div.menuTop ul li a").eq(5).parent().addClass("courant");
            
        // si panneau ouvert, on ferme le diaporama si il est ouvert
        } else {
            // on ferme le diaporama
            if(jDiapo.hasClass("diapo-haut")) {
                jDiapo.removeClass("diapo-haut").addClass("diapo-bas");
                jDiapo.animate({"top":"1000px"},250,detruireDiapo);
            }
            jPanneauxV.css({"opacity":"1"});
            lesOnglets.removeClass("courant_ongletExt").removeClass("courant_ongletInt").removeClass("courant_ongletEven");
            monOnglet.addClass(classeCourant);
        }
    })

    // Clic sur le bouton "fermer"
    $("li#ongletFermer").click(function() {
        // si le panneau est ouvert on ferme
        if(!$("#ONGLETS").hasClass("ferme")) {
            // si un diaporama est ouvert on le ferme puis on ferme les onglets generaux
            if(jDiapo.hasClass("diapo-haut")) {
                jDiapo.removeClass("diapo-haut").addClass("diapo-bas");
                jDiapo.animate({"top":"1000px"},250,function() {
                    $("#ONGLETS").animate({"margin-bottom":"-487px"}, 200, function() {
                        jDiapo.css({"top":"1000px"}, detruireDiapo);
                    });
                    // mise à jour des classes d'etat
                    $("#ONGLETS").addClass("ferme");
                    $("#tabs ul li.onglet").removeClass("courant_ongletInt").removeClass("courant_ongletExt").removeClass("courant_ongletEven");
                    detruireDiapo();
                })
            // si le diaporama est ferme on ferme le panneau general
            } else {
                $("#ONGLETS").animate({"margin-bottom":"-487px"}, 200, function() {
                    jDiapo.css({"top":"1000px"});
                });
                // mise à jour des classes d'etat
                $("#ONGLETS").addClass("ferme");
                $("#tabs ul li.onglet").removeClass("courant_ongletInt").removeClass("courant_ongletExt").removeClass("courant_ongletEven");
            } //  if(jDiapo.hasClass("diapo-haut")) {
        } // if(!$("#ONGLETS").hasClass("ferme")) {
        // si on a geré l'ouverture des onglets selon l'URL on repart à l'accueil
        if(flagReecriture) {
            window.location = "http://www.signetis.com/web";
        } else {
            // on met a  jour l'onglet top en surbrillance
            updateRubriqueEnCours();
        }
        // on repasse en position fixed pour virer l'ascenseur
        $("#ONGLETS").css({"position":"fixed"});
    }) // clic fermer

    // clic sur un panneau vertical pour ouverture / fermeture du diaporama
    jPanneauxVLi.click(function() {
        // on reagit que si pas d'anim en cours
        if(!jDiapo.is(":animated")) {
            // si on clic sur le panneau courant on ferme le diapo
            if($(this).hasClass("courant")) {
                $(this).removeClass("courant");
                jDiapo.removeClass("diapo-haut").addClass("diapo-bas");
                jDiapo.animate({"top":"1000px"},250, detruireDiapo);
                jPanneauxV.css({"opacity":"1"});
            // sinon on ferme si besoin le diaporama, on charge le nouveau et ou reouvre
            } else {
                // gestion de l'opacite des titres de section
                jPanneauxV.css({"opacity":"0.5"});
                $(this).find("div.panneauTitre").css({"opacity":"1"});
                // gestion de la classe "courant"
                jPanneauxVLi.removeClass("courant");
                $(this).addClass("courant");
                // index de la section concernée (= id de l'article spip concerné)
                diapoID = $(this).attr("id");
                // si un diapo est affiche on ferme le diapo, on charge le nouveau
                if(jDiapo.hasClass("diapo-haut")) {
                    jDiapo.removeClass("diapo-haut").addClass("diapo-bas");
                    jDiapo.animate({"top":"1000px"},250,construireDiapo);
                // sinon on charge le nouveau
                } else {construireDiapo();}
                // ouverture du diapo
                jDiapo.removeClass("diapo-bas").addClass("diapo-haut");
                jDiapo.animate({"top":"136px"},250);
            }
        } // if pas d'anim
    }) // click

    /*****************************/
    /* GESTION ONGLETS HAUT  */
    /*****************************/
    // mise en surbrillance de l'onglet top en cours
    updateRubriqueEnCours();

    // ouverture des onglets par le menu top
    $("li#lienSignaletique").click(function() {
        if($("#ONGLETS").hasClass("ferme")) {
            $("li#ongletExt a").trigger("click");
            $("div.menuTop ul li").removeClass("courant");
            $(this).addClass("courant");
        }
        return false;
    })
    if($("div.menuTop ul li.courant").length == 0) {
        $("div.menuTop ul li").eq(4).addClass("courant");
    }
    

    /************************************************************/
    /* GESTION DES DIAPORAMAS DANS LE CORPS DE LA PAGE */
    /************************************************************/
    // lancement du comportement du diaporama
    $("#diaporama_main").galleryView({
        panel_width: 300,
        panel_height: 310,
        pause_on_hover: true,
        nav_theme: "light",
        show_panels:false,
        show_filmstrip: false,
        transition_speed: 300,
        transition_interval: 3000,
        always_show_nav: false,
        border:"none"
    })

    /************************************************/
    /* GESTION DES URLS OUVRANT LES ONGLETS */
    /************************************************/
    var url = location.href;
    // signaletique exterieure
    if(url.indexOf("signaletique") != -1) {
        if(url.indexOf("exterieure") != -1) {
            $("ul.ui-tabs-nav li#ongletExt a").trigger("click");
            flagReecriture = true;
        }
        if(url.indexOf("interieure") != -1) {
            $("ul.ui-tabs-nav li#ongletInt a").trigger("click");
            flagReecriture = true;
        }
        if(url.indexOf("evenementielle") != -1) {
            $("ul.ui-tabs-nav li#ongletEven a").trigger("click");
            flagReecriture = true;
        }
    }



}) // $(document).ready(function() {

/***************/
/* FONCTIONS */
/***************/
// Construction des diapos dans la zone des onglets bas selon la variable globale diapoID
function construireDiapo() {

    var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;

    // reinit diaporama
    $("#ONGLETS").unbind("mousemove");
    $('img.nav-prev_photos1').unbind("click");
    $('img.nav-next_photos1').unbind("click");
    $(document).stopTime("transition_photos1");
    // on recupere le diaporama concerné, définit dans le javascript inline (car contient des boucles SPIP)
    var diapoCourant = eval('diapo'+diapoID);
    // construction du diaporama en fonction de l'id diapoID
    $("#ONGLETS ul#diaporamas li").html(diapoCourant);
    // lancement
    $("#ONGLETS ul#diaporamas li div.diaporama").galleryView({
        panel_width: 500,
        panel_height: 300,
        pause_on_hover: true,
        nav_theme: "light",
        show_panels:true,
        show_filmstrip: false,
        transition_speed: 300,
        transition_interval: 3000,
        always_show_nav: true
    })
    // ajustement CSS
    if(ie7) {
        $("#ONGLETS ul#diaporamas li div.diaporama").css({"margin":"30px 0px 0px 5px"});
    } else {
        $("#ONGLETS ul#diaporamas li div.diaporama").css({"margin":"30px 0px 0px 40px"});
    }

    if(getInternetExplorerVersion() >= 8.0) {
        $("#ONGLETS ul#diaporamas li div.diaporama").css({"margin-left":"40px"});
    }
    $("#ONGLETS ul#diaporamas li").show();

}

// Destruction du diaporama des onglets bas
function detruireDiapo() {
    // reinit des routines javascript associées au diaporama
    $("#ONGLETS").unbind("mousemove");
    $('img.nav-prev_photos1').unbind("click");
    $('img.nav-next_photos1').unbind("click");
    $(document).stopTime("transition_photos1");
    // vidage du conteneur HTML
    $("#ONGLETS ul#diaporamas li").html("").hide();

}

// Gestion de l'entrée du menu top en surbrillance
function updateRubriqueEnCours() {
    $("div.menuTop ul li").removeClass("courant");
    var jOngletsTop = $("div.menuTop ul li a");
    // on recupere l'ID de la rubrique en cours
    var rub = $("div.menuTop ul").attr("class");
    // selon l'ID rubrique on affecte la classe "courant" au bon onglet
    switch(rub) {
        case "5":jOngletsTop.eq(3).parent().addClass("courant");break;
        case "7":jOngletsTop.eq(2).parent().addClass("courant");break;
        case "8":jOngletsTop.eq(1).parent().addClass("courant");break;
        case "9":jOngletsTop.eq(0).parent().addClass("courant");break;
        default:jOngletsTop.eq(4).parent().addClass("courant");break;
    }
}

function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null) rv = parseFloat(RegExp.$1);
    }
    return rv;
}
