/*
 * inspired by the one written by Andy Peatling at http://www.cssdev.com/ (2006)
 *
 * @author	W-Mark Kubacki; kubacki@hurrikane.de
 */

function collapseMenu(node) {
	$$('#menu ul').each(Element.hide);
}

function prepareMenu() {
	$$('#menu a').each(function(item) {
		Event.observe(item, 'click', function() {
			markAsActive($(this));
			hideOtherSubMenus($(this));
			showSubMenu($(this).ancestors()[0].select('ul')[0]);
		});
	});
}

function markAsActive(node) {
	var menu_parent = $('menu');
	menu_parent.select('a.active').invoke('removeClassName', 'active');
	menu_parent.select('a.active_leaf').invoke('removeClassName', 'active_leaf');
	node.addClassName('active');
	node.ancestors().each(function(item) {
		if(item.descendantOf(menu_parent)) {
			if(item.tagName == 'LI') {
				e = item.select('a')[0];
				if(e.hasClassName('dynMenuLeaf')) {
					e.addClassName('active_leaf');
				} else {
					e.addClassName('active');
				}
			}
		} else {
			throw $break;
		}
	});
}

function hideOtherSubMenus(node) {
	up = node.ancestors()[1];
	if(up.tagName == 'UL') {
		up.select('ul').each(hideSubMenu);
	}
}

function hideSubMenu(node) {
	Element.hide(node);
}

function showSubMenu(node) {
	if(!node) return;
	Element.show(node);
}

document.observe('dom:loaded', collapseMenu);
document.observe('dom:loaded', prepareMenu);

