var delai = 650;
var Menu2pma = Class.create() 

Menu2pma.prototype = {
    initialize: function() {

        this.menu_items = new Array();
        this.timeout = null;
        this.something_to_hide = 0;

        if (!document.getElementById){ return; }
        menu = document.getElementById('menu2pma');
        items = document.getElementsByClassName('menu-item',menu);
        for (var j = 0; j < items.length; j++) {
            menu_item = items[j];
            var relAttribute = String(menu_item.getAttribute('rel'));
            var submenuid = '';
            var submenu;
            if (relAttribute && relAttribute.toLowerCase().match('submenu')) {
                submenuid = relAttribute.toLowerCase();
                if (submenu = document.getElementById(submenuid)) {
                    submenu.onmouseover = function() { myMenu2pma.cancelHideSubmenu(); }
                    submenu.onmouseout = function() { myMenu2pma.delayHideSubmenu(); }
                    this.menu_items.push(menu_item);
                    menu_item.submenu = submenu;
                    menu_item.onclick = function() { /*return false;*/ }
                    menu_item.onmouseover = function() { myMenu2pma.showSubmenu(this); }
                    menu_item.onmouseout = function() { myMenu2pma.delayHideSubmenu(); }
                }
            } else {
                menu_item.onmouseover = function() { myMenu2pma.hideSubmenu(); }
            }
        }
    },

    showSubmenu: function(element) {
        this.cancelHideSubmenu();
        if (this.something_to_hide) this.hideSubmenu();
        Element.show(element.submenu);
        this.something_to_hide = 1;
    },
    
    hideSubmenu: function() {
        for (var j = 0; j < this.menu_items.length; j++) {
            Element.hide(this.menu_items[j].submenu);
        }
        this.something_to_hide = 0;
    },

    delayHideSubmenu: function(element) {
        this.timeout = setTimeout(function() { myMenu2pma.hideSubmenu()},delai);
    },

    cancelHideSubmenu: function() {
        if (this.timeout) clearTimeout(this.timeout)
    }
}

function initMenu() { myMenu2pma = new Menu2pma(); }
Event.observe(window, 'load', initMenu, false);
