function fadeClass(){
	var thisObject = this;
	var element;

	this.defaults = 
	{
		eleID :				'',
		timeToFade :		500,
		beforeFade:			function(){},
		beforeFadeIn:		function(){},
		beforeFadeOut:		function(){},
		afterFadeIn:		function(){},
		afterFadeOut:		function(){}
	}

	this.init = function(options){
		var optionsArray = new Array('eleID', 'timeToFade', 'beforeFade', 'beforeFadeIn', 'beforeFadeOut', 'afterFadeIn', 'afterFadeOut');
		var max = optionsArray.length;
		for (var h = 0; h < max; h++){
			var name = optionsArray[h];
			this[name] = (options !== undefined && options[name] !== undefined) ? options[name] : thisObject.defaults[name];
		}

		this.element = document.getElementById(this.eleID);

		if(this.element == 'undefined' || this.element == null || this.element == ''){
			thisObject.beforeFade();
			this.element = document.getElementById(this.eleID);
		}

		if(this.element == null || this.element == 'undefined'){
			alert('ele nicht gefunden');
			return;
		}

		this.animateFade();
	}

	this.animateFade = function(){
		var speed = Math.round(thisObject.timeToFade / 100);
		var timer = 0;

		if(this.element.style.opacity == 1){
			thisObject.beforeFadeOut();
			for(var i = 100; i >= 0; i--) {
				setTimeout("changeOpac(" + i + ")",(timer * speed));
				timer++;
			}
			thisObject.afterFadeOut();
			if (document.getElementById('QuickSearchArrow'))
				document.getElementById('QuickSearchArrow').style.display = 'inline';
			
		}else if(this.element.style.opacity == null || this.element.style.opacity == '' || this.element.style.opacity == 'undefined' || this.element.style.opacity == 0){
			thisObject.beforeFadeIn();
			for(var i = 0; i <= 100; i++)
				{
				setTimeout("changeOpac(" + i + ")",(timer * speed));
				timer++;
			}
			thisObject.afterFadeIn();
			if (document.getElementById('QuickSearchArrow'))
				document.getElementById('QuickSearchArrow').style.display = 'none';

		}else{
			return;
		}
	}

	changeOpac = function(fnOpacity){
		var oldOpacity = thisObject.element.style.opacity;
		thisObject.element.style.opacity = (fnOpacity / 100);
		thisObject.element.style.MozOpacity = (fnOpacity / 100);
		thisObject.element.style.KhtmlOpacity = (fnOpacity / 100);
		thisObject.element.style.filter = "alpha(opacity=" + fnOpacity + ");";
		if(fnOpacity == 0 && oldOpacity > 0){
			thisObject.element.parentNode.removeChild(thisObject.element);
		}
	}
}