engine = {
	hideSubMenu : function() {
		if(!engine.refSubMenu) return;
		engine.refSubMenu.style.display = 'none';
		engine.refSubmenu = null;
	},
	setHoverState : function(evt) {
		if(engine.timer) {
			clearTimeout(engine.timer);
			engine.refSubMenu = null;
			engine.timer = null;
		}
		var elem = window.event ? window.event.srcElement : evt.currentTarget;
		while(elem.tagName != 'TD') elem = elem.parentNode;
		elem.subMenu.style.display = 'block';
	},
	setNormalState : function(evt) {
		var elem = window.event ? window.event.srcElement : evt.currentTarget; 
		while(elem.tagName != 'TD') elem = elem.parentNode;
		engine.refSubMenu = elem.subMenu;
		engine.timer = setTimeout('engine.hideSubMenu()', 500);
	},
	init : function() {
		if(document.body.style.MozAppearance!=null || navigator.appName == 'Opera') document.body.className = 'moz_body';
		var ie = (navigator.appName=='Microsoft Internet Explorer') ? parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;
		if(ie == -1 || ie > 6) return;
		// we've got an old IE here, let's search for submenus
		var menuItems = document.getElementById('menu').getElementsByTagName('TD');
		var subMenu;
		for(var i = 0; i < menuItems.length; i++)  {
			subMenu = menuItems[i].getElementsByTagName('UL');
			if(!subMenu.length) continue;
			// found a submenu, let's attach some event handlers and save a reference to it into a parent node
			menuItems[i].subMenu = subMenu[0];
			engine.listen(menuItems[i], 'mouseover', engine.setHoverState);
			engine.listen(menuItems[i], 'mouseout', engine.setNormalState);
		}
	},
	listen : function(obj, evt, func) {if (obj.addEventListener) return obj.addEventListener(evt, func, false); else if (obj.attachEvent) return obj.attachEvent("on" + evt, func); else return false;}	
}

engine.listen(window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null, "load", engine.init);

