// JavaScript Document
var focusTimeout= 800;
var lastMenuItem= null;
var menuTimeout = null;
var slideTimer 	= null;
/* simple menu
menu = new Array();
menu['tagID']={
	'main page':'index.htm',
	'about':'about.htm'
};
*/
function downSlideMenu(menu){
	for ( var tagID in menu ){	//	each tag id in menu
		var menuItem = document.getElementById(tagID);
		if (!menuItem) continue;
		//	main menu init
		menuItem.onmouseover = function ()	{ downSlideMenuDrop(this) };
		menuItem.onmouseout = function ()	{ downSlideMenuOut(this) };
		//	slide content layer (box)
		var slideLayer = document.createElement( 'div' ) ;
		slideLayer.className = "downSlideMenu";
		menuItem.parentNode.insertBefore(slideLayer, menuItem);
		//	float submenu layer build (slider)
		var menuLayer = document.createElement( 'div' ) ;
		menuLayer.className = "downSlideContainer";
		menuLayer.onmouseover = function()	{ downSlideMenuOver(this); }
		menuLayer.onmouseout = function()	{ downSlideMenuOut(this); }
		//	Append
		slideLayer.appendChild(menuLayer);
		//	submenu build
		var ndx = 0;
		var subMenu = menu[tagID];
		for ( var subMenuName in subMenu){
			if (ndx++){
//				var hr = document.createElement( 'hr' ) ;
//				hr.className = "hr";
//				menuLayer.appendChild(hr);
			}
			var linkItem = document.createElement( 'a' ) ;
			linkItem.href = subMenu[subMenuName];
			linkItem.innerHTML = subMenuName;
			linkItem.onmouseover = function()	{ downSlideMenuOver(this); }
			linkItem.onmouseout = function()	{ downSlideMenuOut(this); }
			//	Append
			menuLayer.appendChild(linkItem);
		}
	}
}
//	open new layer
function downSlideMenuDrop(menuItem){
	clearMenuTimeout();
	if (lastMenuItem == menuItem) return;
	
	closeSlideMenu();
	lastMenuItem = menuItem;
	menuItem.className = "current";
	
	menuSlideLayer = menuItem.previousSibling;
	menuLayer = menuSlideLayer.firstChild;
	
	menuSlideLayer.style.visibility = "visible";
	menuLayer.style.top = (-menuSlideLayer.clientHeight)+"px";
	menuLayer = null;
	menuSlideLayer = null;

	slideMenuTimer();
}
//	close last opened layer
function closeSlideMenu(){
	if (!lastMenuItem) return;
	menuSlideLayer = lastMenuItem.previousSibling;
	menuSlideLayer.style.visibility = "hidden";
	lastMenuItem.className = "";
	menuSlideLayer = null;
	lastMenuItem = null;
}
//	clear autoclose timeout
function downSlideMenuOver(subItem)	{clearMenuTimeout();}
//	set timeout autoclode layer
function downSlideMenuOut(subItem)	{;setMenuTimeout();}
//	clear timeout interval timer
function clearMenuTimeout(){
	clearTimeout(menuTimeout);
	menuTimeout = null;
}
//	create timeout interval timer
function setMenuTimeout()	{
	clearTimeout(menuTimeout);
	menuTimeout = setTimeout(closeSlideMenu, focusTimeout);
}

function slideMenuTimer(){
	clearTimeout(slideTimer);
	if (!lastMenuItem) return;
	slideTimer = setTimeout(slideMenuTimer, 15);
	menuSlideLayer = lastMenuItem.previousSibling;
	menuLayer = menuSlideLayer.firstChild;

	pos = parseInt(menuLayer.style.top);
	menuLayer.style.top = (pos - Math.max(-15, pos/4))+"px";
	menuLayer = null;
	menuSlideLayer = null;
}
