var GLOBAL = new Image(),
	ID = function(id) {return document.getElementById(id);}
GLOBAL.farbwahl = "rosa";
GLOBAL.mausX = GLOBAL.mausY = 0;
document.writeln(''+
'	<style type="text/css">/* <![CDATA[ */'+
'		.JS_display {display:block;}'+
'		.JS_display_inline {display:inline;}'+
'		.JS_nodisplay,'+
'		.JS_nodisplay_inline {display:none;}'+
'	/* ]]> */</style>');
function beginner(){
	schriftgroesse();
	document.onscroll = navi_fixieren;
	document.onmousemove = mausposition_merken;
}
function mausposition_merken(ev){
	if (!ev){
		ev = window.event;}
	GLOBAL.mausX = ev.pageX ? ev.pageX : ev.clientX;
	GLOBAL.mausY = (ev.pageY ? ev.pageY : ev.clientY) - linksObenPos();
}
function linksObenPos(){
	var pos = document.body.pageYOffset;
	if (!pos){
		pos = document.documentElement.scrollTop;
		if (!pos){
			pos = document.body.scrollTop;}}
	return pos;
}
function schriftgroesse(){
	var grosse = "16";
	if (navigator.cookieEnabled){
		var keks = document.cookie;
		if (keks){
			var start = keks.indexOf("fontsize=");
			if (start > -1){
				var ende = keks.indexOf(";", start);
				if (ende == -1){
					ende = keks.length;}
				grosse = keks.substring(start+9, ende);
			}
		}
		document.cookie = "fontsize="+grosse;
	}
	set_sGrosse(grosse);
}
function sGrosse(wert){
	var gr = document.body.style.fontSize;
	gr = (gr) ?gr.substr(0, gr.length-2):16;
	switch(wert){
		case false:
			if (gr > 10){
					gr -= 2;
				}else{
					alert("Die Schrift ist jetzt wohl schon mehr als klein genug ;)");}
			break;
		case true:
			gr = parseInt(gr)+2;
			break;
		case null:
			gr = 16;
	}
	set_sGrosse(gr);
}
function set_sGrosse(grosse){
	document.body.style.fontSize = grosse+"px";
	if (navigator.cookieEnabled){
		document.cookie = "fontsize="+grosse;}
	if (document.getElementById('navi')){ // in sidemap.php nicht der Fall
		if (document.getElementById('navi').style.fontSize > grosse+"px"){
			document.getElementById('navi').style.fontSize = "1em";}
		GLOBAL.sGrosse = grosse;
		setTimeout("set_naviGrosse()", 1);}
}
function set_naviGrosse(){// Schrift der Navi ggf. verkleinern, wenn mit eingestellter Schriftgröße dort Zeilenumbruch entsteht
	if (document.getElementById("erster_naviitem").offsetTop != document.getElementById("letzter_naviitem").offsetTop){
		document.getElementById('navi').style.fontSize = (GLOBAL.sGrosse--)+"px";
		window.setTimeout("set_naviGrosse()", 1);}
}
function call_server(proc){
	document.getElementById("serverkommunikation").data = proc;
}
function target(uri){
	window.open(uri,"unterseite"+new Date().getTime());
	return false;
}
function info(el){
	el = el.firstChild;
	while (el && el.className != 'infofenster'){
		el = el.nextSibling;}
	var windowhohe = window.innerHeight;
	if (!windowhohe){
		windowhohe = document.body.clientHeight;
		if (!windowhohe){
			windowhohe = document.documentElement.clientHeight;}}
	var windowbreite = window.innerWidth;
	if (!windowbreite){
		windowbreite = document.body.clientWidth;
		if (!windowbreite){
			windowbreite = document.documentElement.clientWidth;}}
	if (GLOBAL.mausX > (windowbreite/2)){
			el.style.left = null;
			el.style.right = "0px";
		}else{
			el.style.left = "0px";
			el.style.right = null;}
	if (GLOBAL.mausY > (windowhohe/2)){
			el.style.top = null;
			el.style.bottom = "1em";
		}else{
			el.style.top = "1em";
			el.style.bottom = null;}
	el.style.width = Math.round(windowbreite/2)+"px";
	document.body.className = "ausgegraut";
	return;
}
function melde(art){
	var meld;
	switch (art){
		case "gibbet_net":
			meld = "Leider existiert diese Seite noch nicht.\nEs gibt so viel, was ich noch machen möchte, aber auch für mich hat der Tag nur 24 Stunden. Ich hoffe, diese noch fehlende Seite in Kürze als Teil meiner Webseite mit einbauen zu können.";
			break;
		case "hauptMP":
			if (GLOBAL.seitenname == "sidemap"){
					meld = "Bitte wähle einen der Unterpunkte dieses Menüpunktes aus.";
				}else{
					meld = "Bitte wähle einen der unterhalb dieses Buttons erschienen Unterpunkte aus.";}
			break;
		case "secure_pic":
			meld = "Das Bild wird nicht angezeigt, obwohl Du in Deinem Browser die Anzeige von Grafiken nicht untersagt hast?\n\nWahrscheinlich liegt es dann an der fehlenden Annahmebereitschaft Deines Browsers für Cookies. Weitere Erklärungen hierzu siehe auf der Seite [Sonstiges] --> [techn. Spielereien auf meiner Seite] bei dem Punkt \"Kopierschutz: Anzeige und Nichtanzeige persönlicher Bilder (Fotos)\".";
			break;
		default:
			meld = "Hier soll eigentlich eine Meldung vom System ausgegeben werden. Leider scheint mir da ein Programmierfehler unterlaufen zu sein und der für diese Stelle vorgesehene Text ist nicht definiert. :-(";
	}
	alert(meld);
	return false; // href-Adresse nicht folgen
}
function navi(){
	var li = document.getElementById("naviliste").firstChild;
	this.hover = function(li){
		var el;
		this.hover_IE = function(){
			var LI = document.getElementById("naviliste").firstChild;
			while(LI){
				if (sucheUL(LI.firstChild)){
					LI.onmouseover=einblenden_IE;
					LI.onmouseout=ausblenden_IE;}
				LI = LI.nextSibling;
			}
		}
		this.sucheUL = function(UL){
			do {
				if(UL){
					UL = UL.nextSibling;}
				if(UL && UL.nodeName == "UL"){
					return UL;}
			} while(UL);
			return false;
		}
		this.einblenden_IE = function(){
			sucheUL(this.firstChild).style.display = "block";
		}
		this.ausblenden_IE = function(){
			sucheUL(this.firstChild).style.display = "none";
		}
		while(li){
			if (li.nodeName == "LI"){
				el = suche_node("A", li.firstChild);
				el.onmouseover = mausover;
				el.onmouseout = mauswech;
				el = suche_node("UL", li.firstChild);
				if (el){
					hover(el.firstChild);}}
			li = li.nextSibling;
		}
		if (GLOBAL.IE_lt_7){
			hover_IE();}
	}
	this.suche_node = function(name, el){
		while(el){
			if (el.nodeName == name) {
				return el;}
			el = el.nextSibling;
		}
		return null;
	}
	this.mausover = function(){
		GLOBAL.navigieren = true;
		var ul = this.parentNode.parentNode;
		set_sibling("aktiv", ul.firstChild);
		if (ul.id != "naviliste"){
			set_sibling("inaktiv", ul.parentNode.parentNode.firstChild, "aktiv", ul.parentNode);}
	}
	this.mauswech = function(){
		GLOBAL.navigieren = false;
		setTimeout("navigrundstellung()", 100); // verzögerter Aufruf macht Flackern unwahrscheinlicher
	}
	this.set_sibling = function(klasse, li, ausnahmeklasse, ausnahme){
		var el;
		while(li){
			if (li.nodeName == "LI"){
				el = suche_node("A", li.firstChild);
				if (el.className != "dauerinaktiv"){
					el.className = (li!=ausnahme) ?klasse :ausnahmeklasse;}}
			li = li.nextSibling;
		}
	}
	this.navigrundstellung = function(){
		if (!GLOBAL.navigieren){
			set_sibling("aktiv", document.getElementById("naviliste").firstChild);}
	}
	hover(li);
}
function navi_fixieren(){
	if (GLOBAL.IE_lt_7){
		return;}
	if (linksObenPos() > document.getElementById('seitenbanner').offsetHeight){
			document.getElementById("navi").className = 'fixed';
//			document.getElementById("navi_ta").className = 'fixed';
		}else{
			document.getElementById("navi").className = 'static';
//			document.getElementById("navi_ta").className = 'nodisplay';
	}		
}
function farbwahl(){
	var keks = document.cookie;
	if (keks){
		var verfall = new Date();
		verfall.setTime(verfall.getTime() + (365*86400000));
		for (var i=0; i<document.farbabfrage.HGfarbe.length; i++){
			if (document.farbabfrage.HGfarbe[i].checked){
				var farbe = document.farbabfrage.HGfarbe[i].value;}}
		document.cookie = "HGfarbe=" + farbe + ";expires=" + verfall.toGMTString();
		if (farbe == 'rosa'){
			document.farbabfrage.style.display = 'none';
			return false; // Seite muss nicht neu geladen werden
		}
	}
	return true; // Seite neu laden
}
function display(id){
	document.getElementById(id).style.display = "block";
}
function display_inline(id){
	document.getElementById(id).style.display = "inline";
}
function nodisplay(id){
	document.getElementById(id).style.display = "none";
}
function switch_display(id){
	if (document.getElementById(id).style.display == "block"){
			nodisplay(id);
		}else{
			display(id);}
}
function previous_Sibling(el){
	do {
		el = el.previousSibling;
	} while (el.nodeName == "#text");
	return el;
}
function setMouseover(start, klasse, mausover, mauswech){
	while (start){
		if (start.className == klasse){
			start.onmouseover = mausover;
			start.onmouseout = mauswech;}
		if (start.firstChild){
			setMouseover(start.firstChild, klasse, mausover, mauswech);}
		start = start.nextSibling;
	}
}
function scrollNavi(id){
	if (GLOBAL.IE_lt_7){
		return;}
	scrollBy(0, -GLOBAL.sGrosse*2);
}
function disclaim(wert){
	if (wert){
			nodisplay('disclaimer_opener');
			display('disclaimer');
		}else{
			nodisplay('disclaimer');
			display('disclaimer_opener');
	}
	return false;
}
function toHex(zahl, len){ // nötig, weil der Opera eine Systemnumrechnung bei toString() nicht kennt und immer auf Dezimalsystem zurückgreift
	var wert = "",
		hex = "0123456789ABCDEF";
	do{
		wert = hex[zahl%16] + wert;
		zahl = Math.floor(zahl/16);
	} while (zahl);
	return mkString("0", len-wert.length) + wert;
}
function mkString (zeichen, len){
	var wert = "";
	while (wert.length < len){
		wert += zeichen;}
	return wert;
}
function lastchild(el){
	var wert = el.lastChild;
	while (wert.nodeType == 3){
		wert = wert.previousSibling;}
	return wert;
}
