    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);
		}      
	}
	opacity.prototype=new t();
	opacity.prototype.constructor=opacity;
	function opacity(el,start,n,stop,current,jump,t,opt){                  
		this.o={start:start,stop:stop,current:current,jump:jump,storeJump:jump};   
		this.el=el;		
		this.opt=false;
		this.t=t;
		this.n=n;
		this.nB=1;
		if(opt==true){this.opt=true}
	}            
	opacity.prototype.iFadeIn=function(t){
        this.addAtt();
		this.intervaler(
			c$(this,'fadeIn'),
			t
		);
	}
	opacity.prototype.iFadeOut=function(t){
	    this.addAtt();
	    this.o.jump=this.nB;
		this.intervaler(
			c$(this,'fadeOut'),
			t
		);
	} 	
	opacity.prototype.addAtt=function(){	
		try{this.el.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+this.o.current+')';
        this.el.style.filter='alpha(opacity='+this.o.current+')';}catch(err){}//better method?
	}
	opacity.prototype.fadeIn=function(){//check version'n'.1-malformed
		if(this.o.start==0){this.el.style.display='block';}
		//if(isNaN(parseInt(this.n))){
		    if((this.o.stop-this.o.current<=(this.n))){this.o.jump-=this.nB;if(this.o.jump<this.nB){this.o.jump=this.nB;}}
		    else if(this.jump<this.storeJump){this.o.jump+=this.nB;}
		//}
		if(this.o.current<this.o.stop){this.o.current+=this.o.jump;}
		else if(this.jump<this.storeJump){this.o.jump+=this.nB;}
		if(this.o.current>=this.o.stop){
		    try{this.el.style.removeAttribute('filter');}catch(err){}
		    clearInterval(this.interval);
		}
		this.apply(); 
	}
	opacity.prototype.fadeOut=function(){
		if(this.o.stop-this.o.current<=this.n&&this.o.jump<this.o.storeJump){this.o.jump+=this.nB;}
		else if((this.o.start+this.o.current<=this.n+this.o.jump)&&this.o.jump>this.nB){this.o.jump-=this.nB;}
		else{this.o.jump=this.o.storeJump;}
		if(this.o.current>this.o.start){this.o.current-=this.o.jump;}				
		if(this.o.current<=this.o.start){
		    clearInterval(this.interval);
		    try{this.el.style.removeAttribute('filter');}catch(err){}
		    if(this.o.start==0){this.el.style.display='none';}
		    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 c$(a,b){
		return(
			function(e){
				return a[b](e,this);
			}
		)
	}
	function d$(a,b,c){
	    return(
	        function(){
	            return a[b](c);        
	        }    
	    )
	}
	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 $$(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)
    }
    function $(id){return document.getElementById(id);}    
    var Dom={get:function(el){if(typeof el==='string'){return $(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;} 
