// JavaScript Document
function slowly (time, steps) {
	this.stepTime = time / steps;
	this.stepSize = 100 / steps;
	if(this.stepSize == 0) this.stepSize = 1; //No infinite loops plx!
	if(this.stepTime == 0) this.stepTime = 1; //No infinite loops plx!
	
	this.fadeIn = function (id, func) {
		this.opacity = 0;
		this.id = id;
		this.func = func;
		this.fadeInLoop();
	}
	
	this.fadeInLoop = function()
	{
		var self = this;
		var process = function() {
			if (self.opacity <= 100) {
						
				self.setOpacity(); 

				self.opacity += self.stepSize;

				window.setTimeout(process, self.stepTime);
	
			} 
			else {
				self.opacity = 100;
				self.setOpacity();
				if(self.func != null) self.func();
			}
		}
		
		process();
	}

	this.fade = function (id, func) {
		//alert("fading " + id);
		this.opacity = 100;
		this.id = id;
		this.func = func;
		this.fadeLoop();
	}

	this.fadeLoop = function () {
		var self = this;
		var process = function() {
			//alert("fadeLoop:  " + self.id+" "+self.opacity);
			
			if (self.opacity >= 0) {

				self.setOpacity();

				self.opacity -= self.stepSize;

				window.setTimeout(process, self.stepTime);

			} else {
				self.opacity = 0;
				self.setOpacity();
				self.func();
			}
		}
		
		process();
	}

	this.setOpacity = function () {
				var o = document.getElementById(this.id);
				o.style.filter = "alpha(style=0,opacity:" + this.opacity + ")";      // IE

				o.style.KHTMLOpacity = this.opacity / 100;                            // Konqueror

				o.style.MozOpacity = this.opacity / 100;                              // Mozilla (old)

				o.style.opacity = this.opacity / 100;                                 // Mozilla (new)

	}

}