function initSlideshow(containerName, imgCount, timeout, fadeDuration) {
	//für Website Labenbacher aus Templategründen
	if (imgCount < 1) { return; }
	// Ganz alte Browser ausschließen
	if (!document.getElementsByTagName) { return; } 
	// Alle Daten werden in einem zentralen Array gespeichert
	if (!document.slideshows) {
		document.slideshows = new Object();
		// Checken, ob der Browser das Faden unterstützt
		var tmpImg = document.getElementsByTagName("img")[0];
		document.slideshows.browserOK = ((tmpImg.filters && !(navigator.platform == "MacPPC" && navigator.appName == "Microsoft Internet Explorer")) || (typeof tmpImg.style.KHTMLOpacity == "string") || (typeof tmpImg.style.MozOpacity == "string") || (typeof tmpImg.style.opacity == "string")) ? true : false;
	}
	var containerDiv = document.getElementById(containerName);
	var img1 = containerDiv.getElementsByTagName("img")[0];
	var img2 = img1.cloneNode(true);
	containerDiv.appendChild(img2);
	img1.style.zIndex = 2;
	img2.style.zIndex = 1;
	setOpacity(img1, 100);
	setOpacity(img2, 100);

	document.slideshows[containerName] = new Object();
	document.slideshows[containerName].containerDiv = containerDiv;
	document.slideshows[containerName].img1 = img1;
	document.slideshows[containerName].img2 = img2;
	document.slideshows[containerName].baseName = img1.src.substr(0, img1.src.lastIndexOf("_") + 1);
	document.slideshows[containerName].extension = img1.src.substr(img1.src.lastIndexOf("."));
	document.slideshows[containerName].imgCount = imgCount;
	document.slideshows[containerName].timeout = timeout;
	document.slideshows[containerName].fadeDuration = fadeDuration;
	document.slideshows[containerName].currImg = 1;
	document.slideshows[containerName].currOpacity = 100;
	document.slideshows[containerName].direction = "out";
	document.slideshows[containerName].actionID = window.setTimeout("startFade('" + containerName + "')", timeout * 1000);	
}

function startFade(containerName) {
	// Aktuelles Bild hinaufzählen
	document.slideshows[containerName].currImg++;
	if (document.slideshows[containerName].currImg > document.slideshows[containerName].imgCount) { document.slideshows[containerName].currImg = 1; }
	// Je nach Modus (ein- oder ausblenden vom img1) die Source eines der beiden Bilder setzen
	tmpFilename = document.slideshows[containerName].baseName + (document.slideshows[containerName].currImg < 10 ? "0" + document.slideshows[containerName].currImg : document.slideshows[containerName].currImg) + document.slideshows[containerName].extension;
	if (document.slideshows[containerName].direction == "in" || !document.slideshows.browserOK) {
		document.slideshows[containerName].img1.src = tmpFilename;
	} else {
		document.slideshows[containerName].img2.src = tmpFilename;
	}
	// Fade-Logik auslösen
	document.slideshows[containerName].actionID = window.setInterval("doFade('" + containerName + "')", 50);
}

function fadeComplete(containerName) {
	clearInterval(document.slideshows[containerName].actionID);
	document.slideshows[containerName].direction = (document.slideshows[containerName].direction == "in" ? "out" : "in");
	document.slideshows[containerName].actionID = window.setTimeout("startFade('" + containerName + "')", document.slideshows[containerName].timeout * 1000);
}

function doFade(containerName) {
	if (document.slideshows[containerName].direction == "out" && document.slideshows[containerName].currOpacity > 0) {
		document.slideshows[containerName].currOpacity = Math.max(0, document.slideshows[containerName].currOpacity - (5 / document.slideshows[containerName].fadeDuration));
		setOpacity(document.slideshows[containerName].img1, document.slideshows[containerName].currOpacity);
	} else if (document.slideshows[containerName].direction == "in" && document.slideshows[containerName].currOpacity < 100) {
		document.slideshows[containerName].currOpacity = Math.min(100, document.slideshows[containerName].currOpacity + (5 / document.slideshows[containerName].fadeDuration));
		setOpacity(document.slideshows[containerName].img1, document.slideshows[containerName].currOpacity);
	} else {
		fadeComplete(containerName);
	}
}

function setOpacity(obj, opacity) {
  opacity = (opacity == 100) ? 99.999 : opacity;
  obj.style.filter = "alpha(opacity:" + opacity + ")";  // IE/Win
  obj.style.KHTMLOpacity = opacity / 100;  // Safari<1.2, Konqueror
  obj.style.MozOpacity = opacity / 100;  // Older Mozilla and Firefox
  obj.style.opacity = opacity / 100;  // Safari 1.2, newer Firefox and Mozilla, CSS3
}
