


function initMenu ()
{
	
	var objMenu = document.getElementById('topmenu');
	
	var menu = objMenu;
	if (!menu) return;
	var submenus = menu.getElementsByTagName('UL');
	if (!submenus) return;
	
	while (submenus.length) {
	
		var submenu = submenus[0];
		var a = submenu.parentNode.getElementsByTagName('A')[0];

		// if (!a) continue;
			// a = a[0];
		// if (!a) continue;

		(function (submenu, item) {
			item.onmouseover = function () {showMenu(submenu)}
			submenu.style.left = left(item) + 'px';
			submenu.style.top = top(item) + item.offsetHeight + 'px';
			submenu.item = item;
			document.body.appendChild(submenu);
			
			var submenus = submenu.getElementsByTagName('UL');

			while (submenus.length) {
				var ssubmenu = submenus[0];
				var a2 = ssubmenu.parentNode.getElementsByTagName('A')[0];

				// if (!a) continue;
					// a = a[0];
				// if (!a) continue;

				(function (ssubmenu, item) {
					ssubmenu.setAttribute('sub2', true);
					item.onmouseover = function () {
						showMenu(ssubmenu);
						ssubmenu.style.left = left(item) + item.offsetWidth + 'px';
						ssubmenu.style.top = top(item) - 2 + 'px';
					}
					ssubmenu.item = item;
					document.body.appendChild(ssubmenu);
				})(ssubmenu, a2)
			}
			
		})(submenu, a)
	}

	document.onmouseover = function (e)
	{
		if (actMenu) {
			if (
				!isPar(actMenu, document.all ? event.srcElement : e.target)&&
				!isPar(actMenu.item, document.all ? event.srcElement : e.target)&&
				!isPar(subMenu, document.all ? event.srcElement : e.target)
			) {
				hideMenu(actMenu);
				if (subMenu) hideMenu(subMenu);
			}
		}
		if (subMenu) {
			if (
				!isPar(subMenu, document.all ? event.srcElement : e.target)&&
				!isPar(subMenu.item, document.all ? event.srcElement : e.target)
			) {
				hideMenu(subMenu);
			}
		}
	}

	function isPar (parent, elm)
	{
		while (elm) {
			if (elm == parent) return true;
			elm = elm.parentNode;
		}
		return false;
	}

	var actMenu;
	var subMenu;
	
	// function showMenu(menu)
	// {
		// menu.style.display = 'block';
		// if (actMenu != menu) hideMenu(actMenu);
		// actMenu = menu;
	// }

	function hideMenu (menu)
	{
		if (!menu) return;
		menu.style.display = 'none';
		if (actMenu == menu) actMenu = false;
		if (subMenu == menu) subMenu = false;
	}

	function left (node)
	{
		var left = 0;
		while (node) {
			left += node.offsetLeft;
			node = node.offsetParent;
		}
		return left;
	}

	function top (node)
	{
		var top = 0;
		while (node) {
			top += node.offsetTop;
			node = node.offsetParent;
		}
		return top;
	}
	
	function showMenu (menu)
	{
		if (!menu || actMenu == menu) return;
		
		
		if (!menu.getAttribute('sub2')) {
			if (actMenu) {
				clearTimeout(showTimer);
				setOpacity(actMenu, 10);
				hideMenu(actMenu);
			}
			actMenu = menu;
		} else {
			if (subMenu) {
				clearTimeout(showTimer);
				setOpacity(subMenu, 10);
				hideMenu(subMenu);
			}
			subMenu = menu;
		}
		
		
		menu.style.display = 'block';
		menu.style.height = '';
		var end = menu.offsetHeight;
		var step = Math.round(menu.offsetHeight/6);
		menu.style.height = '0px';
		menu.style.overflow = 'hidden';
		var cur = 0;
		setOpacity(menu, 1);
		var i = 0;
		showTimer = setTimeout(function () {
			i++;
			cur += step;
			setOpacity(menu, i*2);
			menu.style.height = cur + 'px';
			if (cur>end) {
				cur = end;
				setOpacity(menu, 10);
			} else {
				showTimer = setTimeout(arguments.callee, 50);
			}
		}, 50);
	}
	
	function setOpacity(elm, value) {
		elm.style.opacity = value/10;
		elm.style.filter = 'alpha(opacity=' + value*10 + ')';
	}
	
	// function hideMenu ()
	// {
		// var end = start;
		// var step = Math.round(end/5);
		// var cur = loginBlock.offsetHeight;
		// setTimeout(function () {
			// cur -= step;
			// if (cur<start)
				// cur = start
			// else
				// setTimeout(arguments.callee, 50);
			// loginBlock.style.height = cur + 'px';
		// }, 50);

		// loginDisplay = false;
	// }
	
}
