/****************************************************************************
 * Befehle und Funktionen für die Animation der Bildleiste
 ****************************************************************************/

	var	photos			=	20; 		//	Wie viele Photos stehen zur Verfügung?
	var	photoshtml		=	8; 			//	Wie viele werden gleichzeitig angezeigt?
	var	delay			=	2.0;		//	Verzögerung in Sekunden

	var	nextnr;							// Speicher für Bildnummer nächstes Bild
	var	nextnew;						// Speicher für Position nächstes Bild

	var timeout;						// Speicher für Timeout-Handle

	var	photo_vis		=	new	Array();// Gerade sichtbare Bilder
	var	photo_img		=	new	Array();// Speicher für Bilddaten geladener Bilder
	var photo_dat		= 	new Array();// Speicher für Informationen zu allen Photos

// Array mit den Pfaden zu den Bildern

	photo_dat["src"] = new Array
		(
		"img/wechsel/01.jpg",
		"img/wechsel/02.jpg",
		"img/wechsel/03.jpg",
		"img/wechsel/04.jpg",
		"img/wechsel/05.jpg",
		"img/wechsel/06.jpg",
		"img/wechsel/07.jpg",
		"img/wechsel/08.jpg",
		"img/wechsel/09.jpg",
		"img/wechsel/10.jpg",
		"img/wechsel/11.jpg",
		"img/wechsel/12.jpg",
		"img/wechsel/13.jpg",
		"img/wechsel/14.jpg",
		"img/wechsel/15.jpg",
		"img/wechsel/16.jpg",
		"img/wechsel/17.jpg",
		"img/wechsel/18.jpg",
		"img/wechsel/19.jpg",
		"img/wechsel/20.jpg"
		);
// Array mit den Alt-Texten zu den Bildern
	photo_dat["alt"] = new Array
		(
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!",
		"(C) Goldenbaum-Media!"
		);

// Array mit Flags, welche die unveränderlichen Positionen markieren
var photo_fix	= new Array( 0, 0, 0, 0, 0, 0, 0, 0 );

function setup()
	{
	//	Preloading der ersten 8 Photos
	for	( var i=1; i<=photoshtml; i++ )
		{
		// Photo nur laden, wenn die Position zum Wechsel frei ist
		if ( ! photo_fix[i-1] )
			{
			nr						=	getNewPhotoNr();
			photo_img[nr]			=	new	Image();
			photo_img[nr].src		=	photo_dat["src"][nr];
			photo_vis[i]			= 	nr;
			document['photo'+i].src	=	photo_dat["src"][nr];
			document['photo'+i].alt	=	photo_dat["alt"][nr];
			}
		}
		timeout = setTimeout("chgPhoto();", delay*1000);
	}

	function chgPhoto()
		{
		// Suche nach einem erlaubten Platz für einen Bildwechsel
		do
			{
			photonr	=	1+Math.round((photoshtml-1)*Math.random());
			}
		while ( photo_fix[photonr-1] );

		newphoto	=	getNewPhotoNr();

		photo_vis[photonr]				=	newphoto;
		if ( ! photo_img[newphoto] )
			{
			photo_img[newphoto]			=	new	Image();
			photo_img[newphoto].src	=	photo_dat["src"][newphoto];
			}
		nextnr	=	photonr;
		nextnew	=	newphoto;
		if	(photo_img[newphoto].complete)
			doChange();
		else
			photo_img[newphoto].onload	=	doChange;
		}

	// Bildwechsel bei Verzögerung durchführen **********************************
	function doChange()
		{
		document['photo'+nextnr].src	=	photo_img[nextnew].src;
		document['photo'+nextnr].alt	=	photo_dat["alt"][nextnew];
		clearTimeout( timeout );
		timeout = setTimeout("chgPhoto();",delay*1000);
		}

	// Ermitteln der ID eines noch nicht angezeigten Photos (0 .. photos-1) *****
function getNewPhotoNr()
	{
	var	newphoto;									// ID des nächsten Bildes
	var	visible;									// Flag für bereits angezeigtes Bild

	// Schleife, bis noch nicht gezeigtes Bild gefunden
	do
		{
	// Flag erst mal löschen und Positionkandidaten für die Anzeige berechnen
		visible		=	false;
		newphoto	=	Math.round( (photos-1)*Math.random() );
	// Suche, ob newphoto bereits angezeigt wird, dann Flag setzen
		for	( var i=1; (i<=photoshtml) && ! visible; i++ )
			{
			if ( photo_vis[i]==newphoto )
				visible	=	true;
			}
		}
	while ( visible );

	return	newphoto;							// ID eines nicht gezeigten Bildes zurück
	}