//aktuell last edit 10.12.2007 by jea

var slideSpeed = 12;	
var timer = 1;	

// Bezeichnerkonvention für IDs

var pointerStyle = 'pointer';  // Cursorform bei Button-mouseover

// Boxbezeichner
var vButtonPrefix = 'button_'; // für den Klickbaren Bereich zum Öffnen und Schliessen
var vBoxPrefix = 'box_';  // Bezeichnet den Rahmen
var vContentPrefix = 'content_'; // Bezeichnet den Inhalt im Rahmen. Sollte direkt nach dem BoxPrefix kommen
var vStatusPrefix = 'status_'; // für die Statusgrafik (+ -) Die Grafik sollte einziges Element im Div sein

// Infoboxbezeichner
var iButtonPrefix = 'infobutton_';  // s.o.
var iBoxPrefix = 'infobox_'; // s.o.
var iContentPrefix = 'infocontent_'; // s.o.
var iClosePrefix = 'infoclose_'; // Für den zweiten Schliessen-Button

var infoExtended = false;

// Werte initialisieren

var objectIdToSlideDown = false;
var activeId = false;
var slideInProgress = false;

var color; //Default-Wert der Farbe des Button-Icons setzen

function showHideContent(e, suffix)
{
	boxName = false;
	if(slideInProgress)return;
	objectIdToSlideDown = false;
	slideInProgress = true;
	if (!suffix) {
		divName = this.id;
		if (divName.indexOf(vButtonPrefix)==0) {
			suffix = divName.slice(vButtonPrefix.length, divName.length);
			if (suffix.indexOf("grey")>0) color="grey";
			else color="blue"
			boxName = vBoxPrefix+suffix;
			boxTyp = "v";
		} else {
			if (divName.indexOf(iButtonPrefix)==0) suffix = divName.slice(iButtonPrefix.length, divName.length);
			if (divName.indexOf(iClosePrefix)==0) suffix = divName.slice(iClosePrefix.length, divName.length);
			if (suffix.indexOf("grey")>0) color="grey";
			else color="blue"
			boxName = iBoxPrefix+suffix;
			boxTyp = "i";
		}
	} 
	if (!boxName) boxName = vBoxPrefix+suffix;
	var boxDiv = document.getElementById(boxName);
	if(!boxDiv.style.display || boxDiv.style.display=='none'){	
			boxDiv.style.display='block';
			boxDiv.style.visibility = 'visible';
			slideContent(suffix, color, boxTyp, 1);

			/*if (boxTyp=="i" && infoExtended) {
				b = document.getElementById(iButtonPrefix+suffix);
				b.style.borderTop = '1px dashed';
				b.style.paddingTop = '4px';
			}*/
	
	}else{
		slideContent(suffix, color, boxTyp, -1);

			if (boxTyp=="i" && infoExtended) {
				b = document.getElementById(iButtonPrefix+suffix);
				b.style.borderTop = '0px dashed';
				b.style.paddingTop = '0px';
			}

	}	
}

function slideContent(suffix, color, typ, direction)
{
	var movement = slideSpeed*direction;
	var boxDiv = document.getElementById(eval(typ+'BoxPrefix')+suffix);
	var contentDiv = document.getElementById(eval(typ+'ContentPrefix')+suffix);
	if (typ=="i") {
		var parentBoxDiv = document.getElementById(vBoxPrefix+suffix);
		parentBoxDiv.style.height = 'auto';
	}
	height = boxDiv.clientHeight;
	if(height==0) height = boxDiv.offsetHeight;
	height = height + movement;
	rerunFunction = true;
	if(height>(contentDiv.offsetHeight)){
		height = contentDiv.offsetHeight;
		rerunFunction = false;
	}
	if(height<=1){
		height = 1;
		rerunFunction = false;
	}
	boxDiv.style.height = height + 'px';
	var topPos = height - contentDiv.offsetHeight;
	if (topPos>0) topPos = 0;
	contentDiv.style.top = topPos + 'px';
	if (rerunFunction) {
		setTimeout('slideContent("' + suffix + '", "'+color+'", "' + typ + '", ' + direction + ')', timer);
	} else {
		if (height<=1) {
			boxDiv.style.display='none'; 
			if (objectIdToSlideDown) {
				contentDiv.style.display='block';
				contentDiv.style.visibility='visible';
				slideContent(suffix, direction);				
			} else {
				slideInProgress = false;
				statusDiv = document.getElementById(vStatusPrefix+suffix)
				if ( (statusDiv) && (typ!="i") )
				{
					if (suffix.indexOf("grey")>-1) {
						statusDiv.firstChild.src= "./images/plus_lightgrey.gif";
						statusDiv.firstChild.alt= "BOX ÖFFNEN";
						statusDiv.firstChild.title= "BOX ÖFFNEN";
					}
					else if (suffix.indexOf("blue")>-1) {
						statusDiv.firstChild.src= "./images/plus_darkblue.gif";
						statusDiv.firstChild.alt= "BOX ÖFFNEN";
						statusDiv.firstChild.title= "BOX ÖFFNEN";
						
					}
				}
			}
		} else {
			activeId = suffix;
			slideInProgress = false;
			statusDiv = document.getElementById(vStatusPrefix+suffix)
			if ( (statusDiv) && (typ!="i") )
			{
				if (suffix.indexOf("grey")>-1) statusDiv.firstChild.src= "./images/minus_lightgrey.gif";
				else if (suffix.indexOf("blue")>-1) statusDiv.firstChild.src= "./images/minus_darkblue.gif";	
				statusDiv.firstChild.alt= "BOX SCHLIESSEN";
				statusDiv.firstChild.title= "BOX SCHLIESSEN";
			}
		}
	}
}

function initBox(suffix, status, typ) {
		buttonDiv = document.getElementById(eval(typ+'ButtonPrefix')+suffix);
		contentDiv = document.getElementById(eval(typ+'ContentPrefix')+suffix);
		boxDiv = document.getElementById(eval(typ+'BoxPrefix')+suffix);
		buttonDiv.style.cursor = pointerStyle;
		buttonDiv.onclick = showHideContent;
		if (typ=="i") {
			iCloseDiv = document.getElementById(iClosePrefix+suffix);
			iCloseDiv.style.cursor = pointerStyle;
			iCloseDiv.onclick = showHideContent;
		}
		contentDiv.style.position = 'relative';
		boxDiv.style.position = 'relative';
		boxDiv.style.overflow = 'hidden';
	if (typ=="i") status="hide"; 
	if (status=="hide") {	
		contentDiv.style.top = 0 - contentDiv.offsetHeight + 'px';	
		boxDiv.style.display = 'none';
		boxDiv.style.overflow = 'hidden';
		boxDiv.style.height='1px';
		statusDiv = document.getElementById(vStatusPrefix+suffix)
		if (statusDiv && (typ=="v") && (suffix.indexOf("grey")>-1)) statusDiv.firstChild.src= "./images/plus_lightgrey.gif";
		else if (statusDiv && (typ=="v") && (suffix.indexOf("blue")>-1)) statusDiv.firstChild.src= "./images/plus_darkblue.gif";
	} else {
		contentDiv.style.display='block';
		contentDiv.style.visibility='visible';
		boxDiv.style.display='block';
		boxDiv.style.visibility='visible';
		statusDiv = document.getElementById(vStatusPrefix+suffix)
		if (statusDiv && (typ=="v") && (suffix.indexOf("grey")>-1)) statusDiv.firstChild.src= "./images/minus_lightgrey.gif";
		else if (statusDiv && (typ=="v") && (suffix.indexOf("blue")>-1)) statusDiv.firstChild.src= "./images/minus_darkblue.gif";
		}
}

function registerShowHideDivs(suffix, status)
{
	slideInProgress = false;
	initBox(suffix, status, "v");
	// Für Infoboxen
	infoBox = document.getElementById(iButtonPrefix+suffix);
	if (infoBox) {
		initBox(suffix, status, "i");	
	}
}