// $Id: default.js 18 2008-09-08 13:51:38Z hweber $

function replaceFooter () {
	// Höhe der einzelnen Elemente ermitteln
	var boxHeight		= document.getElementById('box').offsetHeight;
	var headHeight		= document.getElementById('head').offsetHeight;
	var footHeight		= document.getElementById('foot').offsetHeight;
	var contentHeight	= document.getElementById('content').offsetHeight;
	var navHeight		= document.getElementById('nav').offsetHeight;

	// Für den Inhalt verfügbare Höhe ermitteln
	var availableHeight	= boxHeight - headHeight - footHeight;

	// Für den Inhalt benötigte Höhe ermitteln
	var needHeight		= ( navHeight > contentHeight )	? navHeight : contentHeight;

	// Wenn die benötigte Höhe nicht vorhanden, diese anpassen
	if ( needHeight > availableHeight) {
		document.getElementById('box').style.height = needHeight + headHeight + footHeight + 40 + 'px';
	}
}

// Einstellungen des Ein- und Ausblende-Effekts
var slidespeed		= 10;
var transparence	= 100;
var toggle			= +5;
var tooltip_id		= '';
var max_trans		= 101;
var min_trans		= 4;

// Tooltip anzeigen
function showTooltip(id) {
	// Scroll-Offset ermitteln
	var x,y;
	if (self.pageYOffset) {
		// all except Explorer
		x = self.pageXOffset;
		y = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop) {
		// Explorer 6 Strict
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	else if (document.body) {
		// all other Explorers
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	if ( y < 180 ) {y = 180} // Mindestens 180 Pixel Abstand von oben

	tooltip_id = id;
	transparency( id, 100 );
	tooltip = document.getElementById(id);
	tooltip.style.top = y + 'px';
	tooltip.style.display = 'block';
	toggle = -10;
	slideit();	
}

// Tooltip ausblenden
function hideTooltip(id) {
	tooltip_id = id;
	tooltip = document.getElementById(id);
	toggle = +10;
	slideit();
}

// Überblend-Effekt
function slideit() {
	transparence	+= toggle;
	transparency( tooltip_id, transparence );
	if ( transparence >= max_trans ) {
		tooltip = document.getElementById(tooltip_id);
		tooltip.style.display = 'none';
	}
	else if ( transparence <= min_trans ) {
		// Nichts tun
	}
	else if ( transparence <= min_trans+10 ) {
		toggle = ( toggle > 1 ) ? +10 : -2;
		window.setTimeout( 'slideit()', slidespeed );
	}
	else {
		window.setTimeout( 'slideit()', slidespeed );
	}
}

// Splintered striper 1.3
// reworking of Zebra Tables and similar methods which works not only for tables and even/odd rows,
// but as a general DOM means of assigning any number of classes to children of a parent element.
// Patrick H. Lauke aka redux / www.splintered.co.uk
// Distributed under the Creative Commons Attribution-ShareAlike license - http://creativecommons.org/licenses/by-sa/2.0/

/*
 * Summary:      Core experiment function that applies any number of classes to all child elements
 *               contained in all occurences of a parent element (either with or without a specific class)
 * Parameters:   parentElementTag - parent tag name
 *               parentElementClass - class assigned to the parent; if null, all parentElementTag elements will be affected
 *               childElementTag -  tag name of the child elements to apply the styles to
 *               styleClasses - comma separated list of any number of style classes (using 2 classes gives the classic "zebra" effect)
 * Return:       none
 */
function striper(parentElementTag, parentElementClass, childElementTag, styleClasses, styleClassSkip)
{
	var i=0,currentParent,currentChild;
	// capability and sanity check
	if ((document.getElementsByTagName)&&(parentElementTag)&&(childElementTag)&&(styleClasses)) {
		// turn the comma separate list of classes into an array
		var styles = styleClasses.split(',');
		// get an array of all parent tags
		var parentItems = document.getElementsByTagName(parentElementTag);
		// loop through all parent elements
		while (currentParent = parentItems[i++]) {
			// if parentElementClass was null, or if the current parent's class matches the specified class
			if ((parentElementClass == null)||(currentParent.className == parentElementClass)) {
				var j=0,k=0;
				// get all child elements in the current parent element
				var childItems = currentParent.getElementsByTagName(childElementTag);
				// loop through all child elements
				while (currentChild = childItems[j++]) {
					// based on the current element and the number of styles in the array, work out which class to apply
					if ( (styleClassSkip != '') && (currentChild.className != styleClassSkip) ) {
						k = (j+(styles.length-1)) % styles.length;
					}
					// add the class to the child element - if any other classes were already present, they're kept intact
					currentChild.className = currentChild.className+" "+styles[k];
				}
			}
		}
	}
}

/* 'Transparenz 061005' (c) by cybaer@binon.net
   --------------------
 Inhalt    : Stellt die Transparenz von Elementen ein (von 0-100%)
 Aufruf    : transparency(element,percentage)
 Parameter : element (Element, auf das der Effekt angewendet werden soll. Reihenfolge der Auswertung:
                      Object (z.B. document.images[1])
                      NAME-Attribut (z.B. "transparent")
                      ID-Attribut (z.B. "transparent")
                      HTML-Tag (z.B. "img")
             percentage (Optional: Prozentsatz der Transparenz, voreingestellt: 50%)
 Sprache   : JavaScript 1.1 (ungesichert), JavaScript 1.5 (gesichert)
 Quelle    : http://Coding.binon.net/Transparenz (cybaer@binon.net)
             Die kostenlose Nutzung der Quelltexte in eigenen Projekten ist
             bei nicht-kommerziellen Projekten (und deren unentgeltlicher
             Herstellung) bei Nennung der Quelle ausdruecklich gestattet.
 InlineFunc: -
 Konstante : -
 Variable  : -
 SystemVar : -
 ExternVar : -
 Rueckgabe : -
 Anmerkung : Benutzt die CSS-Styles "filter" (Internet Explorer), "-moz-opacity" (Mozilla), "-khtml-opacity" (Konqueror/Safari) und "opacity" (CSS 3) mittels W3C-DOM
 Beispiele : HTML  : <img src="test.gif" onMouseOver="transparency(this,75);" onMouseOut="transparency(this,0);">
                  -> Das Bild test.gif wird zu 75% transparent, wenn die Maus drueber faehrt
             HTML  : <img id="T1" name="aussen" src="test.gif"><img id="T2" name="innen" src="test.gif"><img id="T3" name="Aussen" src="test.gif">
             Script: transparency(document.images[0],50%);
                  -> Das erste Bild des Dokuments wird halb transparent.
             Script: transparency("T1");
                  -> Das linke Bild (mit der ID "T1") wird halb transparent.
             Script: transparency("Aussen",25);
                  -> Das linke & rechte Bild (mit dem Namen "Aussen") werden viertel transparent.
             Script: transparency("img",75);
                  -> Alle Bilder (HTML-Tag <img>) werden dreiviertel transparent.
*/

function transparency(element,percentage) {
	// Lokale Variablen definieren
	var i, count, objStyle;

	// Browser unterstuetzt (W3C-)DHTML?
	if(document.getElementById) {
		// Wurde Object uebergeben und existiert es?
		if(typeof(element)=="object" && element) { obj=element; }
		// Ansonsten: Existiert (mindestens) ein HTML-Element mit passendem NAME-Attribut?
		else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
		// Ansonsten: Existiert ein HTML-Element mit passendem ID-Attribut?
		else if (document.getElementById(element)) { obj=document.getElementById(element); }
		// Ansonsten: Existiert (mindestens) ein passendes HTML-Element?
		else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
		// Ansonsten: Kein passendes Objekt gefunden
		else { obj=false; }
	
		// Wenn ein Objekt existiert
		if(obj) {
			// Gueltigen Prozentwert definieren (Deckungswert)
			percentage=(typeof(percentage)=="undefined")?50:100-percentage;
	
			// Anzahl der passenden Elemente bestimmen
			count	= ( obj.length ) ? obj.length : 1;
	
			// Diese Elemente durchgehen
			for( i = 0; i < count; i++ ) {
				// (Arbeits-)Stylesheet-Objekt definieren
				objStyle=(obj.length)?obj[i].style:obj.style;
	
				// "filter(Alpha)"-Style setzen (fuer IE)
				objStyle.filter="Alpha(opacity="+percentage+")";
	
				// "-moz-opacity"-Style setzen (fuer Mozilla)
				objStyle.MozOpacity=""+percentage/100;
	
				// "-khtml-opacity"-Style setzen (fuer Konqueror/Safari)
				objStyle.KTHMLOpacity=""+percentage/100;
	
				// "opacity"-Style setzen (fuer CSS-3-Browser)
				objStyle.opacity=""+percentage/100;
			}
		}
	}
}