//persistent globals
var defaultMainTab = null;
var defaultMainTabLiBackgroundImage = null;
var defaultMainTabABackgroundImage = null;
var defaultSubNavId = null;

function resetMenu(element, event)
{
	if (defaultMainTab == null)
	{
		return;
	}
	
	if (!exitedElement(element, event))
	{
		return;
	}
	
	//reset main tab
	deHightlightTabs();
	if (defaultMainTabLiBackgroundImage != null && 
		defaultMainTabABackgroundImage != null)
	{
		highlightTabCustom(defaultMainTab, defaultMainTabLiBackgroundImage, defaultMainTabABackgroundImage);
	}
	else
	{
		highlightTab(defaultMainTab);
	}
	
	//reset subnav
	clearSubNavs();
	showSubNav(defaultSubNavId);
}

function exitedElement(element, event)
{
	var destElement = null;
	
	if (event.toElement) 
	{				
		destElement = event.toElement;
	}
	else if (event.relatedTarget) 
	{				
		destElement = event.relatedTarget;
	}
	else
	{
		//can't determine destination
		return false;
	}
	
	//same element? should not occur on mouseout...
	if (element == destElement)
	{
		return false;
	}
	
	//is destination element a child of the source element?
	var isChild = isChildOf(element, destElement);
	if (isChild) 
	{
		return false;
	}
	
	return true;
}

function isChildOf(parent, child) 
{
	if (child != null)
	{
		while (child.parentNode) 
		{
			if (child.parentNode == parent) 
			{
				return true;
			}
			
			child = child.parentNode;	//go up family tree
		}
	}
	
	return false;
}

function toggleSubNav(tabToHighlight, subNavToShow)
{
	//first time toggling, record the default tab
	if (defaultMainTab == null)
	{
		defaultMainTab = getHighlightedMainTab();
		defaultSubNavId = getActiveSubNavId();
	}
	
	deHightlightTabs();
	highlightTab(tabToHighlight);
	
	clearSubNavs();
	showSubNav(subNavToShow);
}

//kind of a hack to get the maintab by color
function getHighlightedMainTab()
{
	var mainNavContainer = document.getElementById('mainNav');
	if (mainNavContainer)
	{
		var mainNav = mainNavContainer.getElementsByTagName('ul');
		if (mainNav)
		{
			var mainTabs = mainNav[0].getElementsByTagName('li');
			if (mainTabs)
			{
				for (var i = 0; i < mainTabs.length; i++) 
				{
					var anchorEl = mainTabs[i].getElementsByTagName('a');
					if (anchorEl)
					{
						var color = getStyle(anchorEl[0], 'color');
						
						//ie and firefox return color in different formats
						if (color == 'rgb(255, 255, 255)' || color == 'white')
						{
							defaultMainTabLiBackgroundImage = getStyle(mainTabs[i], 'background-image');
							defaultMainTabABackgroundImage = getStyle(anchorEl[0], 'background-image');
							
							//support IE...
							if (defaultMainTabLiBackgroundImage == null)
							{
								defaultMainTabLiBackgroundImage = getStyle(mainTabs[i], 'backgroundImage');
								defaultMainTabABackgroundImage = getStyle(anchorEl[0], 'backgroundImage');
							}
							
							return mainTabs[i];
						}
					}
				}
			}
		}
	}
	
	return null;
}

function getActiveSubNavId()
{
	var subNavContainer = document.getElementById('subNav');
	if (subNavContainer)
	{
		var subNavs = subNavContainer.getElementsByTagName('ul');
		if (subNavs)
		{
			for (var i = 0; i < subNavs.length; i++) 
			{
				var displayStyle = getStyle(subNavs[i], 'display');
	      	if (displayStyle == 'block')
				{
					return subNavs[i].id;
				}
			}
		}
	}
	
	return null;
}

function deHightlightTabs()
{
	//try to clear all mainTabs
	var mainNavContainer = document.getElementById('mainNav');
	if (mainNavContainer)
	{
		var mainNav = mainNavContainer.getElementsByTagName('ul');
		if (mainNav)
		{
			var mainTabs = mainNav[0].getElementsByTagName('li');
			if (mainTabs)
			{
				for (var i = 0; i < mainTabs.length; i++) 
				{
		      	mainTabs[i].style.background = 'url(../images/pc_tab_off_right.png) no-repeat top right';
					
					var anchorEl = mainTabs[i].getElementsByTagName('a');
					if (anchorEl)
					{
						anchorEl[0].style.background = 'url(../images/pc_tab_off_left.png) no-repeat top left';
						anchorEl[0].style.color = 'Black';
					}
				}
			}
		}
	}
}

function highlightTabCustom(tabToHighlight, defaultMainTabLiBackgroundImage, defaultMainTabABackgroundImage)
{
	tabToHighlight.style.background = defaultMainTabLiBackgroundImage + ' no-repeat top right';
	
	var anchorEl = tabToHighlight.getElementsByTagName('a');
	if(anchorEl)
	{
		anchorEl[0].style.background = defaultMainTabABackgroundImage + ' no-repeat top left';
		anchorEl[0].style.color = 'White';
	}
}

function highlightTab(tabToHighlight)
{
	tabToHighlight.style.background = 'url(../images/pc_tab_on_right.png) no-repeat top right';
	
	var anchorEl = tabToHighlight.getElementsByTagName('a');
	if(anchorEl)
	{
		anchorEl[0].style.background = 'url(../images/pc_tab_on_left.png) no-repeat top left';
		anchorEl[0].style.color = 'White';
	}
}

function clearSubNavs()
{
	//try to clear all subNavs
	var subNavContainer = document.getElementById('subNav');
	if (subNavContainer)
	{
		var subNavs = subNavContainer.getElementsByTagName('ul');
		if (subNavs)
		{
			for (var i = 0; i < subNavs.length; i++) 
			{
	      	subNavs[i].style.display = 'none';
			}
		}
	}
}

function showSubNav(subNavToShow)
{
	//show this subNav
	var subNav = document.getElementById(subNavToShow);
	
	if (subNav)
	{
		subNav.style.display = 'block';
		subNav.style.width = '100%';
	}
}

function getStyle(element, styleProp)
{
	var styleValue = '';
	
	if (element.currentStyle)
	{
		styleValue = element.currentStyle[styleProp];
	}
	else if (window.getComputedStyle)
	{
		styleValue = document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProp);
	}
	
	return styleValue;
}


