   

// START --- Buttons (& dropMenu) Angled ---
		var currNode;
		var parNode;	
		var menuNode;		
		var containerNode;
		var containerId;

	function containsNode(containerNode, testNode)
	{
	 if((testNode != null) && (containerNode != null))
	 {
		while (testNode.parentNode)
		{
			testNode = testNode.parentNode;
			if (testNode == containerNode)
			return true;
		}
	 }
		return false;
	}
	function onButtonOver(event, containingMenu, menu, id, top, right)
	{
		var menuX, menuY;		  
		currNode = document.getElementById(id);
		parNode = currNode.parentNode;
		if(containingMenu != null && containingMenu != '')
		{
		containerId = containingMenu;
		}
		if(menu != null && menu != '') 
		{
			menuNode = document.getElementById(menu);
	 		if((typeof(window.event) != "undefined"))
	 	 	{
				menuY = currNode.getBoundingClientRect().bottom + document.documentElement.scrollTop + document.body.scrollTop + top;
				menuX = currNode.getBoundingClientRect().left + document.documentElement.scrollLeft + document.body.scrollLeft + right;		
	 		 }
	 		 else /* Netscape */
	 		 {
				menuY = event.clientY + window.scrollY;
				menuX = event.clientX + window.scrollX;
	 		 }
			menuNode.style.top = menuY;
			menuNode.style.left = menuX;		
			menuNode.style.visibility = "visible";	
		}
		else
		{
		menuNode = null;	
		}
		parNode.onmouseout = onButtonOut;
	}
	function onButtonOut(evt)
	{
		if(typeof(window.event) != "undefined")
		{
			newNode = window.event.toElement;
		}
		else  /* Netscape */
		{
			newNode = evt.relatedTarget;
		}
		/* 	#1 			
		containerNode = parNode.parentNode;	
		prevSibNode = parNode.previousSibling;
		nextSibNode = parNode.nextSibling;
		if(parNode != newNode && menuNode!= newNode && prevSibNode != nextSibNode && menuNode!= newNode
		   && !containsNode(containerNode.parentNode,newNode) && !containsNode(menuNode,newNode))
		*/
		/* 	#2
		if(parNode != newNode && menuNode!= newNode && !containsNode(parNode.parentNode,newNode) && !containsNode(menuNode,newNode))
		*/
		/* 	#3
		if(parNode != newNode && menuNode!= newNode && !containsNode(parNode,newNode) && !containsNode(menuNode,newNode))
		*/
		if(parNode != newNode && menuNode!= newNode && (containerId == null || containerId == '')
		   && !containsNode(parNode,newNode) && !containsNode(menuNode,newNode))
		  {
			  ResetControls();
		  }		 
		 else
		  {	
		  if(menuNode != null) 
		    {
		      menuNode.onmouseout = onMenuOut;
		    }
		  }
	}
	function onMenuOut(evt)
	{
		if(typeof(window.event) != "undefined")
		{
			newNode = window.event.toElement;
		}
		else  /* Netscape */
		{
			newNode = evt.relatedTarget;
		}
		if(containerId != null && containerId != '')
		{
			containerNode = document.getElementById(containerId);
			if(parNode != newNode && menuNode!= newNode && containerNode!= newNode && !containsNode(menuNode,newNode) && !containsNode(containerNode,newNode))
		 	 {
				  ResetControls();
		 	 }
			else if(containsNode(containerNode,newNode) && !containsNode(menuNode,newNode) )
		 	 {
		     			 menuNode.style.visibility = "hidden";
		 	 }					  
		  }
		else if(parNode != newNode && menuNode!= newNode && !containsNode(parNode,newNode) && !containsNode(menuNode,newNode))
		  {
			  ResetControls();
		  }		
	}
	function ResetControls()
	{	
		    if(containerId != null && containerId != '') 
		      {
			  containerNode = document.getElementById(containerId);
		      containerNode.style.visibility = "hidden";		
		      menuNode.style.visibility = "hidden";
			  }
			  else if(menuNode != null) 
			  {
		      menuNode.style.visibility = "hidden";
			  }
		currNode = null;
		parNode = null;	
		menuNode = null;		
		containerNode = null;
		containerId = null;
	}
// END --- Buttons (& dropMenu) Angled ---

