

// config
var siteCenterMenu = false;
var menudebug = false;
var currentOverElement;

// dokumenttimääritykset
window.onload = initializeCompatibility;
document.onclick = hideCurrentPopup;

function getPageOffset(el, dir) {
	switch(dir)
		{
		case 'left':
			return el.offsetLeft + (el.offsetParent ? getPageOffset(el.offsetParent, 'left') : 0);
			break;
		case 'top':
			return el.offsetTop + (el.offsetParent ? getPageOffset(el.offsetParent, 'top') : 0);
			break;
		case 'right':
			return getPageOffset(el, 'left') + el.offsetWidth;
			break;
		case 'bottom':
			return getPageOffset(el, 'top') + el.offsetHeight;
			break;
		}
	}


function getStyleObject(objectId) {
    if(document.getElementById && document.getElementById(objectId)) 
		{ 
		return document.getElementById(objectId).style; 
		} 
	else if (document.all && document.all(objectId)) 
		{ 
		return document.all(objectId).style; 
		} 
	else if (document.layers && document.layers[objectId]) 
		{ 
		return document.layers[objectId];
		} 
	else 
		{ 
		return false; 
		}
	}

function showPopup (targetObjectId, eventObj, menuLevel, forceHideOtherPopups, element, xoffset, yoffset) {
    if(eventObj) 
		{
		currentOverElement = targetObjectId;
		if (forceHideOtherPopups) { hideAllPopups(true); }
		
		// muodostetaan styleobjekti
		var styleObject = getStyleObject(targetObjectId);
		
		// 0-tason menut piilottavat aina kaikki aktivoituessaan
		if (menuLevel == 0) 
			{ 
			hideAllPopups(); 
			var sHorizDir = 'left';
			var sVertDir = 'bottom';
			}
		else
			{
			var sHorizDir = 'right';
			var sVertDir = 'top';
			}
			
		if(styleObject) { styleObject.left = getPageOffset(element, sHorizDir) + xoffset ; styleObject.top = getPageOffset(element, sVertDir) + yoffset ; } 
		else { if (menudebug) { window.alert('styleObject-virhe'); } return false; }
		
		eventObj.cancelBubble = true;
		
		// jos keskitetty saitti -> lasketaan koordinaatit sivun keskilinjasta
		if (siteCenterMenu) { xCoord = document.body.offsetWidth / 2 + xCoord; }
		
		// vaihdetaan näkyvyys
		styleObject.visibility = 'visible';
		}
	else
		{ if (menudebug) { window.alert('eventObj-virhe'); } return false; }
	}

function hideAllPopups(forceHideAll) {
	// piilotetaan kaikki valikot
	var styleObject;
	
	if (currentOverElement == 'none' || forceHideAll)
		{
		for (a = 0 ; a < layer_array.length ; a++)
			{
			for (b = 0 ; b < layer_array[a].length ; b ++)
				{ 
				styleObject = getStyleObject(layer_array[a][b]); 
				styleObject.visibility = 'hidden';
				}
			}
		}
	}

function hide2ndLevelPopups() {
	var styleObject;
	
	for (a = 0 ; a < layer_array.length ; a++)
		{
		for (b = 1 ; b < layer_array[a].length ; b ++)
			{ 
			styleObject = getStyleObject(layer_array[a][b]); 
			styleObject.visibility = 'hidden';
			}
		}
	}

function hideCurrentPopup() {

    if(window.currentlyVisiblePopup) 
		{
		changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisiblePopup = false;
		}
	}

function initializeCompatibility() {
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')) 
		{
		window.onresize = explorerMacResizeFix;
		}
    resizeBlankDiv();
    createFakeEventObj();
	}

function createFakeEventObj() {
    if (!window.event) { window.event = false; }
	}

function resizeBlankDiv() {
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) && (navigator.platform.indexOf('Mac') != -1) && getStyleObject('blankDiv')) 
		{
		getStyleObject('blankDiv').width = document.body.clientWidth - 20;
		getStyleObject('blankDiv').height = document.body.clientHeight - 20;
		}
	}

function explorerMacResizeFix () {
    location.reload(false);
	}

