/**
 * @author leolezner.de
 */

function getRandom(min, max) {
	if( min > max )
		return( -1 );

	if(min == max)
		return( min );

	var n = min + parseInt(Math.random()*(max-min+1));
	
	while(n == this.oldN){
		n = min + parseInt(Math.random()*(max-min+1));
	};
	
	this.oldN = n;
	
	return n;
}

 $(function(){
 	
	var interval = 500;
	var delay = 5000;
	
	var $this = $('#fader');
	
	// Innenabstand des Elternelements
	var padL = parseInt($this.css("padding-left"));
	var padT = parseInt($this.css("padding-top"));
	
	// Maximale Abmessungen des Elternelements
	var pW = $this.width();
	var pH = $this.height();
	
	var $child = $this.children(":first");
	
	// Alte Koordinaten des Kindes
	var oldX = $child.offset().left - $this.offset().left;
	var oldY = $child.offset().top - $this.offset().top;

	$child.css({
		position: "absolute",
		left: oldX,
		top: oldY
	});
	
	$this.css("position", "relative");
	
	// Maximale Abmessungen des Kindelements
	var cW = $child.width();
	var cH = $child.height();
	
	// Maximale Position des Kindelements
	var maxX = pW - cW + padL;
	var maxY = pH - cH;
	
	// Die Funktion ruft sich selbst auf nach der Verzögerung
	var timerFunc = function(){
		// Neue zufällige Position
		var randX = getRandom(padL, maxX);
		var randY = getRandom(padT, maxY);
		
		// Einblenden
		$child.fadeIn(2000, function(){
			setTimeout(function(){
				$child.fadeOut(2000, function(){
						$child.css("left", randX);
						$child.css("top", randY);
						setTimeout(timerFunc, interval);	
				});
			}, delay);
		});
	};
	
	setTimeout(timerFunc, interval);
	

 });
 
