//DocVersion: 090915

/*
==================================================
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();
    };
  }
}

/*
==================================================
Texte aufteilen 090915  (Wolfgang)
==================================================

Teilt Texte auf mehrere "Seiten" auf und fügt einen einfachen Pagebrowser hinzu. 
Es wird im ganzen Dokument nach <hr>-Elementen gesucht. Wenn eins gefunden wird, 
wird jeweils der komplette Inhalt des <hr>-Elternelements (bis zum nächsten <hr>) 
in zwei <div> aufgeteilt, mit dem <hr> als Trennzeichen.

- Die Text-Teile und das Elternelement werden mit sinnvollen Klassen versehen, 
damit sie aus- und eingeblendet werden können.
- Die "Seiten" bekommen eine Mindesthöhe, die der Höhe der höchsten "Seite" entspricht,
damit es beim Umschalten weniger springt
- die Höhe wird bei jedem Anzeigen ggf. erhöht, da sie sich durch floats erhöhen kann 
- leere p nach dem hr werden gelöscht, da sie im Editor leicht entstehen können

*/
var container;
var origContainerClass;
var activejspage = 1;

function createPagebrowser(){
	var seiten = container.getElementsByTagName("div").length;	
	var ul = document.createElement("ul");
	ul.className = "pagebrowser";
	for (i=1; i < (seiten+1); i++){
		var li = document.createElement("li");
		var a = document.createElement("a");
		li.className = "btn-"+i;
		a.href = "javascript:void";
		a.innerHTML = "Seite "+i;
		a.onclick = function(){showPage(this.parentNode.className.substr(4));};
		li.appendChild(a);	
		ul.appendChild(li);
		} 
	container.appendChild(ul);
	}

function showPage(num){
	container.className = origContainerClass +" jspages act-jspage"+ num;
	activejspage = num;
	recheckMinHeight();
	return false;
	}

function insertPages(seitencontainer) {
	for (var i=0; i < seitencontainer.length; i++){		
		container.appendChild(seitencontainer[i]);
		}
	}
	
function setMinHeight (minHeight){
	for (var i=0; i < container.childNodes.length; i++){
		if (container.childNodes[i].nodeType === 1){
			minHeight = Math.max(container.childNodes[i].offsetHeight, minHeight);
			}
		}
	for (var i=0; i < container.childNodes.length; i++){
		if (container.childNodes[i].nodeType === 1 && (container.childNodes[i].nodeName === "DIV" || container.childNodes[i].nodeName === "div")){
			container.childNodes[i].style.minHeight = minHeight+"px";
			}
		}	
	}
	
function recheckMinHeight(){
	var actdiv = container.childNodes[activejspage-1];
	var curMinHeight = actdiv.style.minHeight.substring(0, actdiv.style.minHeight.length-3);
	if ( actdiv.offsetHeight > curMinHeight){
		setMinHeight (actdiv.offsetHeight);
		}
	}

function addNewPage(seitencontainer){
	var neuePage = document.createElement("div");
	neuePage.className = "jspage jspage"+(seitencontainer.length+1);
	seitencontainer.push(neuePage);
	return seitencontainer;
	}

function deleteEmptyP(num){
	if (container.childNodes[num].nodeType == 3){
		container.removeChild(container.childNodes[num]);
		}
	//alert (container.childNodes[num].innerHTML);
	if (container.childNodes[num].nodeType == 1 && (container.childNodes[num].innerHTML == "" || container.childNodes[num].innerHTML == " " || container.childNodes[num].innerHTML == "&nbsp;") ) {
		container.removeChild(container.childNodes[num]);
		}
	}
	
function breakPages() {
	var seiten = 1;
	var seitencontainer = [];
	container = document.getElementsByTagName("hr")[0].parentNode;
	var children = container.childNodes;
	
	addNewPage(seitencontainer);
	origContainerClass = container.className;
	
	for (var i=0; i < children.length; i++){
		var teil = container.removeChild(children[i]);
		
		if (teil.nodeName === "HR" || teil.nodeName === "hr") {
			seitencontainer = addNewPage(seitencontainer);
			deleteEmptyP(i);
			}
		else {
			seitencontainer[seitencontainer.length-1].appendChild(teil);
			}
		i--;
		}
	
	insertPages(seitencontainer);
	setMinHeight(0);
	showPage(1);
	createPagebrowser();
	}

function preparePageBreaks() {
	if (document.getElementsByTagName("hr")) {
		breakPages();
		}
	}

addLoadEvent(preparePageBreaks);