/* tabs.js
*/

// globals
var tabTimerTicks;
var tabTimerID = null;
var visibleTab = null;
/* function unhideTabElement( elementID)
reveals the first ul child of given element and halts the
tab timeout timer
*/
function unhideTabElement( elementID)
{
	var anItem = document.getElementById(elementID);
	var i, node;
	if ( anItem == null) return;
	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL")
		{
			visibleTab = elementID;
			anItem = node;
			anItem.style.visibility = 'visible';
			anItem.style.lineHeight='1.1em';
			anItem.style.fontSize = '1.1em';
			anItem.style.display = 'block';
			anItem.style.height = "19px";
			if ( tabTimerID != null)
			{
				clearTimeout( tabTimerID);
				tabTimerID = null;
			}
			changeTabElementOpacity( elementID, 100);
			return;
		}
	}			
}

/* function hideTabElement( elementID)
hides the first ul child of the given element; does not
affect the tab timeout timer
*/
function hideTabElement( elementID)
{
	var anItem = document.getElementById(elementID);
	var i, node;
	if ( anItem == null) return;
	if ( elementID == neverHideTabID) return;
	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL")
		{
			anItem = node;
			anItem.style.visibility = 'hidden';
			anItem.style.lineHeight='1%';
			anItem.style.fontSize = '1px';
			anItem.style.display = 'none';
			anItem.style.height = '0px';
		}
	}
}

/* function refreshTabTimeout( doRestart)
updates the tab timeout timer; if doRestart is true then restarts
the timer; handles fading of the currently visible tab
*/
function refreshTabTimeout( doRestart)
{
	if ( doRestart)
	{
		tabTimerTicks = 45;
		if ( tabTimerID != null) clearTimeout( tabTimerID);
		tabTimerID = null;
	}
	if ( tabTimerID == null)
	{
		tabTimerID = self.setTimeout("refreshTabTimeout( false)", 20);
	} else
	{
		tabTimerTicks = tabTimerTicks - 1;
		if ( tabTimerTicks <= 0)
		{
			hideTabElement('services');
			hideTabElement('team');
			hideTabElement('resources');
			// cim
			hideTabElement('history');
			hideTabElement('philosophy');
			hideTabElement('strategies');
		} else
		{
			if (( tabTimerTicks < 18) && ( visibleTab != null) && ( visibleTab != neverHideTabID))
			{
				changeTabElementOpacity( visibleTab, (tabTimerTicks / 18) * 100);
			}
			tabTimerID = self.setTimeout("refreshTabTimeout( false)", 20);
		}
	}
}

function tabDoMouseEnter()
{
	if ( tabTimerID != null) clearTimeout( tabTimerID);
	tabTimerID = null;
	if ( visibleTab != null)
		changeTabElementOpacity( visibleTab, 100);
}

function tabDoMouseOut()
{
	refreshTabTimeout( true);
}

/* function changeTabElementOpacity(id, opacity)
changes the opacity of the first child ul of the given element
for every major browser
(Firefox, Explorer, Safari) where 0 <= opacity <= 100
*/
function changeTabElementOpacity(id, opacity)
{ 
	var anItem = document.getElementById(id);
	var i, node;
	var object;
	
	var i, node;
	for (i=0; i < anItem.childNodes.length; i++)
	{
		node = anItem.childNodes[i];
		if (node.nodeName=="UL") object = node.style;
	}

	object.opacity = (opacity / 100); 
	object.MozOpacity = (opacity / 100); 
	object.KhtmlOpacity = (opacity / 100); 
	object.filter = "alpha(opacity=" + opacity + ")"; 
}