    function t() {
        this.timeout = this.interval = null;
    }
    t.prototype = {
        timer: function (todo, time) {
            clearTimeout(this.timeout);
            this.timeout = window.setTimeout(todo, time);
        },
        intervaler: function (todo, time) {
            clearInterval(this.interval);
            this.interval = setInterval(todo, time);
        },
        endInterval: function () {
            clearInterval(this.interval);
            this.interval = null;
        },
        endTimer: function () {
            clearInterval(this.timeout);
            this.timeout = null;
        }
    }
	opacity.prototype=new t();
	opacity.prototype.constructor=opacity;
	function opacity(el,start,stop,current,jump,t,opt){                  
		this.o={start:start,stop:stop,current:current,jump:jump};   
		this.el=el;		
		this.opt=false;
		this.t=t;
		if(opt==true){this.opt=true}
	}            
	opacity.prototype.iFadeIn=function(t){
		this.intervaler(
			c$(this,'fadeIn'),
			this.t
		);
	}
	opacity.prototype.iFadeOut=function(t){
		this.intervaler(
			c$(this,'fadeOut'),
			this.t
		);
	} 	
	opacity.prototype.fadeIn=function(){      
		if(this.o.current<this.o.stop){this.o.current+=this.o.jump;}
		if(this.o.current>=this.o.stop){clearInterval(this.interval);}
		this.apply(); 
	}
	opacity.prototype.fadeOut=function(){
		if(this.o.current>this.o.start){this.o.current-=this.o.jump;}				
		if(this.o.current<=this.o.start){clearInterval(this.interval);if(this.opt){this.iFadeIn();}}   
		this.apply(); 				
	}
	opacity.prototype.apply=function(){
		try{this.el.filters.alpha.opacity=this.o.current;}catch(e){}
		this.el.style.opacity=this.o.current/100;        
	}
