/*
	Image Cross Fade Multiple
	by visualdesign
	Version 0.1
	Last update: 06.05.2008
	based on Image Cross Fade Redux by steve@slayeroffice.com
	http://slayeroffice.com/code/imageCrossFade/xfade2.html

	Erstellen mit variable = new CrossFader();
	CFpicFrame : Bereich, in dem der Fader ablaufen soll
	CFchangeSpeed: Wert in ms für die Fading-Geschwindigkeit, Standard: 50
	CFshowLength: Wert in ms für die Anzeigedauer eines Bildes, Standard: 3000
	Fader starten mit CFStartFrame(variable);
*/

function CrossFader() {
	this.CFname = "CrossFader"
	this.CFimageArray = new Array();
	this.CFchangeSpeed = 50;
	this.CFshowLength = 4000;
	this.CFshowDelay = 4000;
	this.CFpicFrame = "";
}

function CFstartFrame(objectName) {
	if (objectName.CFname != "CrossFader") return;
	if (objectName.CFpicFrame == "") return;
	if(!document.getElementById || !document.createElement) return;

	objectName.CFimageArray = document.getElementById(objectName.CFpicFrame).getElementsByTagName('img');
	for(i=1;i<objectName.CFimageArray.length;i++) {
		objectName.CFimageArray[i].xOpacity = 0;
		objectName.CFimageArray[i].style.display = 'none';
		objectName.CFimageArray[i].style.position = 'absolute';
		objectName.CFimageArray[i].style.top = '0';
		objectName.CFimageArray[i].style.left = '0';
	}
	objectName.CFimageArray[0].style.display = 'block';
	objectName.CFimageArray[0].xOpacity = .99;

	setTimeout(function () {so_xfade(objectName,0)},objectName.CFshowDelay);
}

function so_xfade(objectName,current) {
	var imgs = objectName.CFimageArray;
	var cOpacity = imgs[current].xOpacity;
	var nIndex = imgs[current+1]?current+1:0;
	var nOpacity = imgs[nIndex].xOpacity;

	cOpacity-=.05;
	nOpacity+=.05;

	imgs[nIndex].style.display = 'block';
	imgs[current].xOpacity = cOpacity;
	imgs[nIndex].xOpacity = nOpacity;

	setOpacity(imgs[current]);
	setOpacity(imgs[nIndex]);

	if(cOpacity<=0) {
		imgs[current].style.display = 'none';
		current = nIndex;
		setTimeout(function () {so_xfade(objectName,current)},objectName.CFshowLength);
	}
	else {
		setTimeout(function () {so_xfade(objectName,current)},objectName.CFchangeSpeed);
	}
}

function setOpacity(obj) {
	if(obj.xOpacity>.99) {
		obj.xOpacity = .99;
		return;
	}
	obj.style.opacity = obj.xOpacity;
	obj.style.MozOpacity = obj.xOpacity;
	obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
}
