var menuXmlDoc;	//IE FireFox
var TextOverForeColor="#000000";
var TextOverBGColor="#CECBCE";
var TextOutForeColor="#000000";
var TextOutBGColor="#F7F7F7";
var hiddenFlag=true;
var Href=document.location.href;
var xmlDataPath="";
var RootMenuObj=document.getElementById("menutd");	//IE FireFox
var arrowimage="/Images/Main_menu_button/arrows.gif"
var xmlRootMenuGroupNodes;

function InitMenuXmlDoc()
{
	if(window.ActiveXObject)
	{
		menuXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else if(document.implementation && document.implementation.createDocument)
	{
		menuXmlDoc = document.implementation.createDocument('', '', null);
	}
}
function InitMenu()
{
	InitMenuXmlDoc();
	var HerfTemp=Href.split("/");
	arrowimage="/"+HerfTemp[3]+arrowimage;
	if(HerfTemp[3]=="CN" || HerfTemp[3]=="cn" || HerfTemp[3]=="cN" || HerfTemp[3]=="Cn")
	{
		xmlDataPath="/MenuData_SC.xml";
	}
	else
	{
		xmlDataPath="/MenuData_EN.xml";
	}
	menuXmlDoc.async=false;
	menuXmlDoc.load(xmlDataPath);
	var menuRootXmlDoc;	//IE FireFox
	if(window.ActiveXObject)
	{
		menuRootXmlDoc=menuXmlDoc.childNodes[1];
	}
	else
	{
		menuRootXmlDoc=menuXmlDoc.childNodes[0];
	}
	var myXmlCldLen = menuRootXmlDoc.childNodes;
	var menuItemOrderno = 1;
	for(var i=0;i<myXmlCldLen.length;i++)
	{
		if(menuRootXmlDoc.childNodes[i].nodeName=="separator")
		{
			var menudiv=document.createElement("div");
			menudiv.innerHTML="<img src="+menuRootXmlDoc.childNodes[i].getAttribute("src")+">";
			RootMenuObj.appendChild(menudiv)
		}
		if(menuRootXmlDoc.childNodes[i].nodeName=="menu")
		{
			var menudivtemp=document.createElement("div");
			var imagesrc=menuRootXmlDoc.childNodes[i].getAttribute("src");
			var imagesrcarr=imagesrc.split(".");
			var imagesrc_out=imagesrc;
			var imagesrc_over=imagesrcarr[0]+"_over."+imagesrcarr[1];
			var imgElementTemp = "";
			
			imgElementTemp = imgElementTemp + "<img ";
			imgElementTemp = imgElementTemp + " src=" + imagesrc;
			imgElementTemp = imgElementTemp + " oversrc=" + imagesrc_over;
			imgElementTemp = imgElementTemp + " outsrc=" + imagesrc_out;
			imgElementTemp = imgElementTemp + " onmouseover=RootMenu_Over(event); ";
			imgElementTemp = imgElementTemp + " onmouseout=RootMenu_Out(event); ";
			if(menuRootXmlDoc.childNodes[i].getAttribute("linkhref")!=null&&menuRootXmlDoc.childNodes[i].getAttribute("linkhref")!="")
			{
				imgElementTemp = imgElementTemp + " onclick=MenuItem_OnClick(event); ";
				imgElementTemp = imgElementTemp + " target=" + menuRootXmlDoc.childNodes[i].getAttribute("target");
				imgElementTemp = imgElementTemp + " linkhref='" + menuRootXmlDoc.childNodes[i].getAttribute("linkhref") + "'";
			}
			imgElementTemp = imgElementTemp + " orderno=" + menuItemOrderno;
			imgElementTemp = imgElementTemp + " style='cursor:pointer;'";
			imgElementTemp = imgElementTemp + " >";
			menudivtemp.innerHTML = imgElementTemp;
			RootMenuObj.appendChild(menudivtemp)
			menuItemOrderno++;
		}
	}
	if(window.ActiveXObject)
	{
		xmlRootMenuGroupNodes = menuRootXmlDoc.selectNodes("/menu/menu");
	}
	else
	{
		var oEvaluator = new XPathEvaluator();
		if(oEvaluator != null)
		{
		   var oResult = oEvaluator.evaluate("/menu/menu",menuRootXmlDoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
		   var nodes = new Array;
		   var node;
		   while(node=oResult.iterateNext())
		   {
			 nodes.push(node);
		   }
		   xmlRootMenuGroupNodes = nodes;
		}
	}
	CheckTimeOutHidMenu();
}
function CheckTimeOutHidMenu()
{
	if(hiddenFlag)
		hiddenMenuItem(RootMenuObj.attributes.getNamedItem("id").nodeValue,-1);
	window.setTimeout("CheckTimeOutHidMenu()",1000);
}
document.body.onload=new Function(InitMenu());	//IE FireFox
function MenuItem_OnClick(evt)
{
	var imgobj=evt.srcElement?evt.srcElement:evt.target;
	while(imgobj.tagName!="DIV"&&imgobj.tagName!="IMG")
	{
		if(imgobj.tagName=="TD")
			imgobj=imgobj.parentNode.parentNode.parentNode.parentNode;
		else
			imgobj=imgobj.parentNode;
	}
	if(imgobj.getAttribute("target")!=null&&imgobj.getAttribute("target")=="_new")
		window.open(imgobj.getAttribute("linkhref"),imgobj.getAttribute("target"));
	else
		if(imgobj.getAttribute("linkhref")!=null&&imgobj.getAttribute("linkhref")!="")
			document.location=imgobj.getAttribute("linkhref");
}

function MenuItem_OnMouseOver(left,top,orderno,parentid)
{
	hiddenMenuItem(parentid,orderno);
	var childMenuID=parentid+"_"+orderno;
	var menudiv=document.getElementById(childMenuID);
	if(menudiv==null)
	{
		menudiv=CreateChildMenu(childMenuID);
		if(menudiv==null)
			return;
	}
	
	menudiv.style.position="absolute";
	menudiv.style.left=left;
	menudiv.style.top=top;
	menudiv.style.display="block";
}

function hiddenMenuItem(parentid,showcount)
{
	var parentObj=document.getElementById(parentid);
	if(parentObj==null)
		return ;
	var childLen = parentObj.childNodes.length;
	//FireFox解析XML時，可能將回車或空格也解析為一個元素了，所以其子節點總比IE下多一倍加1
	if(!window.ActiveXObject)
		childLen = (childLen*2) + 1;
	for(var i=0;i<childLen;i++)
	{
		var objid;
		objid=parentid+"_"+i;
		/*
		if(window.ActiveXObject||parentid == "menutd")
			objid=parentid+"_"+i;
		else
			objid=parentid+"_"+ (i*2 +1);
		*/
		var obj=document.getElementById(objid);
		if(obj!=null)
		{
			if(i!=showcount)
			{
				if(obj.childNodes.length>0)
				{
					hiddenMenuItem(objid,-1);
				}
				obj.style.display="none";
			}
			else
				obj.style.display="block";
		}
	}
}

function RootMenu_Out(evt)
{
	hiddenFlag=true;
	var imgobj=evt.srcElement?evt.srcElement:evt.target;
	imgobj.src=imgobj.getAttribute("outsrc");
}
function RootMenu_Over(evt)
{
	hiddenFlag=false;
	var imgobj=evt.srcElement?evt.srcElement:evt.target;
	imgobj.src = imgobj.getAttribute("oversrc");
	var childmenuleft=getObjLeft(imgobj)+imgobj.offsetWidth;
	var childmenutop=getObjTop(imgobj);
	var idname = imgobj.parentNode.parentNode.attributes.getNamedItem("id").nodeValue;
	MenuItem_OnMouseOver(childmenuleft,childmenutop,imgobj.getAttribute("orderno"),idname);
}
function ItemMenu_Over(evt)
{
	hiddenFlag=false;
	var divobj = evt.srcElement?evt.srcElement:evt.target;
	while(divobj.tagName!="DIV")
	{
		divobj=divobj.parentNode.parentNode.parentNode.parentNode;
	}
	divobj.style.backgroundColor=TextOverBGColor;
	divobj.style.color=TextOverForeColor;
	var childmenuleft=getObjLeft(divobj)+divobj.offsetWidth+2;
	var childmenutop=getObjTop(divobj)+1;
	var idname = divobj.parentNode.attributes.getNamedItem("id").nodeValue;
	MenuItem_OnMouseOver(childmenuleft,childmenutop,divobj.getAttribute("orderno"),idname);
}
function ItemMenu_Out(evt)
{
	hiddenFlag=true;
	var divobj = evt.srcElement?evt.srcElement:evt.target;
	while(divobj.tagName!="DIV")
	{
		divobj=divobj.parentNode.parentNode.parentNode.parentNode;
	}
	divobj.style.backgroundColor=TextOutBGColor;
	divobj.style.color=TextOutForeColor;
}
function CreateChildMenu(id)
{
	var idarr=id.split("_");
	var xmlnode=xmlRootMenuGroupNodes[parseInt(idarr[1])-1];
	for(var i=2;i<idarr.length;i++)
	{
		xmlnode=xmlnode.childNodes[parseInt(idarr[i])];
	}
	if(xmlnode.childNodes.length==0)
		return null;
	menudiv=document.createElement("div");	
	menudiv.style.width="200";
	
	menudiv.setAttribute("id",id);
	menudiv.style.backgroundColor=TextOutBGColor;
	menudiv.style.border="1px solid #cccccc";
	menudiv.style.display="none";
	var xmlLen = xmlnode.childNodes.length;
	if(!window.ActiveXObject)
		xmlLen--;
	var j=-1;	//FireFox要執行下邊的i++，因此下邊的orderno設置就會不對，所以加了j
	for(var i=0;i<xmlLen;i++)
	{
		j++;
		var imgElementTemp = "<div";
		if(!window.ActiveXObject)	//firefox 因為空格也把它算入一節點，所以length 比IE要多一倍+1
			i++;

		if(xmlnode.childNodes[i].getAttribute("linkhref")!=null&&xmlnode.childNodes[i].getAttribute("linkhref")!="")
		{
			if(xmlnode.childNodes[i].getAttribute("target")!=null&&xmlnode.childNodes[i].getAttribute("target")!="")
				imgElementTemp = imgElementTemp + " target=" + xmlnode.childNodes[i].getAttribute("target");
			imgElementTemp = imgElementTemp + " onclick=MenuItem_OnClick(event); ";
			imgElementTemp = imgElementTemp + " linkhref=" + xmlnode.childNodes[i].getAttribute("linkhref");
		}
		if(j > 0)
			imgElementTemp = imgElementTemp + " style='padding:4px;padding-left:8px;fontSize:9pt;cursor:pointer;border-Top:1px solid #cccccc;'";
		else
			imgElementTemp = imgElementTemp + " style='padding:4px;padding-left:8px;fontSize:9pt;cursor:pointer;'";
		imgElementTemp = imgElementTemp + " onmouseover=ItemMenu_Over(event);";
		imgElementTemp = imgElementTemp + " onmouseout=ItemMenu_Out(event);";
		imgElementTemp = imgElementTemp + " orderno=" + i;
		imgElementTemp = imgElementTemp + " >";
		
		if(xmlnode.childNodes[i].childNodes.length>0)
		{
			//imgElementTemp = imgElementTemp + "<span style=\"width:170;\">"+xmlnode.childNodes[i].getAttribute("value")+"</span>";
			//imgElementTemp = imgElementTemp + "<span style=\"width:12;text-align:right\"><image src="+arrowimage+"></span>";
			imgElementTemp=imgElementTemp+"<table border=0 cellpadding=0 cellspacing=0 width=186><tr><td width=174>"+xmlnode.childNodes[i].getAttribute("value")+"</td><td><image src="+arrowimage+"></td></tr></table>"
		}
		else
		{
			imgElementTemp = imgElementTemp + xmlnode.childNodes[i].getAttribute("value");
		}
		imgElementTemp = imgElementTemp + "</div>";
		menudiv.innerHTML = menudiv.innerHTML + imgElementTemp;
	}
	document.body.appendChild(menudiv);
	return menudiv;
}

//====為了讓FireFox 支持 attachEvent begint [沒有用到]
Object.prototype.attachEvent=function(method,func)
{
 if(!this[method])
  this[method]=func;
 else
  this[method]=this[method].attach(func);
}
Function.prototype.attach=function(func){
 var f=this;
 return function(){
  f();
  func();
 }
}
//====為了讓FireFox 支持 attachEvent end

function getObjLeft(obj)
{
	if(obj.tagName=="BODY")
	{
		return 0;
	}
	else
	{
		return parseInt(obj.offsetLeft)+getObjLeft(obj.offsetParent);
	}
}
function getObjTop(obj)
{
	if(obj.tagName=="BODY")
	{
		return 0;
	}
	else
	{
		return parseInt(obj.offsetTop)+getObjTop(obj.offsetParent);
	}
}


function RanDim(Min,Max)
{
	var minNum=parseInt(Min);
	var maxNum=parseInt(Max);
	var TempNum=Math.random()*(maxNum-minNum+1)+minNum;
	var ArrNum=TempNum.toString().split(".");
	return ArrNum[0];
}
function GetRandImageNum()
{
	return RanDim(1,10);
}	
