function getMouseY( e )
{
	return isMOZ ? e.pageY : event.clientY + document.body.scrollTop;
}
function getMouseX( e )
{
	return isMOZ ? e.pageX : event.clientX + document.body.scrollLeft;
}

var menuNr = 0;
var submenuNr = 0;

var ids = new Array( 'headerani1' , 'headerani2' , 'headerani3' , 'headerani4' );
var s1s = new Array( 0   , 100   , 0   , 100 );
var s2s = new Array( 20   , 30  , 20   , 30 );
var a1s = new Array( 255  , 255 , 255  , 255 );
var a2s = new Array( 140  , 120  , 140  , 120 );
var steps = 50;
function getStep( from , to , step )
{
	return Math.round( from + ((to-from)*step/steps ) );
}
function animateHeader( step )
{
	for ( i = 0 ; i < ids.length ; i++ )
	{
		alpha = getStep( a1s[i] , a2s[i] , step );
		getSty( ids[i] ).color = 'rgb( '+alpha+','+alpha+','+alpha+' )';
		getSty( ids[i] ).left  = getStep( x1s[i] , x2s[i] , step );
		getSty( ids[i] ).top   = getStep( y1s[i] , y2s[i] , step );
		getSty( ids[i] ).fontSize = getStep( s1s[i] , s2s[i] , step );
	}

	if ( step < steps - 1 )
		window.setTimeout( "animateHeader( "+(step+1)+" );" , "25" );
}
function animateContent( step )
{
	var alphaP = getStep( 255 , 150 , step );
	var alphaH = getStep( 255 , 130 , step );
	var alphaA = getStep( 255 , 150 , step );
	for ( a = 1 ; a < 3 ; a++ )
	{
		var ani = getRef( 'content'+a );
		var ps = ani.getElementsByTagName( "P" );
		for ( i = 0 ; i < ps.length ; i++ )
			ps[i].style.color = "rgb("+alphaP+","+alphaP+","+alphaP+")";
		var ls = ani.getElementsByTagName( "LI" );
		for ( i = 0 ; i < ls.length ; i++ )
			ls[i].style.color = "rgb("+alphaP+","+alphaP+","+alphaP+")";
		var hs = ani.getElementsByTagName( "H1" );
		for ( i = 0 ; i < hs.length ; i++ )
			hs[i].style.color = "rgb("+alphaH+","+alphaH+","+alphaH+")";
		var hs = ani.getElementsByTagName( "H2" );
		for ( i = 0 ; i < hs.length ; i++ )
			hs[i].style.color = "rgb("+alphaH+","+alphaH+","+alphaH+")";
		var as = ani.getElementsByTagName( "A" );
		for ( i = 0 ; i < as.length ; i++ )
			as[i].style.color = "rgb("+alphaA+","+alphaA+",255)";
	}
	if ( step == 0 )
		window.setTimeout( "animateContent( "+(step+1)+" );" , "1000" );
	else if ( step < steps - 1 )
		window.setTimeout( "animateContent( "+(step+1)+" );" , "25" );
}

var hiliteX = -1;
var hiliteXMoveTo = -1;
function menuHiliteMoveStep()
{
	if ( hiliteXMoveTo == -1 || hiliteX == hiliteXMoveTo )
	{
		hiliteXMoveTo = -1;
		return;
	}

	var delta = hiliteXMoveTo - hiliteX;
	var direction = hiliteXMoveTo > hiliteX ? 1 : -1
	hiliteX += Math.ceil( Math.abs( delta/10 ) ) * direction;

	getSty( 'menuhilite' ).left = hiliteX;
	window.setTimeout( "menuHiliteMoveStep();" , 10 );
}
function menuHiliteMoveToMenu( menu )
{
	var mw = document.body.clientWidth / 5;
	var move = hiliteXMoveTo == -1;
	hiliteXMoveTo = Math.round( mw*menu + ((mw-180)/2) );
	if ( move )
		menuHiliteMoveStep();
}
function menuHiliteMoveTo( e )
{
	var mw = document.body.clientWidth / 5;
	var menu = Math.floor( getMouseX( e ) / (mw) );
	menuHiliteMoveToMenu( menu );
}
function menuHiliteReset()
{
	var menu = menuNr;
	var mw = document.body.clientWidth / 5;
	var move = hiliteXMoveTo == -1;
	hiliteXMoveTo = Math.max( 0 , Math.round( mw*menu + ((mw-180)/2) ) );
	if ( move )
		window.setTimeout( "menuHiliteMoveStep();" , 200 );
}
function menuHiliteInit()
{
	var mw = document.body.clientWidth / 5;
	var menu = menuNr;
	hiliteX = Math.round( mw*menu + ((mw-180)/2) );
	getSty( 'menuhilite' ).left = hiliteX;
	hiliteXMoveTo = -1;
}

var hiliteY = 0;
var hiliteYMoveTo = -1;
function submenuHiliteMoveStep()
{
	if ( hiliteYMoveTo == -1 || hiliteY == hiliteYMoveTo )
	{
		hiliteYMoveTo = -1;
		return;
	}
	var delta = hiliteYMoveTo - hiliteY;
	var direction = hiliteYMoveTo > hiliteY ? 1 : -1;

	hiliteY += Math.ceil( Math.abs( delta/7 ) ) * direction;
	getSty( 'submenuhilite' ).top = hiliteY;

	window.setTimeout( "submenuHiliteMoveStep();" , 10 );
}
function submenuHiliteMoveTo( menu )
{
	var mh = 30;
	var move = hiliteYMoveTo == -1;
	hiliteYMoveTo = Math.round( mh * menu );
	if ( move )
		submenuHiliteMoveStep();
}
function submenuHiliteReset()
{
	var mh = 30;
	var menu = submenuNr;
	var move = hiliteYMoveTo == -1;
	hiliteYMoveTo = Math.round( mh * menu );
	if ( move )
		window.setTimeout( "submenuHiliteMoveStep();" , 200 );
}
function submenuHiliteInit()
{	
	var mh = 30;
	var menu = submenuNr;
	hiliteY = Math.round( mh * menu );
	getSty( 'submenuhilite' ).top = hiliteY;
}

