function ResolveXpath(node,xpath)
{
	if(!node)
		return null;
	if(!xpath)
		return node;
	var cnode = node;
	tXpath = xpath.split(/[\\\/]/);
	for(var i = 0;i<tXpath.length;i++)
	{
		if(tXpath[i] == "..")
			cnode = cnode.parentNode;
		else if(tXpath[i] == "." || tXpath[i] == "~")
			continue;
		else
		{
			var n = cnode.getElementsByTagName(tXpath[i])
			if(cnode && tXpath[i] != "" && n.length > 0)
				cnode = n[0];
		}
	}
	return cnode;
}
// Gestion du menu
Menu = new Object();
Menu.currentNode = null
Menu.show = function(refnode,xpath,xpathHover)
{
	(refnode) && (refnode.className += ' hover');
	var node = ResolveXpath(refnode,xpath);
	var nodeHover = ResolveXpath(refnode,xpathHover);
	if(node==refnode)
		return false;
	Menu.hide(this.currentNode);
	if(node)
	{
		this.currentNode = node;
		//alert(this.currentNode);
		nodeHover.className ='hover';
		this.currentNode.style.visibility = 'visible';
	}
}

Menu.hide = function(refnode,xpath,xpathHover)
{
	(refnode) && (refnode.className = refnode.className.replace(/\s+hover/,""));
	var node = ResolveXpath(refnode,xpath);
	var nodeHover = ResolveXpath(refnode,xpathHover);
	if(node==refnode)
		return false;
	if(node)
	{
		nodeHover.className ='';
		node.style.visibility = 'hidden';
 	}
}

