//通用函数集合

//通用类
Util = {
	$ : function (id){
		if(typeof(id) == 'object'){
			return id;
		}else{
			return document.getElementById(id);
		}
	}
	,each : function(s, f, bind){
		if(typeof(bind) == 'undefined'){
			bind = false;
		}

		for(var i=0; i<s.length; i++){
			var e = s[i];
			if(bind){
				f.apply(e);
			}else{
				f(e);
			}
		}
	}

	,hasClass : function(e, className){
		var reg = new RegExp('\\b' + className + '\\b', 'i');
		return reg.test(e.className);
	}
	,addClass : function(e, className){
		if(!Util.hasClass(e, className)){
			e.className += " " + className;
		}
	}
	,removeClass : function(e, className){
		var reg = new RegExp('\\b' + className + '\\b', 'ig');
		e.className = e.className.replace(reg, '');
	}
}


/**
//菜单最外侧的容器
panel : null,
//菜单项的tagName
itemTagName : 'li',
//菜单项的class
itemClassName : 'menuitem',
//打开时添加的样式
openSubMenuClassName : 'menuopen',
//隐藏的延时
hideSubMenuTimeout : 1000,
**/
var SimpleSubMenu = new Function ();
SimpleSubMenu.prototype = {
	//菜单最外侧的容器
	panel : null,
	//菜单项的tagName
	itemTagName : 'li',
	//菜单项的class
	itemClassName : 'menuitem',
	//打开时添加的样式
	openSubMenuClassName : 'menuopen',
	//隐藏的延时
	hideSubMenuTimeout : 1000,

	init : function(){
		var panel = Util.$(this.panel);
		var o = this;
		Util.each(panel.getElementsByTagName(o.itemTagName), function(e){
			if(Util.hasClass(e, o.itemClassName)){
				e.onmouseover = function(event){
					o.killTimer();
					o.last!=e && o.hide();
					Util.addClass(e, o.openSubMenuClassName);
					o.last = e;
				}
				e.onmouseout = function(event){
					o.startTimer();
				}
			}
		});
	},

	hide : function(){
		this.killTimer();
		this.last && Util.removeClass(this.last, this.openSubMenuClassName);
	},
	startTimer : function (){
		var o = this;
		if(o.hideSubMenuTimeout){
			this.showtimer = setTimeout(function(){
				o.killTimer();
				o.hide();
			}, o.hideSubMenuTimeout);
		}
	},
	killTimer : function (){
		if(this.showtimer){
			clearInterval(this.showtimer);
			this.showtimer = null
		}
	}
}



