var geschwindigkeit = 10;
var anzahl_decker = 9, faktor = 2;
var tag_name = "span";

var farben, decker;
var timer = 0;
function startFade(){
	farben = new Array();
	for (var i = 0; i < document.getElementsByTagName(tag_name).length; i++){
		farben[i] = new Array();
		var farbe = document.getElementsByTagName(tag_name)[i].style.color;
		if (farbe.indexOf("#") == -1){
			farben[i] = farbe.match(/\d+/g);
		} else {
			for (var j = 0; j < 3; j++){
				farben[i][j] = parseInt(farbe.substr(1 + 2 * j, 2), 16);
			}
		}
	}

	decker = new Array();
	for (var i = 0; i < anzahl_decker; i++){
		decker[i] = new Image(); decker[i].src = "media/decker_" + i + ".gif";
	}

	fade(1, 0);
}

// Fading

var alpha = 0, counter = 0;
function fade(richtung, link_richtung){
	if (richtung == 1 && alpha == 0){
		for (var i = 0; i < document.getElementsByTagName(tag_name).length; i++){
			document.getElementsByTagName(tag_name)[i].style.visibility = "visible";
		}
		document.getElementById("bild").style.visibility = "visible";
	}

	if ((richtung == 1 && alpha == 0) || (richtung == -1 && alpha == 100)){
		removeLinks();
	}	

	if ((richtung == 1 && alpha < 100) || (richtung == -1 && alpha > 0)){
		alpha += 100/((anzahl_decker - 1) * faktor) * richtung;
		for (var i = 0; i < document.getElementsByTagName(tag_name).length; i++){
			document.getElementsByTagName(tag_name)[i].style.color = getFarbeHex(farben[i][0], farben[i][1], farben[i][2], alpha);
		}

		if (alpha % (100/(anzahl_decker - 1)) == 0){
			counter += richtung;
			for (var i = 0; i < document.getElementsByTagName("img").length; i++){
				var bild_name = String(document.getElementsByTagName("img")[i].src);
				if (bild_name.indexOf("decker") != -1){ document.getElementsByTagName("img")[i].src = decker[counter].src; }
			}
		}

		timer = setTimeout("fade(" + richtung + "," + link_richtung + ")", geschwindigkeit);
	} else {
		if (richtung == 1){ restoreLinks(); }
		else {
			if (link_richtung == -1){ this.location = zurueck_URL; }
			else { this.location = vor_URL; }
		}
	}
}


function getFarbeHex(r, g, b, prozent){
	var zahl = new Array(r, g, b);
	var farbe_hex = "#";
	for (var i = 0; i < 3; i++){
		zahl[i] = 255 - Math.round((255 - zahl[i]) * prozent/100);
		if (zahl[i] < 16){ farbe_hex += "0"; }
		farbe_hex += zahl[i].toString(16);
	}
	return farbe_hex;
}

var links_HTML, links_id;
function removeLinks(){
	links_HTML = new Array(); links_id = new Array();
	for (var id = 0; id < document.getElementsByTagName(tag_name).length; id++){ 
		if (document.getElementsByTagName(tag_name)[id].innerHTML.indexOf("href") != -1){
			var link = document.getElementsByTagName(tag_name)[id].innerHTML;
			links_id[links_id.length] = id; links_HTML[links_HTML.length] = link;
			document.getElementsByTagName(tag_name)[id].innerHTML = link.substring(link.indexOf(">") + 1, link.lastIndexOf("<"));
		}
	}
}

function restoreLinks(){
	for (var id = 0; id < links_id.length; id++){
		document.getElementsByTagName(tag_name)[links_id[id]].innerHTML = links_HTML[id];
	}
}

function makeArray(x, y){
	for (var i = 0; i < x; i++){ this[i] = new Array(y); }
}