
	// Alle Funktionen (c) r-plex GmbH, 71093 Weil im Schönbuch

	//Timer-Arrays für Ein- und Ausblenden
	var TimersEin=new Array();
	var TimersAus=new Array();
	var LastBildIndex; // das letzte eingeschaltete Bild, wird bei Anschalten eines Bilds ausgeschaltet.

	var CounterAn=0;
	var CounterAus=0;
	var VerzoegerungAusblenden=500; //Haltezeit in Millisekunden
	var VerzoegerungEinblenden=100; //Verzögerung beim Einblenden in Millisekunden


	function Fensterhoehe() { //{{{
		if (window.innerHeight) {
			return window.innerHeight;
		} else {
			if (document.body && document.body.offsetHeight) {
				return document.body.offsetHeight;
			} else {
				return 0;
			}
		}
	} //}}}

	function PosTopBestimmen(TagId){ //{{{

			CurrElement = document.getElementById(TagId); // Das Element das gesucht wird überschreiben
			ResTop = 0;  // das wird top
			while(CurrElement){
				ResTop += CurrElement.offsetTop; // Bestimmen die obere Pos.
				CurrElement = CurrElement.offsetParent; // gehen eine Element weiter
			}
			return ResTop;
		} //}}}

	function PosLeftBestimmen(TagId){ //{{{

			CurrElement = document.getElementById(TagId); // Das Element das gesucht wird überschreiben
			ResLeft = 0;  // das wird top
			while(CurrElement){
				ResLeft += CurrElement.offsetLeft; // Bestimmen die obere Pos.
				CurrElement = CurrElement.offsetParent; // gehen eine Element weiter
			}
			return ResLeft;
	} //}}}

	function BildAnAus(BildIndex, HauptFensterScrollen, AnAus, SofortWechseln) {	//{{{
		
		
		//alert("Hallo Mike");
		
		
			// schaltet das Bild an oder aus, jeweils mit Verzögerung wenn gegeben

			// SofortWechseln: wenn 1, dann wird das Bild ohne Verzögerung ein oder ausgeschaltet.

			// alle Timeouts dieses Bilds löschen, damit nicht ein alter Timer dazwischenfunkt:
			clearTimeout(TimersAus[BildIndex]);
			clearTimeout(TimersEin[BildIndex]);

			// wenn SofortWechseln angesagt ist, dann ohne Verzögerung schalten:
			if (SofortWechseln==1) {
				VerzoegerungEinblendenEffektiv=1;
				VerzoegerungAusblendenEffektiv=1;
			}
			else {
				VerzoegerungEinblendenEffektiv=VerzoegerungEinblenden;
				VerzoegerungAusblendenEffektiv=VerzoegerungAusblenden;
			}


			if (AnAus==1) { //anschalten {{{


				Befehl="PositioniereBild('" + BildIndex + "', " +  HauptFensterScrollen+")";

				// das letzte eingeblendete Bild auf jeden Fall ausmachen:
				if (LastBildIndex && LastBildIndex!=BildIndex) {
					Befehl = "BildAus('" + LastBildIndex + "'); " + Befehl;
				}

				// Timer merken:
				TimersEin[BildIndex] = setTimeout(Befehl, VerzoegerungEinblendenEffektiv);

			} //}}}

			else { // ausschalten {{{
				Befehl="BildAus('" + BildIndex + "');";
				TimersAus[BildIndex] = setTimeout(Befehl, VerzoegerungAusblendenEffektiv);
			} //}}}

	} //}}}

	function BildAnAusErgebnis() {
		// muß eigentlich ncihts machen!
	}

	function BildAus(BildIndex) { //{{{
		//document.getElementById('idAus').innerHTML=++CounterAus;

		document.getElementById("BildFlaeche" + BildIndex).style.visibility="hidden";

		// Style des Thumbnails wieder zurücksetzen:
		document.getElementById("Thumb" + BildIndex).className="";

		// alle Timeouts dieses Bilds löschen, damit nicht ein alter Timer dazwischenfunkt:
		clearTimeout(TimersAus[BildIndex]);
		clearTimeout(TimersEin[BildIndex]);

	} // }}}

	function AllesAus(BildIndex) { //{{{

		for (i=1;i<=AnzBilder;i++) {
			if (BildIndex!=i) {
				document.getElementById("BildFlaeche" + i).style.visibility="hidden";
				// alle Timeouts dieses Bilds löschen, damit nicht ein alter Timer dazwischenfunkt:
				clearTimeout(TimersAus[BildIndex]);
				clearTimeout(TimersEin[BildIndex]);
			}
		}

	} // }}}

	function PositioniereBild(BildIndex, HauptFensterScrollen) { //{{{
		// alle Bilder bis auf diesesausblenden:
		// AllesAus(BildIndex);
		if (BildIndex) {

			
			//alert("BildSrc BildIndex:" + BildSrc[BildIndex]);
			
			// Source setzen
			document.images["BildBild" + BildIndex].src=BildSrc[BildIndex];
			
			//das nächste auch:
			BildIndexNext=parseInt(BildIndex)+1
			if (BildIndexNext<=AnzBilder) {
				document.images["BildBild" + BildIndexNext].src=BildSrc[BildIndexNext];
			}

			// dieses Bild als letztes eingeschaltetes merken:
			LastBildIndex = BildIndex;

			elBildFlaeche=document.getElementById("BildFlaeche" + BildIndex);
			elBildTabelle=document.getElementById("BildTabelle" + BildIndex);

			// wenn wir Scrollen sollen, dann verschieben wir das Fenster jetzt so weit, daß das "aktive" Thumbnail ganz oben ist:
			if (HauptFensterScrollen) {
				StartPos=document.body.scrollTop;
				// aber nur in Schritten!
				Diff=(PosTopBestimmen("Thumb" + BildIndex) - 20) - document.body.scrollTop;
				// wenn die Diff zu groß ist, dann den Step vergrößern:
				// 15 Schritte maximal...
				Richtung=1;
				if (Diff<0) {
					Richtung=-1;
					Diff*=-1; //Diff jetzt immer positiv
				}
				Step=Diff/15;	//Step immer positiv, maximal 15 Schritte
				//minimal 1 Pixel:
				if (Step<1) Step=1;
				for(i=0;i<=Diff;i+=Step) {
					document.body.scrollTop=StartPos+(Richtung*i);
				}
				// den letzten, vielleicht noch unvollständigen Step hart setzen
				document.body.scrollTop=StartPos+(Richtung*Diff);
			}
			
			//TopPosMin=document.body.scrollTop + 15;
			//TopPosMin=document.body.scrollTop + 100;
			TopPosMin=document.body.scrollTop + 7;
			
			FH = Fensterhoehe();
			TopPosMax=document.body.scrollTop + FH - (elBildTabelle.offsetHeight) - 10;


			
			// Was ist die gewünschte Position:
			//LeftEffektiv=PosLeftBestimmen("Thumb" + BildIndex) + 80;
			
		//	LeftEffektiv=PosLeftBestimmen("Thumb" + BildIndex) - 380;
			
			LeftEffektiv=PosLeftBestimmen("Thumb1") - 520; // Somit springt er nicht
			
			TopPosWunsch=PosTopBestimmen("Thumb" + BildIndex) + 10;


			if (TopPosWunsch>TopPosMax) {
				TopPosEffektiv=TopPosMax;
			}
			else {
				TopPosEffektiv=TopPosWunsch;
			}
			if (TopPosEffektiv<TopPosMin) {
				TopPosEffektiv=TopPosMin;
			}

			elBildFlaeche.style.top=TopPosEffektiv+"px";
			elBildFlaeche.style.left=LeftEffektiv + "px";

			// und jetzt einschalten:
			elBildFlaeche.style.visibility="visible";
			
			// AccessKeys frisch setzen
			document.getElementById("LZ" + BildIndex).accessKey="z";
			document.getElementById("LV" + BildIndex).accessKey="v";

			// Style des Thumbnails auf aktiv setzen:
			document.getElementById("Thumb" + BildIndex).className="aktiv";


			return true;

		}

	} // }}}


