//	written	by Tan Ling Wee
//	last updated 20 June 2003
//	email :	fuushikaden@yahoo.com
var subItemOrientation=1 // 0-horizontal 1-vertical
var orientation=0	// 0-horizontal 1-vertical
var imgPath = "/images/"

var mainItemForeground = "#000000"
var mainItemBorder = "#f0f0f0"
var mainItemBackground = "#f0f0f0"

var mainItemHoverForeground = "#000000"
var mainItemHoverBorder = "#a0a0a0"
var mainItemHoverBackground = "#ffffff"

var subItemForeground = "#000000"
var subItemBorder = "#ffffff"
var subItemBackground = "#ffffff"

var subItemHoverForeground = "#000000"
var subItemHoverBorder = "#a0a0a0"
var subItemHoverBackground = "#a0a0a0"

var menuFont = "verdana"
var menuSize = "8px"

//andrew
var menuAlign = "left";
var tableStyle = "style=\"" + "border:none;" + "\"";
var tdStyle = "";
var headTdStyle = "";
var headId = "";
var tailTdStyle = "";
var tailId = "";
//

/////////////////////////////////////////////////////////////////////////////

var	ie=(navigator.appName=='Microsoft Internet Explorer')
var	ns=(navigator.appName=='Netscape')
var	dom=document.getElementById
var lw_menuId, lw_trigger, to1
var s1               
/////////////////////////////////////////////////////////////////////////////

function setSubItem(newSubItemForeground, newSubItemBorder, newSubItemBackground) {
	subItemForeground = newSubItemForeground
        subItemBorder = newSubItemBorder
        subItemBackground = newSubItemBackground
}	

function setSubItemHover(newSubItemHoverForeground, newSubItemHoverBorder, newSubItemHoverBackground) {
	subItemHoverForeground = newSubItemHoverForeground
        subItemHoverBorder = newSubItemHoverBorder
        subItemHoverBackground = newSubItemHoverBackground
}	

function Tmenu (id, parentId, url, description, img,
                newSubItemForeground, newSubItemBorder, newSubItemBackground,
                newSubItemHoverForeground, newSubItemHoverBorder, newSubItemHoverBackground,
                newTarget
               ) {
	this.id = id
	this.parentId = parentId
	this.url = url
	this.description = description
	this.numChild = 0
	this.levelId = 0
	this.img = img
	this.newSubItemForeground = newSubItemForeground
	this.newSubItemBorder = newSubItemBorder
	this.newSubItemBackground = newSubItemBackground
        this.newSubItemHoverForeground = newSubItemHoverForeground
        this.newSubItemHoverBorder = newSubItemHoverBorder
        this.newSubItemHoverBackground = newSubItemHoverBackground
        this.newTarget = newTarget
}

/////////////////////////////////////////////////////////////////////////////

var menu = new Array()
var menuCounter = 0
var numLevel = 0
var prevMenuId = -1
var nNowAt = 0

function displayMenuItem(menuId,appenTD) {
	var sHTML
	var boderWidth = menu[menuId].levelId>0?"1":"0"
	
	if (menu[menuId].parentId!=0) //andrew:parentId>0
	{
		ItemForeground = menu[menuId].newSubItemForeground!=""?menu[menuId].newSubItemForeground:subItemForeground 
		Border = menu[menuId].newSubItemBorder!=""?menu[menuId].newSubItemBorder:subItemBorder 
		Background = menu[menuId].newSubItemBackground!=""?menu[menuId].newSubItemBackground:subItemBackground 

		HoverForeground = menu[menuId].newSubItemHoverForeground!=""?menu[menuId].newSubItemHoverForeground:subItemHoverForeground 
		HoverBorder = menu[menuId].newSubItemHoverBorder!=""?menu[menuId].newSubItemHoverBorder:subItemHoverBorder 
		//HoverBackground = menu[menuId].newSubItemHoverBackground!=""?menu[menuId].newSubItemHoverBackground:subItemHoverBackground 
		HoverBackground = "#ffffff"
	}
	else
	{
		ItemForeground = mainItemForeground 
		Border = mainItemBorder 
		Background = mainItemBackground 

		HoverForeground = mainItemHoverForeground 
		HoverBorder = mainItemHoverBorder 
		HoverBackground = mainItemHoverBackground 

	}

	if ((orientation==1)||(menu[menuId].levelId>0))
	{
		sHTML += "<tr>"
	}
	
	if (menu[menuId].description!='-')
	{
		var thisTdStyle = menu[menuId].parentId==0 ? (menu[menuId].id==headId?headTdStyle:(menu[menuId].id==tailId?tailTdStyle:tdStyle)) : "" 
				
		sHTML = "<td id='menu_"+menuId+"' " + thisTdStyle + " "
		sStyle = "style='cursor:pointer;cursor:hand;border-style:solid;border-width:"+boderWidth+"px;background-color:"+ Background +";color=\""+ ItemForeground +"\";border-color:"+ Border +"' "
		sStyle += "onmouseover='clearInterval(s1);this.style.backgroundColor=\"" + HoverBackground + "\";this.style.color=\"" + HoverForeground + "\";this.style.borderColor=\"" + HoverBorder + "\";"
		//begin:andrew add more function here
		sStyle += (menu[menuId].url==""?"this.style.cursor=\"default\";":"")
		//end:andrew 

		if (menu[menuId].numChild!=0) {
			sStyle += "showSubmenu(\""+menu[menuId].id+"\",this);hideSubmenu(menu["+menuId+"].levelId+1);"
		}
		else
		{
			sStyle += "prevMenuId = \""+menuId+"\";hideSubmenu(menu["+menuId+"].levelId);"
		}
                //location href-andrew
		sStyle += ";nNowAt=\""+menuId+"\";clearAll("+menu[menuId].levelId+",\""+menu[menuId].parentId+"\")' "
		
		//onClick
		sStyle += "onclick='" + (menu[menuId].url==""?"":(menu[menuId].newTarget==""?"document.location.href=\""+menu[menuId].url+"\"" : "window.open(\""+menu[menuId].url+"\",\""+menu[menuId].newTarget+"\")") ) + ";"
		sStyle += "this.style.backgroundColor=\"" + HoverBackground + "\";this.style.color=\"" + HoverForeground + "\";this.style.borderColor=\"" + HoverBorder + "\";"
		sStyle += "'";
		//onMouseOut
		sStyle += "onmouseout='s1=setInterval(\"resetMenu();hideSubmenu(0)\",1000);"
		sStyle += "this.style.backgroundColor=\"" + Background + "\";this.style.color=\"" + ItemForeground + "\";this.style.borderColor=\"" + Border + "\";"
		sStyle += "'";
		//
		//sHTML += sStyle;
		sHTML += ">";
		//andrew
	        sHTML += "<table cellpadding=0 cellspacing=0 border=0 width=100% "+sStyle+"><tr>"	        

		if (menu[menuId].levelId>0)
		{
			//andrew
			sHTML += "<td class='menuTDClass01' width="+nArrowWidth+">"
//			sHTML += "<img src='"
//			if (menu[menuId].img=="")
//			{
//				sHTML += imgPath + "trans.gif"
//			}
//			else
//			{
//				sHTML += imgPath + menu[menuId].img
//			}
//			sHTML += "' width=16 height=16 border=0>"
			//andrew
			sHTML += "</td>"
		}

		if ((orientation==0) && (menu[menuId].levelId==0))
		{
			nArrowWidth = 0
		}
		else
		{
			nArrowWidth = 17
		}

                //andrew
                //padding-left:5px;padding-right:5px
		//sHTML += "<td nowrap='true' height='24' style='font-size:48px;' align="+menuAlign+">" + menu[menuId].description + "</td>"
		sHTML += "<td nowrap='true' class='menuTDClass02' height='24' align="+menuAlign+">" + menu[menuId].description + "</td>"
		//sHTML += menu[menuId].description.replace(" ","&nbsp;")
	        if (menu[menuId].levelId>0)
		{
		  sHTML += "<td class='menuTDClass03' align=right width="+nArrowWidth+">"

 		  if (menu[menuId].numChild>0)
		  {
//			if ((orientation==0)&&(menu[menuId].levelId==0))
//			{
//				sHTML += "<img src='" + imgPath + "arrow_down.gif'>"
//			}
//			else
//			{
//				sHTML += "<img src='" + imgPath + "arrow_right.gif'>"
//			}
			
			if ((orientation==0)&&(menu[menuId].levelId==0))
			{
				sHTML += "<img src='menuTDArrowDown' src='" + imgPath + "x.gif'>"
			}
			else
			{
				sHTML += "<img class='menuTDArrowRight' src='" + imgPath + "x.gif'>"
			}
			
			
		  }
		  else
		  {
			sHTML += "&nbsp;"
		  }
                  sHTML += "</td>"
                }  
		sHTML += "</tr></table>"
		if(appenTD==1)
		{
			sHTML += "</td>"
		}
		
	}
	else
	{
		sHTML = "<td><img src='" + imgPath + "trans.gif' height=2></td></tr><tr><td onmouseover='' bgcolor='#d0d0d0'><img src='" + imgPath + "trans.gif' height=1></td></tr><tr><td><img src='" + imgPath + "trans.gif' height=2></td>"
	}

	if ((orientation==1)||(menu[menuId].levelId>0))
	{
		sHTML += "</tr>"
	}	
	return sHTML
}

function clearAll(levelId, parentId) {

	if (levelId>0)
	{
		Border = subItemBorder 
		Background = subItemBackground 
	}
	else
	{
		Border = mainItemBorder 
		Background = mainItemBackground 
	}

	for (i=0;i<menuCounter;i++)
	{
		if (menu[i].levelId==levelId)
		{
			if ((i!=nNowAt) && (menu[i].parentId==parentId) && (menu[i].description!="-")) {
				lw_getObj("menu_"+i).backgroundColor=Background;
				lw_getObj("menu_"+i).borderColor=Border
			}
		}
	}

}

function mapID (id) {
	for (var i=0;i<menuCounter;i++)
	{
		if (menu[i].id==id)
		{
			return i
		}
	}
	return -1
}

function showSubmenu(menuId,trigger) {
	lw_menuId = menuId
	lw_trigger = trigger

	if (ns)
	{
		to1 = setTimeout("showActualSubmenu(lw_menuId,lw_trigger)",50)			
	}
	else
	{		
		showActualSubmenu(lw_menuId,lw_trigger)
	}
}

function showActualSubmenu(menuId,trigger) {
	var nLevel = 0
	var leftpos = 0 
	var nIndex=0

	if (menuId!=0) //andrew:menuId>0
	{
		lw_calcpos(trigger)

		for (var i=0;i<menuCounter;i++)
		{
			if (menu[i].id==menuId)
			{	
				nLevel = menu[i].levelId
				nIndex = i
			}
		}

		if ((orientation==1)||(menu[nIndex].parentId!=0)) //andrew:parentId>0
		{
			if(subItemOrientation==1)
			{
				lw_getObj("menu_level_"+nLevel).top=lw_toppos
				leftpos = lw_leftpos + lw_width + 5
//				leftpos = 0
				if (nLevel==0) {
					leftpos -= 3
				}
			
			}
			else
			{
				lw_getObj("menu_level_"+nLevel).top = lw_toppos + lw_height + 0						
				leftpos = lw_leftpos				
			}			
		}
		else {
			lw_getObj("menu_level_"+nLevel).top = lw_toppos + lw_height + 0
			leftpos = lw_leftpos
		}

		lw_getObj("menu_level_"+nLevel).left=leftpos
		//lw_getObj("menu_level_"+nLevel).left=0

		sHTML = "<table cellpadding=0 cellspacing=0 border=0>"
		for (var i=0;i<menuCounter;i++)
		{
			if (menu[i].parentId==menuId)
			{
				sHTML += displayMenuItem (i,subItemOrientation)
			}
		}		
		sHTML += "</table>"
		document.getElementById("menu_level_"+nLevel+"_content").innerHTML=sHTML
		lw_showLayer('menu_level_'+nLevel)
	} 
}

function hideSubmenu(levelId) {
	for (var cnt=levelId; cnt<numLevel; cnt++)
	{
		lw_hideLayerName("menu_level_"+cnt)
	}
}

function DrawMenu ()  {
        
	for (var i=0; i<numLevel ; i++)
	{
		lw_createLayer("menu_level_"+i,0,0,0,0,"#ffffff","#d0d0d0",100)
	}
	
	sHTML="<table " + tableStyle + " cellpadding=0 cellspacing=0>" //	
	for (var i=0; i<menuCounter; i++)
	{
		if (menu[i].parentId==0)
		{		
			sHTML += displayMenuItem(i,1)
		}
		else if (menu[i].parentId==-1)
		{		
			sHTML += "<tr><td><img src='trans' height=2></td></tr><tr bgcolor='"+mainItemBackground+"'><td style='padding:5px'><b>" + menu[i].description + "</b></td></tr>"
		}
	}
	sHTML += "</table>"
	document.writeln(sHTML)
}

function getLevel (menuId) {
	var pId=menuId	
	var nLevel=0
	
	while (pId!=0)
	{
		nLevel++
		for (var i=0;i<menuCounter;i++)
		{
			if (menu[i].id==pId)
			{	
				pId = menu[i].parentId
			}
		}
	}

	return nLevel
}

function AddMenuItem (id, parentId, url, description, img,
                      newSubItemForeground, newSubItemBorder, newSubItemBackground,
                      newSubItemHoverForeground, newSubItemHoverBorder, newSubItemHoverBackground,
                      newTarget
                     )  {

	menu[menuCounter++] = new Tmenu (id, parentId, url, description, img,
                                         newSubItemForeground, newSubItemBorder, newSubItemBackground,
                                         newSubItemHoverForeground, newSubItemHoverBorder, newSubItemHoverBackground,
                                         newTarget	
	                                )

	if (parentId!=0) //andrew:parentId>0
	{
		for (i=0;i<menuCounter;i++)
		{
			if (menu[i].id==parentId)
			{
				menu[i].numChild++
			}
		}
		menu[menuCounter-1].levelId = getLevel(parentId)

		if ( numLevel < menu[menuCounter-1].levelId)
		{	
			numLevel = menu[menuCounter-1].levelId
		}
	}	 
	else if (parentId==0)
	{
		menu[menuCounter-1].levelId = 0
	}
	else
	{
		menu[menuCounter-1].levelId = -1
	}
}

function handleonclick() {
	if (ns)
	{
		lw_closeAllLayers()
	}
	else
	{
		lw_closeAllLayers(event)
	}

	resetMenu()
}

function handlekeypress(e) {
	if (ns)
	{
		var keyCode = e.keyCode?e.keyCode:e.which?e.which:e.charCode;
		if ((keyCode==27)||(keyCode==1))
		{
			handleonclick()
		}
	}
	else
	if ((event.keyCode==0)||(event.keyCode==27))
	{
		handleonclick()
	}
	resetMenu()
}

function resetMenu () {
	for (i=0;i<menuCounter;i++)
	{
		if (menu[i].levelId==0)
		{
			lw_getObj("menu_"+i).backgroundColor=mainItemBackground
			lw_getObj("menu_"+i).borderColor=mainItemBorder
		}
	}
}

document.onkeypress = handlekeypress
document.onclick = handleonclick

