
function buch(){
	this.currPage = 1;
	this.widgetObject;
	this.childList;
	this.anzPages;
	this.btnZrkObject;
	this.btnVorObject;
	
	
	this.goPage = function(step){
		// Raus, wenn Ende von childList erreicht
		if((this.currPage + step) == this.anzPages) return;
		if((this.currPage + step) == 0) return;
		
		// aktuelles PageSet ausblenden
		this.childList[this.currPage].className = "pageset"
		// currPage aktualisieren
		this.currPage += step;
		// neues PageSet per CSS-Klasse einblenden
		this.childList[this.currPage].className = "pageset active";
		
		// Status der Btn steuern
		
		this.btnZrkObject.className = "btnZrk";
		this.btnVorObject.className = "btnVor";
		if((this.currPage - 1) == 0) this.btnZrkObject.className += "_dis";
		else if((this.currPage + 1) == this.anzPages) this.btnVorObject.className += "_dis";
	}
	
	this.init = function(widgetObject){
		// Variablen übernehmen
		this.widgetObject = widgetObject;
		this.childList = this.widgetObject.childNodes;
		this.anzPages = this.childList.length;
		
		// Raus, wenn keine PageSets vorhanden
		if(this.anzPages == 0) return;
		
		// Einholen der PageSets (Childs)
		var elementeList = new Array();
		elementeList[0] = 1;
		
		var i;
		for(i = 0; i < this.anzPages; i++){
			// Wenn aktuelles Objekt mit Identifier übereinstimmt, dann der Liste zufügen.
			if(!this.childList[i].className) continue;
			if(this.childList[i].className.indexOf("btnZrk") > -1) this.btnZrkObject = this.childList[i];
			else if(this.childList[i].className.indexOf("btnVor") > -1) this.btnVorObject = this.childList[i];
			
			if(this.childList[i].className.indexOf("pageset") == -1) continue;
				elementeList.push(this.childList[i]);
		}
		this.childList = elementeList;
		this.anzPages = this.childList.length;
	}	
}

function initBuch(widgetObject){
	oBuch = new buch();
	oBuch.init(widgetObject);
}
/**
function getChildsOf(parentObjekt, attribut, identifier){
	var elemente = parentObjekt.childNodes;
	var anzElemente = elemente.length;
	if(anzElemente == 0) return false;
	
	var elementeList = new Array(1);
	elementeList[0] = 1;
	
	var i;
	for(i = 0; i < anzElemente; i++){
		// Wenn aktuelles Objekt mit Identifier übereinstimmt, dann der Liste zufügen.
		if(attribut == "className") if(!elemente[i].className || elemente[i].className.indexOf(identifier) == -1) continue;
			elementeList.push(elemente[i]);
	}
	return elementeList;
}
/**/

// Chart //
function nextGFX(_this){
	// "Umblättern" des Flipchart
	// Parameter: OBJEKT
	// Rückgabe: -
	
	// aktuelles Chart ausblenden (gChartList[0] = aktuelle ChartNr)
	gChartList[gChartList[0]].className = "chartBox"
	// ChartNr weiterzählen
	if(gChartList[0]+1 == gChartList.length) gChartList[0] = 1;
	else gChartList[0]++;
	// nächstes Chart per CSS-Klasse einblenden
	gChartList[gChartList[0]].className = "chartBox active";
}

function getChartList(){
	// Einsammeln aller Elemente (IMG) in ID="flipchart"
	// Parameter: -
	// Rückgabe: ARRAY
	
	
	if(!document.getElementById("flipchart")) return;
	var elemente = document.getElementById("flipchart").childNodes;
	var anzElemente = elemente.length;
	if(anzElemente == 0) return false;
	
	var elementeList = new Array(1);
	elementeList[0] = 1;
	
	var i;
	for(i = 0; i < anzElemente; i++){
		//alert(elemente[i].className);
		if(!elemente[i].className) continue;
		if(elemente[i].className.indexOf("chartBox") == -1) continue;
			elementeList.push(elemente[i]);
	}
	
	return elementeList;
}


// Fotos //
function showFoto(_this){
	// Lädt Großbild zum ThumbNail ins Großbild-Widget 
	// bringt es nach vorne
	// und blendet es ggf. ein.
	//	Namenskonvention: Dateiname für Großbild: wie Thumbnail + 4 zeichen (z.B. "_big") + Dateiendung
	// Parameter: OBJEKT
	// Rückgabe: -
	
	
	// URL für GroßBild anhand der URL für Thumbnail generieren
	var insertPos = _this.src.lastIndexOf(".") - 4;
	var bigImgUrl = _this.src.substring(0, insertPos) + _this.src.substring(insertPos +4);
	
	// Großbild in Widget laden, nach vorn bringen, anzeigen
	document.getElementById("grFoto").src = bigImgUrl;
	WidgetNachVorne(document.getElementById("grFotoBox"));
	document.getElementById("grFotoBox").style.display = "block";
	if(!_this.alt) document.getElementById("imgText").style.display = 'none';
	if(!_this.alt) return;
	
	document.getElementById("imgText").firstChild.nodeValue = _this.alt;
	//return;
	document.getElementById("imgText").style.display = 'block';
}

function closeFoto(_this){
	// GroßBild-Widget ausblenden und Bild entladen
	// Parameter: OBJEKT
	// Rückgabe: -
	_this.parentNode.style.display = 'none';
	document.getElementById("grFoto").src = "";
}


// Stickies //
function toggleSticky(currElm){
	// CSS-Klasse für Sticky ändern. (Steuert Anzeige)
	// Parameter: OBJEKT
	// Rückgabe: -
	if(currElm.className == "sticky") currElm.className = 'sticky_long';
	else currElm.className = 'sticky';
}


// Widgets //
function WidgetNachVorne(thisObjekt){
	// durchläuft alle Widgets und indiziert jene die es betrifft neu. 
	// (also nur jene Widget, deren zIndex größer ist, als der des aktuellen Widgets)
	// Parameter: OBJEKT
	// Rückgabe: -
	var i = 1;
	var KlickWidgetZpos = thisObjekt.style.zIndex;
	for (var element in gWidgetList){
		// KlickWidget ganz nach vorne stellen
		if(gWidgetList[element] == thisObjekt) thisObjekt.style.zIndex = gWidgetList.length;
		// andere Widgets ggf. um eins zurücksetzen
		else if(KlickWidgetZpos < gWidgetList[element].style.zIndex) gWidgetList[element].style.zIndex--;
		i++;
	}
}

// initWidgets //
function getWidgetList(alleElemente){
	// sucht nach allen DIV-Elementen mit der CSS-KLasse widget und ordnet ihnen einen zIndex zu
	// Parameter: ARRAY
	// Rückgabe: ARRAY
	var default_zIndex = 1;
	var gWidgetList = new Array();
	var i;
	
	var alleElemente = document.getElementById("desk");
	var anzRuns = document.getElementById("desk").childNodes.length;
	for(i = 0; i < anzRuns; i++){
		if(alleElemente.childNodes[i].tagName != "DIV") continue;
		if(!alleElemente.childNodes[i].className) continue;
		if(alleElemente.childNodes[i].className.indexOf("widget") == -1) continue;
		if(alleElemente.childNodes[i].className.indexOf("buch") != -1) initBuch(alleElemente.childNodes[i]);
		
		alleElemente.childNodes[i].style.zIndex = default_zIndex;
		gWidgetList.push(alleElemente.childNodes[i]);
		default_zIndex++;
	}
	return gWidgetList;
	
	// alte Version (durchläuft noch alle Elemente) //
	/**
	var anzRuns = alleElemente.length;
	for(i = 0; i < anzRuns; i++){
		if(alleElemente[i].tagName != "DIV") continue;
		if(!alleElemente[i].className) continue;
		if(alleElemente[i].className.indexOf("widget") == -1) continue;
		if(alleElemente[i].className.indexOf("buch") != -1) initBuch(alleElemente[i]);
		
		alleElemente[i].style.zIndex = default_zIndex;
		gWidgetList.push(alleElemente[i]);
		default_zIndex++;
	}
	return gWidgetList;
	/**/
}