HENavigation = new Object ();
with (HENavigation) 
{
	var menuIsOpen = false;
	var firstNavigationId = "firstNavigation";
	var secondNavigationId = "secondNavigation";
	var firstSubNavigationId = "firstSubNavigation";
	var currentPageId = "currentPage";
	var bmwIdentityId = "bmwIdentity";
	// Pfad zum Bild:
	var imagesPath = "/images/nav/";
	//var logoImageName = "bmw_sports.png";
	var blankImageName = "blank.gif";
}

HENavigation.build = function ()
{
	if (!document.getElementById)
	{
		return (false);
	}
	HENavigation.buildFirstNavigation ();
	HENavigation.buildSecondNavigation ();
	
	// Bugfix fuer Internet Explorer :-(
	var ua = navigator.userAgent.toLowerCase (); 
	if (ua.indexOf ("msie") != -1 && ua.indexOf ("opera") == -1 && ua.indexOf ("webtv") == -1)  
	{
		var bmwIdentity = document.getElementById (bmwIdentityId);
		bmwIdentity.src = imagesPath + blankImageName;
		bmwIdentity.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imagesPath + logoImageName + "',sizingMethod='scale')";
	}
	// /Bugfix
	
	return (false);
}

HENavigation.buildSecondNavigation = function ()
{
	var secondNavigation = document.getElementById (secondNavigationId);
	var ulElement = document.createElement ("ul");
	var topframe;
	for (var i = 0; i < secondNavigationList.length; i++)
	{
	
		// Top-Frame-Feature
		topframe=secondNavigationList[i].linkText.indexOf("*");
		if (topframe==0) secondNavigationList[i].linkText=secondNavigationList[i].linkText.substr(1);
	
		secondNavigationList[i].linkUrl += "?lity=" + secondNavigationList[i].linkType;
		var liElement = document.createElement ("li");
		var aElement = document.createElement ("a");
		aElement.appendChild (document.createTextNode (secondNavigationList[i].linkText + " "));
		if (secondNavigationList[i].isCurrentPage)
		{
			aElement.setAttribute ("href", "#");
			aElement.className = currentPageId;
		}
		aElement.setAttribute ("href", secondNavigationList[i].linkUrl);
		aElement.onClick = function ()
		{
			checkTrack (secondNavigationList[i].linkUrl);
		}
		if (topframe==0) aElement.setAttribute ("target", "_top");
		liElement.appendChild (aElement);
		ulElement.appendChild (liElement);
	}
	secondNavigation.appendChild (ulElement);
}

HENavigation.buildFirstNavigation = function ()
{
	var firstNavigation = document.getElementById (firstNavigationId);
	var ulElement = document.createElement ("ul");
	for (var i = 0; i < firstNavigationList.length; i++)
	{
		var liElement = document.createElement ("li");
		var aElement = document.createElement ("a");
		aElement.appendChild (document.createTextNode (firstNavigationList[i].linkText + " "));
		if (firstNavigationList[i].isCurrentPage)
		{
			aElement.className = currentPageId;
		}
		if (firstNavigationList[i].opensfirstSubNavigation)
		{		
			aElement.setAttribute ("href", "#");
			aElement.onmouseover = function ()
			{
				HENavigation.firstNavigationHover (this);
				return (false);
			};
			aElement.onclick = function ()
			{
				HENavigation.firstNavigationClick (this);
				return (false);
			};
			liElement.appendChild (aElement);
			firstSubNavigationList = firstNavigationList[i].firstSubNavigationList;
			var ulElement2 = document.createElement ("ul");
			for (var j = 0; j < firstSubNavigationList.length; j++)
			{
				var liElement2 = document.createElement ("li");
				if (firstSubNavigationList[j].horizontalLine)
				{
					// Update: Linie entfernen
					if (j == 1 && (firstSubNavigationList[j - 1].linkText.substr (1) == "bersicht" || firstSubNavigationList[j - 1].linkText == "Overview"))
					{
						liElement2.className = "noLine";
					}
					else
					{
						liElement2.className = "line";
					}
					// /Update
				}
				else
				{
					var aElement2 = document.createElement ("a");
					aElement2.appendChild (document.createTextNode (firstSubNavigationList[j].linkText + " "));
					// Update: Text fetten
					if (firstSubNavigationList[j].linkText.substr (1) == "bersicht" || firstSubNavigationList[j].linkText == "Overview")
					{
						aElement2.style.fontWeight = "bold";
					}
					// /Update
					aElement2.setAttribute ("href", firstSubNavigationList[j].linkUrl);
					aElement2.onClick = function ()
					{
						checkTrack (firstSubNavigationList[j].linkUrl);
					}
					if (firstSubNavigationList[j].isCurrentPage)
					{
						aElement2.className = currentPageId;
					}
					liElement2.appendChild (aElement2);
				}
				ulElement2.appendChild (liElement2);
			}
			liElement.appendChild (ulElement2);			
		}
		else
		{
			aElement.setAttribute ("href", firstNavigationList[i].linkUrl);
			aElement.onClick = function ()
			{
				checkTrack (firstNavigationList[i].linkUrl);
			}
			liElement.appendChild (aElement);		
		}
		ulElement.appendChild (liElement);
	}
	firstNavigation.appendChild (ulElement);
}

HENavigation.firstNavigationHover = function (aElement)
{
	if (HENavigation.menuIsOpen)
	{
		var firstSubNavigation = document.getElementById (firstSubNavigationId);
		if (aElement.parentNode != firstSubNavigation)	
		{
			HENavigation.firstNavigationClick (aElement);
		}
	}
}

HENavigation.firstNavigationClick = function (aElement)
{
	var firstSubNavigation = document.getElementById (firstSubNavigationId);
	if (aElement.parentNode == firstSubNavigation && HENavigation.menuIsOpen)	
	{
		HENavigation.closefirstSubNavigation ();
		HENavigation.menuIsOpen = false;
	}
	else
	{
		HENavigation.openfirstSubNavigation (aElement);
		HENavigation.menuIsOpen = true;
	}
	aElement.blur ();
}

HENavigation.openfirstSubNavigation = function (aElement)
{
	HENavigation.closefirstSubNavigation ();
	aElement.parentNode.id = firstSubNavigationId;
	
	// Bugfix fuer Internet Explorer :-(
	var ua = navigator.userAgent.toLowerCase (); 
	if (ua.indexOf ("msie") != -1 && ua.indexOf ("opera") == -1 && ua.indexOf ("webtv") == -1)  
	{
		aElement.parentNode.style.visibility = "hidden"; 	
		aElement.parentNode.style.top = "100px"; 	
		aElement.parentNode.style.visibility = "visible"; 	
		aElement.parentNode.style.top = "0px"; 	
	}
	// /Bugfix
}

HENavigation.closefirstSubNavigation = function ()
{
	var firstNavigation = document.getElementById (firstNavigationId);
	var ulElement = firstNavigation.getElementsByTagName ("ul")[0];
	for (var liElement = ulElement.firstChild; liElement != null; liElement = liElement.nextSibling)
	{
		if (liElement.nodeType == 1 /* Node.ELEMENT_NODE */ && liElement.tagName == "LI")
		{
			liElement.id = null;
		}
	}
}