/*
// menu class
//
// ShowMenu - this is just a simple regular type of menu
// Usage example:
// Start example
<table style="border:0;margin:auto;height:28px;" cellpadding="0" cellspacing="0">
<tbody>
<tr>
	<td id="mmenu1" class="navOut" onmouseover="menu.showMenu('menu1');" onmouseout="menu.delayHideMenu('menu1');">Main Menu 1</td>
</tr>
<tr style="height:0;">
	<td>
		<div id="menu1" style="position:absolute;visibility:hidden;"></div>
	</td>
</tr>
</tbody>
</table>

<script type="text/javascript">
menu = vxtmenu('menu');
menu.load('menu1','mmenu1','navOut','navOver');
menu.addItem('menu1','{Item Name}','{Item URL}');
</script>
// End example
// Using the addItem method will create the default menu style.
// If you create your menu with HTML inside the "menu1" div, do not use the addItem method.

SlideMenu 
-------------
- minTop must be set. This is the vertical position that you want the menu to stop sliding.
- LoadMenu - when loading the menu, you are requred to set a top position. This is the position the menu will start at.
- You must set the z-index for your menu divs to something less than the z-index of the div that it is sliding out from.
*/

function vxtmenu(strObjName) {
	this.iHideDelayTime = hideDelayTime != '' ? hideDelayTime : 500;
	this.aId = new Array();
	this.aLeft = new Array();
	this.aMenuItem = new Array();
	this.aMouseoutClassName = Array();
	this.aMouseoverClassName = Array();
	this.aParentID = new Array();
	this.aTo = new Array(); // timeout variable
	this.aTop = new Array();
	this.strObjName = strObjName;

	this.addItem = function (iMenuID,strName,strValue) {
		this.aMenuItem[iMenuID].push(Array(strName,strValue));
	}

	this.clearTimeout = function (iMenuID) {
		if (this.aTo[iMenuID]) clearTimeout(this.aTo[iMenuID]);
	}

	this.delayHideMenu = function (iMenuID) {
		this.aTo[iMenuID] = setTimeout(this.strObjName+".hideMenu('"+iMenuID+"','"+this.aMouseoutClassName[iMenuID]+"')",this.iHideDelayTime);
	}

	this.hideAllMenus = function () {
		for(var i in this.aId) {
			document.getElementById(this.aId[i]).style.visibility = "hidden";
			if (this.aParentID[i] != undefined && this.aMouseoutClassName[i] != '') document.getElementById(this.aParentID[i]).className = this.aMouseoutClassName[i];
		}
	}

	this.hideMenu = function (menuID) {
		document.getElementById(menuID).style.visibility = "hidden";
		if (this.aParentID[menuID] != undefined && this.aMouseoutClassName[menuID] != '') document.getElementById(this.aParentID[menuID]).className = this.aMouseoutClassName[menuID];
	}

	this.load = function (iMenuID,parentID,mouseoutClassName,mouseoverClassName,t,l) {
		this.aId[iMenuID] = iMenuID;
		this.aMenuItem[iMenuID] = Array();
		this.aMouseoutClassName[iMenuID] = mouseoutClassName;
		this.aMouseoverClassName[iMenuID] = mouseoverClassName;
		this.aParentID[iMenuID] = parentID;
		this.aTo[iMenuID] = null;

		if (t !== "" && t != undefined) {
			if (document.getElementById(iMenuID)) document.getElementById(iMenuID).style.top = t+"px";
			this.aTop[iMenuID] = t;
		}

		if (l !== "" && l != undefined) {
			if (document.getElementById(iMenuID)) document.getElementById(iMenuID).style.left = l+"px";
			this.aLeft[iMenuID] = l;
		}
	}

	this.showMenu = function (iMenuID) {
		this.clearTimeout(iMenuID);
		this.hideAllMenus();

		if (this.aMenuItem[iMenuID]) {
			if (this.aMenuItem[iMenuID].length > 0) {
				var tmpOutput = '<table onmouseover="'+this.strObjName+'.clearTimeout(\''+iMenuID+'\');" onmouseout="'+this.strObjName+'.delayHideMenu(\''+iMenuID+'\');" class="tbl_menu" cellpadding="0" cellspacing="0"><tbody>';
				for(var i in this.aMenuItem[iMenuID]) {
					var randNum = i + '_' + Math.floor(Math.random()*100);
					tmpOutput+='<tr class="menu_row" onclick="window.location=\''+this.aMenuItem[iMenuID][i][1]+'\';" >';
					tmpOutput+='<td id="td1_'+randNum+'" class="menu_item_icon" onmouseout="this.className=\'menu_item_icon\';document.getElementById(\'td2_'+randNum+'\').className=\'menu_item\';" onmouseover="this.className=\'menu_item_icon_over\';document.getElementById(\'td2_'+randNum+'\').className=\'menu_item_over\';"></td>';
					tmpOutput+='<td id="td2_'+randNum+'" class="menu_item" onmouseout="this.className=\'menu_item\';document.getElementById(\'td1_'+randNum+'\').className=\'menu_item_icon\';" onmouseover="this.className=\'menu_item_over\';document.getElementById(\'td1_'+randNum+'\').className=\'menu_item_icon_over\';">'+this.aMenuItem[iMenuID][i][0]+'</td>';
					tmpOutput+='</tr>';
					tmpOutput+='<tr class="menu_row"><td style="height:2px;" colspan="2"></td></tr>';
				}
				tmpOutput += '</tbody></table>';
				document.getElementById(iMenuID).innerHTML = tmpOutput;
			}
		}

		document.getElementById(iMenuID).style.visibility = "visible";
		if (this.aMouseoverClassName[iMenuID] != '') document.getElementById(this.aParentID[iMenuID]).className = this.aMouseoverClassName[iMenuID];
	}

	this.showSubMenu = function (menuID) {
		document.getElementById(menuID).style.visibility='visible';
	}

	this.slideDown = slideDown;
	this.slideUp = slideUp;
	this.slideMenu = slideMenu;
}

function slideDown(menuID) {
	pos+=4;
	if (pos < minTop)
		document.getElementById(menuID).style.top = pos+"px";
	else {
		clearInterval(ti);
	}
}

function slideUp(menuID) {
	pos-=4;
	if (pos > this.top[this.MenuGetI(menuID)])
		document.getElementById(menuID).style.top = pos+"px";
	else {
		document.getElementById(menuID).style.visibility = "hidden";
		clearInterval(ti);
	}
}

// Sliding menu
function slideMenu(menuID,direction) {
	if (direction == 'up')
		ti = setInterval("SlideUp('"+menuID+"')",1);
	else {
		HideAllMenus();
		if (ti) clearInterval(ti);
		pos = this.top[this.MenuGetI(menuID)];
		document.getElementById(menuID).style.visibility = "visible";
		ti = setInterval("SlideDown('"+menuID+"')",1);
	}
	//document.getElementById(menu.parentID[MenuGetI(menuID)]).className="navOver";
}

var minTop;
var pos=0;
var ti;
var hideDelayTime = 500;
