function menu() {
	this.mainMenuTop = null;
	this.mainMenuLeft = null;
	this.mainMenuItemHeight = null;
	this.mainMenuItemWidth = null;

	this.subMenuItemWidth = null;
	this.subMenuItemHeight = null;
	
	this.mainMenuId = null;
	this.subMenu1Id = null;

	this.CLIENT_TEMPLATE_PATH = null;
	this.objName = null;

	this._nodeRoot = -1;
	
	this._nodeIdPos = 0;
	this._parentNodeIdPos = 1;
	this._displayTextPos = 2;
	this._helpTextPos = 3;
	this._urlPos= 4;
	this._targetPos = 5;

	this._interval = null;
	this._intervalAmount = 50;


	this.menu = function(){
		var BUA = navigator.userAgent;
		var BIE = BUA.indexOf("MSIE");
		var BIsIE = BIE>=0?true:false;
		var BIsMaccak = BUA.indexOf("Mac")!=-1;
		var BVer = BIE>=0?parseFloat(BUA.substring(BIE+5, BIE+6)+"."+BUA.substring(BIE+7, BIE+8)):parseInt(navigator.appVersion.substring(0,1));
	}

	this.menuInit = function(){
		var out = '';
		var rowCount = 0;

		out += '<table width="'+this.mainMenuItemWidth+'" border="0" cellspacing="0" cellpadding="0" ';
		//out += 'onmouseout="if (!this.contains(event.relatedTarget || event.toElement)) {'+this.objName+'._hideSubMenu1()}">';
		out += 'onMouseout="if (checkMouseout(this, event)) {'+this.objName+'._hideSubMenu1();}">';
		

		for (i=0; i<NavItems.length; i++){
			
			var NI = NavItems[i];
			if (NI[this._parentNodeIdPos] == this._nodeRoot) {
				out += '<TR><TD CLASS="mainMenuItem" HEIGHT="'+this.mainMenuItemHeight+'" ALIGN="center" ';
				out += 'onMouseOver="'+this.objName+'._showSubMenu1('+NI[this._nodeIdPos]+','+rowCount+'); '+this.objName+'._menuItemOver(this)" ';
				out += 'onMouseOut="'+this.objName+'._menuItemOut(this)" ';
				out += 'onClick="'+this.objName+'._go('+NI[this._nodeIdPos]+')"'
				out += '>'+NI[this._displayTextPos]+'</TD></TR>';

				rowCount++;
			}
		}
		
		out += '</table>';

		
		id = document.getElementById(this.mainMenuId);
		id.innerHTML = out;

	}

	this._showSubMenu1 = function(nodeId, rowCount){
		var out = '';
		var maxcount = this._countMenuItems(nodeId);
		var count = 0;

		
		out += '<table width="'+this.subMenuItemWidth+'" border="0" cellspacing="0" cellpadding="0" ';
		//out += 'onmouseout="if (!this.contains(event.relatedTarget || event.toElement)) {'+this.objName+'._immediatelyHideSubMenu1();}" ';
		out += 'onmouseout="if (checkMouseout(this, event)) {'+this.objName+'._immediatelyHideSubMenu1();}" ';
		out += 'onmouseOver="'+this.objName+'._stopInterval()">';

		for (i=0; i<NavItems.length; i++){
			
			var NI = NavItems[i];
			if (NI[this._parentNodeIdPos] == nodeId) {
				count++;
				out += '<TR><TD CLASS="'+(count == maxcount ? 'subMenuLastItem' : 'subMenuItem')+'" HEIGHT="'+this.subMenuItemHeight+'" ALIGN="center" ';
				out += 'onClick="'+this.objName+'._go('+NI[this._nodeIdPos]+')" ';
				out += 'onMouseOut="'+this.objName+'._menuItemOut(this)" ';
				out += 'onMouseOver="'+this.objName+'._menuItemOver(this)">';
				out += NI[this._displayTextPos]+'</TD></TR>';
			}
		}
		
		out += '</table>';
		out += '</DIV>';

		
		var subMenu1 = document.getElementById(this.subMenu1Id);
		subMenu1.innerHTML = out;

		if (subMenu1.filters) {
			subMenu1.style.left = (this.mainMenuLeft + this.mainMenuItemWidth) + 'px';
			subMenu1.style.top = (this.mainMenuTop + (rowCount * this.mainMenuItemHeight)) + 'px';
			subMenu1.style.filter = 'blendTrans(transition=12, duration=.5)'
			subMenu1.filters[0].Apply();
			subMenu1.style.visibility = 'visible';
			subMenu1.filters[0].Play();
		} else {
			subMenu1.style.left = (this.mainMenuLeft + this.mainMenuItemWidth) + 'px';
			subMenu1.style.top = (this.mainMenuTop + (rowCount * this.mainMenuItemHeight)) + 'px';
			subMenu1.style.visibility = 'visible';
		}
	}

	this._hideSubMenu1 = function(){
		this._interval = setInterval(this.objName+'._immediatelyHideSubMenu1()', this._intervalAmount);
	}

	this._immediatelyHideSubMenu1 = function(){
		var subMenu1 = document.getElementById(this.subMenu1Id);
		this._stopInterval();

		if (subMenu1.filters){
			subMenu1.style.filter = 'blendTrans(transition=12, duration=.5)'
			subMenu1.filters[0].Apply();
			subMenu1.style.visibility = 'hidden';
			subMenu1.filters[0].Play();
		} else {
			subMenu1.style.visibility = 'hidden';
		}

	}

	this._stopInterval = function(){
		clearInterval(this._interval);
	}

	this._go = function(nodeId) {
		for (i=0; i<NavItems.length; i++) {
			if (NavItems[i][this._nodeIdPos] == nodeId){
				var node = NavItems[i];

				if (node[this._targetPos] == "_blank"){
					window.open(node[this._urlPos], '', '');
				} else {
					document.location.href = node[this._urlPos];
				}
			}
		}
	}

	this._countMenuItems = function(parentId){
		var count = 0;

		for (i=0; i<NavItems.length; i++){
			
			var NI = NavItems[i];
			if (NI[this._parentNodeIdPos] == parentId) {
				count++;
			}
		}

		return count;
	}

	this._menuItemOver = function(cell){
		cell.style.backgroundColor='#E9E9E9';
	}

	this._menuItemOut = function(cell){
		cell.style.backgroundColor='#FFFFFF';

	}
}

function containsDOM (container, containee) {
	var isParent = false;
	do {
		if ((isParent = container == containee)) {
			break;
		}
		containee = containee.parentNode;
	}
	while (containee != null);
	return isParent;
}

function checkMouseover (element, evt) {
	if (element.contains && evt.fromElement) {
		return !element.contains(evt.fromElement);
	
	} else if (evt.relatedTarget) {
		return !containsDOM(element, evt.relatedTarget);
	}
}

function checkMouseout (element, evt) {
	if (element.contains && evt.toElement) {
		return !element.contains(evt.toElement);
	
	} else if (evt.relatedTarget) {
		return !containsDOM(element, evt.relatedTarget);
	}
}
