// ** Uses GetElement() to deal with cross-platform issues **
function tnItemOver() {
	var args = tnItemOver.arguments;
	var menuIX = args[0];
	var itemID = args[1];
	
	if(ie) {
		var divObj = eval('GetElement(\'' + this.menuID + 'Menu' + menuIX + 'Item' + itemID + '\');');
		divObj.style.backgroundColor = this.menus[menuIX].itemHilite;
	} else if(ns) {
		var lyrObj = eval('GetElement(\'' + this.menuID + 'Menu' + menuIX + '\', \'' + this.menuID + 'Menu' + menuIX + 'Item' + itemID + '\');');
		lyrObj.bgColor = this.menus[menuIX].itemHilite;
	}
}
function tnItemOut() {
	var args = tnItemOut.arguments;
	var menuIX = args[0];
	var itemID = args[1];
	
	if(ie) {
		var divObj = eval('GetElement(\'' + this.menuID + 'Menu' + menuIX + 'Item' + itemID + '\');');
		divObj.style.backgroundColor = this.menus[menuIX].bgcolor;
	} else if(ns) {
		var lyrObj = eval('GetElement(\'' + this.menuID + 'Menu' + menuIX + '\', \'' + this.menuID + 'Menu' + menuIX + 'Item' + itemID + '\');');
		lyrObj.bgColor = this.menus[menuIX].bgcolor;
	}
}

function tnomover(id) {
	if(ie) {
		eval('GetElement(\'' + id + '0\').style.visibility = \'hidden\';');
		eval('GetElement(\'' + id + '1\').style.visibility = \'visible\';');
	} else if(ns) {
		eval('GetElement(\'' + id + '0\').visibility = \'hide\';');
		eval('GetElement(\'' + id + '1\').visibility = \'show\';');
	}
}

function tnomout(id) {
	if(ie) {
		eval('GetElement(\'' + id + '0\').style.visibility = \'visible\';');
		eval('GetElement(\'' + id + '1\').style.visibility = \'hidden\';');
	} else if(ns) {
		eval('GetElement(\'' + id + '0\').visibility = \'show\';');
		eval('GetElement(\'' + id + '1\').visibility = \'hide\';');
	}
}

/***** Menu Container *************************************************************************************************/
/***** Menu Container *************************************************************************************************/

function tnMenuContainer() {
	var args = tnMenuContainer.arguments;
	this.menuID = args[0];
	
	this.menus = new Array();
	this.bgcolor = '#ffffff';
	this.itemHilite = '#003366';
	this.currentMenu = null;
	this.previousMenuID = "0"
	//methods
	this.showMenu = tnShowMenu;
	this.hideMenu = tnHideMenu;
	this.hideAllMenus = tnHideAllMenus;
	this.addMenu = tnAddMenu;
	this.addMenuItem = tnAddMenuItem;
	this.drawMenus = tnDrawMenus;
	this.itemOver = tnItemOver;
	this.itemOut = tnItemOut;
	this.setBGColor = tnSetBGColor;
	this.setHiliteColor = tnSetHiliteColor;
}
function tnHideAllMenus() {
	var args = tnHideAllMenus.arguments;
	
	var obj = eval('GetElement(\''+this.menuID + 'Menu' + this.previousMenuID + '\');')
	if(obj) {
		if(ie){
			obj.style.visibility = 'hidden'
		} else {
			obj.visibility = 'hide'
		}
		//tnomout(this.menuID+this.previousMenuID);
		ColorOff('imageID'+this.previousMenuID);
	}
}

function tnShowMenu() {
	var args = tnShowMenu.arguments;
	var id = args[0];
	var imageID = args[1];
			
	//tnomover(this.menuID+id);
	ColorOn('imageID'+id);
	if((id != this.previousMenuID)){
		var obj = eval('GetElement(\''+this.menuID + 'Menu' + this.previousMenuID + '\');')
		if(obj) {
			if(ie){
				obj.style.visibility = 'hidden'
			} else {
				obj.visibility = 'hide'
			}
			//tnomout(this.menuID+this.previousMenuID);
			ColorOff('imageID'+this.previousMenuID);
		}
	}
	this.previousMenuID = id;
	this.previousImageID = imageID;
	
	if(ie) {
		var divObj = eval('GetElement(\'' + this.menuID + 'Menu' + id + '\');');
		divObj.style.visibility = 'visible';
		
		
		
	} else if(ns) {
		var lyrObj = eval('GetElement(\'' + this.menuID + 'Menu' + id + '\');');
		lyrObj.visibility = 'show';
	}
	
}
function tnHideMenu() {
	var args = tnHideMenu.arguments;
	var id = args[0];
	e = args[1];		
	var mouseX = GetMouseX(e)
	var mouseY = GetMouseY(e)
	
	var ns6Hack;
	if(!ie) {
		ColorOff('imageID'+id);
	} else if(ie) {
		var divObj = eval('GetElement(\'' + this.menuID + 'Menu' + id + '\');');
		
		ns6Hack = (ns6) ? 0 : 2;
		var top=divObj.offsetTop + ns6Hack;
		var bottom=divObj.offsetTop + divObj.offsetHeight - 2;
		var left=divObj.offsetLeft + 2;
		var right=divObj.offsetLeft + divObj.offsetWidth - 2;

		//alert("X: " + mouseX + " Y: " + mouseY + "\r\nLeft: " + left + " Top: " + top)

		if(mouseY < top || mouseY > bottom || mouseX < left || mouseX > right) {
			divObj.style.visibility = 'hidden';
			//tnomout(this.menuID+id);
			ColorOff('imageID'+id);
		}

	} else if(ns) {
		var lyrObj = eval('GetElement(\'' + this.menuID + 'Menu' + id + '\');');
		var top = lyrObj.top;
		var bottom = lyrObj.top + lyrObj.clip.bottom - 2;
		var left = lyrObj.left + 2;
		var right = lyrObj.left + lyrObj.clip.right - 2;
//		alert(top+':'+mouseY+'    '+right+':'+mouseX);
		if(mouseY < top || mouseY > bottom || mouseX < left || mouseX > right) {
			lyrObj.visibility = 'hide';
			//tnomout(this.menuID+id);
			ColorOff('imageID'+id);
		}
	}
}
function tnAddMenu() {
	var args = tnAddMenu.arguments;
	var top = args[0];
	var left = args[1];
	this.menus[this.menus.length] = new tnMenu(this.menus.length,top,left,this.menuID, this.bgcolor, this.itemHilite);
	this.currentMenu = this.menus[this.menus.length-1];
}
function tnAddMenuItem() {
	var args = tnAddMenuItem.arguments;
	var id = args[0];
	var link = args[1];
	var url = args[2];
	
	this.menus[id].addItem(link,url);
}
function tnDrawMenus() {
	var i,j;
	var src = '';
	if(ie) {
		for(i=0;i<this.menus.length;i++) {
			src += this.menus[i].divOpen;
			for(j=0;j<this.menus[i].items.length;j++) {
				src += this.menus[i].items[j];
			}
			src += this.menus[i].divClose;
		}
	} else if(ns) {
		for(i=0;i<this.menus.length;i++) {
			src += this.menus[i].layerOpen;
			for(j=0;j<this.menus[i].items.length;j++) {
				src += this.menus[i].items[j];
			}
			this.menus[i].evalNSBuffer();
			src += this.menus[i].layerBuffer;
			src += this.menus[i].layerClose;
		}
	}
	
	document.write(src);
}
function tnSetBGColor() {
	var args = tnSetBGColor.arguments;
	
	this.bgcolor = args[0];
}
function tnSetHiliteColor() {
	var args = tnSetHiliteColor.arguments;
	this.itemHilite = args[0];
}
/***** Menu **********************************************************************************************************/
/***** Menu **********************************************************************************************************/
function tnMenu() {
	var args = tnMenu.arguments;
	
	this.menu = args[0];
	this.top = args[1];
	this.left = args[2];
	this.menuID = args[3];
	this.bgcolor = args[4];
	this.itemHilite = args[5];
	
	this.width = 145;
	this.items = new Array();

	if(ie) {
		this.divOpen = '<span id="'+this.menuID+'Menu'+this.menu+'" style="position:absolute;top:'+this.top+';left:'+this.left+';width:'+this.width+';z-index:50;visibility:hidden;padding-left:0;padding-top:0;padding-right:0;padding-bottom:0;border:0pt #333333 solid;" onmouseout="'+this.menuID+'Obj.hideMenu('+this.menu+', this);">';
		this.divClose = '</span>';
	} else if(ns) {	
		this.layerOpen = '<layer name="'+this.menuID+'Menu'+this.menu+'" top="'+this.top+'" left="'+this.left+'" width="'+this.width+'" z-index="50" visibility="hide" bgcolor="'+this.bgcolor+'" onmouseover="'+this.menuID+'Obj.showMenu('+this.menu+');" onmouseout="'+this.menuID+'Obj.hideMenu('+this.menu+', event);">';
		this.layerClose = '</layer>';
		this.layerBuffer = '';
		this.itemHeight = 22;
	}
	
	// methods
	this.addItem = tnAddItem;
	this.evalNSBuffer = tnEvalNSBuffer
}
function tnAddItem() {
	var args = tnAddItem.arguments;
	var link = args[0];
	var url = args[1];
	var tableSrc;
	
	if(ie) {
		tableSrc = '<table cellpadding="0" cellspacing="0" border="0"><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="' + (this.width - 12) + '" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="1"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td><td colspan="3"><img src="/images/trans.gif" width="1" height="3"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="16"></td><td><img src="/images/trans.gif" width="5" height="1"></td><td valign="middle"><a href="'+url+'" class="topNavSubCat">'+link+'</a></td><td><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="1"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td><td colspan="3"><img src="/images/trans.gif" height="3" width="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td></tr><tr><td bgcolor="#003366" colspan="5"><img src="/images/trans.gif" width="'+ this.width+'" height="1"></td></tr></table>'
		this.items[this.items.length] = '<span id="'+this.menuID+'Menu'+this.menu+'Item'+this.items.length+'" style="position:relative;top:'+(-2*this.items.length)+';background-color:'+this.bgcolor+';cursor:hand;" onmouseover="'+this.menuID+'Obj.itemOver('+this.menu+','+this.items.length+');" onmouseout="'+this.menuID+'Obj.itemOut('+this.menu+','+this.items.length+');" onclick="self.location.href=\''+url+'\';">' + tableSrc + '</span>';
	} else if(ns) {
		tableSrc =	'<table cellpadding="0" cellspacing="0" border="0" height="100%"><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="' + (this.width - 12) + '" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="1"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td><td colspan="3"><img src="/images/trans.gif" height="3" width="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="16"></td><td><img src="/images/trans.gif" width="5" height="1"></td><td valign="middle"><a href="'+url+'" class="topNavSubCat">'+link+'</a></td><td><img src="/images/trans.gif" width="5" height="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="'+(this.itemHeight - 10)+'"></td></tr><tr><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td><td colspan="3"><img src="/images/trans.gif" height="3" width="1"></td><td bgcolor="#003366"><img src="/images/trans.gif" width="1" height="3"></td></tr><tr><td bgcolor="#003366" colspan="5"><img src="/images/trans.gif" width="'+ this.width+'" height="1"></td></tr></table>'
		this.items[this.items.length] = '<layer name="'+this.menuID+'Menu'+this.menu+'Item'+this.items.length+'" width="'+(this.width)+'" height="'+this.itemHeight+'" top="'+(this.items.length*this.itemHeight)+'" left="0" bgcolor="'+this.bgcolor+'" onmouseover="'+this.menuID+'Obj.itemOver('+this.menu+','+this.items.length+');" onmouseout="'+this.menuID+'Obj.itemOut('+this.menu+','+this.items.length+');">' + tableSrc + '</layer>';
	}
}
function tnEvalNSBuffer() {
	this.layerBuffer = '<layer name="'+this.menuID+'MenuBuffer'+this.menu+'" top="'+(this.items.length*this.itemHeight)+'"></layer>'
}
