
/**
 * ???
 */
Navigo2.UI.Menu = function(/*HTMLElement*/element) {

	var panel = undefined;
	if(element!=undefined) {
		var panel = $(element).cloneNode(false);
	}
	
	/**
	 * ???
	 */
	Event.observe(document, 'menu:switch', function(event) {
		var menuNo = event.memo.args[0];
		if(panel != undefined && panel.menus != undefined) {
			panel.menus.each(function(menu, index) {
				if(index == menuNo) {
					menu.show();
				}
				else {
					menu.hide();
				}
			});
		}
	});
	
	/**
	 * ???
	 */
	Event.observe(document, 'menu:show', function(event) 
	{
        var selected = event.memo.args[0];
		if(panel!=undefined && !panel.initialised) {
			Navigo2.DAO.getMenuComponent("component.menu", selected, function(html) {
				html = Navigo2.normalisedHTML(html);
				panel.update(html);
				panel.menus = panel.select("div[elementType='navigomenu']");
				panel.menus[selected].show();
				element = $($(element).identify());
				panel.initialised = true;
			});
		} 	

		$(panel.id).replace(panel.show());
	});
};

