﻿(function() {
    dojo.registerModulePath('cyim', '../cyim');
    dojo.require('cyim.dojo.widgets.MenuX');

    if (typeof (this.cyim.common) == "undefined") {
        this.cyim.common = {};
    }

    if (typeof (this.cyim.common.menu) == "undefined") {
        this.cyim.common.menu = {};
    }

    //Création du menu dojo
    //  MenuTagId : l'élément HTML correspondant au menu (ul)
    //  openOnMouseOver : Les éléments s'ouvrent-ils au survol
    //  initArr : les éléments à ouvrir lors de l'initialisation
    cyim.common.menu.createMenu = function(menuTagId, openOnMouseOver, closeDelay, initArr) {
        var menu = dojo.byId(menuTagId);
        var arguments = {};
        if (!openOnMouseOver) {
            arguments.closeDelay = 0;
        } else {
            arguments.closeDelay = closeDelay;
        }
        if ((!openOnMouseOver) && (initArr) && (initArr.length > 0)) {
            arguments._openedItems = initArr;
        }
        if (dijit.byId(menuTagId) != undefined) {
            dijit.byId(menuTagId).destroy();
        }
        var clicMenu = new cyim.dojo.widgets.MenuX(arguments, menu);
        dojo.query('> li', menu).forEach(function(item) {
            cyim.common.menu.generateItem(item, openOnMouseOver);
        });
        clicMenu.startup();
        clicMenu.showMenu();
    },

    //Création d'un element du menu dojo
    cyim.common.menu.generateItem = function(item, openOnMouseOver) {
        var itemDojo = new cyim.dojo.widgets.MenuItemX({ openOnMouseOver: openOnMouseOver }, item);
        dojo.query('> ul', item).forEach(function(submenu) {
            var subMenuDojo = new cyim.dojo.widgets.MenuX({}, submenu);
            dojo.query('> li', submenu).forEach(function(subitem) {
                cyim.common.menu.generateItem(subitem, openOnMouseOver);
            });
        });
    }

})();
