var tooltip_attr_name = "tooltip";
var tooltip_blank_text = "(откроется в новом окне)";
var tooltip_newline_entity = "  ";
var tooltip_delay = 1000;
var tooltip_timeout = 3000;

tooltip={
t: document.createElement("DIV"),
c: null,
q: null,
g: false,
m: function(e){
 if(tooltip.g){
 oCanvas = document.getElementsByTagName( (document.compatMode && document.compatMode=="CSS1Compat") ? "HTML" : "BODY")[0];
 x = window.event ? event.clientX + oCanvas.scrollLeft : e.pageX;
 y = window.event ? event.clientY + oCanvas.scrollTop : e.pageY;
 tooltip.a(x + 10, y);
 d = (window.event) ? window.event.srcElement : e.currentTarget;
 if(d.getAttribute(tooltip_attr_name))
  window.status = d.getAttribute(tooltip_attr_name);
 }
},
d:function(){
 try{
  tooltip.t.setAttribute("id", "tooltip");
  document.body.appendChild(tooltip.t);
  a = (document.all) ? document.all : document.getElementsByTagName("*");
  aLength = a.length;
  for (var i = 0; i < aLength; i++){
  if(!a[i] || !a[i].tagName) continue;
  tooltip_title = a[i].getAttribute("title");
  tooltip_alt = a[i].getAttribute("alt");
  tooltip_blank = a[i].getAttribute("target") && a[i].getAttribute("target") == "_blank" && tooltip_blank_text;
  if(a[i].getAttribute("href")&&!a[i].tagName.search(/a/i))a[i].href=a[i].href.replace(/.*http\/\//i,"http://");
  if(tooltip_title || tooltip_blank){
     a[i].setAttribute(tooltip_attr_name, tooltip_blank ? (tooltip_title ? tooltip_title + " " + tooltip_blank_text : "") : tooltip_title);
     if(a[i].getAttribute(tooltip_attr_name)){
       a[i].removeAttribute("title");
       if(tooltip_alt && a[i].complete) a[i].removeAttribute("alt");
       tooltip.l(a[i], "mouseover", tooltip.s);
       tooltip.l(a[i], "mouseout", tooltip.h);
     }
   }else if (tooltip_alt && (a[i].complete || a[i].coords)){
     a[i].setAttribute(tooltip_attr_name, tooltip_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);
     }
   }
  }
  document.onmousemove = tooltip.m;
  window.onscroll = tooltip.h;
  document.onclick = tooltip.h;
  document.oncontextmenu = tooltip.h;
  document.ondragstart = tooltip.h;
  tooltip.a(-99, -99);
 }catch(e){}
},

s:function(e){
  d = (window.event) ? window.event.srcElement : e.currentTarget;
  if (!d.getAttribute(tooltip_attr_name)) return;
  s = d.getAttribute(tooltip_attr_name);
  window.status = s;
  if (tooltip_newline_entity){
    s = s.replace(/\&/g,"&amp;");
    s = s.replace(/\</g,"&lt;");
    s = s.replace(/\>/g,"&gt;");
    s = s.replace(/  /g,"<br>");
    tooltip.t.innerHTML = s;
  }else{
    if (tooltip.t.firstChild) tooltip.t.removeChild(tooltip.t.firstChild);
      tooltip.t.appendChild(document.createTextNode(s));
  }
  tooltip.g = true;
  tooltip.c = setTimeout("tooltip.t.style.visibility='visible';tooltip.q=setTimeout(\"tooltip.h();\",tooltip_timeout);", tooltip_delay);
},

h:function(e){
  clearTimeout(tooltip.c);
  clearTimeout(tooltip.q);
  window.status="";
  tooltip.t.style.visibility = "hidden";
  if (!tooltip_newline_entity && tooltip.t.firstChild) tooltip.t.removeChild(tooltip.t.firstChild);
  tooltip.g = false;
  tooltip.a(-99,-99);
},

l:function(o, e, a){
  if (o.addEventListener) o.addEventListener(e, a, false);
  else if (o.attachEvent) o.attachEvent("on" + e, a);
  else return null;
},

a:function(x, y){
  oCanvas = document.getElementsByTagName( (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];
  w_width = window.innerWidth ? window.innerWidth + window.pageXOffset : oCanvas.clientWidth + oCanvas.scrollLeft;
  w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop;
  t_width = window.event ? tooltip.t.clientWidth : tooltip.t.offsetWidth;
  t_height = window.event ? tooltip.t.clientHeight : tooltip.t.offsetHeight;

  t_extra_width = 7;
  t_extra_height = 5;

  tooltip.t.style.left = x + 8 + "px";
  tooltip.t.style.top = y + 8 + "px";

  while (x + t_width + t_extra_width > w_width){
      --x;
      tooltip.t.style.left = x + "px";
      t_width = window.event ? tooltip.t.clientWidth : tooltip.t.offsetWidth;
  }
  while (y + t_height + t_extra_height > w_height){
      --y;
      tooltip.t.style.top = y + "px";
      t_height = window.event ? tooltip.t.clientHeight : tooltip.t.offsetHeight;
  }
 }

}

function _(s){document.write(s)}
window.onerror = null;
window.onload = tooltip.d;
