/*
originally written by paul sowden <paul@idontsmoke.co.uk> | http://idontsmoke.co.uk
modified and localized by alexander shurkayev <alshur@narod.ru> | http://htmlcoder.visions.ru
*/
var _w=window,_d=document;
_w.onerror = null;
var tooltip_attr_name = "tooltip",tooltip_len=45;


// в этой-же строке вызываются 2 функции - 
//рисование модных титлов к ссылкам и картинкам 
//и подсветка строк таблиц.
_w.onload=function(e){if(_d.createElement)tooltip.d();setevents('i3');}

tooltip={
  t: _d.createElement("DIV"),
  c: null,
  g: false,

  m: function(e)
  {
    if (tooltip.g)
    {
      oCanvas=_d.getElementsByTagName((_d.compatMode&&_d.compatMode=="CSS1Compat")?"HTML":"BODY")[0];
      x=_w.event?event.clientX+oCanvas.scrollLeft:e.pageX;
      y=_w.event?event.clientY+oCanvas.scrollTop:e.pageY;
      tooltip.a(x,y);
    }
  },

  d: function()
  {
//    return;
    tooltip.t.setAttribute("id", "tooltip");
    //tooltip.t.style.filter = "alpha(opacity=85)"; // buggy in ie5.0
    _d.body.appendChild(tooltip.t);
    a=_d.all?_d.all:_d.getElementsByTagName("*");
    aLength=a.length;
    for(var i=0;i<aLength;i++)
    {
    
      if (a[i].getAttribute("title"))
      {
      //alert(a[i]);
      
        a[i].setAttribute(tooltip_attr_name,a[i].getAttribute("title"));
        if (a[i].getAttribute(tooltip_attr_name)){
          if (a[i].getAttribute("title")) a[i].removeAttribute("title");
          if (a[i].getAttribute("alt") && a[i].complete) a[i].removeAttribute("alt");
          tooltip.l(a[i],"mouseover",tooltip.s);
          tooltip.l(a[i],"mouseout",tooltip.h);
        }
      }
      else if(a[i].getAttribute("alt")&&a[i].complete)
      {
        a[i].setAttribute(tooltip_attr_name, a[i].getAttribute("alt"));
        if (a[i].getAttribute(tooltip_attr_name))
        {
          a[i].removeAttribute("alt");
          tooltip.l(a[i], "mouseover", tooltip.s);
          tooltip.l(a[i], "mouseout", tooltip.h);
        }
      }
      
    }
    _d.onmousemove = tooltip.m;
    _w.onscroll = tooltip.h;
  },

  s: function(e){
  var _w=window,_d=document;
    d=_w.event?_w.event.srcElement:e.currentTarget;
    if(!d.getAttribute(tooltip_attr_name))return;
    if(tooltip.t.firstChild)tooltip.t.removeChild(tooltip.t.firstChild);
    tooltip.t.appendChild(_d.createTextNode(d.getAttribute(tooltip_attr_name)));
    //alert(e.currentTarget);
//    
//    s = d.getAttribute(tooltip_attr_name);
//    tooltip.t.innerHTML = "<span class=hidden>все для лошади и всадника</span><br />"+s;
//    re = /  /i;
//    tooltip.t.innerHTML = s.replace(re, "<br />");

    tooltip.c=setTimeout("tooltip.t.style.visibility='visible';",1);
    tooltip.g=true;
    var tmp=d.getAttribute(tooltip_attr_name);
    tooltip.t.setAttribute("id",(tmp.length>tooltip_len)?"tooltip_big":"tooltip");
  },

  h: function(e){
    tooltip.t.style.visibility = "hidden";
    // thanks to Alexander Shurkayev for helping me optimise this line :-)
    if (tooltip.t.firstChild)
    tooltip.t.removeChild(tooltip.t.firstChild);
    clearTimeout(tooltip.c);
    tooltip.g = false;
    tooltip.a(-99, -99);
  },

  l: function(o,e,a){
    if(o.addEventListener)o.addEventListener(e,a,false);
    // was true--Opera7b workaround!
    else if(o.attachEvent)o.attachEvent("on"+e,a);
      else return null;
  },

  a: function(x,y){
    oCanvas=_d.getElementsByTagName((_d.compatMode &&_d.compatMode=="CSS1Compat")?"HTML":"BODY")[0];
    w_width=_w.innerWidth?_w.innerWidth+_w.pageXOffset:oCanvas.clientWidth+oCanvas.scrollLeft;
    w_height=_w.innerHeight?_w.innerHeight+_w.pageYOffset:oCanvas.clientHeight+oCanvas.scrollTop;

    t_width=_w.event?tooltip.t.clientWidth:tooltip.t.offsetWidth;
    t_height=_w.event?tooltip.t.clientHeight:tooltip.t.offsetHeight;

    t_extra_width=7;
    // CSS padding + borderWidth;
    t_extra_height=5;
    // CSS padding + borderHeight;

    tooltip.t.style.left=x+8+"px";
    tooltip.t.style.top=y+8+"px";

    while(x+t_width+t_extra_width>w_width){
      x-=x+t_width+t_extra_width-w_width;
      tooltip.t.style.left=x+"px";
      t_width=_w.event?tooltip.t.clientWidth:tooltip.t.offsetWidth;
    }

    while(y+t_height + t_extra_height > w_height){
      y-=y+t_height + t_extra_height - w_height;
      tooltip.t.style.top = y + "px";
      t_height=_w.event?tooltip.t.clientHeight:tooltip.t.offsetHeight;
    }
  }
}
