//====== Prueft Felder beim Newsletter ======
function checkForm()
{
  
//====== Prueft Feld NAME ======

if(document.newsletter.vorname.value=="")
{
alert ("Please enter your first name");
document.newsletter.vorname.focus();
return false;
}

if(document.newsletter.nachname.value=="")
{
alert ("Please enter your surname");
document.newsletter.vorname.focus();
return false;
}


//====== Prueft Feld FIRMA ======

if(document.newsletter.firma.value=="")
{
alert ("Please enter your company");
document.newsletter.firma.focus();
return false;
}

//====== Prueft Feld Strasse ======

if(document.newsletter.strasse.value=="")
{
alert ("Please enter your street Address");
document.newsletter.strasse.focus();
return false;
}

//====== Prueft Feld Ort ======

if(document.newsletter.ort.value=="")
{
alert ("Please enter your postal code / city");
document.newsletter.ort.focus();
return false;
}

 

//====== Prueft Feld EMAIL ======

if (document.newsletter.email.value=="")
{alert ("Please enter your email address");
document.kontakt.email.focus();
return false;

}

if(document.newsletter.email.value.indexOf('@')==-1 ||document.kontakt.emailkunde.value.indexOf('.')==-1)
{
alert ("Please enter a correct email address");
document.kontakt.email.focus();
return false;
}
}

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];}
}





// var Level = "";

// 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 getHtmlCodeLeftMenu()
{

    var currentLevel;

    // Prüfen, ob die notwendigen Javascript-Navigationsdaten vorhanden sind
    if (typeof  myTree != "undefined")
    {
        // immer oben anfangen....
		currentLevel = "";

        getNavigationLevel(currentLevel, 1 );
    }
}

function getNavigationLevel(currentLevel, levelNo)
{
	// harter Ausstieg bei Level 4
	if(levelNo == 4)
	{
		return;
	}


	var currentNode 	= getNode(currentLevel);

	var currentNodeList	= new Array();
	currentNodeList 	= Node_getChilds(currentLevel);

	var currentAdresse;
	var style = "";
	var mark = false;

	for(var i=0; i< currentNodeList.length; i++)
	{

		currentAdresse = currentNodeList[i].nodeAdress;


	//	if(Level.indexOf(currentAdresse) == 0)
	//	{
	//		mark = true;
	//		style = "a";
	//	}

		if(Level == currentAdresse)
		{
			mark = true;
			style = "active";
		}


        // leere Knoten unterdruecken
        if(Node_getURL(currentNodeList[i]).length >  0)
        {	document.writeln(' ');
    	
    		if(levelNo == 1)
    		{
       		 	//document.writeln('  <a href="' + Node_getURL(currentNodeList[i]) + '" class="' + style + '">' + Node_getLabel(currentNodeList[i]) + '</a>');
    		}
    
    		if(levelNo == 2)
    		{
    	  		document.writeln('<li><a href="' + Node_getURL(currentNodeList[i]) + '" class="' + style + '">' + Node_getLabel(currentNodeList[i]) + '</a></li>');
    		}
    
    		if(levelNo == 3)
    		{
    	  		document.writeln('<ul><li><a href="' + Node_getURL(currentNodeList[i]) + '" class="' + style + '">' + Node_getLabel(currentNodeList[i]) + '</a></li></ul>');
    		}
			
			document.writeln(' ')
        } // Ende Unterdrueckung leerer Knoten

		// wenn currentAdresse im Level vorkommt, müssen wir vertiefen!
		// Regel: Der rekursive Aufruf findet nur statt, wenn die neue Adresse unterhalb der alten liegt
		// ==> also von _0.12 auf _0.12.1, aber nicht von _0.1 auf _0.10 !!

		var ISTKINDVON = false;

		if( currentAdresse == Level )
		{
			ISTKINDVON = true;
		}
		else
		{
			if( 	Level.indexOf(currentAdresse) == 0
				&& Level.charAt(currentAdresse.length) == "."  )
			{
				ISTKINDVON = true;
			}
		}

		if( ISTKINDVON == true )
		{
			// den neuen Level bilden
			var temp = Level.substring(currentLevel.length, Level.length);
			if(temp.indexOf(".") == 0)
			{
				temp = temp.substring(1, temp.length);
			}

			if( temp.indexOf(".") > -1)
			{
				temp = temp.substring(0, temp.indexOf("."))
			}

			currentLevel = currentLevel + "." + temp;
			if(currentLevel.indexOf(".") == 0)
			{
				currentLevel = currentLevel.substring(1, currentLevel.length);
			}


			if(currentLevel.lastIndexOf(".") == (currentLevel.length-1))
			{
				currentLevel = currentLevel.substring(0 , (currentLevel.length-1));
			}

			mark = false;
			lastmark = false;
			style="";

			getNavigationLevel(currentLevel, levelNo +1 );

		}
		mark = false;
		style="";
	}
	mark = false;
	lastmark = false;
	style="";
	levelNo = levelNo - 1;
}



// Top Level
//var TopLevel = "";
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 getHtmlCodeMainMenu( navLevel )
{
	var arr = new Array();
	arr = topNodes;

	var str = '';
	for (i=0; i<arr.length; i++)
	{
		if ( Level.indexOf(arr[i].nodeAdress) != -1 )
		{
			str = str + ' <li> <a class=active';
			str = str + '	href="' + arr[i].target + '">' + arr[i].label + '</a></li> ';
		}
		else
		{
			str = str + '  <li>  <a class=passive';
			str = str + '	href="' + arr[i].target + '">' + arr[i].label + '</a> </li>';
		}
		
	}

	//alert( str );
	return str;
}


function getHtmlCodeTopMenu( navLevel )
{
	var arr = new Array();
	arr = topNodes;

	var str = '';
	for (i=0; i<arr.length; i++)
	{
		if ( Level.indexOf(arr[i].nodeAdress) != -1 )
		{
			str = str + ' <h2> <a class=active' + '	href="' + arr[i].target + '">' + arr[i].label + '</a></h2> ';
		}
		else
		{
		//	str = str + '  <li>  <a class=passive';
		//	str = str + '	href="' + arr[i].target + '">' + arr[i].label + '</a> </li>';
		}
		
	}

	//alert( str );
	return str;
}
 




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 getLevelDeepness(currentAddress )
{
	// punkte "." in der aktuellen Adresse zählen
	var dotCounter = 0;
	var dotFound = false;
	var dotPos = 0;

	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);
}


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;
}


var levelDeepness = getLevelDeepness(Level);
var brotherNodes = Node_getBrothers( Level );
var childNodes = Node_getChilds( Level );
var parentNodes = new Array();
var grandPaNodes = new Array();
var parentBrothersNode = new Array();
var currentParentNode = "";
var topNodes = Node_getTopNodes( );

// Wenn Level 2 dann besondere behandlung
if ( levelDeepness == 2)
{
	pos = Level.lastIndexOf(".");
	if (pos != -1 )
		currentParentNode = Level.substring(0, pos);
	brotherNodes = Node_getBrothers( Level );
	parentBrothersNode = Node_getBrothers( currentParentNode );
}

function getSitemap( adress )
{
    if (typeof  myTree != "undefined")
    {
		var sitemap = Node_getChilds(adress);

		var w = "";			// String mit der Adresse, der durchsucht wird fuer feststellen der Ebene

		var x = 0;			 // Allgemeiner Schleifenzaehler fuer Abarbeitung des Baumes

		var y = new Array(); // Array mit den Positionen des Punktes in der Adresse
							 // Die Laenge des Arrays wird als Kriterium fuer das Einrueckender Zellen genommen

		var z = 0;			 // Allgemeiner Schleifenzähler, innere Schleife



		for (x = 0; x < sitemap.length; x++)
	    {

			w = sitemap[x].nodeAdress;
			y = w.match(/\./g);



			// Wenn Ebene 1: Leerzeile vorschalten
			if( !y )
			{
					document.writeln("<tr><td colspan=10>&nbsp;</td></tr>");
			}

			// Nur ausgeben, wenn Link nicht leer und Label nicht "new node"
			var emptyNode = false;
			if( dummy == 'new page' || sitemap[x].target == ''){
				emptyNode = true;
			}

			// Nur ausgeben, wenn keine Dummy-Ebene
			var dummy = sitemap[x].label;

			if(dummy.substring(0,5) != 'dummy' && ! emptyNode )
			{



				// Neue Zeile
				document.writeln("<tr>");

				if(y)
				{
					// einruecken, pro Ebene um 1 Zelle
					for(z=0; z< y.length; z++)
					{

							document.write("<td>&nbsp;</td>");

					}
				}



				// Wenn Ebene 1: Colspan setzen
				if(y)
				{
					if( y.length == 1)
					{
						document.write( '<td colspan=8> <a href=\"' + sitemap[x].target +  '\" class=\"sitemap2\">'  + sitemap[x].label +  '</a></td> ');
					}
					else
					{
						// colspan = 10-y.length
						document.write( '<td colspan=');
						document.write( 10-y.length-1);
						document.write('> <a href=\"' + sitemap[x].target +  '\" class=\"sitemap3\">'  + sitemap[x].label +  '</a></td> ');
					}
				}
				else
				{
					document.write( '<td colspan=10> <a href=\"' + sitemap[x].target + '\" class=\"sitemap\">'  + sitemap[x].label +  '</a></td> ');
				}

				// Neue Zeile abschliessen
				document.writeln(" </tr> ");

			} // Ende Pruefung auf Dummy-Ebene

			// rekursiver Aufruf für SubTrees
			if( ! emptyNode ){
				getSitemap(sitemap[x].nodeAdress );
			}
		}
	}
}
