var w_schritt = 15;
var h_schritt = 15;
var i = 0;
var schritt = 0.025;
var max_anzahl = 1 / schritt;
var p;

function fade(id, d, x, y, time){
	var schritt = 0.025;
	var max_anzahl = 1 / schritt;

	if(d == 1){
		w_schritt = x / max_anzahl;
		h_schritt = y / max_anzahl;
	}
	p = document.getElementById(id);
	p.display = "block";
	setTimeout("animateFade('" + id + "', '" + d + "', '0', '" + time + "')", 1);	
}

function animateFade(id, d, started, time){
	
	p = document.getElementById(id);
	p.style.overflow = 'hidden';
	
	if(d == 1){
		p.style.opacity = 0;
		p.style.width = '0px';
		p.style.height = '0px';
		if(p.style.filter != null && p.style.filter != ''){
	  		p.style.filter = "alpha(opacity = 0)";
			alert("Is here!");
		}
		if (started > 0 || p.style.opacity <= (1 + schritt)) {
			p.style.display = 'block';
			started = 1;
			p.style.opacity = (schritt * i);
			p.style.width = (w_schritt * i) + 'px';
			p.style.height = (h_schritt * i) + 'px';
			p.style.marginLeft = (-1) * Math.round(w_schritt * i / 2) + 'px';
			p.style.marginTop = (-1) * Math.round(h_schritt * i / 2) + 'px';
			if(p.style.filter != null && p.style.filter != ''){
  				p.style.filter = "alpha(opacity = " + (schritt*i*100) + ")";
			}
			if (p.style.opacity > 1-(schritt)) {
				started = 0;
				i = max_anzahl - 1; // minus 1 denn danach wird wieder eins hochgezählt.
			}
			i++;
		}	
	} 
	if(d == 0) {
		p.style.opacity = 1;
		if(p.style.filter != null && p.style.filter != ''){
  			p.style.filter = "alpha(opacity = 100)";
		}
		if (started > 0 || p.style.opacity >= 1-(schritt)) {
			started = 1;
			p.style.opacity = schritt * i;
			p.style.width = w_schritt * i + 'px';
			p.style.height = h_schritt * i + 'px';
			p.style.marginLeft = (-1) * Math.round(w_schritt * i / 2) + 'px';
			p.style.marginTop = (-1) * Math.round(h_schritt * i / 2) + 'px';
			if(p.style.filter != null && p.style.filter != ''){
  				p.style.filter = "alpha(opacity = " + (schritt*i*100) + ")";
			}
			if (p.style.opacity <= (1 - (max_anzahl-1) * schritt)) {
				started = 0;
				i = 1; // 1 denn danach zieht es noch eins ab.
				p.style.display = "none";
			}
			i--;
		}	
	}
	if(started != 0 && i <= max_anzahl){
		setTimeout("animateFade('"+id+"', '" + d + "', '" + started + "')", time);
	}

	return true;
}

// element_is_loaded():
// looks if the given id-element (normally an image) is loaded.

function element_is_loaded(id) {
	if(document.getElementById(id) != null){
		var img = document.getElementById(id);
		if (!img.complete) {
			return false;
		}
		if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
			return false;
		}
		return true;
	} else {
		// alert('Element "'+id+'" nicht verfuegbar.');
		return true;
	}

}


// needed to reactivate the fade_function if image not ready
function fade_if_loaded(div_id, x, y, time, durchlauf){
	if(element_is_loaded(div_id + '_img')){
		fade(div_id, 1, x, y, time);
	} else {
		if(durchlauf < 30){
			setTimeout("fade_if_loaded('" + div_id + "', '" + x + "', '" + y + "', '" + time + "', '" + (parseInt(durchlauf)+1) + "')", 100);
		} else {
			fade(div_id, 1, x, y, time);
		}
	}
}



