// For IE5/6 Netscape 6

var CurrentMenuObj = null;
document.onmouseup = MS_Menu_HideAll;
function MS_Menu_HideAll() {MS_Menu_HideMenus( 0);}

function MS_Menu_Draw(){
	CurrentMenuObj = this;	
	this.iBorder = parseInt(this.borderWidth,10);
	this.iItemWidth = parseInt(this.itemWidth,10);
	this.menuWidth = 	this.iBorder * 2 + this.iItemWidth ;
	var TopMenuStr = "";
	var TopItemStyle = "font-family:" + this.topFontFamily + ";font-size:" +this.topFontSize + ";color:" + this.topFontColor + ";font-weight:" +this.topFontWeight;
	var menu = this.treeRoot;
	var itemcount = menu.items.length;
	for(var i = 0 ; i<itemcount; i++){
		menuitem = menu.items[i];
		TopMenuStr  += "<span id=m"+this.id+"_a"+i+" style='cursor:pointer;"+TopItemStyle +"' onMouseDown=MS_Menu_TopDown(this) onMouseOver=MS_Menu_TopOver(this) onMouseOut= MS_Menu_TopOut()>";
		if(!menuitem.offImage){TopMenuStr  += menuitem.id;}
			else{TopMenuStr  += "<img name='m"+this.id+"_a"+i+"_Image' src='" + menuitem.offImage + "' border=0 align=absmiddle>"; } 
		TopMenuStr += "</span>";
		TopMenuStr  += this.htmlBetweenTopItems;
		if(menuitem.subtree) MS_Menu_Draw_Items(menuitem.subtree);
	}
	document.write("<nobr>" + TopMenuStr + "</nobr>");
	for(i = 0 ; i<itemcount; i++){
		menuitem = menu.items[i];
		var oTopItem = document.getElementById("m" + this.id + "_a" + i); 
		oTopItem.treeItem = menuitem;
		menuitem.Layer = oTopItem;
	}
	var nBack = this.depth;
	this.selectedLayerByDepth = new Array(nBack);
	this.popupMenus = new Array(nBack);
	for(i=0;i<nBack;i++) {
		this.selectedLayerByDepth[i] = null;
		this.popupMenus[i] = null;
	}
}

function MS_Menu_Draw_Items(menu){
	var menuObj = menu.topMenuObj;
	var itemcount = menu.items.length;
	var id  = "";
	var Str = ""; var ItemStr = "";
	var borderStyleString = menuObj.borderWidth + " solid " + menuObj.borderColor;
	var TD_borderStyleStr ="";
	var menu_id = "m" +menuObj.id +"_" + menu.id; 
	Str = "<div id='" + menu_id + "'  height='"+menuObj.itemHeight+"' style='position:absolute;visibility:hidden;left:0;top:0;width:"+menuObj.itemWidth+"'>";
	Str += "<table cellpadding=2 cellspacing=0 border=0 width='100%' style='border:"+borderStyleString +"'>";
	for(var i = 0 ; i<itemcount; i++){
		menuitem = menu.items[i];
		id = menu_id  + "_" + menuitem.id;
		TD_borderStyleStr = (i<itemcount-1)? " style='border-bottom:"+borderStyleString+"'" : "";
		Str += "<tr id='" + id + "' style='cursor:pointer;left:0;top:0;height:"+menuObj.itemHeight+";width:"+menuObj.itemWidth+";"+ MS_Menu_getStyleString(menuObj) + "' onMouseOver=MS_Menu_ItemOver(this) onMouseDown=MenuItem_MouseDown() onMouseOut=MS_Menu_TimeSet()>";
		Str += "<td "+TD_borderStyleStr+">";
		Str += menuitem.id;
		Str += "</td><td align=right  "+TD_borderStyleStr+">&nbsp; ";	
		if(menuitem.subtree) {
			Str += menuObj.hasMoreHtml ;
			 MS_Menu_Draw_Items(menuitem.subtree);	
		}
		Str += "</td></tr>";
	}	
	Str += "</table></div>";
	document.write (Str);
	for( i = 0 ; i<itemcount; i++){
		menuitem = menu.items[i];
		id = menu_id  + "_" + menuitem.id;
		var oLayer = document.getElementById(id);
		oLayer.treeItem = menuitem;
		oLayer.bgColor = menuObj.bgColor; //"#cccccc";
		menuitem.Layer = oLayer;
	}
	menu.Layer = document.getElementById(menu_id);
	return;
}

function MS_Menu_TopOver(olTopItem){
	var vTop=0;
	var oTopItem = olTopItem.treeItem;
	var menuObj = oTopItem.tree.topMenuObj;
	if(menuObj != CurrentMenuObj) {MS_Menu_HideMenus(0);}
	CurrentMenuObj  = menuObj;
	if (menuObj.selectedLayerByDepth[0] !=olTopItem) {
		var oPrevItem = menuObj.selectedLayerByDepth[0];
		if(oPrevItem) if(oPrevItem.treeItem.offImage) document.images[oPrevItem.id+ "_Image"].src = oPrevItem.treeItem.offImage;
	}
	menuObj.selectedLayerByDepth[0] = olTopItem;
	menuObj.selectedMenuItem =  olTopItem;
	var menu = oTopItem.subtree;
	if(menu != menuObj.popupMenus[1])  MS_Menu_HideMenus( 0);
	if (oTopItem.subtree){
		 pos = MS_Menu_getPosition(olTopItem);
		vTop =  pos[1] + parseInt(olTopItem.offsetHeight, 10) + parseInt(menuObj.offsetTop, 10);
		
		 MS_Menu_ShowMenu(menu , pos[0] + parseInt(menuObj.offsetLeft,10) , vTop);
	}
	if(oTopItem.onImage) document.images[olTopItem.id + "_Image"].src = oTopItem.onImage;
	MS_Menu_TimeOut();
}

function MS_Menu_TopOut(){
	 MS_Menu_TimeSet();
}

function MS_Menu_TopDown(){
	window.location.href= CurrentMenuObj.selectedMenuItem.treeItem.url;
	return false;
}

function MS_Menu_ShowMenu(menu , X, Y){
	var menuObj = menu.topMenuObj;
	menuObj.popupMenus[menu.depth] = menu;
	var me = menu.Layer.style;
	me.zIndex = menu.depth;
	me.visibility = "visible";
	me.left = X ;
	me.top = Y ;	
}

function MS_Menu_HideMenus(depth){
	var menuObj = 	CurrentMenuObj ;
	var tot_depth = menuObj.depth;
	oLayer =  menuObj.selectedLayerByDepth[depth];
	if(oLayer){
		if(depth==0){
			if(oLayer.treeItem.offImage) document.images[oLayer.id + "_Image"].src = 	oLayer.treeItem.offImage;	
		}else{
			MS_Menu_ItemDeselect(oLayer);
		}
	}
	for(var j=depth+1; j<tot_depth;j++){
		oLayer =  menuObj.selectedLayerByDepth[j];
		if(oLayer)		MS_Menu_ItemDeselect(oLayer);
		menu =  menuObj.popupMenus[j];
		if(menu)menu.Layer.style.visibility="hidden";
		 menuObj.popupMenus[j] = null;
	}
}

function MS_Menu_ItemDeselect(oLayer){
	var menuObj = oLayer.treeItem.tree.topMenuObj;
	var aCell;
	var childsNo = oLayer.childNodes.length;
	for(var i=0; i<childsNo;i++){
		aCell = oLayer.childNodes[i];
		aCell.style.backgroundColor  =menuObj.bgColor; 
		aCell.style.color = menuObj.fontColor;
		if(!IsMac){
			aCell.style.fontSize =menuObj.fontSize;
			aCell.style.fontFamily = menuObj.fontFamily;
		}
	}
}

function MS_Menu_ItemSelect(oLayer){
	var menuObj = oLayer.treeItem.tree.topMenuObj;
	var aCell;
	var childsNo = oLayer.childNodes.length;
	for(var i=0; i<childsNo;i++){
		aCell = oLayer.childNodes[i];
		aCell.style.backgroundColor  = menuObj.bgColorOver;
		aCell.style.color = menuObj.fontColorOver;
		if(!IsMac){
			aCell.style.fontSize =menuObj.fontSize;
			aCell.style.fontFamily = menuObj.fontFamily;
		}
	}
}

function MS_Menu_getOverStyleString(menuObj){
	return "background-color:" +menuObj.bgColorOver+";font-size:" + menuObj.fontSize +";color:" + menuObj.fontOverColor+";font-family:" + menuObj.fontFamily;
}

function MS_Menu_getStyleString(menuObj){
	return "background-color:" +menuObj.bgColor+";font-size:" + menuObj.fontSize +";color:" + menuObj.fontColor+";font-family:" + menuObj.fontFamily;
}

function MS_Menu_ItemOver(oLayer){
	var item = oLayer.treeItem;
	var vTop = 0;
	var menuObj =  item.tree.topMenuObj ;
	if (menuObj != CurrentMenuObj ){ MS_Menu_HideMenus(0);}
	CurrentMenuObj  = menuObj;
	if ( menuObj.selectedLayerByDepth[item.tree.depth] !=oLayer)  {MS_Menu_HideMenus(item.tree.depth);}
	menuObj.selectedLayerByDepth[item.tree.depth] = oLayer;
	menuObj.selectedMenuItem = oLayer;
	MS_Menu_ItemSelect(oLayer);
	if(oLayer.treeItem.subtree) {
		pos = MS_Menu_getPosition( oLayer);
		vTop =  pos[1];
		MS_Menu_ShowMenu(oLayer.treeItem.subtree , pos[0]+ parseInt(oLayer.style.width,10) - 15, vTop);
	}
	MS_Menu_TimeOut();
}

function MS_Menu_getPosition(htmlObj){
	var Pos = new Array(2);
	Pos[0] =  parseInt(htmlObj.offsetLeft,10); // + htmlObj.clientLeft; 
	Pos[1] =  parseInt(htmlObj.offsetTop,10); // + parseInt(htmlObj.offsetHeight, 10);
	obj = htmlObj.offsetParent;
	while(obj){
		Pos[0] +=  parseInt(obj.offsetLeft,10);
		Pos[1] +=  parseInt(obj.offsetTop,10)
		obj = obj.offsetParent;
	}
	return Pos;
}

function MS_Menu_TimeOut(){
	if(CurrentMenuObj.TimerID) clearTimeout(CurrentMenuObj.TimerID );
}

function MS_Menu_TimeSet(){
	CurrentMenuObj.TimerID = setTimeout('MS_Menu_HideAll()', 1000);
}

function MenuItem_MouseDown(){
	window.location.href= CurrentMenuObj.selectedMenuItem.treeItem.url;
	return false;
}

var msSpaces = 0;

function MS_DrawMenu(treeRoot){
	MS_Draw_MenuItem(treeRoot);
}

function MS_Draw_MenuItem(menu){
	var itemcount = menu.items.length;
	document.writeln("<br>"); 
	msSpaces++;
	document.write("Menu = " + menu.id + ", " + menu.depth + "<br>");
	for(var i=0;i<itemcount;i++){
		menuitem = menu.items[i];
		for(var j=0;j<msSpaces;j++)document.write("&nbsp; &nbsp; ");
		document.writeln("<a href='" + menuitem.url + "'>" + menuitem.id+ "</a> ");
		if(menuitem.subtree!=null){
			MS_Draw_MenuItem(menuitem.subtree);}
		document.writeln("<br>");
	}
	msSpaces--;
}
