function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//====== Prueft Felder beim Newsletter ======
function checkForm() 
{
  
//====== Prueft Feld NAME ======

if(document.kontakt.vorname.value=="")
{
alert ("Bitte ihren Vornamen eingeben");
document.kontakt.vorname.focus();
return false;
}

if(document.kontakt.name.value=="")
{
alert ("Bitte ihren Nachnamen eingeben");
document.kontakt.name.focus();
return false;
}


 

//====== Prueft Feld Strasse ======

if(document.kontakt.strasse.value=="")
{
alert ("Bitte Ihre Strasse eingeben");
document.kontakt.strasse.focus();
return false;
}

if(document.kontakt.nr.value=="")
{
alert ("Bitte Ihre Hausnummer eingeben");
document.kontakt.nr.focus();
return false;
}

//====== Prueft Feld PLZ ======

if(document.kontakt.plz.value=="")
{
alert ("Bitte Ihre PLZ eingeben");
document.kontakt.plz.focus();
return false;
}

//====== Prueft Feld Ort ======

if(document.kontakt.ort.value=="")
{
alert ("Bitte Ihren Ort eingeben");
document.kontakt.ort.focus();
return false;
}

//====== Prueft Feld Telefon ======

if(document.kontakt.tel.value=="")
{
alert ("Bitte Ihre Telefonnummer eingeben");
document.kontakt.tel.focus();
return false;
} 


 

  

}
// Knoten ermitteln
function getNode(aNodeAdress)
{
    var i       = -1;
    for (i = 0; i < myTree.length; i++)
    {
        if (myTree[i].nodeAdress == aNodeAdress)
        {
            return  myTree[i];
        }
    }
    return null;
}

// Level aus Übergabeparameter myLevel ermitteln
function getLevel()
{
    var a = window.location.search;
    if (a.indexOf("?myLevel=") > -1 )
    {
        a = a.substring(a.indexOf("?myLevel=") + 9, a.length );
        if( a.length > 0)
        {
            Level = a;
            return;
        }
        else
        {
            Level = "";
            return;
        }
    }
}
getLevel();

function getNodes(deepness, parentRow)
{
	var ret = new Array();

	var i       = -1;
    for (i = 0; i < myTree.length; i++)
    {
    	var currentAddress = myTree[i].nodeAdress;
		var currentAddressMem = myTree[i].nodeAdress;

		// punkte "." in der aktuellen Adresse zählen
		var dotCounter = 0;
		var dotFound = false;
		var dotPos = -1;

		do
        {
        	dotPos = currentAddress.indexOf("." );
        	if ( dotPos != -1 )
        	{
        		dotCounter = dotCounter + 1;
				dotFound = true;
				currentAddress = currentAddress.substring(dotPos+2, currentAddress.length );
        	}
			else
			{
				dotFound = false;
			}

			if ( dotFound == false && dotCounter == deepness && currentAddressMem.indexOf(parentRow)==0 )
            {
				//alert( "dotCounter: " + dotCounter  + " / " + myTree[i].label);
            	ret[ret.length] = myTree[i];
            	dotFound = false;
            }
        } while (dotFound == true);
    }

    return ( ret );
}

function Node_getChilds(aNodeAdress)
{
    var i       = -1;
    var result  = new Array();
    for (i = 0; i < myTree.length; i++)
    {
        if (myTree[i].nodeAdress.length > aNodeAdress.length)
        {
            if (myTree[i].nodeAdress.indexOf(aNodeAdress) == 0 &&
                myTree[i].nodeAdress.substring(aNodeAdress.length+1).indexOf('.') == -1 &&
                (myTree[i].nodeAdress.charAt(aNodeAdress.length) == '.'  ||
                 aNodeAdress.length == 0))
            {
                result[result.length] = myTree[i];
            }
        }
    }
    return result;
}

function Node_getBrothers(aNodeAdress)
{
	var orgAdress = aNodeAdress;
	
	var pos  = -1;
	pos = aNodeAdress.lastIndexOf( "." );
	if ( pos != -1 )
	{
		aNodeAdress = aNodeAdress.substring(0, pos );
	}
	
    var i       = -1;
    var result  = new Array();
    for (i = 0; i < myTree.length; i++)
    {
       if (myTree[i].nodeAdress.indexOf(aNodeAdress) == 0 && myTree[i].nodeAdress.length == orgAdress.length )
       {
           result[result.length] = myTree[i];
       }
    }
    return result;
}

function Node_getTopNodes()
{
    var i       = -1;
    var result  = new Array();
    for (i = 0; i < myTree.length; i++)
    {
       if (myTree[i].nodeAdress.length == 2 )
       {
           result[result.length] = myTree[i];
       }
    }
    return result;
}

function getLevelDeepness(currentAddress )
{
	// punkte "." in der aktuellen Adresse zählen
	var dotCounter = 0;
	var dotFound = false;
	var dotPos = -1;

	do
	{
		dotPos = currentAddress.indexOf("." );
		if ( dotPos != -1 )
		{
			dotCounter = dotCounter + 1;
			dotFound = true;
			currentAddress = currentAddress.substring(dotPos+2, currentAddress.length );
		}
		else
		{
			dotFound = false;
		}
	
	} while (dotFound == true);
	return (dotCounter);	
}

var levelDeepness = getLevelDeepness(Level);

var topNodes = Node_getTopNodes( );
var brotherNodes = Node_getBrothers( Level );

var childNodes = Node_getChilds( Level );

var parentNodes = new Array();
var parentBrothersNode = new Array();
var currentParentNode = "";
var currentTopNode = "";


// Wenn Level 2 dann besondere behandlung
if ( levelDeepness == 1)
{
	pos = Level.lastIndexOf(".");
	if (pos != -1 )
		currentParentNode = Level.substring(0, pos);
	brotherNodes = Node_getBrothers( Level );	
}

if ( levelDeepness == 2)
{
	pos = Level.lastIndexOf(".");
	if (pos != -1 )
		currentParentNode = Level.substring(0, pos);
	
	pos = Level.indexOf(".");
	if (pos != -1 )
		currentTopNode = Level.substring(0, pos);
	
	brotherNodes = Node_getBrothers( Level );	
	parentBrothersNode = Node_getBrothers( currentParentNode );
}

// ermittelt den Code für das Menü auf der Linken seite
function getHtmlCodeLeftMenu( )
{
	var str = "";

	if ( levelDeepness == 0)
	{
		for (j=0; j<topNodes.length; j++)
		{
			if ( topNodes[j].nodeAdress == Level )
			{
				// Das bin ich
				str = str + getHtmlCodeForMenuItemLevel_1( topNodes[j], true );
				
				for (i=0; i<childNodes.length; i++)
				{				
					// Meine Kinder
					str = str + getHtmlCodeForMenuItemLevel_2( childNodes[i], false );						  									  
				}				
			}
			else
			{
				str = str + getHtmlCodeForMenuItemLevel_1( topNodes[j], false );		  
			}
		}
	}

	if ( levelDeepness == 1)
	{
		for (i=0; i<topNodes.length; i++)
		{

			if ( topNodes[i].nodeAdress == 	currentParentNode )
			{
				  // Das sind meine Väter
  			  str = str + getHtmlCodeForMenuItemLevel_1( topNodes[i], true );		  
	
				for (j=0; j<brotherNodes.length; j++)
				{
				
					if ( brotherNodes[j].nodeAdress == 	Level )
					{
						// ich selbst
						str = str + getHtmlCodeForMenuItemLevel_2( brotherNodes[j], true );			
						for (k=0; k<childNodes.length; k++)
						{				
							// Meine Kinder
							str = str + getHtmlCodeForMenuItemLevel_3( childNodes[k], false );						  									  
						}				  
					}
					else
					{
						// Meine Brüder
						str = str + getHtmlCodeForMenuItemLevel_2( brotherNodes[j], false );						  
					}
				  
				}
			}
			else
			{
				  // Meine direkter Vater
				  str = str + getHtmlCodeForMenuItemLevel_1( topNodes[i], false );		  
			}
		}
	}

	if ( levelDeepness == 2)
	{
		for (i=0; i<topNodes.length; i++)
		{
			if ( topNodes[i].nodeAdress == 	currentTopNode )
			{
				// Das bin ich selbst
				str = str + getHtmlCodeForMenuItemLevel_1( topNodes[i], true );		  
	
				for (k=0; k<parentBrothersNode.length; k++)
				{
					if ( parentBrothersNode[k].nodeAdress == currentParentNode )
					{
						// ich selbst
						str = str + getHtmlCodeForMenuItemLevel_2( parentBrothersNode[k], true );		  
						
						for (j=0; j<brotherNodes.length; j++)
						{
							if ( brotherNodes[j].nodeAdress == 	Level )
							{
								// ich selbst
								str = str + getHtmlCodeForMenuItemLevel_3( brotherNodes[j], true );		  
							}
							else
							{
								// Meine Brüder
							    str = str + getHtmlCodeForMenuItemLevel_3( brotherNodes[j], false );		  
							}
						}
					}
					else
					{
						// Meine Brüder
						str = str + getHtmlCodeForMenuItemLevel_2( parentBrothersNode[k], false );		  
					}
				}								
			}
			else
			{
				// Meine Brüder
  				str = str + getHtmlCodeForMenuItemLevel_1( topNodes[i], false );		  
			}
		}
	}
	
	return str;
}

function getNavigationTop()
{
    // Prüfen, ob die notwendigen Javascript-Navigationsdaten vorhanden sind
    if (typeof  myTree != "undefined")
    {
		// ermittle die Parents des aktuellen Standortes
		// iteriere dazu über die Anzahl der enthaltenen Adressen
		// 2 Punkte == 2 Parents ... == 3 Adressen
		// "_2.1.0" ==> "_2.1.0", "_2.1","_2"

		var Knoten;
		var Adresse 	= Level;
		var Anzahl 		= Adresse.match(/\./g);

		if(Anzahl == null)
		{
			if(Adresse.length > 0)
			{
				//Es wurde eine Toplevel Seite aufgerufen, z.B. "_0"
				Knoten = getNode(Adresse);
				document.writeln(' ');
				 
			}
			return;

		}


		if (Anzahl.length > 0)
		{
			// Es wurde eine Seite auf einer unteren Ebene aufgerufen, z.B. "_0.1"

			var Adressen 	= new Array(Anzahl.length);

			for (i=0; i<= Anzahl.length; i++)
			{
				Adressen[i] = Adresse;
				Adresse = Adresse.substring(0, Adresse.lastIndexOf(".") );
			}


			// Reihenfolge umdrehen
			Adressen.reverse();

			// Ausgabe der Einträge
			for(i=0; i<= Anzahl.length; i++)
			{
				Knoten = getNode(Adressen[i]);

				if( i == 0)
				{
					document.writeln(' ');
					 
				}
				else
				{
document.writeln(' ');
					 
				}

			}
		}
	}
}

//  --------------------------------------------------------------------------------------
// Code für Ebene 1
//  --------------------------------------------------------------------------------------
function getHtmlCodeForMenuItemLevel_1( node, isActive )
{
	var str = "";

	if ( node.target == "")
		return str;

	if ( isActive == true )
	{			
	
		str = str + '<a href="' +  node.target + '" class="navlink1a">' + node.label + '</a>';
						
	}
	else
	{
		str = str + '<a href="' +  node.target + '" class="navlink1">' + node.label + '</a>';					
	}
	
	return( str );
}

//  --------------------------------------------------------------------------------------
// Code für Ebene 2
//  --------------------------------------------------------------------------------------
function getHtmlCodeForMenuItemLevel_2( node, isActive )
{
	var str = "";

	if ( node.target == "")
		return str;
		
	if ( isActive == true )
	{	
		str = str + '<a href="' +  node.target + '" class="navlink2a">' + node.label + '</a>';
	}
	else
	{
		str = str + '<a href="' +  node.target + '" class="navlink2">' + node.label + '</a>';
	}
	
	return( str );
}

//  --------------------------------------------------------------------------------------
// Code für Ebene 3
//  --------------------------------------------------------------------------------------
function getHtmlCodeForMenuItemLevel_3( node, isActive )
{
	var str = "";

	if ( node.target == "")
		return str;

	if ( isActive == true )
	{	
		str = str + '<a href="' +  node.target + '" class="navlink3a">' + node.label + '</a>';
	}
	else
	{
		str = str + '<a href="' +  node.target + '" class="navlink3">' + node.label + '</a>';
	}
	
	return( str );
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
