/*--------------------------------------------------------------------
' File:		MenuClient.js
' Purpose:	Handle Menu specific client-side issues
' Updated:	030901
' Version:	040502
' Edited:	TNY
' Status:	Release
' Copyright © Centroid Software Ab Oy 2000-2003, Finland
'				All rights reserved. 
'--------------------------------------------------------------------*/
/*--------------------------------------------------------------------
*  global variable scope
*-------------------------------------------------------------------*/
var objElement, iTimer=-1, iDelay=100;
var ns6 = document.getElementById && !document.all ? true:false;
var ns4 = document.layers ? true:false;

if(ns6)window.captureEvents(Event.MOUSEMOVE); 

/*--------------------------------------------------------------------
*  Function:showMenus
*  Purpose:	Show a menu
*-------------------------------------------------------------------*/
function showMenus(divNr,divSubNr, nLeft, nTop) {
	var menuDiv;
	var menuSubDiv;
	
	hideMainMenus();
	
	if (ns4)
	{
	}
	else if (ns6)
		menuDiv = document.getElementById("menu"+divNr);
	else
		menuDiv = document.all["menu"+divNr];		
	
	menuDiv.style.visibility = "visible";
	menuDiv.onmouseover = function(){ if (iTimer > -1) { clearTimeout(iTimer); iTimer = -1; } };
	
	if (divSubNr >= 0)
	{
		hideSubMenus(divNr);
		if (divSubNr > 0)
		{
			if (ns4)
			{
			}
			else if (ns6)
				menuSubDiv = document.getElementById("menu"+divSubNr);
			else
				menuSubDiv = document.all["menu"+divSubNr];
				
			menuSubDiv.style.visibility = "visible";
			menuSubDiv.onmouseover = function(){ if (iTimer > -1) { clearTimeout(iTimer); iTimer = -1; } };
			menuSubDiv.onmouseout = function(){ spawnHide(divSubNr); }; 
			menuSubDiv.style.left = nLeft;
			menuSubDiv.style.top = nTop;
	
			menuDiv.onmouseout = function(){ spawnHide(divNr); }; 
		}
	}
	else
	{
		menuDiv.onmouseout = function(){ hideSubMenus(divNr); spawnHide(divNr); }; 
		menuDiv.style.left = nLeft+10;
		menuDiv.style.top = nTop;
	}
}

/*--------------------------------------------------------------------
*  Function:spawnHide
*  Purpose:	Wait a little while for hiding
*-------------------------------------------------------------------*/
function spawnHide(divNr) {
	if (iTimer > -1) clearTimeout(iTimer);
	iTimer = setTimeout("hideMenu("+divNr+")", iDelay);
}

/*--------------------------------------------------------------------
*  Function:hideMenu
*  Purpose:	Hide the menu
*-------------------------------------------------------------------*/
function hideMenu(divNr) {
	var menuDiv;
	if (divNr > 0 )
	{
		if (ns4)
		{
		}
		else if (ns6)
			menuDiv = document.getElementById("menu"+divNr);
		else
			menuDiv = document.all["menu"+divNr];
		menuDiv.style.visibility = "hidden";
		if (divNr < 10)
			hideSubMenus(divNr);
	}
}

/*--------------------------------------------------------------------
*  Function:hideSubMenus
*  Purpose:	hide the submenus for a menus
*-------------------------------------------------------------------*/
function hideSubMenus(divNr){
	var menuDiv;
	var i;
	
	for (i=10;i<100;i++)
	{
		if (i!=divNr)
		{
			if (ns4)
			{
			}
			else if (ns6)
				menuDiv = document.getElementById("menu"+i);
			else
				menuDiv = document.all["menu"+i];
			if (menuDiv)
				menuDiv.style.visibility = "hidden";
		}
	}
}

/*--------------------------------------------------------------------
*  Function:hideMainMenus
*  Purpose:	hide all main menus
*-------------------------------------------------------------------*/
function hideMainMenus()
{
	var i;
	var menuDiv;
	
	for (i=1;i<10;i++)
	{
		if (ns4)
		{
		}
		else if (ns6)
			menuDiv = document.getElementById("menu"+i);
		else
			menuDiv = document.all["menu"+i];		
			
		if (menuDiv)
			menuDiv.style.visibility = "hidden";
	}
}

/*--------------------------------------------------------------------
*  Function:blinkOn,blinkOff
*  Purpose:	handle state changes for blink functions
*-------------------------------------------------------------------*/
function blinkOn(e){
	if (ns6){
		if (e.currentTarget.className == "menuItem")
			e.currentTarget.className = "menuItemOn";
		if (e.currentTarget.className == "menuBar")
			e.currentTarget.className = "menuBarOn";
		if (e.currentTarget.className == "pop")
			e.currentTarget.className = "popOn";
		if (e.currentTarget.className == "popmap")
			e.currentTarget.className = "popOnmap";
		if (e.currentTarget.className == "poptheme")
			e.currentTarget.className = "popOntheme";
		if (e.currentTarget.className == "listItem")
			e.currentTarget.className = "listItemOn";
		if (e.currentTarget.className == "popMenuItem")
			e.currentTarget.className = "popMenuItemOn";
		if (e.currentTarget.className == "mapTool")
			e.currentTarget.className = "mapToolOn";
		if (e.currentTarget.className == "languageItem")
			e.currentTarget.className = "languageItemOn";		
	}
	else{	
		if (window.event.srcElement.className == "menuItem")
			window.event.srcElement.className = "menuItemOn";
		if (window.event.srcElement.className == "menuBar")
			window.event.srcElement.className = "menuBarOn";
		if (window.event.srcElement.className == "pop")
			window.event.srcElement.className = "popOn";
		if (window.event.srcElement.className == "popmap")
			window.event.srcElement.className = "popOnmap";
		if (window.event.srcElement.className == "poptheme")
			window.event.srcElement.className = "popOntheme";
		if (window.event.srcElement.className == "listItem")
			window.event.srcElement.className = "listItemOn";
		if (window.event.srcElement.className == "popMenuItem")
			window.event.srcElement.className = "popMenuItemOn";
		if (window.event.srcElement.className == "mapTool")
			window.event.srcElement.className = "mapToolOn";
		if (window.event.srcElement.className == "languageItem")
			window.event.srcElement.className = "languageItemOn";	
	}
}

function blinkOff(e){
	if (ns6){
		if (e.currentTarget.className == "menuItemOn")
			e.currentTarget.className = "menuItem";
		if (e.currentTarget.className == "menuBarOn")
			e.currentTarget.className = "menuBar";
		if (e.currentTarget.className == "popOn")
			e.currentTarget.className = "pop";
		if (e.currentTarget.className == "popOnmap")
			e.currentTarget.className = "popmap";
		if (e.currentTarget.className == "popOntheme")
			e.currentTarget.className = "poptheme";
		if (e.currentTarget.className == "listItemOn")
			e.currentTarget.className = "listItem";
		if (e.currentTarget.className == "popMenuItemOn")
			e.currentTarget.className = "popMenuItem";
		if (e.currentTarget.className == "mapToolOn")
			e.currentTarget.className = "mapTool";
		if (e.currentTarget.className == "languageItemOn")
			e.currentTarget.className = "languageItem";

	}
	else{
		if (window.event.srcElement.className == "menuItemOn")
			window.event.srcElement.className = "menuItem";
		if (window.event.srcElement.className == "menuBarOn")
			window.event.srcElement.className = "menuBar";
		if (window.event.srcElement.className == "popOn")
			window.event.srcElement.className = "pop";
		if (window.event.srcElement.className == "popOnmap")
			window.event.srcElement.className = "popmap";
		if (window.event.srcElement.className == "popOntheme")
			window.event.srcElement.className = "poptheme";
		if (window.event.srcElement.className == "listItemOn")
			window.event.srcElement.className = "listItem";
		if (window.event.srcElement.className == "popMenuItemOn")
			window.event.srcElement.className = "popMenuItem";
		if (window.event.srcElement.className == "mapToolOn")
			window.event.srcElement.className = "mapTool";
		if (window.event.srcElement.className == "languageItemOn")
			window.event.srcElement.className = "languageItem";
	}
}
	
/*--------------------------------------------------------------------
*  Function:showPop
*  Purpose:	show the popup
*-------------------------------------------------------------------*/
function showPop(theDiv, nLeft, nTop, bShowOnly) 
{
	var popDiv;
	
	// hide the theme pop
	if (ns4)
	{
	}
	else if (ns6)
	{
		popDiv = document.getElementById("popMaps");
		popDiv.style.visibility = "hidden";
		popDiv = document.getElementById("popThemes");
	}
	else
	{
		hidePop(popMaps);
		popDiv = document.all["popThemes"];
	}
	
	if (popDiv)
		popDiv.style.visibility = "hidden";
	
	// show the current pop
	if (ns4)
	{
	}
	else if (ns6)
		popDiv = document.getElementById(theDiv);
	else
		popDiv = document.all[theDiv];
		
	popDiv.style.visibility = "visible";
	popDiv.onmouseover = function(){ if (iTimer > -1) { clearTimeout(iTimer); iTimer = -1; } };
	
	// hide if allowed)
	if (!bShowOnly)
	{
		if (ns6)
			popDiv.onmouseout = function(){ spawnPop(theDiv.id); };
		else
			popDiv.onmouseout = function(){ spawnPop(theDiv); };
	}
	popDiv.style.left = nLeft;
	popDiv.style.top = nTop;
}

/*--------------------------------------------------------------------
*  Function:spawnPop
*  Purpose:	Wait a while for hiding the popup
*-------------------------------------------------------------------*/
function spawnPop(theDiv) {
	if (iTimer > -1) clearTimeout(iTimer);
	if (ns6)
		iTimer = setTimeout("hidePop('"+theDiv+"')", iDelay);
	else
		iTimer = setTimeout("hidePop("+theDiv+")", iDelay);
}

/*--------------------------------------------------------------------
*  Function:hidePop
*  Purpose:	Hide the popup
*-------------------------------------------------------------------*/
function hidePop(theDiv) {
	var popDiv;
	if (ns4)
	{
	}
	else if (ns6)
		popDiv = document.getElementById(theDiv);
	else
		popDiv = document.all[theDiv.id];
	popDiv.style.visibility = "hidden";
}

/*--------------------------------------------------------------------
*  Function:showListPop
*  Purpose:	Show the list popup
*-------------------------------------------------------------------*/
function showListPop(divNr){
	blinkOn(event);
	if (ns4)
	{
	}
	else if (ns6)
		menuDiv = document.getElementById("pop"+divNr);
	else
		menuDiv = document.all["pop"+divNr];
	if (menuDiv)
	{
		menuDiv.style.visibility = "visible";
	}
}
	
/*--------------------------------------------------------------------
*  Function:hideListPop
*  Purpose:	Hide the list popup
*-------------------------------------------------------------------*/
function hideListPop(divNr){
	blinkOff(event);
	if (ns4)
	{
	}
	else if (ns6)
		menuDiv = document.getElementById("pop"+divNr);
	else
		menuDiv = document.all["pop"+divNr];
	if (menuDiv)
	{
		menuDiv.style.visibility = "hidden";
	}
}