isOpen=new Array();
hatNachfolger=new Array();
allOpen=false;
function closeAll(){
	resetAllSubnodes("");
	writeSitemap();
}
function openAll(){
	allOpen=true;
	writeSitemap();
}
function makeString(x){
	var erg="";
	var check="";
	check=x+"";
	erg=check;
	if (check.length<2)
		erg="0"+check ;
	return erg;
}
function resetAllSubnodes(idStr){
	for(x in isOpen)
	{
		if(x.indexOf(idStr)==0 || idStr=="")
			isOpen[x]=false;	
	}	
}
function ocNode(idStr){
	if(isOpen[idStr])
	{
		isOpen[idStr]=false;
		resetAllSubnodes(idStr);
	}
	else
		isOpen[idStr]=true;
	writeSitemap();
}

function nStr(name){
	var erg="";
	if(name=="pixel")
		erg= '<img src="'+pimgPath+'" width="23" height="20" border="0">';
	else
		erg= '<img src="'+imgPath+name+'.gif" border="0">';
	return erg;
}
function wrap(icon,idStr){
	var erg="";
	erg='<a href="Javascript:ocNode(\''+idStr+'\');">'+icon+'</a>';	
	return erg;
}
function myInt(idStr){
	var first=0;
	var second=0;
	var erg="";
	first=parseInt(idStr.substr(0,1));
	second=parseInt(idStr.substr(1,1));
	erg=(first*10)+second;
	//document.getElementById("debug").innerHTML+=idStr+" => "+erg+"<br>";
	return erg;	
}
function oneNode(idStr){
	var erg="";
	var ebene=1;
	var startIndex=0;
	var rootStr="";
	var nIndex=0;
	var striche="";
	var icon="";
	
	ebene=idStr.length/2;
	//1. Index feststellen
	if(ebene>1)
	{
		startIndex=((ebene-1)*2);
		nIndex=myInt(idStr.substr(startIndex,2));
		rootStr=idStr.substr(0,startIndex);
	}
	else
		nIndex=myInt(idStr);
	//2. Striche davorsetzen:
	for(e=1;e<ebene;e++)
	{
		//feststellen, ob noch Knoten des Vorgängers folgen
		if(hatNachfolger[e])
			striche+='<td>'+nStr('strich')+'</td>';
		else
			striche+='<td>'+nStr('pixel')+'</td>';
	}
	//3. Knotenimage herausfinden:
	var nextIdStr=rootStr+makeString(nIndex+1);//nächster Knoten der selben Ebene
	//if(idStr=="0508")
		//alert("0508 => "+nextIdStr);
	if(navigation[idStr+"01"]==null)
	{
		//hat keine Unterpunkte	=> ist Itempfeil!
		if(navigation[nextIdStr]==null)
		{
			//ist Endknoten	
			icon='<td>'+nStr("itemEnde")+'</td>';
		}
		else
		{
			//ist kein Endknoten
			icon='<td>'+nStr("item")+'</td>';
		}	
	}
	else
	{
		if(allOpen)
			isOpen[idStr]=true;
		//offen oder zu?
		if(isOpen[idStr])
		{
			//offen
			if(navigation[nextIdStr]==null)
			{
				//ist Endknoten	
				icon='<td>'+wrap(nStr("openEnde"),idStr)+'</td>';				
			}
			else
			{
				//ist kein Endknoten
				icon='<td>'+wrap(nStr("open"),idStr)+'</td>';
			}
		}
		else
		{
			//zu
			if(navigation[nextIdStr]==null)
			{
				//ist Endknoten	
				icon='<td>'+wrap(nStr("closedEnde"),idStr)+'</td>';
			}
			else
			{
				//ist kein Endknoten
				icon='<td>'+wrap(nStr("closed"),idStr)+'</td>';
			}	
			
		}
	}
	
	erg=	'<tr><td><table border="0" cellpadding="0" cellspacing="0"><tr>'+
			striche+icon+'<td nowrap><a href="'+navigation[idStr]['url']+'" class="navlinkS">'+navigation[idStr]['name']+'</a></td>'+
			'</tr></table></td></tr>';
	return erg;
}
hatNachfolger=new Array();
function createSitemap(ebene,idStr){
	var count=1;
	var erg="";
	var thisIdStr="";
	if(ebene==1)
		erg+= 	'<table border="0" cellpadding="0" cellspacing="0">'+
				'<tr><td><table border="0" cellpadding="0" cellspacing="0"><tr>'+
				'<td nowrap>'+nStr('home')+'</td>'+
				'</tr></table></td></tr>';
	while(navigation[idStr+makeString(count)]!=null)
	{
		thisIdStr=idStr+makeString(count);
		erg+= oneNode(thisIdStr);
		if(
			(
				navigation[thisIdStr+makeString(1)]!=null 
				&& 
				isOpen[thisIdStr]
			)
			||
			(
				navigation[thisIdStr+makeString(1)]!=null 
				&& 
				allOpen
			)			
		)
		{
			if(allOpen)
				isOpen[thisIdStr]=true;
			//hat Zweige
			if(navigation[idStr+makeString(count+1)]!=null)
				hatNachfolger[ebene]=true;
			else
				hatNachfolger[ebene]=false;		
			erg+= createSitemap(ebene+1,thisIdStr);
		}				
		count++;				
	}
	if(ebene==1)
	{
		erg+= '</table>';
		allOpen=false;	
	}
	return erg;
}
function writeSitemap(){
	document.getElementById('sitemap').innerHTML=createSitemap(1,"");
}