var menu = {
	hidedelay: 1000, //time in ms to hide after mouseout
	
	//dont touch below
	selectedId: false,
	currentTimer: false,
	menuId: false,
	menuItems: false,
	smenuItems: false,
	
	getElementsByClassName: function(classname, node)  {
	    if(!node) node = document.getElementsByTagName("body")[0];
	    var a = [];
	    var re = new RegExp('\\b' + classname + '\\b');
	    var els = node.getElementsByTagName("*");
	    for(var i=0,j=els.length; i<j; i++)
	        if(re.test(els[i].className))a.push(els[i]);
	    return a;
	},
	
	init: function(menuId) {
		this.menuId = menuId;
		this.menuitems = this.getElementsByClassName('mitem', document.getElementById(this.menuId));
		this.smenuitems = this.getElementsByClassName('submenu', document.getElementById(this.menuId));
		for (var i=0; i<this.menuitems.length; i++) {
			this.menuitems[i].onmouseover = function(e) {
				if (this.getAttribute("id")) {
					menu.selectMenuItem(this.getAttribute("id"));
				}
			}
			
			this.menuitems[i].onmouseout = function(e) {
				if (this.getAttribute("id")) {
					menu.deSelectMenuItem(this.getAttribute("id"));
				}
			}
		}
	},
	
	selectMenuItem: function(itemId) {
		if (this.selectedId == itemId) {
			if (this.currentTimer) {
				clearTimeout(this.currentTimer);
				this.currentTimer = false;
			}
		}
		else if (this.selectedId == false) {
			this.hideAllItems();
		}
		else {
			this.hideMenuItem(this.selectedId);
		}
		var mitem = document.getElementById(itemId);
		var msitem = document.getElementById(itemId+'_sub');
		mitem.className = 'mitem active';
		if (msitem) {
			msitem.style.display = 'block';
		}
		this.selectedId = itemId;
		if (this.currentTimer) {
			clearTimeout(this.currentTimer)
		}
	},
	
	deSelectMenuItem: function(itemId) {
		this.currentTimer = setTimeout("menu.hideMenuItem('"+itemId+"')", this.hidedelay);
	},
	
	hideAllItems: function() {
		for (var i=0; i<this.menuitems.length; i++) {
			this.menuitems[i].className = 'mitem';
		}
		for (var i=0; i<this.smenuitems.length; i++) {
			this.smenuitems[i].style.display = 'none';
		}
	},
	
	hideMenuItem: function(itemId) {
		this.selectedId = false;
		if (this.currentTimer) {
			clearTimeout(this.currentTimer)
		}
		var mitem = document.getElementById(itemId);
		var msitem = document.getElementById(itemId+'_sub');
		if (mitem) {
			mitem.className = 'mitem';
		}
		if (msitem) {
			msitem.style.display = 'none';
		}
	}
}