var shownMenu = false;
var timeoutToHide = false;
var menusSetup = false;

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft - obj.scrollLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop - obj.scrollTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
	

function showMenuJK(menu, dock){
	if(!menusSetup) return;
	menu = document.getElementById(menu);

/*	if(shownMenu!=menu) 
		shownMenu.timeout = setTimeout( "hideMenu(document.getElementById('"+shownMenu.id+"'))", 300);
	else
		return;
*/	shownMenu = menu 
	if(menu.style.visibily=="visible") return;

	menu.style.width = dock.offsetWidth+6;
	menu.style.left = findPosX(dock)-2;
	menu.style.top = findPosY(dock) + dock.offsetHeight-37;
	
	if(menu.timeout) { alert(menu.timeout); clearTimeout(menu.timeout); menu.timeout = null }
	if(menu.filters && menu.filters.blendTrans) { menu.filters.blendTrans.stop(); }
	if(menu.filters)  { menu.style.filter="blendTrans(duration=0.2)"; }
	if(menu.filters) { menu.filters.blendTrans.apply(); }
	menu.style.visibility = "visible";
	if(menu.filters) { menu.filters.blendTrans.play(); }
}

function showMenuJI(menu, dock){
	if(!menusSetup) return;
	menu = document.getElementById(menu);
	
/*	if(shownMenu!=menu) 
		hideMenu(shownMenu);
	else
		return;
*/		
	shownMenu = menu 
	if(menu.style.visibily=="visible") return;

	menu.style.width = dock.offsetWidth+2;
	menu.style.left = findPosX(dock)-1;
	menu.style.top = findPosY(dock) + dock.offsetHeight-50;
	
	if(menu.timeout) { clearTimeout(menu.timeout); menu.timeout = null }
	if(menu.filters && menu.filters.blendTrans) { menu.filters.blendTrans.stop(); }
	if(menu.filters)  { menu.style.filter="blendTrans(duration=0.2)"; }
	if(menu.filters) { menu.filters.blendTrans.apply(); }
	menu.style.visibility = "visible";
	if(menu.filters) { menu.filters.blendTrans.play(); }
	
}

function showMenu(){
	if(this.timeout) { clearTimeout(this.timeout); this.timeout = null }
	if(this.style.visibility == "hidden"){
		if(this.filters && this.filters.blendTrans) { this.filters.blendTrans.stop(); }
		if(this.filters)  { this.style.filter="blendTrans(duration=0.2)"; }
		if(this.filters) { this.filters.blendTrans.apply(); }
		this.style.visibility = "visible";
		if(this.filters) { this.filters.blendTrans.play(); }
	}
}

function hideMenu(menu){
	if(!menu) return;
	menu.timeout = null;
	
	if(shownMenu==menu) shownMenu=false;
	if(menu.style.visibily=="hidden") return;

	
	if(menu.filters && menu.filters.blendTrans) { menu.filters.blendTrans.stop(); }
	if(menu.filters)  { menu.style.filter="blendTrans(duration=0.3)"; }
	if(menu.filters) { menu.filters.blendTrans.apply(); }
	menu.style.visibility = "hidden";
	if(menu.filters) { menu.filters.blendTrans.play(); }
}


function startHide(e){
	if(!menusSetup) return;

	if(!e) e = window.event;
	
	if(e.relatedTarget) 
		el = e.relatedTarget;
	else
		el = e.toElement;
	isInMenu = false;
	while (el){
		if(el==this) isInMenu = true;
		el = el.offsetParent;
	}
	if(!isInMenu){
		if(!this.timeout) this.timeout = setTimeout( "hideMenu(document.getElementById('"+this.id+"'))", 100);
	}
}

function startHide2(e, menu){
	if(!menusSetup) return;

	if(!e) e = window.event;
	
	if(e.relatedTarget) 
		el = e.relatedTarget;
	else
		el = e.toElement;
	menu = document.getElementById(menu)
	isInMenu = false;
	while (el){
		if(el==menu) isInMenu = true;
		el = el.offsetParent;
	}	
	if(!isInMenu){
		if(!menu.timeout) menu.timeout = setTimeout( "hideMenu(document.getElementById('"+menu.id+"'))", 100);
	}
}

function setupMenus(){
	menus = document.getElementsByTagName("DIV");
	for(i=0; i<menus.length; i++){
		menus[i].onmouseout = startHide;
		menus[i].onmouseover = showMenu;
	}
	menusSetup = true;
}

function checkMenus(e){
	if(!shownMenu) return;
	if(!e) e = window.event;
	
	if(e.relatedTarget) 
		el = e.relatedTarget;
	else
		el = e.toElement;
	if(el.className=="menuItem") return;

	isInMenu = false;
	while (el){
		if(el.id==shownMenu.id) isInMenu = true;
		el = el.offsetParent;
	}
	if(!isInMenu) 
		hideMenu(shownMenu);	
}

window.onload = setupMenus;
//document.onmouseover = checkMenus;
