/********************************************************************************************************/
/*	COPYRIGHT (C) 2003 NITRO FX Oy																		*/
/*	http://www.nitrofx.com																				*/
/********************************************************************************************************/

var opera = (navigator.userAgent.indexOf('Opera')>-1);
var ns4 = (navigator.appName=="Netscape")&&(parseInt(navigator.appVersion)==4);
var ie4 = (document.all && !document.getElementById);
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);
var safari = (navigator.userAgent.indexOf('safari')!=-1)&&(navigator.userAgent.indexOf('mac')!=-1);

var tempY = 0;							
var tempX = 0;							


var buttonTimeout = 10000;		// määritetään kuinka kauan menu on auki buttonista
var onMouseOutTimeOut = 100;		// timeoutti hiiren poistuessa divin päältä
var timing;				// tallennetaan timeout
var trigger;				// määrittelee käytettävän menu-layerin
var mainLayerName = "screen";

var pageWidth = 876;			// main-divin leveys (tästä lasketaan nollakohta)
var staticPosTop = 58;

var menuLayerName = new Array();	// menulayereiden nimet								
var menuLayerPos = new Array();		// määritetään positio main-divin nollakohdasta


/*******************************************************************************************************/
// MENULAYERIN AVAUS
/*******************************************************************************************************/
function show(menu)
{
	clearTimeout(timing);				// pysäytetään ajanotto
	hideAll();					// suljetaan kaikki mahdollisesti jo auki olevat menut
	//handleSelectsUnderMenu('hidden');		// piilotetaan selectit
	setTrigger(menu);				// asetetaan trigger argumentin mukaan

	if (ie4)
	{
		document.all[menu].style.visibility = "visible";
	}
	// IE 5+ & NS 6+
	else if(ns4)
	{
		eval("document.layers." + menu + ".visibility='show';");
	}
	else 
	{
		document.getElementById(menu).style.visibility = "visible";
	}

}

/*******************************************************************************************************/
// SULKEE KAIKKI MENUT
/*******************************************************************************************************/
function hideAll(){
	handleSelectsUnderMenu('visible');
	trigger = "";						// asetetaan trigger tyhjäksi 
	if (ie4)
	{
		for (i=0;i<menuLayerName.length ;i++ )
		{
			document.all[menuLayerName[i]].style.visibility = "hidden";
		}
	}
	// IE 5+ & NS 6+
	else if(ns4)
	{
		for (i=0;i<menuLayerName.length ;i++ )
		{
			eval("document.layers."+menuLayerName[i]+".visibility='hide';");
		}
	} 
	else 
	{
		for (i=0;i<menuLayerName.length ;i++ )
		{
			document.getElementById(menuLayerName[i]).style.visibility = "hidden";
		}
	}
}

/*******************************************************************************************************/
// SEURAA HIIRTÄ
/*******************************************************************************************************/
document.onmousemove = mouseMove;	

function mouseMove(e) {				

	isIE=document.all;
	isNN=!document.all&&document.getElementById;
	isN4=document.layers;

	if(trigger){					
		alueLeft = document.getElementById(trigger).style.left;					
		alueTop = document.getElementById(trigger).style.top;					
		alueWidth = document.getElementById(trigger).style.width;
		alueHeight = document.getElementById(trigger).style.height;				

		l = parseInt(alueLeft.replace("px",""));
		t = parseInt(alueTop.replace("px",""));
		w = parseInt(alueWidth.replace("px",""));
		h = parseInt(alueHeight.replace("px",""));

		tempX=isIE ? event.clientX : e.clientX;	
		tempY=isIE ? event.clientY : e.clientY;	

		if (tempY >= t && tempY <= t + h &&  tempX >= l && tempX <= l + w){	
			eval("show('"+trigger+"');");
		}
		return true;
	}
}

/*******************************************************************************************************/
// APUFUNKKARIT
/*******************************************************************************************************/
function setTrigger(args)
{
	trigger = args;
}
/*******************************************************************************************************/
function handleSelectsUnderMenu(visibility)
{
	for(i=0;i<document.getElementsByTagName("SELECT").length;i++)
	{
		if (visibility=="hidden")
		{
			document.getElementsByTagName("SELECT")[i].style.visibility = "hidden";
		}

		else
		{
			document.getElementsByTagName("SELECT")[i].style.visibility = "visible";
		}
	}
}

/*******************************************************************************************************/
function hide()
{
	timing=setTimeout("hideAll()",onMouseOutTimeOut);
}

/*******************************************************************************************************/
// MENUNAPIT KUTSUU TÄTÄ
/*******************************************************************************************************/
function menuBtn(menu)
{
	show(menu);
	timing=setTimeout("hideAll()",buttonTimeout);
}

/*******************************************************************************************************/


/*******************************************************************************************************/
// KESKITTÄÄ SIVUN ja MENULAYERIT
/*******************************************************************************************************/


function browserSize()
{
	var myWidth = 0, myHeight = 0;
		if( typeof( window.innerWidth ) == 'number' ) 
		{
			//Non-IE
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;
		} 
		else 
		{
			if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
			{
				//IE 6+  'standards compliant mode'
				myWidth = document.documentElement.clientWidth;
				myHeight = document.documentElement.clientHeight;
			} 
			else 
			{
				if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
				{
					//IE 4 
					myWidth = document.body.clientWidth;
					myHeight = document.body.clientHeight;
				}
			}
		}

	// asetetaan margin
	margin = (myWidth-pageWidth)/2; 
	margin = Math.floor(margin);
	
	// tarkistetaan scrolleja. mozillassa scrollin leveys on 7 operassa 8
	if(ie5 || safari) 
	{
		if(opera)
		{
			scrollBar = (window.innerWidth-document.body.clientWidth);
			if(scrollBar>0)
			{
				margin = margin-8;
			}
		}
	}
	else if (ns6)
	{
		scrollBar = (window.innerWidth-document.width);
		if(scrollBar>"16")
		{
			margin = margin-7;
		}

	}
	// estetään vasemman reunan skaalautuminen selaimen ulkopuolelle
	if(margin<0)
	{
		margin=0;
	}
	
	if (ie4)
	{
		for (i=0; i<menuLayerName.length; i++ )
		{
			document.all[menuLayerName[i]].style.top = staticPosTop+"px";
			document.all[menuLayerName[i]].style.left = (menuLayerPos[i])+"px";
		}

	}
	else if (ns4)
	{
		for (i=0; i<menuLayerName.length; i++ )
		{
			eval("document.layers."+menuLayerName[i]+".top = "+ staticPosTop+"+\"px\";");
			eval("document.layers."+menuLayerName[i]+".left = ("+menuLayerPos[i]+")+\"px\";");
		}
	}
	else
	{
		for (i=0; i<menuLayerName.length; i++ )
		{
			document.getElementById(menuLayerName[i]).style.top = staticPosTop+"px";
			document.getElementById(menuLayerName[i]).style.left = (menuLayerPos[i])+"px";
      //alert(menuLayerPos[i]);
		}
	}

}

onresize = function() // kutsutaan ylläolevaa onresize-eventhandlerilla
{ 
	initMenu();
	browserSize();
}

onload = function() // kutsutaan ylläolevaa onload-eventhandlerilla
{ 
	initMenu();
	browserSize();
}

/*******************************************************************************************************/
// ETSII ANNETUN LAYERIN X tai Y-arvon
/*******************************************************************************************************/

function findPosX(obj)
{
  var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			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 = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

/*******************************************************************************************************/
// Asettaa menuLayerPos ja MenuLayerName arrayn arvot
/*******************************************************************************************************/

function initMenu()
{
	if (document.getElementById('mainMenu') ) // jos on mainMenu

	{
		for (i=0;i<99;i++)	// luupataan menut läpi
		{
			if (eval("document.getElementById('menu"+(i+1)+"')")) // jos menudivi löytyy
			{
				eval("menuLayerPos["+i+"] = findPosX(document.getElementById('m"+(i+1)+"'))"); //  asetetaan sen left-positio
				eval("menuLayerName["+i+"] = 'menu"+(i+1)+"'"); // ja nimi järjestyksessä menu1, menu2 jne.
        //alert(menuLayerName[i]+" = "+menuLayerPos[i]);
			}
		}
	}

}
