
/*
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
modified one more time by sergey korowkin <sergey@korowkin.ru> | http://korowkin.ru
*/

var tooltip = {
  options: {
    attr_name: "title",
    blank_text: "",
    newline_entity: "<br>",
    max_width: 0,
    delay: 174,
    skip_tags: ["link", "style"]
  },

  t: null,
  c: null,
  aj: null,
  sex: null,
  g: false,
  canvas: document.getElementsByTagName(document.compatMode && document.compatMode == "CSS1Compat" ? "HTML" : "BODY")[0],

  m: function(e){
    if (tooltip.g){
      // IE sucks, really
      if (Prototype.Browser.IE)
       {
        var x = window.event ? event.clientX + tooltip.canvas.scrollLeft : e.pageX;
        var y = window.event ? event.clientY + tooltip.canvas.scrollTop : e.pageY;
       }
      else
       {
        var x = e.pageX ? e.pageX : (event.clientX + tooltip.canvas.scrollLeft);
        var y = e.pageY ? e.pageY : (event.clientY + tooltip.canvas.scrollTop);
       }
      tooltip.a(x, y);
    }
  },

  d: function(){
//    tooltip.t.setAttribute("id", "tooltip");
    tooltip.t = $('tooltip');
    document.body.appendChild(tooltip.t);
    var a = document.all && !window.opera ? document.all : document.getElementsByTagName("*"); // in opera 9 document.all produces type mismatch error
    var l = a.length;
    for (var i = 0; i < l; i++){

      if (!a[i]) continue;

      var tooltip_title = a[i].title; // returns form object if IE & name="title"; then IE crashes; so...
      if (tooltip_title && typeof tooltip_title != "string") tooltip_title = "";

      a[i]._damn = a[i].title;
      a[i].title = '';
    }
    document.onmousemove = tooltip.m;
    window.onscroll = tooltip.h;
    tooltip.a(-99, -99);
  },
  
  _: function(s){
    s = s.replace(/\&/g,"&amp;");
    s = s.replace(/\</g,"&lt;");
    s = s.replace(/\>/g,"&gt;");
    return s;
  },

  sx: function()
   {
    tooltip.t.innerHTML = '<img src="' + absbaseurl + 'i/loading.gif?" width="16" height="16" border="0">';
    tooltip.t.style.visibility = 'visible';
    tooltip.g = true;
    tooltip.aj = new Ajax.Updater('tooltip', '/ajax/tooltip.html?wtf=' + tooltip.sxe, { asynchronous: true });
   },

  s: function(e){
    var d = window.event ? window.event.srcElement : e.target;
    
    var s = e._damn;//d.getAttribute('title');

    if (1){
      var s = tooltip._(s);
      s = s.replace(eval("/" + tooltip._(tooltip.options.newline_entity) + "/g"), "<br />");
      tooltip.t.innerHTML = s;
    }

    tooltip.c = setTimeout("tooltip.t.style.visibility = 'visible'", tooltip.options.delay);
    tooltip.g = true;
  },

  h: function(e){
    tooltip.t.style.visibility = "hidden";
    if (!tooltip.options.newline_entity && 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--Opera 7b workaround!
    else if (o.attachEvent) o.attachEvent("on" + e, a);
      else return null;
  },

  a: function(x, y){
//    var w_width = tooltip.canvas.clientWidth ? tooltip.canvas.clientWidth + tooltip.canvas.scrollLeft : window.innerWidth + window.pageXOffset;
//    var w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : tooltip.canvas.clientHeight + tooltip.canvas.scrollTop; // should be vice verca since Opera 7 is crazy!

//    tooltip.t.style.width = tooltip.options.max_width && tooltip.t.offsetWidth > tooltip.options.max_width ? tooltip.options.max_width + "px" : "auto";
    
//    var t_width = tooltip.t.offsetWidth;
//    var t_height = tooltip.t.offsetHeight;

    tooltip.t.style.left = (x - 100) + "px";
    tooltip.t.style.top = y + 20 + "px";
  }
}

// fixPNG(); http://www.tigir.com/js/fixpng.js (author Tigirlas Igor)
function fixPNG(element)
{
  if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
  {
    var src;
    
    if (element.tagName=='IMG')
    {
      if (/\.png$/.test(element.src))
      {
        src = element.src;
        element.src = absbaseurl + 'i/0.gif';
      }
    }
    else
    {
      src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
      if (src)
      {
        src = src[1];
        element.runtimeStyle.backgroundImage="none";
      }
    }
    
    if (src) element.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
  }
}