// Funktion zum Ein- und Ausblenden von Objekten
// mit Fading-Effekt
// Alles auf meinem Mist gewachsen!!!
// Copyright Ringo Reinhold *** privat ***

var isIE = (navigator.appName == "Microsoft Internet Explorer");
var EIN; // Variable fuer das Objekt,  ein- oder auszublenden ist
var AUS; // Variable fuer das Objekt,  ein- oder auszublenden ist
var T_FadeOUT = new Array(10);
var T_FadeIN = new Array(10);
var T_Delay = new Array(10);
var Aktion = new Array(10);
var Wdown = new Array(10); // Variable die den Wert der Transparenz angibt
var Wup = new Array(10); // Variable die den Wert der Transparenz angibt
var Rem = 0;

function Delay(){ // Zwischen funktion, die die Fkt. Ausblenden aufruft
	Aktion[AUS]=2; // beschaeftigt, warten bis Aktion beendet
	T_FadeOUT[AUS] = setInterval("FADE(1)",50);  // Funktion wiederholen
}

function Einblenden(ObjEIN){ // Funktion einblenden
	EIN=ObjEIN; // Objekt uebergeben
	if(isIE){
		switch(Aktion[EIN]){
 			case 0:
				if(Rem!=0){
					clearTimeout(T_Delay[Rem]); // Warte-Timer anhalten
					document.getElementById(Rem).style.visibility = "hidden";
					Aktion[Rem]=0;
					Rem=0;
				}
				Aktion[EIN]=2; // Aktion = 0 bedeudet, es wird eingeblendet
				Wup[EIN]=0; // Transparenzwert auf 0 setzen
				document.getElementById(EIN).style.filter = "Alpha(opacity=" + (Wup[EIN]) + ", finishopacity=" + (Wup[EIN]) + ", style=1)";  //  beim ersten Startwird das Bild auf transparent (Grad '0') gesetzt
				document.getElementById(EIN).style.visibility = "visible";// erst danach das Objekt anzeigen	
				T_FadeIN[EIN] = setInterval("FADE(0)",50); // Funktion wiederholen
				break;
			case 1: break;// Null
			case 2: break;// Null
			case 3:
				clearTimeout(T_Delay[EIN]); // Warte-Timer anhalten
				break;
			default:
				Aktion[EIN]=0;
				Einblenden(EIN);
				break;
		}
	}
	else{ // falls nicht MS IE z. B. Netscape, dann ueberhaupt keine Ein- oder Ausblendfunktion verwenden, sondern nur Objekt anzeigen
		document.getElementById(EIN).style.visibility = "visible"; // Falls Netscape, Objekt nur anzeigen
	}
}

function Ausblenden(ObjAus){ // Funktion Ausblenden
	AUS=ObjAus;
	if(isIE){ // Wenn Internet Explorer
		if((Aktion[AUS]==1)||(Aktion[AUS]==3)){ // Wenn Objekt JaNein
			Rem=EIN;
			Aktion[AUS]=3; // Warte-Timer laeuft...
			Wdown[AUS]=100; // Transparenzwert auf 100 setzen
			T_Delay[AUS] = setTimeout("Delay()",2000); // Den Warte-Timer starten, der nach 2 Sekunden erst endgueltig das Ausblenden einleitet
		}
	}
	else{ // falls nicht MS IE z. B. Netscape, dann ueberhaupt keine Ein- oder Ausblendfunktion verwenden, sonder nnur Objekt verbergen
		document.getElementById(ObjAus).style.visibility = "hidden"; // Falls Netscape, Objekt nur verbergen
	}
}

function Ausblenden_Sofort(ObjAus){
	AUS=ObjAus;
	if(isIE){ // Wenn Internet Explorer
		if((Aktion[AUS]==1)||(Aktion[AUS]==3)){ // Wenn Objekt JaNein
			Rem=EIN;
			Aktion[AUS]=3; // Warte-Timer laeuft...
			Wdown[AUS]=100; // Transparenzwert auf 100 setzen
			T_Delay[AUS] = setTimeout("Delay()",0); // Den Warte-Timer starten, der nach 2 Sekunden erst endgueltig das Ausblenden einleitet
		}
	}
	else{ // falls nicht MS IE z. B. Netscape, dann ueberhaupt keine Ein- oder Ausblendfunktion verwenden, sonder nnur Objekt verbergen
		document.getElementById(ObjAus).style.visibility = "hidden"; // Falls Netscape, Objekt nur verbergen
	}
}

function FADE(Art){ // Funktion Ein- und Ausblenden (Der eigentliche Effekt)
	if(Art==0){ // Einblenden
		if(Wup[EIN]<100){ // Solange Grad kleiner 100
			Wup[EIN]=Wup[EIN]+20; // Grad hochzaehlen
			document.getElementById(EIN).style.filter = "Alpha(opacity=" + (Wup[EIN]) + ", finishopacity=" + (Wup[EIN]) + ", style=1)";
		}
		if(Wup[EIN]>=100){ // Wenn Grad 100, dann Stop
			Wup[EIN]=100;
			Stop(0);// Abschlussfunktion aufrufen
		}
	}
	if(Art==1){ // Ausblenden
		clearTimeout(T_Delay[AUS]); // den Warte-Timer ausschalten
		if((Wdown[AUS])>0){ // Solange Grad groesser 0
			document.getElementById(AUS).style.filter = "Alpha(opacity=" + (Wdown[AUS]) + ", finishopacity=" + (Wdown[AUS]) + ", style=1)";
			Wdown[AUS]=Wdown[AUS]-20; // Grad runterzaehlen
		}
		if(Wdown[AUS]<=0){ // Wenn Grad 0, dann Stop
			Wdown[AUS]=0;
			Stop(1); // Abschlussfunktion aufrufen
		}
	}
}

function Stop(JaNein){ // Abschlussfunktion
	if(JaNein==0){ // Stop, wenn eingeblendet ist
		clearInterval(T_FadeIN[EIN]); // Intervall stoppen
		Aktion[EIN]=1;
	}
	if(JaNein==1){ // Stop, wenn ausgeblendet ist
		document.getElementById(AUS).style.visibility = "hidden"; // Objekt nicht mehr anzeigen
		clearInterval(T_FadeOUT[AUS]); // Intervall stoppen
		Aktion[AUS]=0;
	}
}