function getMouseXY (e) {
	var mouseCoords=new Array();
	mouseCoords['x']=0;
	mouseCoords['y']=0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{
		mouseCoords['x'] = e.pageX;
		mouseCoords['y'] = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		mouseCoords['x'] = e.clientX + document.documentElement.scrollLeft;
		mouseCoords['y'] = e.clientY + document.documentElement.scrollTop;
	}
	return mouseCoords;
}

function Menu(currentMenuItemId,subMenuAreaId) {
	this.menuItemObj=new Array();
	this.submenuObj=new Array();
	this.currentMenuItem=document.getElementById(currentMenuItemId);
	this.currentSubmenuObj=null;
	this.selectedSubmenuObj=null;
	this.subMenuArea=document.getElementById(subMenuAreaId);
}

function addSubmenu(menuItemId,subMenuDivId) {
	var numOfObj=this.menuItemObj.length;
	this.menuItemObj[numOfObj]=document.getElementById(menuItemId);
	if (subMenuDivId!=null) {
		this.submenuObj[numOfObj]=document.getElementById(subMenuDivId);
	} else {
		this.submenuObj[numOfObj]=null;
	}
	if (document.getElementById(menuItemId)==this.currentMenuItem) {
		this.selectedSubmenuObj=document.getElementById(subMenuDivId);
		this.showSelectedSubmenu();
		this.currentSubmenuObj=this.selectedSubmenuObj;
	}
}

function showCurrentSubmenu() {
	if(this.currentSubmenuObj!=null) {
		this.currentSubmenuObj.style.display="block";
	}
}

function showSelectedSubmenu() {
	if(this.selectedSubmenuObj!=null) {
		this.selectedSubmenuObj.style.display="block";
	}
}

function hideCurrentSubmenu() {
	if(this.currentSubmenuObj!=null) {
		this.currentSubmenuObj.style.display="none";
	}
}

function hideSelectedSubmenu() {
	if(this.selectedSubmenuObj!=null) {
		this.selectedSubmenuObj.style.display="none";
	}
}

function initMenu() {
	
	var menuObj=this;

	for (var i=0; i < this.menuItemObj.length; i++) {
			this.menuItemObj[i].num=i;
			this.menuItemObj[i].onmouseover=function () {
				menuObj.hideSelectedSubmenu();
				menuObj.selectedSubmenuObj=menuObj.submenuObj[this.num];
				menuObj.showSelectedSubmenu();
			}			
	}
	
	this.subMenuArea.onmouseout=function (e) {
		var mousecoords=getMouseXY (e);
		if (mousecoords['x']<=(this.offsetLeft+5) || mousecoords['x']>=(this.offsetLeft + 300) || mousecoords['y']<=(this.offsetTop+5) || mousecoords['y']>=(this.offsetTop + 190)) {
			menuObj.hideSelectedSubmenu();
			menuObj.showCurrentSubmenu();
			menuObj.selectedSubmenuObj=menuObj.currentSubmenuObj;
		}
	}
}

Menu.prototype.addSubmenu=addSubmenu;
Menu.prototype.showCurrentSubmenu=showCurrentSubmenu;
Menu.prototype.hideCurrentSubmenu=hideCurrentSubmenu;
Menu.prototype.showSelectedSubmenu=showSelectedSubmenu;
Menu.prototype.hideSelectedSubmenu=hideSelectedSubmenu;
Menu.prototype.init=initMenu;
