var isNav, isIE, isN6;
if (document.layers) isNav = true;
else if (document.all) isIE = true;
else if (document.getElementById) isN6 = true;

var activemenu = new Array();

//Track visible menus 
var activemenus = 0;
var lastOpenedSubmenu = null;

function buttonMouseover(event, menuId) {
	var x; var y; 
// Attach ommouseout event upon entry 
	if (isIE) srcElement = window.event.srcElement;
	else srcElement = event.currentTarget;
	srcElement.className = 'menuButton menuButtonActive';
	srcDiv = srcElement.parentNode;
	srcDiv.onmouseout = menuMouseOut;
	activemenu[0] = srcElement;
	activemenus = 1; 
// Find submenu to be shown 
	subMenu = document.getElementById(menuId);
	subMenu.level = activemenus; activemenu[activemenus] = subMenu; activemenus++;
	if (isIE && (null == subMenu.iframe)) {
		subMenu.iframe = subMenu.parentNode.insertBefore(document.createElement('IFRAME'), subMenu);
		subMenu.iframe.style.position = 'absolute'; subMenu.iframe.style.visibility = 'hidden';
		}
// Find position where we should place our submenu 
	x = getPageOffsetLeft(srcElement); 
	y = getPageOffsetTop(srcElement) + srcElement.offsetHeight; 
// Move & show submenu 
	subMenu.style.position = 'absolute';
	subMenu.style.visibility = 'visible';
	subMenu.style.left = x + 'px';
	subMenu.style.top = y + 'px';
	lastOpenedSubmenu = null;
	if (!subMenu.formatted) formatSubMenu(subMenu);
	if (isIE) {
		subMenu.iframe.style.left = x + 'px';
		subMenu.iframe.style.top = y + 'px';
		subMenu.iframe.style.width = subMenu.offsetWidth + 'px';
		subMenu.iframe.style.height = subMenu.offsetHeight + 'px';
		subMenu.iframe.style.visibility = 'visible';
		}
	} 

function formatSubMenu(subMenu) {
	subMenuItems = subMenu.getElementsByTagName('A');
	var width = 0;
	var w;
	var i;
	var ii;
	width = subMenuItems[0].offsetWidth;
	for (i = 0; i < subMenuItems.length; i++) {
		myText = subMenuItems[i].getElementsByTagName('SPAN');
		if (myText.length > 0) myText[0].style.paddingRight = (width - (myText[0].offsetWidth + myText[1].offsetWidth)) + 'px';
		subMenuItems[i].onmouseout = menuMouseOut;
		if (subMenuItems[i].onmouseover == null) subMenuItems[i].onmouseover = menuMouseover;
		}
	w = subMenuItems[0].offsetWidth;
	subMenuItems[0].style.width = width + 'px';
	subMenuItems[0].style.width = w + "px";
	dw = subMenuItems[0].offsetWidth - w;
	w -= dw;
	subMenuItems[0].style.width = w + "px";
	subMenu.formatted = true;
	}

function menuMouseOut(event) {
	var i;
	var j;
	if (isIE) newFocus = window.event.toElement;
	else newFocus = event.relatedTarget; 
// The following strange looking syntax is a regex test :)
	if ((null == newFocus) || !/^menuItem.*$/.test(newFocus.className)) {
// Close all open menus 
		for (i = 1; i < activemenus; i++) {
			subMenuItems = activemenu[i].getElementsByTagName('A');
			for (j = 0; j < subMenuItems.length; j++) removeClass(subMenuItems[j], 'menuItemHighlight');
			if (isIE) activemenu[i].iframe.style.visibility = 'hidden'; activemenu[i].style.visibility = 'hidden';
			} 
		activemenu[0].className = 'menuButton';
		activemenus = 0;
		}
	}
	function menuMouseover(event) { 
// Attach ommouseout event upon entry
	if (isIE) srcElement = window.event.srcElement;
	else srcElement = event.currentTarget;
	if ('A' == srcElement.tagName) {
		if (lastOpenedSubmenu != srcElement) closeDeeperMenus();
		}
	} 

// Expand submenu to the right 
function menuItemMouseover(event, menuId) { 
	var i;
	if (isIE) srcElement = window.event.srcElement;
	else srcElement = event.currentTarget;
	if ('SPAN' == srcElement.tagName) srcElement = srcElement.parentNode;
	if ('A' != srcElement.tagName) return;
	srcElement.onmouseout = menuMouseOut;
	closeDeeperMenus();
	lastOpenedSubmenu = srcElement;
	addClass(srcElement, 'menuItemHighlight'); 
// Find submenu to be shown 
	subMenu = document.getElementById(menuId); 
	subMenu.level = activemenus; 
	activemenu[activemenus] = subMenu; 
	activemenus++; 
	if (isIE && (null == subMenu.iframe)) { 
		subMenu.iframe = subMenu.parentNode.insertBefore(document.createElement('IFRAME'), subMenu);
		subMenu.iframe.style.position = 'absolute';
		subMenu.iframe.style.visibility = 'hidden';
		}
// Find position where we should place our submenu 
	if ('SPAN' == srcElement.tagName) srcElement = srcElement.parentNode;
	x = getPageOffsetLeft(srcElement) + srcElement.offsetWidth;
	y = getPageOffsetTop(srcElement); 
// Move & show submenu 
	subMenu.style.position = 'absolute';
	subMenu.style.left = x + 'px';
	subMenu.style.top = y + 'px';
	subMenu.style.visibility = 'visible';
	if (isIE) {
		subMenu.iframe.style.left = x + 'px';
		subMenu.iframe.style.top = y + 'px';
		subMenu.iframe.style.width = subMenu.offsetWidth + 'px';
		subMenu.iframe.style.height = subMenu.offsetHeight + 'px';
		subMenu.iframe.style.visibility = 'visible';
		}
	if (!subMenu.formatted) formatSubMenu(subMenu);
	}

function closeDeeperMenus() {
	var i;
	var j; 
// Close deeper submenus 
	subMenu = findContainingDiv(srcElement);
	for (i = subMenu.level + 1; i < activemenus; i++) {
		subMenuItems = subMenu.getElementsByTagName('A');
		for (j = 0; j < subMenuItems.length; j++) removeClass(subMenuItems[j], 'menuItemHighlight');
		if (isIE) activemenu[i].iframe.style.visibility = 'hidden'; activemenu[i].style.visibility = 'hidden';
		} 
	activemenus = subMenu.level + 1;
	} 

function getPageOffsetLeft(obj) {
	var x;
	x = obj.offsetLeft;
	if (obj.offsetParent != null) x += getPageOffsetLeft(obj.offsetParent);
	return x;
}

function getPageOffsetTop(obj) {
	var y;
	y = obj.offsetTop;
	if (obj.offsetParent != null) y += getPageOffsetTop(obj.offsetParent);
	return y; 
	}

function findContainingDiv(obj) {
	while((obj.tagName != 'DIV') && (null != obj.parentNode)) obj = obj.parentNode;
	if ('DIV' == obj.tagName) return obj; else return null;
	} 

function addClass(obj, cls) {
	obj.className += ' ' + cls;
	}

function removeClass(obj, cls) {
	var i;
	newclasses = ''; 
	classes = obj.className.split(' ');
	for (i = 0; i < classes.length; i++) if (classes[i] != cls) newclasses += ' ' + classes[i]; if (newclasses.length > 1) newclasses = newclasses.substr(1); obj.className = newclasses;
	}
	

