﻿var NaviItems=new Array();
var FirstNaviContainers=new Array();
var NaviContainers=new Array();
var MouseOverObjects=new Array();

function clearContainers()
	{
	var MenuGroup=-1;
	var MenuLevel=-1;
	for (var i=0;i<MouseOverObjects.length;i=i+4)
		{
		if (MouseOverObjects[i])
			{
			ActNode=MouseOverObjects[i+1];
			MenuGroup=MouseOverObjects[i+2];
			MenuLevel=MouseOverObjects[i+3];
			}
		}
		
	if ((MenuGroup == -1) && (navigator.appName.indexOf("Netscape") > -1))
		{
		for (i=0;i<MouseOverObjects.length;i=i+4)
			{
			if (MouseOverObjects[i+1].className.indexOf('NaviContainer') > -1) MouseOverObjects[i+1].style.display = 'none';
			}
		}
		
	if (MenuGroup > -1)
		{		
		for (i=0;i<MouseOverObjects.length;i=i+4)
			{
			if ( (MouseOverObjects[i+1].className.indexOf('NaviContainer') > -1) && (MouseOverObjects[i+2] != MenuGroup) ) 
				{
				MouseOverObjects[i+1].style.display = 'none';
				}
			}
		}
		
	if (MenuLevel > -1)
		{
		for (i=0;i<MouseOverObjects.length;i=i+4)
			{
			if ( (MouseOverObjects[i+1].className.indexOf('NaviContainer') > -1) && (MouseOverObjects[i+3] > MenuLevel)  && (!MouseOverObjects[i]) )
				{
				MouseOverObjects[i+1].style.display = 'none';
				}
			}
		}
			
	if (MenuLevel > -1)
		{
		for (i=0;i<MouseOverObjects.length;i=i+4)
			{
			if ( (MouseOverObjects[i+1].className.indexOf('NaviContainer') > -1) && (MouseOverObjects[i+3] >= MenuLevel)  && (!MouseOverObjects[i]) && (MouseOverObjects[i+1] != ActNode.PrivateNaviContainer) )
				{
//	var debug_node=document.getElementById('debug');
//	debug_node.innerText=MenuGroup;
				MouseOverObjects[i+1].style.display = 'none';
				}
			}
		}
		
	i = MouseOverObjects.length;	
	while ((i>0) && (!MouseOverObjects[i-4]))
		{
		if (MouseOverObjects[i-3].className.indexOf('NaviContainer') > -1) MouseOverObjects[i-3].style.display = 'none';
		i=i-4;
		}
	}
		

function NaviInit(ContID)
	{
	var i=0;
	var j=0;
	var NaviLevel=0;

	ActNode = document.getElementById(ContID).firstChild;
	j=scanNaviContainer(ActNode);
	for (i=0;i<j;i++)
		{
		ActNode=NaviItems[i].firstChild;
		var CF=true;
		while (ActNode && CF)
			{
			if (ActNode.nodeName == "DIV")
				{
				if (ActNode.className.indexOf('NaviContainer') > -1)
					{
					NaviContainers[i]=ActNode;
					CF=false;
					}
				}
			ActNode=ActNode.nextSibling;
			}
		}
	injectFunctions(i,-1,0);
	var HeadMenuItems=i;
	for (i=0;i<HeadMenuItems;i++) FirstNaviContainers[i]=NaviContainers[i];
	for (i=0;i<HeadMenuItems;i++)
		{
		ActNode=FirstNaviContainers[i].firstChild;
		NaviLevel=1;
		while (NaviLevel>0)
			{
			j=scanNaviContainer(ActNode);
			injectFunctions(j,i,NaviLevel);
			NaviLevel=0;
			}
		}
	}


function scanNaviContainer(ActNode)
	{
	var i=0;
	var j=0;
	var k=0;
	var TempNodeArray = new Array();
	while (ActNode)
		{
		if (ActNode.nodeName != "#text")											 // Nur f?r Mac!
			{
			while (ActNode.className.indexOf('NaviGroup') > -1)
				{
				TempNodeArray[k]=ActNode;
				k++;
				ActNode=ActNode.firstChild;
				if (ActNode.nodeName == "#text") ActNode=ActNode.nextSibling; 		// Nur f?r Mac!
				}
			if (ActNode.className.indexOf('NaviItem') > -1)
				{
				NaviItems[i]=ActNode;
				i++;
				}
			if (ActNode.className.indexOf('NaviContainer') > -1)
				{
				NaviContainers[j]=ActNode;
				j++;
				}
			ActNode=ActNode.nextSibling;
			if (ActNode)														 // Nur f?r Mac!
				{															 // Nur f?r Mac!
				if (ActNode.nodeName == "#text") ActNode=ActNode.nextSibling;		 // Nur f?r Mac!
				}															 // Nur f?r Mac!
			while ((!ActNode) && (k > 0))
				{
				k=k-1;
				ActNode=TempNodeArray[k];
				ActNode=ActNode.nextSibling;
				}
			}
		else																	 // Nur f?r Mac!
			{																 // Nur f?r Mac!
			ActNode=ActNode.nextSibling;										 // Nur f?r Mac!
			}																 // Nur f?r Mac!
		}
	return i;
	}
	
function injectFunctions(j,MenuGroup,NestLevel)
	{
	var i=0;
	var MG=MenuGroup;
	var MouseOverObjectsPointer;
	for (i=0;i<j;i++)
		{
		if (MenuGroup == -1) MG=i;
		MouseOverObjectsPointer=MouseOverObjects.length;
		NaviContainers[i].PrivateNaviContainer = NaviContainers[i];
		NaviContainers[i].CCIndex=MouseOverObjectsPointer+0
		MouseOverObjects[MouseOverObjectsPointer+0]=false;
		MouseOverObjects[MouseOverObjectsPointer+1]=NaviContainers[i];
		MouseOverObjects[MouseOverObjectsPointer+2]=MG;
		MouseOverObjects[MouseOverObjectsPointer+3]=NestLevel;
		NaviContainers[i].onmouseover = function(){for (var i; i<(MouseOverObjects.length/4); i++) {MouseOverObjects[3*i]=false;} MouseOverObjects[this.CCIndex]=true; this.PrivateNaviContainer.style.display = 'block';}
		NaviContainers[i].onmouseout = function(){MouseOverObjects[this.CCIndex]=false; setTimeout('clearContainers()',150);}
		MouseOverObjectsPointer=MouseOverObjects.length;
		NaviItems[i].PrivateNaviContainer=NaviContainers[i];
		NaviItems[i].CCIndex=MouseOverObjectsPointer+0
		MouseOverObjects[MouseOverObjectsPointer+0]=false;
		MouseOverObjects[MouseOverObjectsPointer+1]=NaviItems[i];
		MouseOverObjects[MouseOverObjectsPointer+2]=MG;
		MouseOverObjects[MouseOverObjectsPointer+3]=NestLevel;
		NaviItems[i].onmouseover = function(){for (var i; i<(MouseOverObjects.length/4); i++) {MouseOverObjects[3*i]=false;} MouseOverObjects[this.CCIndex]=true; this.PrivateNaviContainer.style.display = 'block';}
		NaviItems[i].onmouseout = function(){MouseOverObjects[this.CCIndex]=false; setTimeout('clearContainers()',150);}
		}
	}
	

