I just releases version 0.2 of my tooltip.js library.
The new version follows the mouse correctly on Firefox (thanks to Graham TerMarsch) and can apply a constant delta when displaying the tooltip. This can be useful if your CSS rules include absolute positioning that can result in a constant offset.
var my_tooltip = new Tooltip('id_of_trigger_element',
'id_of_tooltip_to_show_element',
{ delta_x: -210, delta_y: 20 })
Another nice addition (by Xavier Lepaul) is the ability to create tooltips out of given text. Version 0.1 required you to give it the DOM id of a valid element. Version 0.2 will create a div with the class tooltip if it is given only text:
var my_other_tooltip = new Tooltip('id_of_trigger_element', 'a nice description')
This can be used to create popups out of title attributes:
Event.observe(window,"load",function() {
$$("*").findAll(function(node){
return node.getAttribute('title');
}).each(function(node){
new Tooltip(node,node.title);
node.removeAttribute("title");
});
});
You can get tooltip.js here and you can try out the live demo.

var aide = { bulles: [] , active: true //, mess_actif : 'désactiver' //, mess_inactif : 'activer' , activer: function () { this.bulles.each(function (bulle) { bulle.registerEvents(); } ); this.active = true; //$('option_aide').innerHTML = this.mess_actif; } , stopper: function () { this.bulles.each(function (bulle) { bulle.destroy(); } ); this.active = false; //$('option_aide').innerHTML = this.mess_inactif; } , init: function () { $A(document.getElementsByClassName('aide')) .each(function(node){ this.bulles.push( new Tooltip(node, node.title, {min_distance_x: 10, min_distance_y: 16} ) ); node.removeAttribute("title"); }.bind(this)); if (!this.active) this.stopper(); } , inverser: function () { if (this.active) this.stopper(); else this.activer(); } }Commented lines are for changing the activate link time at run-time, for multilingual sites. BTW, this markdown syntax is dumb