/* Faderklasse */
function $( idx ) {
	return window.document.getElementById( idx );
}

function Fader( name, step, tick ) {
	this.Name = name;
	this.Step = step;
	if (step)
		this.Target = true;
	else {
		this.Target = false;
		$( name ).style.opacity = 0;
		$( name ).style.filter = "alpha(opacity=0)";
	}
	this.Tick = tick;
	this.FadeIn = FaderFadeIn;
	this.FadeOut = FaderFadeOut;
	this.Activate = FaderActivate;
}

function fade( Obj ) {
	if ( Obj.Target )
		Obj.Step = Obj.Step + Obj.Tick;
	else
		Obj.Step = Obj.Step - Obj.Tick;
		
	$( Obj.Name ).style.opacity = Obj.Step/100;
	$( Obj.Name ).style.filter = "alpha(opacity=" + Obj.Step + ")";
		
	if ( ( Obj.Step > 0 && !Obj.Target )||( Obj.Step < 100 && Obj.Target ) )
		window.setTimeout( function() { fade( Obj ); }, 1 );				
}

function FaderFadeIn() {
	if (!this.Target) {
		this.Target = true;
		fade( this );
	}
}

function FaderFadeOut() {
	if (this.Target) {
		this.Target = false;
		fade( this );
	}
}

function FaderActivate( enable ) {
	if ( enable )
		this.FadeIn();
	else
		this.FadeOut();
}