﻿var tree;
var treeLocker = 0; // sert pour les selections.
var treeSlide;
var treeLoader = true;
var navigationSlide;
var miniMapSlide;
var produitsSlide;
markLockLoading = false;

// initialisation de l'arbre des menus
// gere également la création des slides 
function mootree_init() {

    //mySlide2.toggle();
    treeSlide = new Fx.Slide('mytree', { mode: 'vertical' });
    navigationSlide = new Fx.Slide('navigation', { mode: 'vertical' });
    produitsSlide = new Fx.Slide('produits', { mode: 'vertical' });
    //miniMapSlide = new Fx.Slide('navigationMiniMap', { mode: 'vertical' });

    tree = new MooTreeControl({
        div: 'mytree',
        mode: 'folders',
        grid: false,
        onSelect: function(node, state) {
        },
        onClick: function(node) {

            //restaurePrintMenu();    // on restaure la selection des menus et produits avant de faire quoi que ça soit.
            
            if ((node.div.main.className == "mooTree_node mooTree_selected" && treeLocker == 0) || treeLocker == 1) {
                // pb de synchro js, interdit le unload des points alors qu'ils ne sont pas chargés
                if (markLockLoading == false) {
                    node.div.main.className = 'mooTree_node';
                    unPrintForModalite(node.id);
                    if (node.nodes.length > 0) {
                        for (nodeTmp in node.nodes) {
                            if (node.nodes[nodeTmp].control) {
                                treeLocker = 1;
                                //node.nodes[nodeTmp].div.main.className = 'mooTree_node mooTree_selected';
                                node.nodes[nodeTmp].control.onClick(node.nodes[nodeTmp]);
                            }
                        }
                    }
                    nodeTmp = node;
                    while (nodeTmp.parent) {
                        nodeTmp.parent.div.main.className = 'mooTree_node';
                        unPrintForModalite(nodeTmp.parent.id);
                        nodeTmp = nodeTmp.parent;
                    }
                }
                //node.toggle(1, 0);
            } else {
                if (treeLocker != 2) {
                    // On est déjà en chargement, impossible de valider la selection
                    if (markLockLoading == true) {
                        return false;
                    }
                    if (node.id != null) {
                        printForModalite(node.data.url);
                    } else {
                        var i = 0;
                        var strData = "";
                        for (nodeTmp in node.nodes) {
                            if (node.nodes[nodeTmp].data) {
                                if (i > 0) {
                                    strData = strData + ",";
                                }
                                strData = strData + node.nodes[nodeTmp].data.url;
                                i++;
                            }
                        }
                        printForModalite(strData);
                    }
                }
                node.div.main.className = 'mooTree_node mooTree_selected';
                if (node.nodes.length > 0) {
                    for (nodeTmp in node.nodes) {
                        if (node.nodes[nodeTmp].control) {
                            treeLocker = 2;
                            //node.nodes[nodeTmp].div.main.className = 'mooTree_node';
                            node.nodes[nodeTmp].control.onClick(node.nodes[nodeTmp]);
                        }
                    }
                }
            }
            treeLocker = 0;
        },
        onExpand: function(node, state) {
            if (treeLoader == false) {
                //treeSlide.open = false;
                treeSlide.slideIn();
            }
        }
    }, {
        text: 'Menu',
        open: true
    });

    tree.adopt('menuData');
    tree.expand();
    document.getElementById("MenuDisplay").style.background = "url('" + iconeDir + "fond_button.png')";
    document.getElementById("NavigationDisplay").style.background = "url('" + iconeDir + "fond_button.png')";
    document.getElementById("ProduitDisplay").style.background = "url('" + iconeDir + "fond_button.png')";
    //document.getElementById("MiniMapDisplay").style.background = "url('" + iconeDir + "fond_button.png')";

    document.getElementById("LoaderDisplay").style.backgroundImage = "url('" + iconeDir + "loader.gif')";

    treeLoader = false;
    treeSlide.slideIn();

    /* Initialisation des menus selectionnes */
    for (i = 0; i < MarkTabInfoModalite.length; i++) {
        if (document.getElementById(MarkTabInfoModalite[i])) {
            document.getElementById(MarkTabInfoModalite[i]).className = "mooTree_node mooTree_selected";
        }
    }
}

// Affiche / Masque le menu
function showMenu() {
    markLockMenu = false;   // sert a empêcher l'ouverture du menu en +/-
    if (treeSlide.open) {
        treeSlide.slideOut();
    } else {
        treeSlide.slideIn();
        restaurePrintMenu();
    }
}
// Affiche / Masque la navigation
function showNavigation() {
    if (navigationSlide.open) {
        navigationSlide.slideOut();
    } else {
        navigationSlide.slideIn();
    }
}

// Affiche / Masque la minimap
function showMiniMap() {
    if (miniMapSlide.open) {
        miniMapSlide.hide();
    } else {
        miniMapSlide.toggle();
    }
}

// Affiche / Masque les produits
function showProduit() {
    if (produitsSlide.open) {
        produitsSlide.slideOut();
    } else {
        produitsSlide.slideIn();
    }
}