    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;        
	}
    function getTarget(event){var targ;
        if(!event){var event=window.event;}
        if(event.target){targ=event.target;}
        else if(event.srcElement){targ=event.srcElement;}
        if(targ.nodeType==3){targ=targ.parentNode;}return targ;
    }
    function $(id){return document.getElementById(id);}
    function c$(a,b){
	    return(
		    function(e){
			    return a[b](e,this);
		    }
	    )
    }
    function d$(a,b,c){
	    return(
	        function(){
	            return a[b](c);        
	        }    
	    )
	}
    function $$(oElm, strTagName, strClassName) {
        var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\\-");
        var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
        var oElement;
        for (var i = 0; i < arrElements.length; i++) {
            oElement = arrElements[i];
            if (oRegExp.test(oElement.className)) {
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    }
    var Dom = { get: function(el) { if (typeof el === 'string') { return document.getElementById(el); } else { return el; } },
        add: function(el, dest) { var el = this.get(el); var dest = this.get(dest); dest.appendChild(el); },
        remove: function(el) { var el = this.get(el); el.parentNode.removeChild(el); } 
    };
    var Event = { add: function() {
        if (window.addEventListener) { return function(el, type, fn) { el.addEventListener(type, fn, false); }; }
        else if (window.attachEvent) { return function(el, type, fn) { var f = function() { fn.call(el, window.event); }; el.attachEvent('on' + type, f); }; } 
    } ()
    };
    function createxmlHttp(){var request=false;
        try{request=new XMLHttpRequest();}catch(e){try{
        request=new ActiveXObject("Msxml2.XMLHTTP");}
        catch(e){try{request=new ActiveXObject("Microsoft.XMLHTTP");}
        catch(e){alert("Your browser does not support AJAX!");request=false;}}}return request;
    }
    function getAbsPos(element){var r={x:element.offsetLeft,y:element.offsetTop};
        if (element.offsetParent){var tmp =getAbsPos(element.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};
	function getRelPos(event, reference){var x,y;event=event || window.event;var el=event.target || event.srcElement;
        if(!window.opera&&typeof event.offsetX!='undefined'){
            var pos={x:event.offsetX,y:event.offsetY};var e=el;
            while(e){e.mouseX=pos.x;e.mouseY=pos.y;
                pos.x+=e.offsetLeft;pos.y+=e.offsetTop;e=e.offsetParent;}
            var e=reference;var offset={x:0,y:0}
            while(e){if(typeof e.mouseX!='undefined'){
                x=e.mouseX-offset.x;y=e.mouseY-offset.y;break;}
                offset.x+=e.offsetLeft;offset.y+=e.offsetTop;e=e.offsetParent;}e=el;
            while(e){e.mouseX=undefined;e.mouseY=undefined;e=e.offsetParent;}}
        else{var pos=getAbsPos(reference);x=event.pageX-pos.x;y=event.pageY-pos.y;}
            return {x:x,y:y};}
    function getTarget(event){var targ;
        if(!event){var event=window.event;}
        if(event.target){targ=event.target;}
        else if(event.srcElement){targ=event.srcElement;}
        if(targ.nodeType==3){targ=targ.parentNode;}return targ;
    }
