//
// Menu.js
//
// Copyright 2000, 2006 by Anthony Howe.  All rights reserved.
//

if (window.contains == null)
	alert('Requires Box.js script.');

/////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////

function setOpacity(el, value)
{
	el.style.opacity = value/10;
	el.style.filter = 'alpha(opacity=' + value*10 + ')';
}

function MenuOpen(parent, child_id, overClass)
{
	var submenu = document.getElementById(child_id);

	// The menu is positioned just under the menubar title.
//	var y = parent.offsetHeight - 2;
//	var x = 2;

//	// Adjust the menu position according to browser differences.
//	if (window.opera != null) {
//		// Opera
//		y += getOffsetTop(parent) - submenu.offsetTop;
//		x += getOffsetLeft(parent) - submenu.offsetLeft;
//	} else if (document.all == null) {
//		// Firefox / Mozilla
//		y += parent.offsetTop;
//		x += parent.offsetLeft;
//	}
//	// else {
//	// 	IE appears to add in the offsetTop or offsetLeft
//	// 	when either style.top or style.left are set.
//	// }

	// Position the menu.
//	submenu.style.top = y + 'px';
//	submenu.style.left = x + 'px';

	if (document.all != null) {
		submenu.style.top = (parent.offsetHeight - 2) + 'px';
		submenu.style.left = 2 + 'px';
	}

	// Event handlers to close the menu when the mouse
	// moves off the menubar title or off the menu itself.
	//
	parent.onmouseout = function (e)
	{
		e = getEvent(this, e);

		// Only close if the mouse moves off the menubar
		// title or outside the menu region.
		//
		if (e.currentTarget == parent || (e.currentTarget == submenu && !contains(submenu, e.pageX, e.pageY))) {
			submenu.style.visibility = 'hidden';
			var tail = parent.className.indexOf(overClass);
			if (0 < tail)
				parent.className = parent.className.substring(0, tail);

			e.cancelBubble = true;
			if (e.stopPropagation != null)
				e.stopPropagation();
		}
	}

	submenu.onmouseout = parent.onmouseout;

	// Event handler to close the menu when clicked,
	// typically because of an A tag.
	//
	submenu.onclick = function (e)
	{
		e = getEvent(this, e);

		if (e.currentTarget == submenu) {
			submenu.style.visibility = 'hidden';
			var tail = parent.className.indexOf(overClass);
			if (0 < tail)
				parent.className = parent.className.substring(0, tail);

			e.cancelBubble = true;
			if (e.stopPropagation != null)
				e.stopPropagation();
		}
	}

	// Display the menu.
	if (submenu.style.visibility != 'visible') {
		submenu.style.visibility = 'visible';
		parent.className += ' '+overClass;
	}
}

/////////////////////////////////////////////////////////////
// END
/////////////////////////////////////////////////////////////

