/**
 * Rednexus Menu script
 *
 * @author Xander van Alst
 * @copyright Copyright 2005/2006 Xander van Alst
 * @name index.php
 * @version 1.0
 *
 * This script is tested on IE, Fireworks en Gecko (KDE)
 */

//xva Determine is a value is empty or not
function notEmpty(val) {
	if (val==null) return false;
	if (val=="") return false;
	if (val=="undefined") return false;
	return true;
}

//xva Get a particular DIV by its name
function getDivByName(divName) {
	if (notEmpty(divName)) {
		var  divList = document.getElementsByTagName('DIV');
		for( var x = 0; divList[x]; x++ ) {
			var sm = divList[x];
			if (sm.getAttribute('name')==divName) return sm;
		}
	}
	return null;
}

//xva this functis is called when the mouse enters a MenuItem
function miMouseEnter(aMi) {
	aMi.style.visibility="visible";
	mmMouseEnter(aMi);
}

//xva This function is called when the mouse leaves a MenuItem
function miMouseLeave(aMi) {
	aMi.style.visibility="hidden";
}

//xva This fynction is called by the Main Menu item, to show its submen
function mmMouseEnter(aMi) {
	var sm=getDivByName(aMi.getAttribute('menu'));
	if (sm!=null) {
		//xva determine xy position
		var op=aMi;
		var x=0;
		var y=0;
		while (op!=null) {
			if (op.style.position=='absolute') break;
			x+=op.offsetLeft;
			y+=op.offsetTop;
			op=op.offsetParent;
		}
		if (aMi.getAttribute('malign')=="rt") {
			x+=aMi.offsetWidth;
		}
		else {
			y+=aMi.offsetHeight;
		}
		sm.style.position='absolute';
		sm.style.left=x;
		sm.style.top=y;
		sm.style.visibility="visible";
		sm.onmouseover = function() { miMouseEnter(this); };
		sm.onmouseout = function() { miMouseLeave(this); };
	}
}

//xva This function is called when the mouse leaves a MainMenu item
function mmMouseLeave(aMi) {
  	var sm=getDivByName(aMi.getAttribute('menu'));
	if (sm!=null) {
		sm.style.visibility="hidden";
	}
}

//xva When a DIV section has a menu attribute, this code will attache a
//xva onmouseout and onmouseover to enabled its menu
for( var x = 0, divList = document.getElementsByTagName('DIV'); divList[x]; x++ ) {
	var mm = divList[x];
	if (notEmpty(mm.getAttribute('menu'))) {
		mm.onmouseout = function () { mmMouseLeave(this); };
		mm.onmouseover = function () { mmMouseEnter(this); };
	}
}
