if (typeof jQuery != 'undefined') {
  $j = jQuery.noConflict();

  var documentHeight;
  var title;

  $j(document).ready(function()
  {
    documentHeight = $j(document).height();
    $j('img[title]').hover(
      function()
      {
        title = $j(this).attr('title');
        $j(this).removeAttr('title');
        $j('#tooltip').html(title).css('display', 'inline');
        $j(document).mousemove(updatePosition);
      },
      function()
      {
        $j('#tooltip').css('display', 'none');
        $j(this).attr('title', title);
      }
    );
  });
  
  function updatePosition(event)
  {
    var left = 10;
    var top  = 10;
    var previewHeight = $j($j('#tooltip').children()[0]).children().height();
    var prevMaxDim = 380;
    var magic = 320;

    if ($j(document).width() - event.pageX < prevMaxDim)
      left  = event.pageX - left - (prevMaxDim + 20);
    else
      left += event.pageX;
    
    top += event.pageY;
    if (documentHeight - event.pageY < (previewHeight + magic))
      top -= Math.max((previewHeight + event.pageY - documentHeight - $j(document).scrollTop() + magic), 0);
    
    if (top < 0)
      top *= -1;
    
    $j('#tooltip').css('left', left + 'px').css('top' , top + 'px');
  }
}


