sfFocus = function() {
	var sfEls = document.getElementsByTagName("INPUT");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onfocus=function() {
			this.className+=" inputfocus";
		}
		sfEls[i].onblur=function() {
			this.className=this.className.replace(new RegExp(" inputfocus\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfFocus);

sf2Focus = function() {
	var sf2Els = document.getElementsByTagName("TEXTAREA");
	for (var i=0; i<sf2Els.length; i++) {
		sf2Els[i].onfocus=function() {
			this.className+=" inputfocus";
		}
		sf2Els[i].onblur=function() {
			this.className=this.className.replace(new RegExp(" inputfocus\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sf2Focus);

var Photos = new Array();

// Photo zur Galerie hinzufuegen
// thumbnail - URL zum Thumbnail
// bild - URL zum Detailbild
// alt - Beschreibung die angezeigt werden soll, wenn man mit der Maus ueber das Bild faehrt
// beschreibung - Beschreibung des Bildes, welches als Beschriftung unter dem Detailbild angezeigt werden soll
function addPhoto (thumbnail, bild, alt, beschreibung)
{
	Photos[Photos.length] = new Object();
	// URL des Thumbnail
	Photos[Photos.length - 1]["datei"] = thumbnail;
	// URL des Bildes
	Photos[Photos.length - 1]["datei_gross"] = bild;
	// Text der angezeigt werden soll, wenn das Bild unter der angegebenen URL nicht gefunden wurde
	Photos[Photos.length - 1]["alt"] = alt;
	// Kurze Bildbeschreibung zum jeweiligen Bild
	Photos[Photos.length - 1]["beschreibung"] = beschreibung;
}

// Zaehlt Bilder mit IDs, die mit 'thumbnail' beginnen und einer ganzen Zahl
// enden und liefert die Anzahl als Rueckgabewert.
// Diese ID muessen die Image-Tags haben, die als Thumbnails verwendet werden.
function zaehle_thumbnails ()
{
	var tn = 0;

	for (i = 0; i < document.images.length; i++)
		if ((document.images[i].id).match (/^thumbnail[0-9]+$/))
			tn++;
	return tn;
}

// Thumbnails automatisch erzeugen, um Fehler zu vermeiden
function erzeuge_thumbnails ()
{
	// 'anzahl_thumbnails' Thumbnails erzeugen
	for (i = 0; i < anzahl_thumbnails; i++)
	{
		// Ein Thumbnail besteht aus einem LI-Tag, ...
		eintrag = document.createElement ("li");
		// einem Link ...
		link = document.createElement ("a");
		// , der per JavaScript das entsprechende Bild austauscht
		link.href = "javascript:grosses_bild_anzeigen (" + (i + 1) + ")";
		// und einem IMG-Tag fuer den eigentlichen Thumbnail
		bild = document.createElement ("img");
		bild.border = "0";
		bild.id = "thumbnail" + (i + 1);

		// erzeugtes hierarchisch zusammenfuegen
		link.appendChild (bild);
		eintrag.appendChild (link);

		// und unter Tag mit der ID 'thumb' ins Dokument einhaengen
		document.getElementById ("thumbs").appendChild (eintrag);
	}
}

// Thumbnails gemaess aktuellem index_erstes_bild anzeigen
function thumbnails_auffrischen ()
{
	// Bei allen Thumbnails Daten des jeweiligen IMG-Tags (b1..b3) auffrischen
	for (i = 0; i < anzahl_thumbnails; i++)
	{
		// Bild austauschen
		document.getElementById ('thumbnail' + (i + 1)).src = Photos[index_erstes_bild + i]["datei"];
		// Alt-Text austauschen
		document.getElementById ('thumbnail' + (i + 1)).alt = Photos[index_erstes_bild + i]["alt"];
		// Title-Text austauschen
		document.getElementById ('thumbnail' + (i + 1)).title = Photos[index_erstes_bild + i]["alt"];
	}


	// Falls das P-Tag mit der ID 'thumb_beschriftung' keine Kind-Elemente hat muss eines erzeugt werden,
	// damit die Beschriftungsdaten darin gespeichert werden koennen
	// Variablen in Beschriftungsstring ersetzen
	tnstr = thumbnail_string.replace (/%index_erster%/i, (index_erstes_bild + 1));
	tnstr = tnstr.replace (/%index_letzter%/i, (index_erstes_bild + anzahl_thumbnails));
	tnstr = tnstr.replace (/%anzahl_bilder%/i, anzahl_bilder);
}


// Index des aus den Thumbnails ausgewaehlten grossen Bildes setzen und Anzeige des grossen Bildes auffrischen
function grosses_bild_anzeigen (i)
{
	// neuer Index des grossen Bildes
	index_grosses_bild = index_erstes_bild + i - 1;
	// Anzeige des grossen Bildes auffrischen
	grosses_bild_auffrischen ();
}

// grosses Bild und zugehoerige Beschriftung im IMG mit der ID 'gross' anzeigen (nach index_grosses_bild)
function grosses_bild_auffrischen ()
{
	// URL des Bildes setzen
	document.getElementById ('gross').src = Photos[index_grosses_bild]["datei_gross"];
	// Alt-Text des Bildes setzen
	document.getElementById ('gross').alt = Photos[index_grosses_bild]["alt"];
	// Title-Text des Bildes setzen
	document.getElementById ('gross').title = Photos[index_grosses_bild]["alt"];

	// Falls das P-Tag mit der ID 'beschriftung' keine Kind-Elemente hat muss eines erzeugt werden,
	// damit die Beschriftungsdaten darin gespeichert werden koennen
	// Variablen in Beschriftungsstring ersetzen

}