

<!--
	var objContainer;
	var objFileType;
	var intOpenFolderCount;
	var strFolderState = "";
	var strRootPath = "";
	
	// ------------------------------------------------
	/*
		Initialer Aufruf. Prozessiert alle Knotenpunkte der Navigationstruktur.
		Die Naviagationstruktur kann auch rein XML sein. Anhand der gefundenen URL-Parameter
		stellt diese Funktion die Struktur an entsprechender Stelle mit offenen Knoten dar,
		ansonsten geschlossen.
		Besitzt der Inhalt eines Elementes das nicht ein Knoten ist eine spezifische Endung, kann
		die Symbolik dem entsprechend gesetzt werden.
	*/
	// ------------------------------------------------
	function initNavigation(strImagesRootPath){
		strRootPath = strImagesRootPath;
		intOpenFolderCount=0;
		objContainer=document.getElementById("navigation");
		for(var intContainerLI=0;intContainerLI<objContainer.getElementsByTagName("li").length;intContainerLI++){
			if(objContainer.getElementsByTagName("li")[intContainerLI].getElementsByTagName("ul").length > 0){
				objFileType	= document.createElement("span");
				objFileType.className = "symbols";
				objFileType.style.backgroundImage = (getParam("open").length>0)?((getParam("open").charAt(intOpenFolderCount)=="1")?"url(" + strRootPath + "images/folder_open.gif)":"url(" + strRootPath + "images/folder_close.gif)"):"url(" + strRootPath + "images/folder_close.gif)";
				objFileType.onclick = function(){
					showhide(this.parentNode);
					createStates();
				}
				objContainer.getElementsByTagName("li")[intContainerLI].insertBefore(objFileType,objContainer.getElementsByTagName("li")[intContainerLI].firstChild)
				objContainer.getElementsByTagName("li")[intContainerLI].getElementsByTagName("ul")[0].style.display = "none";
				if(getParam("open").charAt(intOpenFolderCount)=="1"){
					showhide(objContainer.getElementsByTagName("li")[intContainerLI]);
				}
				intOpenFolderCount++;
			}
			else{
				objFileType	= document.createElement("span");
				objFileType.className = "symbols";
				strEnd = objContainer.getElementsByTagName("li")[intContainerLI].innerHTML.substring(
							objContainer.getElementsByTagName("li")[intContainerLI].innerHTML.lastIndexOf("</A>"),
							objContainer.getElementsByTagName("li")[intContainerLI].innerHTML.lastIndexOf("</A>")-4);
				if(strEnd.indexOf(".") > -1){
					switch(strEnd){
						case ".doc ":
							objFileType.style.backgroundImage = "url(" + strRootPath + "images/word.png)";
							break;
						case ".xml ":
							objFileType.style.backgroundImage = "url(" + strRootPath + "images/xml.png)";
							break;
						case ".txt ":
							objFileType.style.backgroundImage = "url(" + strRootPath + "images/txt.png)";
							break;
						default:
							objFileType.style.backgroundImage = "url(" + strRootPath + "images/page.png)";
					}
				}
				else{
					objFileType.style.backgroundImage = "url(" + strRootPath + "images/file_dot.gif)";
				}
				objContainer.getElementsByTagName("li")[intContainerLI].insertBefore(objFileType,objContainer.getElementsByTagName("li")[intContainerLI].firstChild);
			}
		}
		createStates();
	}
	
	// ------------------------------------------------
	/*
		Invertiert alle Stati der Knoten eines übergebenen Elementes 
		und setzt die entsprechende Symbolik.
	*/
	// ------------------------------------------------
	function showhide(objElement){
		if(objElement.getElementsByTagName("ul")[0] != null){
			if(objElement.getElementsByTagName("ul")[0].style.display == "block"){
				objElement.getElementsByTagName("ul")[0].style.display = "none";
			}
			else{
				objElement.getElementsByTagName("ul")[0].style.display = "block";
			}
			if(objElement.getElementsByTagName("ul")[0].style.display == "block"){
				objElement.getElementsByTagName("span")[0].style.backgroundImage = "url(" + strRootPath + "images/folder_open.gif)";
			}
			else{
				objElement.getElementsByTagName("span")[0].style.backgroundImage = "url(" + strRootPath + "images/folder_close.gif)";
			}
		}
	}
	
	// ------------------------------------------------
	/*
		Erstellt für jeden Knoten einen Status. 0 falls der Knoten geschlossen ist, 
		1 falls der Knoten offen ist. Diese Stati addiert diese Funktion jedem A-Tag als Parameter.
		Sind schon Parameter vorhanden werden diese mit den Stati ergänzt ansonsten werden dei Parameter
		mit den Stati erstellt.
	*/
	// ------------------------------------------------
	function createStates(){	
		for(var q=0;q<objContainer.getElementsByTagName("li").length;q++){
			if(objContainer.getElementsByTagName("li")[q].childNodes.length>0){
				if(objContainer.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && objContainer.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
					strFolderState += objContainer.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block"?"1":"0";
				}
			}
		}
		for(var intHref = 0;intHref < objContainer.getElementsByTagName("A").length;intHref++){
			var strLink = objContainer.getElementsByTagName("A")[intHref].getAttribute("href");
			if(strLink.indexOf("open") > 0){
				strLink = strLink.substring(0,strLink.indexOf("open")-1);
			}
			if(strLink.indexOf("?")>0){
				strLink += "&open=" + strFolderState;
			}
			else{
				strLink += "?open=" + strFolderState;
			}
			objContainer.getElementsByTagName("A")[intHref].setAttribute("href", strLink);
		}
		strFolderState = "";
	}
	
	// ------------------------------------------------
	/*
		Holt die Parameter aus der URL und gibt anhand 
		des Parameternamens die entsprechenden Werte zurück.
		@param  strParamName: Der Parameterwert dessen Wert zu holen ist.
		@returnvalue: Der Wert des parameters sofern vorhanden. Ansonsten "0".
	*/
	// ------------------------------------------------
	function getParam(strParamName){
		var arrOfParams = new Array();
		var strHeader = window.location.search;
		var tempArr;
		if(strHeader.length > 0){
			var strParams = strHeader.substring(strHeader.indexOf('?')+1);
			if(strParams.indexOf('&') > 0){
				tempArr = strParams.split('&');
			}
			else{
				tempArr = new Array(strParams);
			}
			for(var i = 0; i < tempArr.length; i++){
				arrOfParams[tempArr[i].substring(0,tempArr[i].indexOf('='))] = tempArr[i].substring(tempArr[i].indexOf('=')+1);
			}
			if(typeof arrOfParams[strParamName] == "undefined"){
				return "0";
			}
			else{
				return arrOfParams[strParamName];
			}
		}
		else{
			return "0";
		}
	}
	
	//***********************************************************************************************************************************
	// ---------------------------------------------------
//    Funktion checkForm
//    	Gedacht zur Kontrolle für ausgefüllte MUSS_Felder in Formularen.
//   
//    Parameter:
//    	objForm   - Das Form-objekt
//    	strInputPrefix - ein Präfix welcher die inputs definiert Beispiel(name="i_eingabe") --> i_ = prefix
//		strFehler - Ein Fehlertext welcher auch aus der Datenbank gelesen werden kann.
//		
//    Return:  Ein boolscher Wert, der aussagt ob Fehler entsatnden sind.
// ------------------------------------------------
function checkForm(objForm, strInputPrefix, strFehler) {
	var strFehlerAusgabe = "";
	var bReturn = true;
	for(var i = 0; i < objForm.length; i++) {
		if(typeof objForm == "undefined") {
			//Nichts
		}
		else {
			if(objForm[i].name.substring(0,strInputPrefix.length) == strInputPrefix) {
				if(objForm[i].value == "") {
					if(strFehler != "") {
						strFehlerAusgabe = strFehler;
					}
					else {
						strFehlerAusgabe += "FEHLER CODE 1";
					}
				}
			}
		}
	}
	if(strFehlerAusgabe.length > 0){
		alert(strFehlerAusgabe);
		bReturn = false;
	}
	return bReturn;
}
-->

