var animating;
var movingPointer;
var showing;
var defaultSubMenu;

function setActiveMenuItem( name, nameSub )
{
	var cntr = document.getElementById( name );
	if ( cntr ) cntr.className = "navLink_ctr_active";
	var lnk = document.getElementById( name + "Link" );
	if ( lnk ) lnk.className = "navLink_active";
	
	if ( nameSub != '' )
	{
		var lnkSubnav = document.getElementById( nameSub + "SubLink" );
		if ( lnkSubnav ) lnkSubnav.className = "subnavLink_active";
	}
	
	setActiveNavPointer( name );
	
	var smenu = document.getElementById( "subnav_" + name );
	if ( smenu )
	{
		showing = name;
		document.getElementById( "subnav_" + name ).style.display = "block"; 
	}
	else
	{
		showing = null;
	}
	setDefaultSubMenu ( name );
}

var navPointerPos = { home: 172, product: 225, media: 295, clients: 348, company: 430, contact: 502 };

function getNavPointerPos( name )
{
	switch ( name )
	{
	case "home":
		return navPointerPos.home;
	case "product":
		return navPointerPos.product;		
	case "media":
		return  navPointerPos.media;
	case "clients":
		return  navPointerPos.clients;
	case "company":
		return  navPointerPos.company;
	case "contact":
		return  navPointerPos.contact;
	}
	return -100;
}

function setActiveNavPointer( name )
{	
	movePointer( getNavPointerPos( name ) );
}

function animatePointer()
{
	var pos = getCurrentPointerPos();
	var reqOffset = getNavPointerPos( defaultSubMenu );
	if ( showing )
	{
		reqOffset = getNavPointerPos( showing );
	}
	
	var dif =  Math.round( reqOffset - pos );
	
	if ( dif == 0 )
	{
		return;
	}
	else if ( Math.abs( dif ) < 2 ) 
	{
		movePointer( reqOffset );
	}
	else // third the distance
	{
		var d = Math.round( dif / 3 );
		if ( Math.abs( d ) < 1 ) d = 1;
		movePointer( pos + d );
	}
	
	setTimeout( "animatePointer()", 30 );
}

function getCurrentPointerPos()
{
	return ( movingPointer ) ? movingPointer : getNavPointerPos( defaultSubMenu );
}

function movePointer( hOffset )
{
	document.getElementById('nav_outer').style.backgroundPosition= hOffset + "px 28px"; 
	movingPointer = hOffset;	
}


function setDefaultSubMenu ( name )
{
	defaultSubMenu = name;
}

function restoreDefaultSubMenu()
{
	var smenu = document.getElementById( "subnav_" + defaultSubMenu );
	if ( smenu )
	{
		showing = defaultSubMenu;
		smenu.style.display = "block"; 
	}
}

function overNav ( name )
{
	cancelAnimation();
		
	if ( showing != name )
	{
		doHideSubnav( showing );
		showSubnav( name );
		animatePointer();
	}
}

function outNav ( name )
{
	cancelAnimation();
	
	if ( showing != defaultSubMenu )
	{
		animating = setTimeout( "hideSubnav( '" + name +"' )", 1000 );
	}
}

function showSubnav( name )
{
	var smenu = document.getElementById( "subnav_" + name );
	showing = name;
		
	if ( smenu )
	{
		smenu.style.display = "block"; 
	}
}

function doHideSubnav( name  )
{
	var itm = document.getElementById( "subnav_" + name );
	if( itm )  itm.style.display = "none"; 
	cancelAnimation();
	showing = null;
	animatePointer();
}

function hideSubnav( name  )
{
	doHideSubnav( name  );
	if ( defaultSubMenu ) restoreDefaultSubMenu();
}

function cancelAnimation()
{
	if ( animating ) clearTimeout( animating );
	animating = null;
}

function goback()
{
	if ( ! window.history ) return;
	if ( window.history.length == 0 )return;
	window.history.go(-1);
}
