// Speichern des DOM in Variablen
var w3cdom = document.getElementById;
var nn4 = document.layers;
var ie4 = document.all;

// in "SlidesDelay" wird die Zahl der Millisekunden eingetragen
// für den Abstand des Bildwechsels bei der automatischen Slideshow
// der timer ist zu Beginn ausgeschaltet, die AutoID leer
// der erste Text hat die Nummer "0".
// i ist eine Zählvariable, benötigt für die Bilder

var SlidesDelay = 8000;
var TimerStatus = "off";
var AutoID = null;
var i = 0;

//	Funktion zum Austausch der Button-gifs
function change_button(tmpDirection)
{
	if((button_back)&&(button_for)&&(button_auto))
	{
		switch(tmpDirection)
		{
			case "back":
    		button_back.src="../_data/_img/navi/button_back_over.gif"; 
    		break;
			
			case "for":
    		button_for.src="../_data/_img/navi/button_for_over.gif"; 
    		break;
	
			case "auto":
			if(TimerStatus=="off")
			{
    			button_auto.src="../_data/_img/navi/button_timer_over.gif";		
			}
			else
    		{
				button_auto.src="../_data/_img/navi/button_stop_over.gif";
    			button_auto.title="Schaltet den automatischen Bildwechsel aus";		
    		}
			break;
		}
	} 
}

//	Funktion zum Zuruecksetzen der Button-gifs
function rechange(tmpDirection)
{
	if((button_back)&&(button_for)&&(button_auto))
	{
		switch(tmpDirection)
		{  
			case "back":
    		button_back.src="../_data/_img/navi/button_back.gif"; 
    		break;
	
			case "for":
    		button_for.src="../_data/_img/navi/button_for.gif"; 
    		break;
	
			case "auto":
			if(TimerStatus=="off")
			{
    			button_auto.src="../_data/_img/navi/button_timer.gif";
			}
			else
    		{
				button_auto.src="../_data/_img/navi/button_stop.gif";		
    		}
			break;
		}
	}
}

// "toggle_slides" regelt das Geschehen beim Klicken auf einen der Buttons
// für die Slideshow
// am 12.2.2004 Sicherung eigebaut, falls es das Element Nr i in der Liste
// gar nicht gibt: "if (RealList[i] == null) {i++;}" u.s.w.
// ich kann also beliebig in der Liste Zeilen auf Kommentar setzen, wenn
// ich ein Bild rausnehmen möchte.

// TO DO: eventuell "onError" abfangen, denn:
// Was ich so noch nicht abfange, ist: Falls eine Bildressource falsch definiert ist.
// RealList[i].src ist nämlich auch dann nicht leer, so dass mir eine Abfrage
// wie "if (RealList[i].src == '')" zur Zeit nicht möglich ist

function toggle_slides(tmpDirection)
{
				
	if((button_back)&&(button_for)&&(button_auto)&&(pict))
	{	
	
		var tmpList = RealList;
		var tmpLength = RealList.length;
		var tmpText_ein = "Schaltet den automatischen Bildwechsel alle acht Sekunden ein";
		var tmpText_aus = "Schaltet den automatischen Bildwechsel aus";
	
		switch(tmpDirection)
		{
  			case "for":
    		if (AutoID != null) 
			{
				clearInterval(AutoID);
    			button_auto.src = "../_data/_img/navi/button_timer.gif";
    			if(button_auto.title) 
				{
					button_auto.title = tmpText_ein;
				}
				TimerStatus = "off";
			}
			
    		i++;
    		if(i==tmpLength) 
			{
				i = 0;
			}
			// Schleife: falls [i] == null ist, weiterzählen 
			while (RealList[i] == null) {i++;}
			change_now(i,tmpList);		
    		break;
			//	Ende case "for"
		
  		
			case "back":
    		if (AutoID != "") 
			{
				clearInterval(AutoID);
    			button_auto.src="../_data/_img/navi/button_timer.gif";
    			if(button_auto.title) 
				{
					button_auto.title = tmpText_ein;
				}
				TimerStatus = "off";
			}
		
    		i--;
    		if(i==-1) 
			{
				i = tmpLength-1;
			}
			// Schleife: falls [i] == null ist, weiterzählen 
			while (RealList[i] == null) {i--;}	
    		change_now(i,tmpList);	
    		break;
			//	Ende case "back"
		
 			case "auto":
    		if (TimerStatus == "off")
    		{
    			button_auto.src="../_data/_img/navi/button_stop.gif";
    			if(button_auto.title) 
				{
					button_auto.title = tmpText_aus;
				}
				toggle_automatic(tmpList);
				TimerStatus = "on"; 
				AutoID = setInterval("toggle_automatic()",SlidesDelay);         
    		}
   			else
    		{
    			button_auto.src="../_data/_img/navi/button_timer.gif";
    			if(button_auto.title) 
				{
					button_auto.title = tmpText_ein;
				}
    			TimerStatus = "off";
				clearInterval(AutoID);	
    		}
    		break;
			//	Ende case "auto"
 		}
	}
}



function change_now(i)
{	
	var tmpTextdiv = "text"+i;
	if (w3cdom)
	{ 
		//	::TODO:: 29.11.2008
		//	Behauptung pruefen
		//	nur notwendig für w3cdom, die anderen haben keine css-Datei, die Texte ausblendet
		//	TO DO : behauptung prüfen
		if (document.getElementById(tmpTextdiv)) 
		{
			textebene_neu=document.getElementById(tmpTextdiv);
			textebene_alt.style.display="none";
			textebene_neu.style.display="block";
			textebene_alt=textebene_neu;
		}
	}
	//alert("bis hierher");	
	if(pict) 
	{
		pict.src = RealList[i].src;
	}
	
	if ((w3cdom)&&(RealLegend[i]!=null)&&(pict_legend.nodeValue))
	{
		pict_legend.nodeValue = RealLegend[i];
	}
	else if ((ie4)&&(RealLegend[i]!=null)&&(p))
	{
		p.innerHTML = RealLegend[i];		
	}
	else
	{
		if ((w3cdom)&&(generalLegend!=null)&&(generalLegend!="")&&(pict_legend.nodeValue))
		{
			pict_legend.nodeValue=generalLegend;
		}
		else if ((ie4)&&(generalLegend!=null)&&(generalLegend!="")&&(p))
		{
			p.innerHTML = generalLegend;		
		}	
	}
	
	if ((RealLegend[i]!=null)&&(pict.title))
	{
		pict.title = RealLegend[i];
	}
	else if ((generalLegend!=null)&&(generalLegend!="")&&(pict.title))
	{
		pict.title = generalLegend;
	}
}


	
// "toggle_automatic" wird nur aufgerufen bei eingeschaltetem Timer

function toggle_automatic(tmpList)
{ 
	i++;
	if(i == RealList.length) 
	{
		i = 0;
	}
	// Schleife: falls [i] == null ist, weiterzählen 
	while (RealList[i] == null) {i++;}
	change_now(i);
}


//	Funktion eingebaut am 26.4.2007
//	Sie faengt das Ereignis ab, wenn eine gedrueckte Taste losgelassen wird.
//	Wird der keycode einer der Pfeiltasten erkannt, wird die Funktion toggle_slide() aufgerufen:
//	--> Pfeiltaste rechts bewirkt: ein Bild vor, Pfeiltaste links: ein Bild zurueck

function slideshow_by_arrows(evt)
{
    evt = (evt) ? evt : ((event) ? event : null);
    if (evt) 
	{
		if (evt.keyCode=="37") toggle_slides('back');
		if (evt.keyCode=="39") toggle_slides('for');
		
		//	::TODO::
		// 	erstmal wieder rausgenommen: die Pfeiltaste 40 hat schon eine andere Funktion
		//	sie bewirkt, dass vertikal gesprungen wird
		// 	if (evt.keyCode=="40") toggle_slides('auto');	
    }
}



