window.onload = initAll;

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

// open hidden layer
function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();
	
	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	locate_subplace("a#tjenester", "div#tjenester_underlinker", 23, 33);
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = mclose; 







function initAll()
{
	var underlinker_div = document.getElementById("tjenester_underlinker");
	underlinker_div.onmouseover = mcancelclosetime;
	underlinker_div.onmouseout = mclosetime;
	
	// HENTER UT ALLE LINKENE
	var aNodes = document.getElementsByTagName("a");
	
	// L�KKA
	for(i=0; i<aNodes.length; i++)
	{
		// SJEKKER
		if(aNodes[i].name == "hovedlink")
		{
			// HENDELSE
			aNodes[i].onmouseover = up;
			aNodes[i].onmouseout = down;
		}
		else if(aNodes[i].className == "tjenester")
		{
			// HENDELSE
			aNodes[i].onmouseover = ting;
			aNodes[i].onmouseout = mclosetime;
		}
	}
}


function ting(){ mopen("tjenester_underlinker"); }

function test(topFrom, topTo, bottomFrom, bottomTo, id, type)
{
	document.getElementById(id).style.paddingTop = topFrom + "px";
	document.getElementById(id).style.paddingBottom = bottomFrom + "px";
	//document.getElementById(id).style.paddingLeft = "24px";
	//document.getElementById(id).style.paddingRight = "24px";
	
	
	if (topFrom <= 12 && topFrom >= 6 && bottomFrom <= 10 && bottomFrom >= 4)
    {
		if(type == "up")
		{
			topFrom--;
			bottomFrom++;
			
			if(topFrom < 12 && topFrom > 6)
				setTimeout("test('" + topFrom + "', '" + topTo + "', '" + bottomFrom + "', '" + bottomTo + "', '" + id + "', '" + type + "');", 0);
		}
		else
		{
			topFrom++;
			bottomFrom--;
			
			if(topFrom < 12 && topFrom > 6)
				setTimeout("test('" + topFrom + "', '" + topTo + "', '" + bottomFrom + "', '" + bottomTo + "', '" + id + "', '" + type + "');", 0);
		}
	}
}

function up()
{
	// SJEKKER OM DET ER TJENESTER ELLER ANSATTE
	if(this.id == "tjenester")
		mopen("tjenester_underlinker");
	
	test(12, 6, 4, 10, this.id, "up");
}

function down()
{
	// SJEKKER OM DET ER TJENESTER ELLER ANSATTE
	if(this.id == "tjenester")
		mclosetime();
		
	test(6, 12, 10, 4, this.id, "down");
}


function SetOpacity(elem, opacityAsInt)
{
	elem.style.marginTop = opacityAsInt + "px";
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

    if (stepNum < steps)
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}

