function $(id){return typeof(id) == "string"?document.getElementById(id):id;}

function loadMenu(){
	createMenu();
	menuEffict?rootMouseEvent():"";
	hideOtherItems?"":loadItemsEvent();
}

var itemsClicked, rootClicked, navClicked, itemClick;
var oldSubObj;

function createMenu(){		//构建菜单内容
	var a = new Array();
	a[a.length] = "<table width='183' border='0' cellpadding='0' cellspacing='0' id='test'>";
	a[a.length] = menu_Title?("	<tr><td class='menuTitle'>" + menu_Title + "</td></tr>"):"";
	var rName,rUrl,rIndex,rOverClass,rOutClass,rExtend,rIcon,rootId;
	for(var r = 0; r < rootMenu.length; r++){
		rootId = "root_" + r;
		rName = rootMenu[r][0]; rUrl = rootMenu[r][1]; rIndex = rootMenu[r][2]; rOverClass = rootMenu[r][3];
		rOutClass = rootMenu[r][4]; rExtend = rootMenu[r][5], rIcon = rootMenu[r][6];
		a[a.length] = "<tr><td id='" + rootId + "' class='" + rOutClass + "'>" + rName + ((rIcon)?("<span style='margin-left:25px;'><img src='" + img_src + rIcon + "' border='0' id='nav_" + rootId + "'/>"):"") + "</td></tr>";
		subId = "sub_" + r;
	}
	a[a.length] = "</table>";
	document.write(a.join(""));
}

function appendNode(r){
	var sName,sUrl,sOverClass,sOutClass, subId, Items;
	var rootId;
	rootId = "root_" + r;
	if(subItems[r].length != 0){
		var a = new Array();
		var tr = document.createElement("TR");
		tr.id = "append_" + r;
		var td = document.createElement("TD");
		//a[a.length] =  "<tr><td>";
		//a[a.length] = "<table width='100%' border='0' cellpadding='0' cellspacing='0' id='" + rootId + "_items' style='display:" + (rExtend?"block":"none") + "'>";
		a[a.length] = "<table width='100%' border='0' cellpadding='0' cellspacing='0' id='" + rootId + "_items'>";
		//a[a.length] = "<tbody id='" + rootId + "_items' style='display:" + (rExtend?"block":"none") + "'>";
		for(var s = 0; s < subItems[r].length; s++){
			Items = subItems[r][s];
			subId = "sub_" + r + "_" + s;
			sName = Items[0]; sUrl = Items[1]; sOverClass = Items[2]; sOutClass = Items[3]; target = Items[4];
			//a[a.length] = "<tr><td class='" + sOutClass + "'" + ((sUrl)?" url='" + sUrl + "'":"") + " id='" + subId + "'>" + sName + "</td></tr>";
			a[a.length] = "<tr class='" + sOverClass + "'><td class='textOver' id='" + subId + "'><a href='" + ((sUrl)? sUrl:"") + "'" + ((target=="")?"":"target='" + target + "'") + ">" + sName + "</td></tr>";
		}
		//a[a.length] = "</tbody>";
		//a[a.length] = "<tr><td class='menu-buttom'></td></tr>";
		//a[a.length] = "</table></td></tr>";
		a[a.length] = "<tr><td class='menu-buttom'></td></tr></table>";
		td.innerHTML = a.join("");
		tr.appendChild(td);
		var cur_node = jeanbiGetObjById(rootId).parentNode;
		var next_node = cur_node.nextSibling;
		if(next_node){
			next_node.parentNode.insertBefore(tr,next_node);
		}else{
			cur_node.parentNode.appendChild(tr);
		}
		oldSubObj = jeanbiGetObjById("append_" + r);
	}
	var cur_node = jeanbiGetObjById("root_" + r)
	if(rootClicked){
		rootClicked.className = "rOut";
	}else{
		cur_node.className = "rClicked";
	}
	//cur_node.className = "rOver";
	rootClicked = cur_node;
}

function rootMouseEvent(){		//主菜单的触发方法
	var _root;
	for(var i = 0; i < rootMenu.length; i++){
		_root = jeanbiGetObjById("root_" + i);
		_root.onmouseover = function(){
			if(rootClicked == this)
				return;
			this.className = "rOver"
		}
		_root.onmouseout = function(){
			if(rootClicked != this){
				this.className = "rOut";
			}
		}
		_root.onclick = function(){
			var subItemsId = this.id + "_items";
			if(hideOtherItems){
				openItemsCloseOther(this,subItemsId);
				loadItemsEventByClick(jeanbiGetObjById(subItemsId));
			}else{
				openItemsKeepOther(subItemsId);
			}

			//清空所有被点击的子菜单
			(itemClick)?itemClick.className = "sOut":"";
			itemClick = null;

			var _index = this.id.substring(this.id.indexOf("_") + 1,this.id.length);	//获取主菜单的下标
			var nodeIndex = rootMenu[_index][7];
			(nodeIndex)?nodeIndex:nodeIndex=0;		//过滤没指定子菜单位置的错误?
			var subObj = jeanbiGetObjById(subItemsId);
			if(subObj){
				var node = subObj.childNodes;
				(nodeIndex>=node.length)?(nodeIndex=node.length):(nodeIndex);		//过滤指定子菜单位置超过子菜单数量的错?
				if(nodeIndex!="0"&&node.length!=0){			//无子菜单，不执行子菜单定位操?
					//setSubDefault(_index,nodeIndex);
				}
				navControl("nav_" + this.id);
				//触发链接的动作?
				//var url = rootMenu[_index][1]
				//url?jGoUrl(url):"";
			}
		}
	}
}

function openItemsCloseOther(obj,objId){		//展开一个菜单，关闭其他菜单的方?
	var items = jeanbiGetObjById(objId);
	var _index = obj.id.substring(obj.id.indexOf("_") + 1,obj.id.length);	//获取主菜单的下标
	//var appendObj = jeanbiGetObjById("append_" + _index);
	if(oldSubObj){
		var appendObj = jeanbiGetObjById("append_" + _index);
		if(appendObj == oldSubObj){
			oldSubObj.parentNode.removeChild(oldSubObj);
			//appendNode(_index);
			oldSubObj = null;
			obj.className = "rOut";
			rootClicked = null;
		}else{
			oldSubObj.parentNode.removeChild(oldSubObj);
			appendNode(_index);
			if(rootClicked == obj){
				obj.className = "rClicked";
			}
		}
	}else{
		appendNode(_index);
	}
	oldSubObj = jeanbiGetObjById("append_" + _index);
	/*if(items){
		if(rootClicked){
			rootClicked == obj ? "":rootClicked.className = "rOut";
		}
		/*if(itemsClicked){
			(itemsClicked != items)?itemsClicked.style.display="none":"";
		}
		//items.style.display == "none"?items.style.display = "block":items.style.display = "none";
		rootClicked = obj;
		itemsClicked = items;
	}*/
}

function openItemsKeepOther(objId){			//展开菜单，其他菜单维持不变的方法
	var obj = jeanbiGetObjById(objId);
	obj.style.display == "none"?obj.style.display = "block":obj.style.display = "none";
}

function loadItemsEventByClick(obj){			//触发子菜单的鼠标状态?
	if(!obj)
		return;
	var child = obj.childNodes[0];
	if(!child) return;
	for(var i = 0; i < child.childNodes.length - 1; i++){
		var _item = child.childNodes[i].cells[0];
		/*_item.onmouseover = function(){
			this.className = "sOver";
		}
		_item.onmouseout = function(){
			if(itemClick != this)
				this.className = "sOut";
		}
		_item.onclick = function(){
			if(itemClick){
				if(itemClick != this){
					itemClick.className = "sOut";
					this.className = "sClicked";
				}
			}
			itemClick = this;

			//触发链接的动作?
			var url = this.getAttribute("url");
			url?jGoUrl(url):"";
		}*/
	}
}

function loadItemsEvent(){				//页面加载时触发子菜单的鼠标状?
	var _items;
	for(var r = 0; r < rootMenu.length; r++){
		_items = jeanbiGetObjById("root_" + r + "_items").childNodes;
		for(var i = 0; i < _items.length; i++){
			var _item = _items[i].cells[0];
			_item.onmouseover = function(){
				this.className = "sOver";
			}
			_item.onmouseout = function(){
				if(itemClick != this)
					this.className = "sOut";
			}
			_item.onclick = function(){
				if(itemClick){
					if(itemClick != this){
						itemClick.className = "sOut";
						this.className = "sClicked";
					}
				}
				itemClick = this;

				//触发链接的动作?
				var url = this.getAttribute("url");
				url?jGoUrl(url):"";
			}
		}
	}
}

function navControl(objId){		//控制箭头的状态?
	var getNavObj = jeanbiGetObjById(objId);
	if(getNavObj){
		var imgSrc = getNavObj.src;
		if(navClicked){
			if(navClicked == getNavObj){
				if(imgSrc.indexOf("_over") != -1)
					getNavObj.src = imgSrc.replace(/\/nav_down_over\./ig,"/nav_down.");
				else
					getNavObj.src = imgSrc.replace(/\/nav_down\./ig,"/nav_down_over.");
			}else{
				navClicked.src = imgSrc.replace(/\/nav_down/ig,"/nav");
				getNavObj.src = imgSrc.replace(/\/nav\./ig,"/nav_down.");
			}
		}else{
			getNavObj.src = imgSrc.replace(/\/nav\./ig,"/nav_down.");
		}
	}else{
		navClicked?navClicked.src = navClicked.src.replace(/\/nav_down_over/ig,"/nav"):"";
		navClicked?navClicked.src = navClicked.src.replace(/\/nav_down/ig,"/nav"):"";
	}
	navClicked = getNavObj;
}

function jGoUrl(url){
	switch(td_target){
		case "new":
			window.open(url);
			break;
		default:
			eval((c_method?c_method + ".":c_method) + "location.href='" + url + "'");
			break;
	}
}

function setSubDefault(index,node){
	var subNode = jeanbiGetObjById("root_" + index + "_items").childNodes[0].childNodes;
	subNode[node-1].childNodes[0].className = "sClicked";
	subNode[node-1].childNodes[0].onclick();
}

function openSubItem(subItemId){		//页面特殊指定时的调用
	var _rIndex = subItemId.substring(subItemId.indexOf("_") + 1,subItemId.lastIndexOf("_"));
	var _root = jeanbiGetObjById("root_" + _rIndex);
	if(_root!=rootClicked){		//当主菜单已经打开时不执行再次打开主菜单的操作?
		//主菜单的操作
		_root.className = "rClicked";
		
		//子菜单列表的操作
		var subItemsId = "root_" + _rIndex + "_items"
		var _items = jeanbiGetObjById(subItemsId);
		openItemsCloseOther(_items,subItemsId);
		loadItemsEventByClick(jeanbiGetObjById(subItemsId));
		itemsClicked = _items;

		//箭头的操?
		var _navObj = "nav_root_" + _rIndex;
		navControl(_navObj);
	}
	//子菜单项的操?
	var item = jeanbiGetObjById(subItemId);
	item.className = "sClicked";
	item.click();
	rootClicked = _root;

	window.status = subItemId;
}

function jeanbiGetObjById(obj){
	if(document.all)
		return document.all(obj);
	return document.getElementById(obj);
}

function jeanbiOnLoad(e){
	if(document.all){
		window.attachEvent("onload",e);
	}else{
		window.addEventListener("load",e,false);
	}
}

