/* 
 * Script Copyright by Wilhelm Jansen (wjansen@web.de)
 * http://www.web-toolbox.net/
 *
 * Angepasst von Stefan Weber (comikus15@gmx.de)
*/

// Bilderkonfiguration
var images = new Array();
images["minus"] = "menu_minus.gif";
images["plus"] = "menu_plus.gif";
images["page"] = "menu_page.gif";




// AB HIER NICHTSMEHR ÄNDERN!!!
var temp, temp2, cookieArray, cookieArray2, cookieCount;

function initiate(){

	cookieCount=0;
	
	if(document.cookie){
	
		cookieArray=document.cookie.split(";");
		cookieArray2=new Array();
		
		for(i in cookieArray){
			cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
		}
	
	}

	cookieArray=(document.cookie.indexOf("state=")>=0)?cookieArray2["state"].split(","):new Array();
	
	temp=document.getElementById("containerul");

	for(var o=0;o<temp.getElementsByTagName("li").length;o++){
	
		if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0) {
			
			temp2							= document.createElement("span");
			temp2.className					= "symbols";
			temp2.style.backgroundImage		= (cookieArray.length>0) ? 
													((cookieArray[cookieCount]=="true") ? 
	
	"url(" + images["minus"] + ")" :
															"url(" + images["plus"] + ")")
													:"url(" + images["plus"] + ")";
			temp2.onclick	=	function(){
									showhide(this.parentNode);
									writeCookie();
								}
								
			temp.getElementsByTagName("li")[o].firstChild.onclick = temp2.onclick
			temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
			temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
			
			if(cookieArray[cookieCount]=="true"){
				showhide(temp.getElementsByTagName("li")[o]);
			}
			
			cookieCount++;
			
		} else {
			
			temp2							= document.createElement("span");
			temp2.className					= "symbols";
			temp2.style.backgroundImage		= "url(" + images["page"] + ")";
			temp.getElementsByTagName("li")[o].firstChild.onclick =	function(){
																			resetIDs();
																			markSelected(this.parentNode);
																		}
			temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
			
		}
		
	}

}



function showhide(el){

	el.getElementsByTagName("ul")[0].style.display				=
		(el.getElementsByTagName("ul")[0].style.display=="block")?"none":"block";
	el.getElementsByTagName("span")[0].style.backgroundImage	=
		(el.getElementsByTagName("ul")[0].style.display=="block") ? "url(" + images["minus"] + ")" : "url(" + images["plus"] + ")";
	
}

function resetIDs(){

	temp = document.getElementById("containerul");
	for ( i=0; i < temp.getElementsByTagName("li").length; i++) {
		if( temp.getElementsByTagName("li")[i].getElementsByTagName("span").length > 1) {
			temp.getElementsByTagName("li")[i].getElementsByTagName("span")[1].className = null;
		}
	}

}

function markSelected(temp){
	if( temp.getElementsByTagName("span").length > 1) {
		temp.getElementsByTagName("span")[1].className = "menu_selected";
	}
}



function writeCookie(){                // Runs through the menu and puts the "states" of each nested list into an array, the array is then joined together and assigned to a cookie.

	cookieArray=new Array()

	for(var q=0;q<temp.getElementsByTagName("li").length;q++){
		
		if(temp.getElementsByTagName("li")[q].childNodes.length>0){
			if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && 
					temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0) {
				cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
			}
		}
	
	}

	document.cookie="state="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();

}
