// Slideshow mit Hilfe von Scriptaculous und ProtoType

// intDivId:		ID der DIV's, die ausgetauscht werden sollen
// intDivCount:		Anzahl der DIV's zum Sliden
// boolRestart:		Nach dem Durflauf wieder von Vorn beginnen? 
// intSpeed:		Wie lange sollen die Diver gezeigt werden?
// intDuration:		Wie lange soll der Divverlauf in Millisekunden dauern?
// strURLRedirect:	Am Ende der Slideshow oder bei Klick wird hierher gesprungen

function slideshow(intDivId, intDivCount, boolRestart, intSpeed, intDuration, strURLRedirect)
{
	
	this.dblSpeed = (intSpeed + intDuration) / 1000.0;	// Geschwindigkeit umrechen, damit Sekunden angezeigt werden.
	this.dblDuration = (intDuration) / 1000.0;			// Duration in Sekunden umrechnen

	this.intDivNow = 1;	// Das aktuell dargestellte Div
	this.intDivNext = 2;	// Das als nächstes darzustellende Div

	this.intDivCount = intDivCount;  // Anzhal der Div's
	
	this.boolRestart = boolRestart;  //Nach dem Durflauf wieder von Vorn beginnen? 
	this.intDivId = intDivId;	// Welche Div's sollen durchlaufen werden? Für den Fall, dass mehrere Slideshows vorhanden sind.
	this.strURLRedirect = strURLRedirect;
	

	// Auf zum nächsten Div der Slideshow
	this.show_next_pic = function(objInterval)
	{
		Effect.Fade('slideshow_' + this.intDivId + '_' + this.intDivNow, {duration: this.dblDuration});
		Effect.Appear('slideshow_' + this.intDivId + '_' + this.intDivNext, {duration: this.dblDuration});
		
		this.intDivNow = this.intDivNext;
		this.intDivNext = this.intDivNext + 1;
		
		// Festlegen, was am Ende der Slideshop passieren soll
		if(this.intDivNext > this.intDivCount)
		{
			if(this.boolRestart)
			{
				// Am Ende wieder zum 1. Div springen
				this.intDivNext = 1;
			}
			else
			{
				// Erstmal den Timer der Slideshop stoppen
				objInterval.stop();
				
				// Ggf. am Ende der Slideshow zur URL weiterleiten
				if(this.strURLRedirect != '')
				{
					new PeriodicalExecuter(this.goto_url.bind(this), this.dblSpeed);
				}
			}
		}
	}
	
	// Die Funktion zur Weiterleitung beim Klick
	this.goto_url = function()
	{
		if(this.strURLRedirect != '')
		{
			window.location.href = this.strURLRedirect;
		}
	}
	
	// Klickevent zur Weiterleitung hinzufügen, wenn weine URL übergeben wurde
	if(strURLRedirect != '')
	{
		Event.observe($('slideshow_' + this.intDivId), 'click', this.goto_url.bind(this), true);
		$('slideshow_' + this.intDivId).style.cursor = 'pointer';
	}
	
	// Timer für den Slideeffekt starten
	new PeriodicalExecuter(this.show_next_pic.bind(this), this.dblSpeed);
}	
