var MenuItem = Class.create({
	initialize:function(element){
		this.element = $(element);
		this.items = null;
		this.closeTimeoutId = null;
		this.menu = null;
		this.childMenu = null;
		this.depth = 0;
		this.parent = null;
	},
	addItem:function(menuItem){
		if(!this.items)
			this.items = [];
		menuItem.parent = this;
		menuItem.depth = this.depth + 1;
		menuItem.menu = this.menu;
		this.items.push(menuItem);
	},
	isParentOf:function(childItem){//判断当前item是不是childItem的parent
		var temp = childItem;
		while(temp.parent){
			if(temp.parent == this)
				return true;
			temp = temp.parent;
		}
		return false;
	},
	topItem:function(){
		var temp = this;
		while(temp){
			if(temp.depth == 0)
				return temp;
			temp = temp.parent;
		}
		return temp;
	},
	render:function(){
		var self = this;
		function elementMouseOver(e){
			//关闭所有兄弟菜单
			var items = self.parent?self.parent.items:self.menu.rootItems;
			items.each(function(item){
				if(self != item)
					item.closeAll();
			});
			
			self.clearCloseTimeout();
			if(self.depth == 0){
				self.childMenu.setStyle({
					"top":self.element.cumulativeOffset().top + self.element.getHeight() + "px",
					"left":self.element.cumulativeOffset().left + "px"
				});
			}else{
				self.childMenu.setStyle({
					"top":self.element.cumulativeOffset().top + "px",
					"left":self.element.cumulativeOffset().left + self.element.getWidth() + "px"
				});
			}
			//
			var temp = self;
			while(temp){
				temp.open();
				temp = temp.parent;
			}
			//self.childMenu.show();
			self.menu.currentItem = self;
		}
		this.element.observe("mouseover",elementMouseOver.bindAsEventListener());
		function elementMouseOut(e){
			//关闭当前的子菜单
			self.timeoutClose();
		}
		this.element.observe("mouseout",elementMouseOut.bindAsEventListener());
		this.childMenu = $(document.createElement("ul"));
		this.childMenu.setStyle({
			"position":"absolute",
			"display":"none",
			"top":"0px",
			"left":"0px",
			"margin":"0px"
		});
		if(this.menu.childMenuClassName)
			this.childMenu.addClassName(this.menu.childMenuClassName);
		
		function childMenuMouseOver(e){
			var target = e.element();
			var relatedTarget = e.relatedTarget || e.fromElement;
			if(!$(relatedTarget).descendantOf(self.childMenu) && $(relatedTarget) != self.childMenu){
				self.clearCloseTimeout();
			}
		}
		this.childMenu.observe("mouseover",childMenuMouseOver.bindAsEventListener());
		function childMenuMouseOut(e){
			//var target = e.element();
			//var relatedTarget = e.relatedTarget || e.toElement;
			//alert(self);
			//if(!$(relatedTarget).descendantOf(self.childMenu) && $(relatedTarget) != self.childMenu){
				var temp = self;
				while(temp){
					temp.timeoutClose();
					temp = temp.parent;
				}
			//}
		}
		this.childMenu.observe("mouseout",childMenuMouseOut.bindAsEventListener());
		
		$A(this.items).each(function(item,index){
			item.render();
			var li = $(document.createElement("li"));
			li.appendChild(item.element);
			self.childMenu.appendChild(li);
		});
		
		if(!this.items)
			return;
		document.body.appendChild(this.childMenu);
	},
	open:function(){
		this.clearCloseTimeout();
		if(this.childMenu)
			this.childMenu.show();
	},
	close:function(){
		if(this.childMenu)
			this.childMenu.hide();
	},
	closeAll:function(){
		this.close();
		if(!this.items)return;
		this.items.each(function(item){
			item.closeAll();
		});
	},
	clearCloseTimeout:function(){
		clearTimeout(this.closeTimeoutId);
		this.closeTimeoutId = null;
	},
	timeoutClose:function(){
		var self = this;
		this.clearCloseTimeout();
		this.closeTimeoutId = setTimeout(close,500);//这里不能直接用this.close或者self.close
		function close(){
			self.close();
		}
	}
});

var Menu = Class.create({
	initialize:function(childMenuClassName){
		this.rootItems = [];
		this.currentItem = null;//当前展开的MenuItem
		this.childMenuClassName = childMenuClassName;
	},
	addItem:function(rootItem){
		rootItem.depth = 0;
		rootItem.parent = null;
		rootItem.menu = this;
		this.rootItems.push(rootItem);
	},
	render:function(){
		this.rootItems.each(function(item,index){
			item.render();
		});
	}
});

function winMenu(){
	function createItemElement(objText,objId){
		var a = document.createElement("a");
		a.href = "/hxjrw/morenews.asp?id="+objId;
		a.target = "_blank";
		var textNode = document.createTextNode(objText);
		a.appendChild(textNode);
		return a;
	}
	var menu = new Menu("childMenu2");
	//item1
	if ($("menuXyjs"))
	{
		var objItem = new MenuItem($("menuXyjs"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("征信法律法规","4121")));
		objItem.addItem(new MenuItem(createItemElement("征信标准化管理","4154")));
		var item13 = new MenuItem(createItemElement("企业征信管理","4113"));
		objItem.addItem(item13);
		var item131 = new MenuItem(createItemElement("企业信用信息基础数据库","4092"));
		item13.addItem(item131);
		var item132 = new MenuItem(createItemElement("应收账款质押登记管理","4101"));
		item13.addItem(item132);
		var item14 = new MenuItem(createItemElement("个人征信管理","4093"));
		objItem.addItem(item14);	
		item14.addItem(new MenuItem(createItemElement("个人信用信息基础数据库","4176")));
		item14.addItem(new MenuItem(createItemElement("个人信用报告查询指南","4177")));
		item14.addItem(new MenuItem(createItemElement("个人信用报告异议处理指南","4178")));
		var item15 = new MenuItem(createItemElement("征信市场管理","4152"));
		objItem.addItem(item15);
		item15.addItem(new MenuItem(createItemElement("评级市场管理","4155")));
		objItem.addItem(new MenuItem(createItemElement("中小企业信用体系建设","4099")));
		objItem.addItem(new MenuItem(createItemElement("农户信用体系建设","89")));
		var item16 = new MenuItem(createItemElement("征信宣传","4162"));
		objItem.addItem(item16);	
		item16.addItem(new MenuItem(createItemElement("征信宣传资料","4151")));
		item16.addItem(new MenuItem(createItemElement("征信宣传动态","2955")));
	}
	menu.render();
	menu = new Menu("childMenu");
	if ($("menuJrzx"))
	{
		objItem = new MenuItem($("menuJrzx"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("海西经济金融聚焦","4111")));
		objItem.addItem(new MenuItem(createItemElement("海峡两岸合作交流","4112")));
		objItem.addItem(new MenuItem(createItemElement("国内经济金融要讯","4114")));
		objItem.addItem(new MenuItem(createItemElement("国际经济金融速递","4115")));
	}
	
	if ($("menuJrzc"))
	{
		objItem = new MenuItem($("menuJrzc"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("宏观政策","4116")));
		objItem.addItem(new MenuItem(createItemElement("金融法规","4090")));
	}
  	
	if ($("menuJrfw"))
	{
		objItem = new MenuItem($("menuJrfw"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("央行金融服务","4089")));
		objItem.addItem(new MenuItem(createItemElement("融资服务机构","4185")));
		objItem.addItem(new MenuItem(createItemElement("中介服务机构","4096")));
		objItem.addItem(new MenuItem(createItemElement("金融产品","4095")));
	}
	
	if ($("menuJrpt"))
	{
		objItem = new MenuItem($("menuJrpt"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("银企对接","4145")));
		objItem.addItem(new MenuItem(createItemElement("同业交流","4137")));
		objItem.addItem(new MenuItem(createItemElement("项目推介","4118")));
		objItem.addItem(new MenuItem(createItemElement("企业推介","4119")));
	}
	
	if ($("menuJrbs"))
	{
		objItem = new MenuItem($("menuJrbs"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("贷款卡","4124")));
		objItem.addItem(new MenuItem(createItemElement("外汇业务","4125")));
		objItem.addItem(new MenuItem(createItemElement("其他业务","4128")));
	}

	if ($("menuJraq"))
	{
		objItem = new MenuItem($("menuJraq"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("金融监管","98")));
		objItem.addItem(new MenuItem(createItemElement("金融稳定","4174")));
		objItem.addItem(new MenuItem(createItemElement("反洗钱","4153")));
		objItem.addItem(new MenuItem(createItemElement("风险教育","99")));
		objItem.addItem(new MenuItem(createItemElement("其他","4088")));
	}
	
	if ($("menuJrwh"))
	{
		objItem = new MenuItem($("menuJrwh"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("金融园地","4097")));
		objItem.addItem(new MenuItem(createItemElement("钱币鉴赏","96")));
		objItem.addItem(new MenuItem(createItemElement("金融人物","4098")));
	}
	menu.render();
	menu = new Menu("childMenu1");
	if ($("menuHbzc"))
	{
		objItem = new MenuItem($("menuHbzc"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("存款准备金政策","4142")));
		objItem.addItem(new MenuItem(createItemElement("利率政策","4117")));
		objItem.addItem(new MenuItem(createItemElement("汇率政策","4134")));
		objItem.addItem(new MenuItem(createItemElement("信贷政策","4135")));
	}
	if ($("menuFxq"))
	{
		objItem = new MenuItem($("menuFxq"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("动态信息","173")));
		objItem.addItem(new MenuItem(createItemElement("基础知识","172")));
	}
	menu.render();
}

function mhMenu(){
	function createItemElement(objText,objId){
		var a = document.createElement("a");
		a.href = "/pfwz/morenews.asp?id="+objId;
		a.target = "_blank";
		var textNode = document.createTextNode(objText);
		a.appendChild(textNode);
		return a;
	}
	var menu = new Menu("childMenu");
	
	if ($("memuZwgk"))
	{
		objItem = new MenuItem($("memuZwgk"));
		menu.addItem(objItem);
		objItem.addItem(new MenuItem(createItemElement("对内公开","3967")));
		objItem.addItem(new MenuItem(createItemElement("对外公开","3968")));
	}
	menu.render();
}