// $Id: um-menu.js,v 1.14 2006/11/22 21:47:49 christian Exp $


function umInitMenu()
{

	// abort if old browser
	if (!document.getElementById || !document.getElementsByTagName) return;

	function getToRightNode(ref)
	{
		if (!ref.childNodes || typeof ref.childNodes.length != 'number') return false;
		// we're looking for the first text node
		for (var i = 0; i < ref.childNodes.length; i++)
		{
			if (Number(ref.childNodes[i].nodeType) == 3) return i;
		}
		return false;
	}

	// strings predefined elsewhere
	var menuId = 'um-menu-vertical';
	var ulClassName = 'um-deuxieme-niveau';
	var ulToOpenHolderId = 'um-menu-ouvert';
	var currentPageHolderId = 'um-menu-pointeur';
	var currentPageClassName = 'um-menu-pointeur';


	// gather info to open submenu
	var ulToOpenId = '';
	var ulToOpenIdHolder = document.getElementById(ulToOpenHolderId);
	if (ulToOpenIdHolder && getToRightNode(ulToOpenIdHolder) !== false)
	{
		ulToOpenId = ulToOpenIdHolder.childNodes[getToRightNode(ulToOpenIdHolder)].nodeValue.replace(/\s/g,'');
		ulToOpenIdHolder.style.display = 'none';
	}

	// gather info for menu pointer
	var currentPageId = '';
	var currentPageHolder = document.getElementById(currentPageHolderId);
	if (currentPageHolder && getToRightNode(currentPageHolder) !== false)
	{
		currentPageId = currentPageHolder.childNodes[getToRightNode(currentPageHolder)].nodeValue.replace(/\s/g,'');
		currentPageHolder.style.display = 'none';
	}

	// get objects
	var currentPage = document.getElementById(currentPageId);
	var ulToOpen = document.getElementById(ulToOpenId);
	var menu = document.getElementById(menuId);
	if (!menu) return;

	// close all submenus
	for (var i = 0, ul; ul = menu.getElementsByTagName('ul')[i]; i++)
	{
		if (ul.className && ul.className == ulClassName) ul.style.display = 'none';
	}

	// open submenu
	if (ulToOpen) ulToOpen.style.display = '';

	// place pointer
	if (currentPage) currentPage.className += (' ' + currentPageClassName);
}

function umOuvreMenu(ul)
{
	var menu = document.getElementById(ul);
	menu.style.display = (menu.style.display == '' ? 'none' : '');
	if (menu.blur) menu.blur();
	return false;
}

