// <script language="javascript">

/******************
 * class HMenuBar *
 ******************/
			
// constructor
function HMenuBar() {
	this.Items = new Array();	// array containing submenus
	this.SplitChars = new String('&nbsp;&nbsp;');
					
	this.AddSubMenu = HMenu_AddSubMenu;
	this.Render = HMenu_Render;
}
			
function HMenu_AddSubMenu(SubMenu) {
	SubMenu.Id = this.Items.length;
	this.Items[this.Items.length] = SubMenu;
}
				
function HMenu_Render() {
	// renders the horizontal menu
	document.writeln('<div id="divHorizontalMenu" class="HMenuBar">');
	document.writeln('<table>');
	document.writeln('<tr>');
				
	// generate menus in menubar
	for (var i = 0; i < this.Items.length; i++) {
		// this.Items[i].Render();
		var objSubMenu = this.Items[i];
		var strSubMenuId = "HSubMenu" + objSubMenu.Id
		
		if (i > 0) document.writeln('<td>' + this.SplitChars + '</td>');
		document.writeln('<td valign="top" class="HMenuItem" onmouseover="HMenuItem_OnMouseOver(this, \'' + strSubMenuId + '\');" onmouseout="HMenuItem_OnMouseOut(this, \'' + strSubMenuId + '\');" onclick="HMenuItem_OnClick(\'' + objSubMenu.Action + '\');">' + objSubMenu.Title + '</td>');
	}
			
	document.writeln('</tr>');
	document.writeln('</table>');
	document.writeln('</div>');

	for (var i = 0; i < this.Items.length; i++) {
		// this.Items[i].Render();
		var objSubMenu = this.Items[i];
		var strSubMenuId = "HSubMenu" + objSubMenu.Id
		// render submenu div
		document.writeln('<div id="' + strSubMenuId + '" class="HMenuSubMenu" style="position: absolute; visibility: hidden; ">');
		document.writeln('<table class="HMenuSubMenuTable">');
					
		for (var j = 0; j < objSubMenu.Items.length; j++) {
			objSubMenu.Items[j].Render();
		}

		document.writeln('</table>');
		document.writeln('</div>');
	}
}	
				
/******************
 * class HSubMenu *
 ******************/
function HSubMenu(Title, Action) {
	this.Title = Title;
	if (Action) {
		this.Action = Action;
	} else {
		this.Action = "";
	}
	this.Items = new Array(); // submenus
	this.Id = new Number(0);
	
	this.AddMenuItem = HSubMenu_AddMenuItem;
	this.Render = HSubMenu_Render;
}

function HSubMenu_AddMenuItem(MenuItem) {
	MenuItem.Id = this.Items.length;
	this.Items[this.Items.length] = MenuItem;
}

function HSubMenu_Render() {
}
				
/*******************
 * class HMenuItem *
 *******************/
function HMenuItem(Title, Action) {
	this.Title = Title;
	if (Action) {
		this.Action = Action;
	} else {
		this.Action = "";
	}
	this.Id = new Number(0);
				
	this.Render = HMenuItem_Render;
}

function HMenuItem_Render() {
	document.writeln('<tr><td nowrap valign="top" class="HMenuSubItem" onmouseover="HMenuSubItem_OnMouseOver(this);" onmouseout="HMenuSubItem_OnMouseOut(this);" onclick="HMenuSubItem_OnClick(\'' + this.Action + '\');">' + this.Title + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>');
}

/********************
 * Client functions *
 ********************/
			 
function HMenuItem_OnMouseOver(SrcElement, SubMenuId) {
	SrcElement.className = "HMenuItem_MouseOver";
	HideAllSubMenus();
	ShowSubMenu(SrcElement, SubMenuId)
}

function HMenuItem_OnMouseOut(SrcElement, SubMenuId) {
	SrcElement.className = "HMenuItem";
}

function HMenuItem_OnClick(Action) {
	if (Action != "") {
		location.href = Action;
	}
	HideAllSubMenus();
}

function ShowSubMenu(SrcElement, SubMenuId) {
	var SubMenuElement = GetElementById(SubMenuId);
	var pos = FindPosElement(SrcElement);
	var x = pos[0] - 2;
	var y = pos[1] + SrcElement.offsetHeight + 3;

	// see if we are outside the horizontal menu	
	var MenuElement = GetElementById("divHorizontalMenu");
	var posMenu = FindPosElement(MenuElement);
	
	if (x + SubMenuElement.offsetWidth > posMenu[0] + MenuElement.offsetWidth) {
		x = posMenu[0] + MenuElement.offsetWidth - SubMenuElement.offsetWidth + 1;
	}
	
	if (x < 0) x = 0;
	
	SubMenuElement.style.visibility = "visible";
	SubMenuElement.style.left = x;
	SubMenuElement.style.top = y;
}
						
function HideSubMenu(SubMenuId) {
	var SubMenuElement = GetElementById(SubMenuId);
	if (SubMenuElement) SubMenuElement.style.visibility = "hidden";
}

function HideAllSubMenus() {
	for (var i = 0; i < 10; i++) {
		HideSubMenu("HSubMenu" + i);
	}
}
			
function HMenuSubItem_OnMouseOver(SrcElement) {
	SrcElement.className = "HMenuSubItem_MouseOver";
}
			
function HMenuSubItem_OnMouseOut(SrcElement) {
	SrcElement.className = "HMenuSubItem";
}
			
function HMenuSubItem_OnClick(Action) {
	if (Action != "") {
		location.href = Action;
	}
	HideAllSubMenus();
}