var strContainerID = "jsMenuContainer";
if(is.NS4){
	strContainerID = "jsMenuContainerNS4"
}

var docWidth = 0;
if(is.IE || is.KO){
	docWidth = document.body.clientWidth;
}
if(is.NS || is.OP){
	docWidth = innerWidth;
}


function buildLayer(id){
	var strLayerOut = "";
	var strItemsOut = "";
	var itemOffsetX = 0;
	var itemOffsetY = 0;
	with(menuLayers[id]){
		if(layer_parent == "root"){
		}else{
			if(!is_built){
			layer_xpos += menuLayers[menuItems[layer_parent].item_parent].layer_xpos + menuItems[layer_parent].item_xpos;
			layer_ypos += menuLayers[menuItems[layer_parent].item_parent].layer_ypos + menuItems[layer_parent].item_ypos;
			menuLayers[menuItems[layer_parent].item_parent].layer_isvert ? layer_xpos += menuLayers[menuItems[layer_parent].item_parent].layer_width : layer_ypos += menuLayers[menuItems[layer_parent].item_parent].layer_height ;
			}
		} // end if
		for(var menuItem in menuItems){
			with(menuItems[menuItem]){
				if(item_parent == layer_id){
					if(!is_built){
						itemOffsetX += item_xpos;
						itemOffsetY += item_ypos;
						item_xpos = itemOffsetX;
						item_ypos = itemOffsetY;
					}
					if(is.NS4){
						strItemsOut += "	<layer id=\"" + item_id + "\" z-index=\"2\" left=\"" + item_xpos + "\" top=\"" + item_ypos + "\" width=\"" + item_width + "\" height=\"" + item_height + "\" visibility=\"inherit\" onMouseOver=\"popOver('" + item_id + "');\" onMouseOut=\"popOut('" + item_id + "');\"><table bgcolor=\"" + item_out.out_color + "\" border=0 cellpadding=0 cellspacing=0 width=\"" + item_width + "\" height=\"" + item_height + "\"><tr><td bgcolor=\"" + item_color + "\"><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
						strItemsOut += "		<layer id=\"" + item_id + "out\" z-index=\"3\" left=\"" + item_out.out_xpos + "\" top=\"" + item_out.out_ypos + "\" width=\"" + item_out.out_width + "\" height=\"" + item_out.out_height + "\" visibility=\"inherit\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + item_out.out_width + "\" height=\"" + item_out.out_height + "\"><tr><td width=\"100%\" bgcolor=\"" + item_out.out_color + "\" align=\"" + item_out.out_align + "\" valign=\"" + item_out.out_valign + "\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_out.out_css + "\" color=\"" + item_out.out_forecolor + "\" target=\"" + item_target + "\" href=\"" + item_href + "\">" + item_out.out_text + "</a></td><td bgcolor=\"" + item_out.out_color + "\" align=\"right\" valign=\"center\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_out.out_css + "\" color=\"" + item_out.out_forecolor + "\" href=\"" + item_href + "\">" + item_out.out_popind + "</a>&nbsp;</td></tr></table></layer>\n";
						strItemsOut += "		<layer id=\"" + item_id + "over\" z-index=\"3\" left=\"" + item_over.over_xpos + "\" top=\"" + item_over.over_ypos + "\" width=\"" + item_over.over_width + "\" height=\"" + item_over.over_height + "\" visibility=\"hidden\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + item_over.over_width + "\" height=\"" + item_over.over_height + "\"><tr><td width=\"100%\" bgcolor=\"" + item_over.over_color + "\" align=\"" + item_over.over_align + "\" valign=\"" + item_over.over_valign + "\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_over.over_css + "\" color=\"" + item_over.over_forecolor + "\" target=\"" + item_target + "\" href=\"" + item_href + "\">" + item_over.over_text + "</a></td><td bgcolor=\"" + item_over.over_color + "\" align=\"right\" valign=\"center\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_over.over_css + "\" color=\"" + item_over.over_forecolor + "\" href=\"" + item_href + "\">" + item_over.over_popind + "</a>&nbsp;</td></tr></table></layer>\n";
						strItemsOut += "	</layer>\n";
					}else{
						strItemsOut += "	<div id=\"" + item_id + "\" style=\"position: absolute;z-index:2;left:" + itemOffsetX + ";top:" + itemOffsetY + ";width:" + item_width + ";height:" + item_height + ";visibility:inherit;\" onMouseOver=\"popOver('" + item_id + "');\" onMouseOut=\"popOut('" + item_id + "');\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + item_width + "\" height=\"" + item_height + "\"><tr><td style=\"background-color:" + item_color + ";\" ><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
						strItemsOut += "		<div id=\"" + item_id + "out\" style=\"position:absolute;z-index:3;left:" + item_out.out_xpos + ";top:" + item_out.out_ypos + ";width:" + item_out.out_width + ";height:" + item_out.out_height + ";visibility:inherit;\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + item_out.out_width + "\" height=\"" + item_out.out_height + "\"><tr><td style=\"background-color:" + item_out.out_color + ";\" width=\"100%\" align=\"" + item_out.out_align + "\" valign=\"" + item_out.out_valign + "\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_out.out_css + "\" style=\"color:" + item_out.out_forecolor + ";\" target=\"" + item_target + "\" href=\"" + item_href + "\">" + item_out.out_text + "</a></td><td style=\"background-color:" + item_out.out_color + ";\" align=\"right\" valign=\"center\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_out.out_css + "\" style=\"color:" + item_out.out_forecolor + ";\" href=\"" + item_href + "\">" + item_out.out_popind + "</a>&nbsp;</td></tr></table></div>\n";
						strItemsOut += "		<div id=\"" + item_id + "over\" style=\"position:absolute;z-index:3;left:" + item_over.over_xpos + ";top:" + item_over.over_ypos + ";width:" + item_over.over_width + ";height:" + item_over.over_height + ";visibility:hidden;\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + item_over.over_width + "\" height=\"" + item_over.over_height + "\"><tr><td style=\"background-color:" + item_over.over_color + ";\" width=\"100%\" align=\"" + item_over.over_align + "\" valign=\"" + item_over.over_valign + "\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_over.over_css + "\" style=\"color:" + item_over.over_forecolor + ";\" target=\"" + item_target + "\" href=\"" + item_href + "\">" + item_over.over_text + "</a></td><td style=\"background-color:" + item_over.over_color + ";\" align=\"right\" valign=\"center\" class=\"jsMenuSpacer\">&nbsp;<a class=\"" + item_over.over_css + "\" style=\"color:" + item_over.over_forecolor + ";\" href=\"" + item_href + "\">" + item_over.over_popind + "</a>&nbsp;</td></tr></table></div>\n";
						strItemsOut += "	</div>\n";
					}
					layer_isvert ? itemOffsetY += item_height : itemOffsetX += item_width ;
				} // end if
			} // end with
		} // end for
		if(is.NS4){
			if (layer_width < 0){
				strLayerOut += "<layer id=\"" + layer_id + "\" z-index=\"1\" left=\"" + layer_xpos + "\" top=\"" + layer_ypos + "\" width=\"" + docWidth + "\" height=\"" + layer_height + "\" visibility=\"hidden\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + docWidth + "\" height=\"" + layer_height + "\"><tr><td bgcolor=\"" + layer_color + "\"><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
			}else{
				strLayerOut += "<layer id=\"" + layer_id + "\" z-index=\"1\" left=\"" + layer_xpos + "\" top=\"" + layer_ypos + "\" width=\"" + layer_width + "\" height=\"" + layer_height + "\" visibility=\"hidden\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + layer_width + "\" height=\"" + layer_height + "\"><tr><td bgcolor=\"" + layer_color + "\"><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
			}
			strLayerOut += strItemsOut;
			strLayerOut += "</layer>\n";
		}else{
			if (layer_width < 0){
				strLayerOut += "<div id=\"" + layer_id + "\" style=\"position: absolute; z-index: 1; left: " + layer_xpos + "; top: " + layer_ypos + "; width: " + docWidth + "; height: " + layer_height + "; visibility: hidden;\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + docWidth + "\" height=\"" + layer_height + "\"><tr><td style=\"background-color:" + layer_color + ";\" ><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
			}else{
				strLayerOut += "<div id=\"" + layer_id + "\" style=\"position: absolute; z-index: 1; left: " + layer_xpos + "; top: " + layer_ypos + "; width: " + layer_width + "; height: " + layer_height + "; visibility: hidden;\"><table border=0 cellpadding=0 cellspacing=0 width=\"" + layer_width + "\" height=\"" + layer_height + "\"><tr><td style=\"background-color:" + layer_color + ";\" ><img src=\"images/spacer1x1.gif\" border=\"0\" width=\"1\" height=\"1\"></td></tr></table>\n";
			}
			strLayerOut += strItemsOut;
			strLayerOut += "</div>\n";
		}
		is_built = true;
	} // end with
	return(strLayerOut);
}

function buildLayers(layerId,outStr){
	outStr += buildLayer(layerId);
	for(var menuItem in menuItems){
		with(menuItems[menuItem]){
			if(item_parent == layerId){
				if(item_child != "none"){
					outStr = buildLayers(item_child,outStr);
				}
			}
		}
	}
	return(outStr);
}

function initMenu(){
	if(is.DOM){
		document.getElementById(strContainerID).style.left = document.getElementById("menuAnchor").offsetLeft + menuBase.menu_xpos;
		document.getElementById(strContainerID).style.top = document.getElementById("menuAnchor").offsetTop + menuBase.menu_ypos;
	}
	if(is.IE4){
		document.all[strContainerID].style.left = document.all["menuAnchor"].offsetLeft + menuBase.menu_xpos;
		document.all[strContainerID].style.top = document.all["menuAnchor"].offsetTop + menuBase.menu_ypos;
	}
	if(is.NS4){
		document[strContainerID].left = document.layers["menuAnchor"].pageX + menuBase.menu_xpos;
		document[strContainerID].top = document.layers["menuAnchor"].pageY + menuBase.menu_ypos;
		document[strContainerID].clip.bottom = 30;
	}
	if(menuBase.selected_item){
		invertVisibility(menuBase.selected_item);
	}
	menuLayers[menuBase.root_layer].layer_obj.visibility = "visible";
}

function buildMenu(){
	if(!menuBase.si_isset){
		setTimeout("buildMenu();",10);
		return(false);
	}
	var outStr = "";
	outStr = buildLayers(menuBase.root_layer,outStr);
	
	if (is.DOM) document.getElementById(strContainerID).innerHTML = outStr;
	if (is.IE4) document.all[strContainerID].innerHTML = outStr;
	if (is.NS4) {
		document[strContainerID].document.open();
		document[strContainerID].document.write(outStr);
		document[strContainerID].document.close();
	}
	
	for(var menuLayer in menuLayers){
		with(menuLayers[menuLayer]){
			if (is.DOM) layer_obj = document.getElementById(menuLayer).style;
			if (is.IE4) layer_obj = document.all[menuLayer].style;
			if (is.NS4) layer_obj = document[strContainerID].document[menuLayer];
		}
	}
	
	for(var menuItem in menuItems){
		with(menuItems[menuItem]){
			if(is.DOM){
				item_obj = document.getElementById(menuItem).style;
				item_over.over_obj = document.getElementById(menuItem + "over").style;
				item_out.out_obj = document.getElementById(menuItem + "out").style;
			}
			if(is.IE4){
				item_obj = document.all[menuItem].style;
				item_over.over_obj = document.all[menuItem + "over"].style;
				item_out.out_obj = document.all[menuItem + "out"].style;
			}
			if(is.NS4){
				item_obj = document[strContainerID].document[item_parent].document[menuItem];
				item_over.over_obj = document[strContainerID].document[item_parent].document[menuItem].document[menuItem + "over"];
				item_out.out_obj = document[strContainerID].document[item_parent].document[menuItem].document[menuItem + "out"];
			}
		}
	}
	initMenu();
}

function popOver(sender){
	clearTimeout(closeTimer);
	openTree = getTree(sender);
	changeVisibility();
}

function popOut(sender){
	closeTree = getTree(sender);
	closeTimer = setTimeout("changeVisibility();", 200);
}

function getTree(item){
	var tree = new Array();
	for(i = 0;i < 100; i++){
		tree[i] = menuItems[item].item_id;
		if(menuLayers[menuItems[item].item_parent].layer_parent == "root"){
			return tree;
		}
		item = menuLayers[menuItems[item].item_parent].layer_parent;
	}
}

function changeVisibility(){
	if(openTree.length < closeTree.length){
		refTree = closeTree;
		compTree = openTree;
	}else{
		refTree = openTree;
		compTree = closeTree;
	}
	
	for(i = (refTree.length-1); i >= 0; i--){
		if(i >= compTree.length){
			invertVisibility(refTree[i]);
			if(menuItems[refTree[i]].item_child != "none"){
				invertVisibility(menuItems[refTree[i]].item_child);
		}
		}else{
			if(refTree[i] != compTree[i]){
				invertVisibility(refTree[i]);
				if(menuItems[refTree[i]].item_child != "none"){
					invertVisibility(menuItems[refTree[i]].item_child);
				}
				invertVisibility(compTree[i]);
				if(menuItems[compTree[i]].item_child != "none"){
					invertVisibility(menuItems[compTree[i]].item_child);
				}
			}
		}
	}
	openTree = new Array();
	closeTree = new Array();
}

function invertVisibility(id){
	var obj = false;
	if(id.substr(0,5) == "layer"){
		obj = menuLayers[id].layer_obj;
		if(obj.visibility == "visible" || obj.visibility == "show"){
			obj.visibility = "hidden";
			if(is.NS4){
				document[strContainerID].clip.bottom -= menuLayers[id].layer_height;
			}
		}else{
			obj.visibility = "visible";
			if(is.NS4){
				document[strContainerID].clip.bottom += menuLayers[id].layer_height;
			}
		}
	}
	if(id.substr(0,4) == "item"){
		obj = menuItems[id].item_over.over_obj;
		if(obj.visibility == "inherit"){
			obj.visibility = "hidden";
		}else{
			obj.visibility = "inherit";
		}
		obj = menuItems[id].item_out.out_obj;
		if(obj.visibility == "inherit"){
			obj.visibility = "hidden";
		}else{
			obj.visibility = "inherit";
		}
	}
	if(id == menuBase.selected_item){
		obj = menuItems[id].item_over.over_obj;
		obj.visibility = "inherit";
		obj = menuItems[id].item_out.out_obj;
		obj.visibility = "hidden";
	}
}

function setItemSelected(id){
	if(menuBase){
		menuBase.si_isset = true;
	}else{
		setTimeout("setItemSelected(" + id + ");",10);
	}
}







 