menuManager           = new Object();
menuManager.timer     = null;
menuManager.currMenu  = null;
menuManager.delay     = 400;

menuManager.showMenu = function(event){

        // get menu to display
        menuName    = this.id.substr(9);

        // hide any open menu
        menuManager.hideMenuNow();

        // check we have a content div
        if( $('menuContent' + menuName) ){

		// save object
		menuManager.currMenu = $('menuContent' + menuName);

		// set position
		Element.clonePosition(menuManager.currMenu, this, {

			setLeft: true,
			setTop: true,
			setWidth: false,
			setHeight: false,
			offsetTop: this.height
		});

                // display
                menuManager.currMenu.style.display = 'block';
        }
};

menuManager.hideMenu = function(event){

        // hide menu after timeout
        menuManager.timer = setTimeout('menuManager.hideMenuNow();', menuManager.delay);
};

menuManager.hideMenuNow = function(){

        if( menuManager.currMenu ){

                menuManager.currMenu.style.display = 'none';
                menuManager.currMenu = null;

                clearTimeout(menuManager.timer);
        }
};

menuManager.cancelTimer = function(){

        if( menuManager.timer )
                clearTimeout(menuManager.timer);
};

document.observe("dom:loaded", function(){

        $$('.menuActor').each(function(item){

                item.observe('mouseover', menuManager.showMenu);
                item.observe('mouseout', menuManager.hideMenu);
        });

        $$('.menuContent').each(function(item){

                item.observe('mouseover', menuManager.cancelTimer);
                item.observe('mouseout', menuManager.hideMenu); 
        });
});
