var FaderFramework =
{	viewTime: 2500,				 // Zeit, die ein Bild angezeigt wird (in Millisekunden)
	fadeStep: 0.5,			 	 // Prozent-Schritt beim Überblenden
	oldWinOnLoad: false,
	inits: new Array(),
	faders: new Object(),
	
	start: function ()
	{	this.oldWinOnLoad = window.onload;
		window.onload = function ()
		{	if (typeof(FaderFramework.oldWinOnLoad) == "function")
			{	FaderFramework.oldWinOnLoad();
			}
			FaderFramework.onload();
	}	},

	onload: function ()
	{	var i, fader, e = document.createElement("link");
		e.type = "text/css";
		e.rel = "stylesheet";
		e.href = "../fader-framework/fader-framework.css";
		document.getElementsByTagName("head")[0].appendChild(e);
		fader = this.inits;
		delete this.inits;
		for (i = 0; i < fader.length; i++)
		{	this.init(fader[i]);
	}	},
	
	init: function (einstellungen)
	{	var fader;
		if (this.inits)
		{	this.inits[this.inits.length] = einstellungen;
		}
		else
		{	fader = new this.Fader(einstellungen);
			if (fader != false && !this.faders[einstellungen.id])
			{	this.faders[fader.id] = fader;
				window.setTimeout(function () {	fader.start(); }, fader.viewTime);
	}	}	},

	Fader: function (einstellungen)
	{	if (!einstellungen.id
			|| !document.getElementById(einstellungen.id)
			|| FaderFramework.faders[einstellungen.id]
			|| einstellungen.images.length < 2)
		{	return new Boolean(false);
		}
		var i, original = document.getElementById(einstellungen.id);
		this.id = einstellungen.id;
		this.viewTime = einstellungen.viewTime || FaderFramework.viewTime;
		this.fadeStep = einstellungen.fadeStep || FaderFramework.fadeStep;
		this.images = new Array();
		this.counter = false;
		this.element = document.createElement("span");
		this.element.className = "fader";
		original.parentNode.replaceChild(this.element, original);
		for (i = 0; i < einstellungen.images.length; i++)
		{	this.images[i] = document.createElement("img");
			this.images[i].src = einstellungen.images[i];
			this.images[i].alt = "Bild";
			if (i == 0)
			{	this.element.appendChild(this.images[i]);
		}	}

		this.start = function ()
		{	this.next();
		};

		this.next = function ()
		{	this.counter = (this.counter < this.images.length -1) ? this.counter +1 : 0;
			this.element.appendChild(this.images[this.counter]);
			this.images[this.counter].className = "next";
			this.fade();
		}
	
		this.fade = function (step)
		{	var fader = this, imgs = this.element.getElementsByTagName("img");
			this.fading = true;
			step = step || 0;
			imgs[1].style.opacity = step/100;
			imgs[1].style.filter = "alpha(opacity=" + step + ")"; 	// IE?
			step += this.fadeStep;
			if (step <= 100)
			{	window.setTimeout(function () { fader.fade(step); }, 1);
			}
			else
			{	this.fading = false;
				imgs[1].className = "";
				this.element.removeChild(imgs[0]);
				window.setTimeout(function () { fader.next(); }, this.viewTime);
		}	};
		return 0;
}	};
FaderFramework.start();

