/*
==================================================
Executing JavaScript on page load 060528 (Simon Willison)
==================================================
-> http://simonwillison.net/2004/May/26/addLoadEvent/

Hiermit können beliebig viele Funktionen beim "window.onload" aufgerufen werden
ohne dass ein vorher definiertes window.onload überschrieben wird.

- addLoadEvent einfach als erste Funktion einbinden
- Funktionen per addLoadEvent(Funktionsname) dem "window.onload" hinzufügen
  anstatt direkt per window.onload=Funktionsname;
*/

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}



/*
==================================================
@ Zurückübersetzen 090417 (Wolfgang)
==================================================

Wenn zwecks Spamschutz im Html ein alternativer String für @ eingesetzt wird,
kann dieses Script den String wieder zurückübersetzen - so bleiben Bots ohne
js weiterhin ausgesperrt, 95% der Besucher sehen aber die echte E-Mail-Adresse

- der Ersatzstring sollte in einem del mit Klasse "schutz" liegen. 
Das ist semantisch ziemlich korrekt und das Script muss nicht lange suchen
- das del sollte per css "text-decoration:none;" bekommen, sonst wird es durchgestrichen dargestellt
- Alle del.schutz werden durch @ überschrieben, sie sollten also für nichts anderes verwendet werden
*/

function ersetzeAt() {
	var dels = document.getElementsByTagName("del");
	for (var i=0; i<dels.length; i++) {
		if (dels[i].className === "schutz") {
			dels[i].firstChild.data = "@";
			}
		}
	}
	
addLoadEvent(ersetzeAt);



/*
==================================================
Inhalte verbergen und aufklappen 090528 (Wolfgang)
==================================================

Im Prinzip ähnlich der bekannten FAQ-Funktionalität. Ein div.aufklappen wird erstmal eingeklappt;
Außerdem wird in das Elternelement ein Link zum Öffnen eingesetzt.
Per Klick wird dann das div.aufklappen auf seine ganze Höhe ausgefahren und der Link verwandelt sich 
in einen "Schließen"-Link.
Hier wird der div beim Einklappen nur auf einen Maximalhöhe gebracht. Diese wird im css festgelegt.
- Die Maximalhöhe wird über den parent des div berechnet. Wenn dieser größer ist als der div allein, 
muss das in dem "maxHoeheOffset" angegeben werden.
*/

var btnAufklappen = "Aufklappen";
var btnEinklappen = "Einklappen";
var btnAufklappen = "<img src='fileadmin/templates/bilder/lupe.gif'>";
var btnEinklappen = "<img src='fileadmin/templates/bilder/lupe.gif'>";
var maxHoehe;
var maxHoeheOffset = 0; // wieviel höher ist der parent-container als die Max-Höhe des aufklapp-div?
	
function htmlResetten(div) {
	var container = div.parentNode;
    if (div.nextSibling) {
		var naechster = div.nextSibling;
		container.removeChild(div);
		container.insertBefore(div, naechster);
		}
	else {
		container.removeChild(div);
		container.appendChild(div);
		}
	}

function aufklappen(div){
	div.className="aufgeklappt";
	htmlResetten(div);
	}
	
function einklappen(div){
	div.className="eingeklappt";
	htmlResetten(div);
	}
function hoeheTesten(div){
	einklappen(div);
	maxHoehe = div.parentNode.scrollHeight - maxHoeheOffset;
	aufklappen(div);
	}
	
function createAufklappenHTML(div){	
	var inDies = div.getElementsByTagName("h2")[0].nextSibling;
	
	var auf = document.createElement("a");
	auf.innerHTML=btnAufklappen;
	auf.onclick = function() {
		aufklappen(this.parentNode.parentNode);
		return false;
		};
	auf.href = "#";
	auf.className="btn-aufklappen";
	auf.title="Weitere Informationen aufklappen";
	inDies.appendChild(auf);
	
	var zu = document.createElement("a");
	zu.innerHTML=btnEinklappen;
	zu.onclick = function() {
		einklappen(this.parentNode.parentNode);
		return false;
		};
	zu.href = "#";
	zu.className="btn-einklappen";
	zu.title="Weitere Informationen einklappen";
	inDies.appendChild(zu);	
	}
	
function prepareAufklappen(){
	var divs = document.getElementsByTagName("div");
	var getestet = false;
	for (var i=0; i < divs.length; i++){
		if (divs[i].className==="aufgeklappt"){
			if (!getestet){
				hoeheTesten(divs[i]);
				getestet = true;
				}
			if (divs[i].scrollHeight > maxHoehe){
				createAufklappenHTML(divs[i]);
				einklappen(divs[i]);
				}
			}
		}		
	
	}
	
addLoadEvent(prepareAufklappen);



/*function openInWindow(href){
	window.open(href,"Zweitfenster", "width=800,height=600,status=no,scrollbars=no,resizable=no");	
	//return false;
	}*/
/*
function prepareJsWindowLink(){
	var links = document.getElementById("content").getElementsByTagName("ul")[0].getElementsByTagName("a");	
	for (var i=0; i<links.length; i++){
		if (links[i].href.slice(0,7)==="http://"){
			var test = links[i].href;
			links[i].onClick = function() { return openInWindow(this.href);};
			}
		}	
	}

addLoadEvent(prepareJsWindowLink);*/