

function Navigation(){

	var Dateiname;
	var NavigationInhalt;
	var Link;
	var i;
	
	Dateiname = document.URL.split("/");
	Dateiname = Dateiname[Dateiname.length - 1]; 						// letztes Element ist der Dateiname
	if (Dateiname.indexOf("_") != -1) {  								// nach Unterstrichen im Dateinamen suchen, da vor dem ersten Unterstrich die zughörige Nummer steht
		Dateiname = Dateiname.split("_");
		Dateiname = Dateiname[0];
	}
	//alert(Dateiname);
	NavigationInhalt = document.getElementById("Navigation").childNodes;
	for (i = 0; i < NavigationInhalt.length; i++) {
		//alert(NavigationInhalt[i].nodeName+"_"+NavigationInhalt[i].nodeValue);
		if (NavigationInhalt[i].nodeName.toUpperCase() == "A"){
			//alert(NavigationInhalt[i].getAttribute("href")); 			// Links suchen
			if (NavigationInhalt[i].getAttribute("href").indexOf("/") != -1) { 	
				Link = NavigationInhalt[i].getAttribute("href").split("/");
				Link = Link[Link.length - 1];
			} else {
				Link = NavigationInhalt[i].getAttribute("href");
			}
			if (Link.indexOf("_") != -1) { 						// nach Unterstrichen im Link suchen, da vor dem ersten Unterstrich die zughörige Nummer steht
				Link = Link.split("_");
				Link = Link[0];
			}
			//alert(Dateiname+"-"+Link);
			if (Dateiname == Link) {
				if (navigator.appName == "Microsoft Internet Explorer") {
					NavigationInhalt[i].filters.alpha.opacity=14;
				} else {
					NavigationInhalt[i].style.opacity = 0.14;
				}
				NavigationInhalt[i].removeAttribute("href");
				NavigationInhalt[i].style.cursor = "default";
			}
		}
	}
}



/*

Funktionsbibliothek LibHo von Dr. Stefan Hofreiter
© 2011 Copyright Dr. Stefan Hofreiter

Version 1.0

Die Bibliothek umfasst folgende Objekt mit Unterobjekten, Eigenschaften und Methoden:

Browser
	.getVersion()
		.Name
		.Version
		.Hauptversion
	.getSprache()
		.SpracheCode
		.LandCode
	.getFeatures()
		.Cookies
		.Java
		.svg
	.getName()
	.getPlattform()
				 
Elemente
	.Oeffnen(ElementID,Aktion,Anzeige)
	.Einblenden(ElementID,Aktion,Anzeige)
	.openSeite(URL,Fenstername,x,y,sb)
	.Film(Datei)
	.Popup(PopupID)

Formular
	.Beschreiben(TextfeldID,Wert,Anfuegen)
	.requiredFelder(Formular,ID)
	.checkWert (Subtype,Wert)
	
URL
	.schreibenPost(Adressat,Domain,Betreff,Text)
	.getDomainname(URL)

Datum
	.Format(Datum, Sprache)
	.Jahreszahl()
	.Zeitzone()

Navigation
	.Navigation()
	.SpracheLink(Sprache)
	
*/

var LibHo = {
	
	/******  Browserspezifische Informationen *****/
	
	Browser : {
		
		/******  Browserversion *****/
		
		getVersion : function() {
			
			var Ergebnis = new Object();
			
			if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "MSIE";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Opera[\/\s](\d+[\.\d+]*)/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Opera";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
				if (/Version\/(\d+\.\d+)/.test(navigator.userAgent) == true) {
					Ergebnis.Version = RegExp.$1;
					Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
				}
			} else if (/Konqueror\/(\d+[\.\d+]*);/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Konqueror";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Chrome\/(\d+[\.\d+]*) /.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Chrome";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Version\/(\d+[\.\d+]*) Safari\//.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Safari";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Camino\/(\d+[\.\d+]*)/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Camino";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Firefox[\/\s](\d+[\.\d+]*)/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "FF";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else if (/Netscape[6{0,1}\/](\d+[\.\d+]*)/.test(navigator.userAgent) == true) {
 				Ergebnis.Name = "Netscape";
				Ergebnis.Version = RegExp.$1;
				Ergebnis.Hauptversion = RegExp.$1.split(".")[0];
			} else {
 				Ergebnis.Name = "";
				Ergebnis.Version = "";
				Ergebnis.Hauptversion = "";
			}
			
			return Ergebnis;
			
		}
		
		,
		
		/******  Browserspracheinstellung *****/
		
		getSprache : function() {
			
			var Ergebnis = new Object();
			
			if (typeof(navigator.language) == "undefined") {
				//alert(navigator.userLanguage);
				if (typeof(navigator.userLanguage) != "undefined") {
					Ergebnis.SpracheCode = navigator.userLanguage.split("-")[0].toLowerCase();
					if (navigator.userLanguage.length == 5) { 
						Ergebnis.LandCode = navigator.userLanguage.split("-")[1].toUpperCase();
					} else {
						Ergebnis.LandCode = "";
					}
				}
			} else if (navigator.language.length == 5) {
				Ergebnis.SpracheCode = navigator.language.split("-")[0].toLowerCase();
				Ergebnis.LandCode = navigator.language.split("-")[1].toUpperCase();
			} else if (navigator.language.length == 2) {
				Ergebnis.SpracheCode = navigator.language.toLowerCase();
				Ergebnis.LandCode = "";
			}
			
			return Ergebnis;
			
		}
		
		,
		
		/****** Unterstützte Features ******/
		
		getFeatures : function() {
			
			var Ergebnis = new Object();
			
			Ergebnis.Cookies = navigator.cookieEnabled;
			Ergebnis.Java = navigator.javaEnabled();
			if (LibHo.Browser.getName() != "MSIE" || (LibHo.Browser.getName() == "MSIE" && LibHo.Browser.getVersion().Haupt > 8)) {
				Ergebnis.svg = true;
			} else {
				Ergebnis.svg = false;
			}
			
			return Ergebnis;
		}
		
		,
		
		/******  Browsername *****/
		
		getName : function() {
			
			
			var Browsername = navigator.appName;
			var UserAgent = navigator.userAgent;
			
			if (Browsername == "Microsoft Internet Explorer") {
				return "MSIE";
			} else if (Browsername == "Opera") {
				return "Opera";
			} else if (Browsername == "Konqueror") {
				return "Konqueror";
			} else if (Browsername == "Netscape") {
				if (UserAgent.indexOf("Chrome") != -1) {
					return "Chrome";
				} else if (UserAgent.indexOf("Safari") != -1) {
					return "Safari";
				} else if (UserAgent.indexOf("Camino") != -1) {
					return "Camino";
				} else if (UserAgent.indexOf("Firefox") != -1) {
					return "FF";
				} else if (UserAgent.indexOf("Netscape") != -1) {
					return "Netscape";
				} else {
					return "Mozilla";
				}
			} else {
				return Browsername;
			}
			
		}
		
		,
		
		/******  Betriebssystem *****/
		
		getPlattform : function() {
			
			return navigator.platform;
			
		}
		
		,
		
		/******  Mausposition *****/
		
		getMaus : function(Event) {
			
			var Ergebnis = new Object();
			
			if (typeof(Event) == "undefined") Event = window.event;
			
			// Überprüfen, ob IE im Quirks-Modus
			if (typeof(document.compatMode) != "undefined") {
				if (document.compatMode != "BackCompat") {
                	Body = "documentElement";
				} else {
					Body = "body";
				}
			}

			if (Event.pageX || Event.pageY) {
				Ergebnis.x = Event.pageX;
				Ergebnis.y = Event.pageY;
			} else if (Event.clientX || Event.clientY) { // IE
				Ergebnis.x = Event.clientX + document[Body].scrollLeft;
				Ergebnis.y = Event.clientY + document[Body].scrollTop;
			}
			//alert(Ergebnis.x+" "+Ergebnis.y);
			
			return Ergebnis;
			
		}
		
	}
	
	,
	
	/******  Elemente anzeigen *****/
	
	Elemente : {


		/******  Auf- oder Zuklappen von Elementen mit einer ID *****/
		
		Oeffnen : function(ElementID,Aktion,Anzeige) {
			
			/*
			Erwartet die ID des aufzuklappenden Elements
			Die Aktion ist enweder "auf" oder "zu"
			Nur für Aufklapp-Elemente mit einem Pfeil als Bild davor (Mac-Style)
			*/
			
			var self = this;
			var PfeilID = ElementID + "pfeil";
			var LinkID = ElementID + "link";
			var Bildpfad = "upload/bullets/";
			
			if (Aktion == "auf"){
				if (document.getElementById(PfeilID) != null) {
					document.getElementById(PfeilID).setAttribute("src", Bildpfad + "pfeil_unten.gif");
				}
				if (document.getElementById(LinkID) != null) {
					document.getElementById(LinkID).setAttribute("href", "javascript:LibHo.Elemente.Oeffnen('" + ElementID + "','zu','" + Anzeige + "');");
				}
			} else if (Aktion == "zu") {
				if (document.getElementById(PfeilID) != null) {
					document.getElementById(PfeilID).setAttribute("src", Bildpfad+"pfeil_rechts.gif");
				}
				if (document.getElementById(LinkID) != null) {
					document.getElementById(LinkID).setAttribute("href", "javascript:LibHo.Elemente.Oeffnen('" + ElementID + "','auf','" + Anzeige + "');");
				}
			}
			self.Einblenden(ElementID,Aktion,Anzeige);
		}
		
		,
		
		/******  Ein- oder Ausblenden von Elementen mit einer ID *****/
		
		Einblenden : function(ElementID,Aktion,Anzeige) {
			
			/*
			Erwartet die ID des ein- bzw. auszublenden Elements
			Die Aktion ist enweder "auf" oder "zu"
			*/
			
			var self = this;
			var Ergebnis = false;
			
			if (document.getElementById(ElementID) != null) {
				if (Aktion == "auf") {
					if (Anzeige == "visible") {
						document.getElementById(ElementID).style.visibility = "visible";
					} else if (Anzeige == "block" || Anzeige == "inline") {
						document.getElementById(ElementID).style.display = Anzeige;
					} else {
						if (navigator.appName == "Microsoft Internet Explorer") {
							document.getElementById(ElementID).style.display = "";
						} else {
							document.getElementById(ElementID).style.display = Anzeige;
						}
					}
					Ergebnis = true;
				} else if (Aktion == "zu") {
					if (Anzeige == "visible") {
						document.getElementById(ElementID).style.visibility = "hidden";
					} else {
						document.getElementById(ElementID).style.display = "none";
					}
					Ergebnis = true;
				}
			}
			return Ergebnis;
		}
		
		,
	
		/******  Öffnet abhängiges Browserfenster  *****/
		
		openSeite : function(URL,Fenstername,x,y,sb) {
			
			/*
			Erwartet
			URL				die URL der Seite und 
			Fenstername		den Namen des Fensters und 
			x					die Breite des Fensters und 
			y					die Höhe des Fensters
			sb					Scrollbalken (0,1)
			*/
			
			if(sb!=1){sb=0;}
			
			var self = this;
			var win = "toolbar=0,directories=0,menubar=0,scrollbars="+sb+",resizable=0,left=50,top=50,width="+x+",height="+y+",dependent=1";
			var filename = URL;
			fenster = window.open(filename,Fenstername,win);
		}
		
		,
	
		/******  Öffnet ein Erklärungs-Popup beim Element oder an einem best. Punkt  *****/
		
		Erklärung : function(x,y,Inhalt) {
			
			var Box = document.createElement("div");
			
			Box.setAttribute("id","Erklärungsbox");
			Box.setAttribute("class","Erklärungsbox");
			//Box.appendChild(document.createTextNode(Inhalt));
			Box.innerHTML = Inhalt;
			Box.setAttribute("style", "left:" + x + "px; top:" + y + "px");
			document.getElementsByTagName("body")[0].appendChild(Box);
			//document.getElementById("Erklärungsbox").styles.left = x + "px";
			//document.getElementById("Erklärungsbox").styles.top = y + "px";

		}
		
		,
		
		/******  Öffnet eine Popup-Ebene mit einem Flash-Film  *****/
		
		Film : function(Datei) {
			
			var self = this;

			$("Vordergrund").appear({from: 0, to: 1, duration: 0.3});
			$("Film").style.visibility = "visible";
			
			if (LibHo.Browser.getFeatures().svg == true) {
				$("SchließenFilm").getSVGDocument().onclick = function() {
					$("SchließenFilm").style.visibility = "hidden";
					flowplayer().stop();
					$("Film").style.visibility = "hidden";
					$("Vordergrund").fade({from: 1, to: 0, duration: 0.3});
				}
			} else {
				$("SchließenFilmIE").onclick = function() {
					$("SchließenFilm").style.visibility = "hidden";
					flowplayer().stop();
					$("Film").style.visibility = "hidden";
					$("Vordergrund").fade({from: 1, to: 0, duration: 0.3});
				}
			}
			
			$("Film").onmouseover = function () { document.getElementById("SchließenFilm").style.visibility = "visible"; }
			$("Film").onmouseout = function () { document.getElementById("SchließenFilm").style.visibility = "hidden"; }
			flowplayer("Filmcontainer", "Scripte/flowplayer/flowplayer-3.2.7.swf", {
				clip: {
					url: Datei,
					autoPlay: true,
					autoBuffering: true
				},
				plugins:  {
					controls:  {
						height: 24,
						autoHide: false,
						volume: true,
						mute: true,
						time: true,
						timeFontColor: "rgb(255,255,255)",
						backgroundColor: "rgb(0,0,0)",
						backgroundGradient: "low",
						progressColor: "rgb(70,70,80)",
						sliderColor: "rgb(255,255,255)",
						buttonColor: "rgb(255,255,255)",
						tooltipColor: "rgb(70,70,80)",
						tooltips: {
							buttons: true
						}
					}
				}
			});
		}
		
		,
		
		/******  Öffnet eine Popup-Ebene mit einer speziellen ID  *****/
		
		Popup : function(PopupID) {
		
			$("Vordergrund").appear({from: 0, to: 1, duration: 0.3});
			$("Referenzen").style.visibility = "visible";
			
			if (LibHo.Browser.getFeatures().svg == true) {
				$("Schließen").getSVGDocument().onclick = function() {
					$("Schließen").style.visibility = "hidden";
					$("Referenzen").style.visibility = "hidden";
					$("Vordergrund").fade({from: 1, to: 0, duration: 0.3});
				}
			} else {
				$("SchließenIE").onclick = function() {
					$("Schließen").style.visibility = "hidden";
					$("Referenzen").style.visibility = "hidden";
					$("Vordergrund").fade({from: 1, to: 0, duration: 0.3});
				}
			}
			$("Referenzen").onmouseover = function () { document.getElementById("Schließen").style.visibility = "visible"; }
			$("Referenzen").onmouseout = function () { document.getElementById("Schließen").style.visibility = "hidden"; }
		
		}

	
	
	}
	
	,
	
	Formular : {


		/******  Text-Feld wird mit einem Wert beschrieben bzw. ergänzt  *****/
		
		Beschreiben : function(TextfeldID,Wert,Anfuegen) {
			
			/*
			Erwartet die ID des zu beschreibenden Textfeldes
			Wenn angefügt werden soll, muss ein "+" angegeben werden
			*/
			
			var self = this;

			if (document.getElementById(TextfeldID) != null) {
				if (Anfuegen == "+") {
					document.getElementById(TextfeldID).value = document.getElementById(TextfeldID).value + ", " + Wert;
				} else {
					document.getElementById(TextfeldID).value = Wert;
				}
			}
		}
		
		,
		
		/******  Prüft Formularfelder, ob diese entsprechend ausgefüllt sind  *****/
		
		requiredFelder : function(Formular,ID) {
			
		 	/*
			Erwartet das zu durchsuchende Formular (alles innerhalb <form></form>),
			wird als Objektreferenz (document.[formname] bzw. document.[forms[nummer]]) übergeben.
			Durchsucht alle input- (text, passwort, checkbox, radio, file) und select- und textarea-Felder,
			die als Attribute "required" mit dem Wert "yes" besitzen.
			Ist der Feldwert nicht entsprechend dem angegebene Subtyp, so wird der Wert des Attributes "message" als Meldung angezeigt und
			die weitere Durchsuchung der Felder gestoppt.
			*/
		 	
			var self = this;
			var gefundenFehler = false;
			var gefundenWert = false;
			var Meldung = "";
			var Element;
			var Check;
			var Elementgruppen = new Object();
			var Elemente;
			var i;
			var j;
			var QueryString
			
			// ###### Alle Elemente des Formulars durchlaufen und nach Namen in ein Objekt (Elementgruppen) eintragen
			for (var i = 0; i < Formular.elements.length; i++) {
				
				with (Formular.elements[i]) {
				
					if (
					type != "submit" && 
					type != "reset" && 
					type != "button" && 
					type != "image" && 
					type != "hidden" &&
					getAttribute("required") == "yes" && 
					disabled == false) {
						//alert(name + " schon angelegt in Elementgruppen: " + (typeof Elementgruppen[name] == "object"));
						if (typeof Elementgruppen[name] == "undefined") {			// Wenn erste Elementgruppe mit dem entsprechenden Namen, dann ein neues Unterobjekt anlegen
							Elementgruppen[name] = new Object();						// Gemeinsame Verwendung der Werte des ersten Elements (i=0) mit diesem Namen
							Elementgruppen[name].name = name;
							Elementgruppen[name].type = type;
							Elementgruppen[name].array = (typeof Formular.elements[name].form == "undefined");	// Mehrere Elemente mit gleichem Namen vorhanden
							Elementgruppen[name].objects = Formular.elements[name];		// Ein Verweis auf alle Objekte mit diesem einen Namen
							if (getAttribute("subtype") == null) {
								Elementgruppen[name].subtype = "";
							} else {
								Elementgruppen[name].subtype = getAttribute("subtype");
							}
							if (getAttribute("message") == null) {
								Elementgruppen[name].message = "";
							} else {
								Elementgruppen[name].message = getAttribute("message");
							}
						}
					}
				
				}
				
			}
			
			// ###### Alle Elemente des gespeicherten Objekts (Elementgruppen) durchlaufen und auf Werte prüfen
			for (Elemente in Elementgruppen ) {
				
				with (Elementgruppen[Elemente]) {
					
					// ############ Elemente <select multiple> Mehrfachauswahl ##########################
					if (type == "select-multiple") {
						// Fehlt noch, sollte aber nicht mehr verwendet werden; besser Checkboxen!
					
					// ############ Elemente <input type={radio|checkbox}> ##########################
					} else if (type == "radio" || type == "checkbox") {
						if (array == true) {		// es gibt mehrere Elemente mit gleichem Namen
							for (i = 0; i < objects.length; i++ ) {
								if (objects[i].checked == true) {
									//gefundenWert = true;
									Check = self.checkWert(subtype,objects[i].value);
									gefundenWert = new Boolean(Number(gefundenWert) + Number(Check[0]));
									objects[i].value = Check[2];
								}
							}
							if (gefundenWert == false) {
								gefundenFehler = true;
								Meldung = message;
								Element = objects[objects.length - 1];					// letztes Element auswählen
								break;
							}
						} else {
							if (objects.checked == true) {
								Check = self.checkWert(subtype,objects.value);
								objects.value = Check[2];
								if (Check[0] == false){
									gefundenFehler = true;
									Meldung = message;
									Element = objects;
									break;
								}
							} else {									// es ist kein Element ge"checked"
								gefundenFehler = true;
								Meldung = message;
								Element = objects;
								break;
							}
						}
					
					// ############ alle anderen Elemente <input type={text|password|file}>, <textarea>, <select> ##########################
					} else {
						if (array == true) {		// es gibt mehrere Elemente mit gleichem Namen
							for (i = 0; i < objects.length; i++ ) {
								Check = self.checkWert(subtype,objects[i].value);
								gefundenWert = new Boolean(Number(gefundenWert) + Number(Check[0]));
								objects[i].value = Check[2];
							}
							if (gefundenWert == false) {
								gefundenFehler = true;
								Meldung = message;
								Element = objects[objects.length - 1];					// letztes Element auswählen
								break;
							}
						} else {
							Check = self.checkWert(subtype,objects.value);
							objects.value = Check[2];
							if (Check[0] == false){
								gefundenFehler = true;
								Meldung = message;
								Element = objects;
								break;
							}
						}
					}
					
					Check = null;
					gefundenWert = false;
					//alert("Fehler: " + gefundenFehler);
					if (gefundenFehler == true) {
						break;
					}
				
				} // end with
				
			}
			
			// ###### Abschließender Test mit Meldung und Rückgabewert
			if (gefundenFehler == true) {
				if (Meldung != "") {
					alert(Meldung);
				} else {
					alert('Das Formularelement "' + Element.name + '" (Typ: ' + Element.type + '-Element) hat einen ungültigen Wert!');
				}
				if (typeof(ID) == "undefined") {
					Element.focus();
				} else if (document.getElementById(ID)  != null) {
					document.getElementById(ID).focus();
				}
			}
			//alert((gefundenFehler == false));
			return (gefundenFehler == false);
			
		}
		
		,
		
		checkWert : function(Subtype,Wert) {
			
			var self = this;
			var Ergebnis = new Array(3);  // Ergebnis[0] = true|false (true: Übereinstimmung von Wert und Subtype), Ergebnis[1] = Eingabewert, Ergebnis[2] = umgewandelter Ausgabewert
			
			Ergebnis[1] = Wert;
			if (Subtype == "Integer[>0]") {
				Wert = Math.abs(parseInt(Wert,10))
				if (isNaN(Wert) == true || Wert == 0){
					Ergebnis[0] = false;
					Ergebnis[2] = 0;
				} else {
					Ergebnis[0] = true;
					Ergebnis[2] = Wert;
				}
			} else {		// Default; keiner oder unbekannter Subtype
				if (Wert == "") {
					Ergebnis[0] = false;
					Ergebnis[2] = Wert;
				} else {
					Ergebnis[0] = true;
					Ergebnis[2] = Wert;
				}
			}
			return Ergebnis;
		}
		
	}
	
	,


	/******  Funktionen für erweiterte URL-Methoden  *****/
		
	URL : {
		
		schreibenPost : function(Adressat,Domain,Betreff,Text) {
			
			var self = this;
			var Parameter = "";
			var URL = "";
			
			if (typeof(Domain) == "undefined" || Domain == "") {
				if (self.getDomainname(document.URL) == null) {
					Domain = "testdomain.test";
				}
			}
			if (typeof(Betreff) != "undefined" && Betreff != "") {
				Parameter = "subject=" + encodeURIComponent(Betreff);
			}
			if (typeof(Text) != "undefined" && Text != "") {
				if (Parameter != ""){
					Parameter = Parameter + "&";
				}
				Parameter = Parameter + "body=" + encodeURIComponent(Text);
			}
			if (Parameter != ""){
				Domain = Domain + "?" + Parameter;
			}
			if (typeof(Adressat) != "undefined" && Text != "") {
				void(document.location.href = "mailto:" + Adressat + "%40" + Domain);
			}
		}
		
		,
		
		getDomainname : function(URL) {
			
			var self = this;
			var Domain = URL.split("///");
			
			if (Domain.length == 1) {
				Domain = Domain[0].split("//");
				if (Domain.length > 1) {
					Domain = Domain[1].split("/");
					return Domain[0];
				} else {
					return null;
				}
			} else {
				return "localhost";
			}
		}
	
									
	}
	
	,
	
	
	/******  Funktionen für erweiterte Datums-Methoden  *****/
		
	Datum : {
	
		/******  Testfunktion für deutsches Datum  *****/
		
		Format : function(Datum, Sprache) {
		
			/*
			Überprüft das entsprechende Format: TT.MM.JJJJ - z.B. 25.08.2003
			T,M,J ist eine Zahl, an Position 3 und 5 ist ein Punkt, genau 10 Zeichen
			Erwartet eine Zeichenkette (DatumDeutsch)
			Liefert als Ergebnis das korrekte eingegebene Datum (richtiges Eingabedatum) oder einen Leerstring (falsches Eingabedatum) zurück
			*/
		
			var self = this;
			var Ergebnis = "";
			var Ergebnis_wahr = Datum;
			var Ergebnis_falsch = "";
			
			if (Sprache == "de") {
				if (Datum.length != 10) {
					Ergebnis = false;
				} else {
					for (var i = 0; i < Datum.length; i++) {
						if (i == 2 || i == 5){
							if (Datum.charAt(i) == ".") {
								Ergebnis = true;
								continue;
							} else {
								Ergebnis = false;
								break;
							}
						}
						else {
							if (isNaN(parseInt(Datum.charAt(i),10)) == false) {
								Ergebnis = true;
								continue;
							} else {
								Ergebnis = false;
								break;
							}
						}
					}
				}
			}
			
			if (Ergebnis == true){
				return Ergebnis_wahr;
			} else {
				return Ergebnis_falsch;
			}
		}
		
		,
		
		
		/******  Liefert Jahreszahl zurück  *****/
		
		Jahreszahl : function() {
		
			// Liefert die aktuelle Jahreszahl
			
			var self = this;
			var Jahreszahl = new Date();
			
			return	Jahreszahl.getFullYear();
		
		}
		
		,
		
		
		/******  Liefert die Zeitzonenverschiebung zurück  *****/
		
		Zeitzone : function() {
		
			// Liefert die aktuelle Zeitzonenverschiebung
			
			var self = this;
			var Offset = new Date();
			
			return	Offset.getTimezoneOffset();
		
		}

	}
	
	,
	
	
	/******  Funktionen für die Navigation  *****/
		
	
	Navigation : {
		
		
		/******  Steuert die Navigation  *****/
			
		
		Navigation : function() {
		
			/* 
			Funktioniert nur wenn folgende Konventionen eingehalten werden:
			- Alle HTML-Dateien müssen im gleichen Ordner (meist root) liegen
			- Standarddatei: index.html
			- Ober- und Unterkategorienamen werden durch "_" getrennt
			- CSS-Klassennamen entsprechen den reinen Kategorien
			- Markiertes Element hat als zusätzliche Klasse "aktiv"
			- Dateinamen lauten "[Kategorie].html"
			- Hintergrundbilder lauten bg-[Kategorie].jpg
			*/
			
			var self = this;
			var Bilderordner = "Bilder/";
			var Hintergrundelement = $("Hintergrund");
			var Navigationscontainer = $("Navigation");
			var Dateiname = "";
			var Link = "";
			var LinkKategorie = "";
			var Hintergrundbild = false;
			var img = new Image();
			
			Dateiname = document.URL.split("/");
			Dateiname = Dateiname[Dateiname.length - 1];		//alert(Dateiname);						// letztes Element ist der Dateiname
			if (Dateiname == "") { Dateiname = "index.html"; }
			Kategorie = Dateiname.split(".")[0].split("_");
			
			setHintergrund(Dateiname.split(".")[0]);
			F(Navigationscontainer);
	
	
			// Private Funktionen
			
			function setHintergrund(Kat) {
				
				if (Kat != "" && Hintergrundelement != null && Hintergrundbild == false) {
					// Testen, ob das Hintergrundbild verfügbar ist, wenn ja (onload ist true), Hintergrundbild setzen
					//alert(Kategorie_neu[j]);
					if (LibHo.Browser.getName() == "MSIE") {
						Hintergrundelement.style.backgroundImage =  "url(" + Bilderordner + "bg-" + Kat + ".jpg)";
					} else { 
						img.src = Bilderordner + "bg-" + Kat + ".jpg";
						img.onload = function () {
							 Hintergrundelement.style.backgroundImage =  "url(" + this.src + ")";
							 Hintergrundbild = true;
						};
						img.onerror = function () {
							 //alert("Das Hintergrundbild konnte nicht geladen werden!");
							 Hintergrundbild = false;
						}
					}
				}
				
			}
					
			function F(divTag) {
				
				var i = 0;
				var NavigationInhalt = "";
				
				NavigationInhalt = divTag.childNodes;
				for (i = 0; i < NavigationInhalt.length; i++) {
					
					if (NavigationInhalt[i].nodeName.toUpperCase() == "A"){		// Navigations-Links durchsuchen
						
						Link = NavigationInhalt[i].getAttribute("href").split("/")[NavigationInhalt[i].getAttribute("href").split("/").length - 1];
						//alert("a: "+Link);
						if (Dateiname == Link) {
							//alert(Dateiname+"-"+Link);
							Markierung(NavigationInhalt[i]);
							//break;
						}
					
					} else if (NavigationInhalt[i].nodeName.toUpperCase() == "DIV") {			// DIV-Container mit Unternavigation durchsuchen
						
						//alert("div-ID :"+NavigationInhalt[i].id);
						F(NavigationInhalt[i]);
						
					}
				}
				
			}
			
			function Markierung(Element) {
				
				var j = 0;
				var Kategorie = "";
				var Kategorie_neu = new Array();
				
				// Untermenüs sichtbar machen in der entsprechenden Kategorie
				Kategorie = Element.getAttribute("href").split("/")[Element.getAttribute("href").split("/").length - 1].split(".")[0].split("_");
				
				// Alle Kategorien müssen mit "_" verknüpft werden und in ein neues Array geschrieben werden
				for (j = 0; j < Kategorie.length; j++) {
					if (j > 0) {
						Kategorie_neu[j] = Kategorie_neu[j - 1] + "_" + Kategorie[j];
					} else {
						Kategorie_neu[j] = Kategorie[j];
					}
				}
	
				// Neues Array durchgehen und die entsprechenden DIV-Kategorien, Hintergrundbilder sichtbar machen
				for (j = Kategorie_neu.length - 1; j >= 0 ; j--) {
					
					if ($(Kategorie_neu[j]) != null) {
						$(Kategorie_neu[j]).style.display = "block";
					}
					//if (Hintergrundbild == false) setHintergrund(Kategorie_neu[j]);
				}
							
				// Links markieren
				Element.removeAttribute("href");
				Element.addClassName("aktiv");
							
			}
				
		}
		
		,
		
		/******* Sprache umschalten *******/
		
		SpracheLink : function(Sprache) {
			
			if (Sprache == "") { Sprache = "de" }
			
			window.location.href = window.location.protocol + "//" + window.location.hostname + "/" + Sprache + window.location.pathname + window.location.search;
			
		}
		
	}

}



// ################### Initialisieren ######################


window.onload = function () {
	//alert(navigator.userAgent+"\r\n"+LibHo.Browser.getVersion().Name+" "+LibHo.Browser.getVersion().Hauptversion+" ("+LibHo.Browser.getVersion().Version+")"+"\r\n"+LibHo.Browser.getName()+" "+LibHo.Browser.getSprache().SpracheCode+"-"+LibHo.Browser.getSprache().LandCode);
	Navigation();
	//LibHo.Navigation.Navigation();
	document.getElementById("Jahreszahl").replaceChild(document.createTextNode(LibHo.Datum.Jahreszahl()), document.getElementById("Jahreszahl").firstChild);
}

