Tips.implement({  
  changeHTML: function(element)
  {        
    if($defined($(element.id+'_info')))
      $(element.id+'_info').replaces(this.container);      
  }
});
  
function init_tooltips()
{
  a = $$('.tooltip');      
  a.each(function(tip)
  {
    var closeButton = $(tip.id+'_close');
    var CustomTips = new Tips(tip,{ onShow:function(tip){
      //tip.set('tween', {duration: 150});
      //tip.tween('opacity', '1');
      tip.setStyle('visibility', 'visible');
      
    },
    onHide: function(tip){
      closeButton.addEvent('click', function(e){
          //fx.start('opacity','1','0');
          // tip.tween('opacity', '0');
          tip.setStyle('visibility', 'hidden');
          closeButton.removeEvent('click');
          e.stop();
      });
      
      $$('body').addEvent('click', function(e){
        if(e.client.x < tip.getPosition().x || e.client.x > tip.getPosition().x+tip.getScrollWidth()){
         //tip.tween('opacity', '0');
          tip.setStyle('visibility', 'hidden');
          closeButton.removeEvent('click');
        } else if(e.page.y < tip.getPosition().y || e.page.y > tip.getPosition().y+tip.getScrollHeight()){
          //tip.tween('opacity', '0');
          tip.setStyle('visibility', 'hidden');
          closeButton.removeEvent('click');
        }
      });
    },
    // offsets:{x:-100, y:-$(tip.id+'_info').getScroll().y-15},
    offsets:{x:0, y:16},
    fixed: true  
    });
    CustomTips.changeHTML(tip);        
    tip.addEvent('mouseover',function()
    {
      tip.addClass('selected');
    });
    tip.addEvent('mouseout',function()
    {
      tip.removeClass('selected');
    });
  });
};