// tooltip widget
function toggleTooltip(event, element) { 
  var __x = Event.pointerX(event);
  var __y = Event.pointerY(event);
  //alert(__x+","+__y);
  //element.style.top = __y + 5;  
  //element.style.left = __x - 40;
    
  if(Prototype.Browser.IE)
  {
    element.style.top = __y + 5;
    element.style.left = __x - 80;
  }  
  
    
  $('.tooltip').hide('normal');
  $('.tooltip_content').css({top:"0px", left: "0px"});


  var e = $('#' + element.id)
  if(e.is(':visible'))
    e.hide('fast');
  else
    e.show('fast', checkTooltips );
}

function checkTooltips(event)
{
  $$('.tooltip').each(function(tooltip) {
    if(tooltip.visible())
    {
      var tooltip_d = tooltip.getDimensions(); //width, height
      var tooltip_o = tooltip.cumulativeOffset(); 
      var viewport_d = document.viewport.getDimensions(); //width, height
      var viewport_o = document.viewport.getScrollOffsets(); 
          
      if(viewport_d.width > tooltip_d.width) //abort if window is too small anyway  
        if(viewport_o[0] + viewport_d.width < tooltip_o[0] + tooltip_d.width) 
        {
          left = viewport_o[0] + viewport_d.width - tooltip_o[0] - tooltip_d.width - 20;
          tooltip.firstDescendant().style.left = left + 'px';
        }
        
      if(viewport_d.height > tooltip_d.height) //abort if window is too small anyway  
        if(viewport_o[1] + viewport_d.height < tooltip_o[1] + tooltip_d.height) 
        {
          top = viewport_o[1] + viewport_d.height - tooltip_o[1] - tooltip_d.height - 20;
          tooltip.firstDescendant().style.top = top + 'px';
        }
    }
  });
}
