var tooltip=function(){
 var x_id = 'tt';
 var x_top = 3;
 var x_left = -50;
 var x_maxw = 300;
 var x_speed = 10000;
 var x_timer = 0;
 var x_endalpha = 100;
 var x_alpha = 20;
 var tt,t,c,b,x_h;
 var x_ie = document.all ? true : false;
 return{
  show:function(x_v,x_w){
   if(tt == null){
    tt = document.createElement('div');
    tt.setAttribute('id',x_id);
    t = document.createElement('div');
    t.setAttribute('id',x_id + 'x_top');
    c = document.createElement('div');
    c.setAttribute('id',x_id + 'cont');
    b = document.createElement('div');
    b.setAttribute('id',x_id + 'bot');
    tt.appendChild(t);
    tt.appendChild(c);
    tt.appendChild(b);
    document.body.appendChild(tt);
    tt.style.opacity = 0;
    tt.style.filter = 'alpha(opacity=0)';
    document.onmousemove = this.pos;
   }
   tt.style.display = 'block';
   c.innerHTML = x_v;
   tt.style.width = x_w ? x_w + 'px' : 'auto';
   if(!x_w && x_ie){
    t.style.display = 'none';
    b.style.display = 'none';
    tt.style.width = tt.offsetWidth;
    t.style.display = 'block';
    b.style.display = 'block';
   }
  if(tt.offsetWidth > x_maxw){tt.style.width = x_maxw + 'px'}
  x_h = parseInt(tt.offsetHeight) + x_top;
  clearInterval(tt.timer);
  tt.timer = setInterval(function(){tooltip.fade(1)},x_timer);
  },
  pos:function(e){
   var x_u = x_ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
   var x_l = x_ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
   tt.style.top = (x_u - x_h) + 'px';
   tt.style.left = (x_l + x_left) + 'px';
  },
  fade:function(x_d){
   var x_a = x_alpha;
   if((x_a != x_endalpha && x_d == 1) || (x_a != 0 && x_d == -1)){
    var x_i = x_speed;
   if(x_endalpha - x_a < x_speed && x_d == 1){
    x_i = x_endalpha - x_a;
   }else if(x_alpha < x_speed && x_d == -1){
     x_i = x_a;
   }
   x_alpha = x_a + (x_i * x_d);
   tt.style.opacity = x_alpha * .01;
   tt.style.filter = 'alpha(opacity=' + x_alpha + ')';
  }else{
    clearInterval(tt.timer);
     if(x_d == -1){tt.style.display = 'none'}
  }
 },
 hide:function(){
  clearInterval(tt.timer);
   tt.timer = setInterval(function(){tooltip.fade(-1)},x_timer);
  }
 };
}();
