	//##### ab hier: keine manuelle Angaben mehr notwendig
	var auskommentiert = auskommentlinks + auskommentrechts;
	var ungerade = (anz - auskommentiert) % 2;	//bestimmen, ob Anzahl der angez. Panos ungerade o. gerade
	anz_panos_links = (anz - auskommentiert - ungerade) / 2;	//Anzahl an Panos in linker Hälfte (für delay)
	var mitte = auskommentlinks + anz_panos_links + 1;				//mittleres Pano bestimmen
	var delay_panos;					//Verzögerung zwischen Fkt.aufrufen in Milisekunden
	var anz_panos_links;		//Anzahl der linken Hälfte an Panos (benötigt, um gespiegelte Panos zu untersuchen)
	var add;					//1 oder -1; bestimmt, in welche Richtung Panorama verschoben werden soll
	var index;					//nimmt Index der mouseOver-Grafik auf (z.B. 09 bei pan09 (name-Attribut))
	var alt = "";				//nimmt letzte mouseOver-Grafik auf
	var aufrufe = 0;			//Anzahl der Fkt.aufrufe bei setTimeOut (Fkt. animieren)


	//gepunkteten Rahmen um IE vermeiden
	function ierahmen(obj)
	{
		if (document.all)
			obj.blur();
	}


	//die links auskommentierten (am Anfang nicht angezeigten) Panos vorausladen
	for (var i=1; i<=auskommentlinks; i++)
	{
		if (i < 10)				//führende 0 hinzufügen
			i = "0" + i;
		var panohide = praefix + i;
		eval(panohide + " = new Image()");
		eval(panohide + ".src = \"" + bildpfad + panohide + suffix + "\"");
	}

	//rechts auskommentierte Panos vorausladen
	for (var i=anz-auskommentrechts+1; i<=anz; i++)
	{
		if (i < 10)				//führende 0 hinzufügen
			i = "0" + i;
		var panohide = praefix + i;
		eval(panohide + " = new Image()");
		eval(panohide + ".src = \"" + bildpfad + panohide + suffix + "\"");
	}


	//######### Ausgabe der Pano-Grafiken mittels document.write
	var ns = (document.layers)?(1):(0);
	var ie = (document.all)?(1):(0);
	var w3c = (document.getElementById)?(1):(0);	//auch Opera und Netscape 6


	//##### schreib: Ausgabe des Parameterwertes über document.write
	function schreib(text)
	{
		document.write(text);
	}

	//##### schreibe_panos: Panos ausgeben, abhängig vom benutzten Browser (benötigt schreib(text))
	function schreibe_panos()
	{
		var pano_start = auskommentlinks + 1;		//für Schleife: Startparameter
		var pano_ende  = anz - auskommentrechts;	//für Schleife: Endparameter

		//Panos verlinken, wenn auf Startseite
		if (is_start == 1)
			var link = "start.php";
		else
			var link = "javascript:void(0);";

		for (var pano_index=pano_start; pano_index<=pano_ende; pano_index++)
		{
//			if (pano_index == 19)
//				schreib("<img src='inc/bilder_start/quadrat.gif' width='53' height='46'>");
				//eval("schreib(\"<img src='" + bildpfad + "quadrat.gif' width='53' height='46'>\")");

			if (pano_index < 10)	//führende 0 hinzufügen
				pano_index = "0" + pano_index;
			if (ns)					//Netscape: mouseOver/mouseOut muss innerhalb a-Tag; leider erscheint Hand-Cursor ("Schoenheitsfehler")
			{
				//folgende Fkt.aufrufe von schreib() ergeben Ausgabe von: <a href='javascript:void(0);' onMouseOver='pan('pan" + pano_index + "')'; onMouseOut='out();'>
				schreib('<a href="' + link + '" onMouseOver="pan(');
				schreib("'" + praefix + pano_index + "'");
				schreib(');" onMouseOut="out();">');
				schreib("<img src='" + bildpfad + praefix + pano_index + suffix + "' border='" + border + "' name='" + praefix + pano_index + "' width='" + panowidth + "' height='" + panoheight + "' alt='Panorama von K&ouml;ln'>");
				schreib("</a>");
			}
			else	//IE und andere: mouseOver/mouseOut innerhalb img-Tag; Hand-Cursor erscheint nicht (in IE auch style=Cursor:default moeglich; Cursorformen in Opera jedoch unbekannt)
			{		//schoendorff.de: a href hinzugefuegt
				schreib("<a href='" + link + "' onClick='ierahmen(this);'><img src='" + bildpfad + praefix + pano_index + suffix + "' border='" + border + "' name='" + praefix + pano_index + "' width='" + panowidth + "' height='" + panoheight + "' ");
				schreib("onMouseOver='pan(this.name);' onMouseOut='out();' alt='Panorama von K&ouml;ln'></a>");
			}
		}
	}


	//##### pan: Aufruf bei mouseOver; Verzweigen, je nach dem ob erste/letzte Grafik oder mittlere berührt wurden
	function pan(bildname)
	{
		index = bildname.substr(bildname.length-2, 2);	//Grafik-Index herausfinden

		//## Faktor für delay ermitteln (nach innen: größere Werte = größere Verzögerung)
		var faktor = 0;
		var plus = anz - auskommentiert - 1;	//Differenz, um gespiegelten Wert zu erhalten
		for (var i=1; i<=anz_panos_links; i++)	//linke Hälfte der Panos untersuchen
		{
			var j = i+auskommentlinks;			//Index des ersten sichtbaren Panos (ganz links)
			if (j < 10) j = "0" + j;			//führende 0 hinzufügen
			var k = Number(j) + Number(plus);	//k ist der Index des gespiegelten Panos
			if (k < 10) k = "0" + k;			//führende 0 hinzufügen
			if (j == index || k == index)		//wenn bei Index (berührtes Pano) angelangt, dann Faktor speichern
				var faktor = i;					//Faktor zwischen 1 und 4
			plus -= 2;						//gespiegelten Wert anpassen
		}
		delay_panos = faktor * 100;		//angepaßtes Delay um Faktor 100 Milisekunden erhöhen

		//## Panorama animieren (Fkt. animieren())
		if (ungerade == 0 || (index != mitte))
			animieren(1);
	} //function pan


	//##### animieren: rekursiver Fkt.aufruf, um Auto-Scrolling (Aufruf von move) durchzuführen
	function animieren(para)
	{
		//## Bewegungsrichtung
		if (index < mitte)	//Maus in linker Hälfte: Panorama nach links verschieben
			add = -1;
		else				//letzte Grafik: Panorama nach rechts verschieben
			add = 1;

		//## ab hier folgt eigentliche Funktionalität der Funktion
		aufrufe++;	//Anzahl der Fkt.aufrufe -> Fkt. darf nicht zweimal zugleich aufgerufen werden
		if (para == 1)	//Animation gestoppt -> Anim. beginnen (rekursive Fkt.aufrufe)
		{
			if (aufrufe == 1)		//rek. Fkt.aufruf nur dann, wenn Fkt. genau einmal ausgeführt wird
			{
				move();				//animieren!
				window.setTimeout("animieren(" + para + ")", delay_panos);	//rek. Fkt.aufruf
			}
			aufrufe = 0;			//nach Aufruf wieder auf 0 (Anfangszustand) setzen (wird trotz/direkt nach setTimeout ausgeführt!)
		}
		else
		{
			//document.erg.ergtext.value += "e" + aufrufe;		//optionaler Befehl bei mouseOut
			para = 0;		//damit Fkt. während der Pause nicht nochmals aufgerufen wird
		}
	}


	//##### out: Zeit erfassen, wenn Grafiken verlassen wird (onMouseOut)
	function out()
	{
		if (ungerade == 0 || index != mitte)
			animieren(0);
	}


	//##### move: Grafiken austauschen -> Panorama verschieben
	function move()
	{
		for (var i=1+auskommentlinks; i<=anz-auskommentrechts; i++)	//jedes Pano ersetzen
		{
			var inull = jnull = "";
			if (i < 10)				//führende 0 hinzufügen
				inull = "0";
			var grafik = eval("document." + praefix + inull + i + ".src");	//aktuell zugeordnete Grafik herausfinden
			grafik = grafik.substr(grafik.length-6, 2);		//Grafik-Index herausfinden
			var j = Number(grafik) + Number(add);			//Grafik-Index um 1 erhöht j zuordnen (grafik + 1 wurde als String interpretiert)
			if (j == anz+1) j = 1;							//wenn Grafikanzahl übersteigt, wieder von vorne beginnen
			if (j == 0) j = anz;							//analog zur vorigen Zeile
			if (j < 10)										//führende 0 hinzufügen
				jnull = "0";
			eval("document." + praefix + inull + i + ".src='" + bildpfad + praefix + jnull + j + suffix + "'");	//Grafik neu zuordnen/austauschen
		}
	}

