tooltip_offset = 10;
speechify_path = $('script[src*=speechify.js]').attr('src').replace(/[^\/]*$/, '');
spike_file = speechify_path + 'tooltip_spike.gif';
$('script:last').after("<link rel='stylesheet' type='text/css' href='" + speechify_path + "tooltip.css' />");

;(function($) {
	$.fn.speechify = function() {
		
		return this.each(function() {
			$(this).data('speech', this.title);
			this.title = '';
			$(this).hover(function(e){											  							  
				
				$("body").append("<img src='" + spike_file + "' id='tooltip_spike' /><p id='tooltip'>" + $(this).data('speech') + "</p>");
				$("#tooltip, #tooltip_spike").show();		
		    },
				function(){		
					$("#tooltip, #tooltip_spike").remove();
		  });
			$(this).mousemove(function(e){
				$("#tooltip_spike")
					.css("bottom",($(window).height() - ($(this).offset().top)) + "px")
					.css("left",(e.pageX - 8) + "px");
				$("#tooltip")
					.css("bottom",($(window).height() - ($(this).offset().top)) + "px")
					.css("left",(e.pageX - 8 - 7) + "px");
			});
			$(this).click(function(e){
				$(this).mouseout();
			});
		});
	}
})(jQuery);

$(function() {
	$('*[title]').each(function() {
		if ($(this).attr('title')!='') {
			$(this).speechify();
		}
	});
});
@@ -13,16 +13,32 @@
 et = 10;
+ // Right offset
 %0Aspeechi
@@ -113,16 +113,59 @@
 $/, '');
+ // Trick to find out the url of the plugin
 %0Aspike_f
@@ -207,16 +207,36 @@
 ke.gif';
+ // Url of the spike
 %0A$('scri
@@ -337,16 +337,189 @@
 s' /%3E%22);
+ // Add CSS file%0A%0A$(%22body%22).append(%22%3Cimg src='%22 + spike_file + %22' id='tooltip_spike' /%3E%3Cp id='tooltip'%3E%22 + $(this).data('speech') + %22%3C/p%3E%22); // Add tooltip and spike to page
 %0A%0A;(func
@@ -652,16 +652,66 @@
 le = '';
+ // Empty the title to disable the default tooltip
 %0A%09%09%09$(th
@@ -736,21 +736,21 @@
 (e)%7B
-%09%09%09%09%09%09%09%09%09%09%09  
+ // Rollover%09
 %09%09%09%09
@@ -758,140 +758,17 @@
 %09%09  
-%0A
 %09%09%09%09
-%0A
 %09%09%09
-%09$(%22body%22).append(%22%3Cimg src='%22 + spike_file + %22' id='tooltip_spike' /%3E%3Cp id='tooltip'%3E%22 + $(this).data('speech') + %22%3C/p%3E%22);
+  
 %0A%09%09%09
@@ -874,13 +874,11 @@
 e%22).
-remov
+hid
 e();
@@ -915,24 +915,36 @@
 function(e)%7B
+ // Position
 %0A%09%09%09%09$(%22#too
@@ -1244,61 +1244,285 @@
 (e)%7B
-%0A%09%09%09%09$(this).mouseout();%0A%09%09%09%7D);%0A%09%09%7D);%0A%09%7D%0A%7D)(jQuery);%0A
+ // Make it disapear on click to avoid it to stay on some Ajax tricks%0A%09%09%09%09$(this).mouseout();%0A%09%09%09%7D);%0A%09%09%7D);%0A%09%7D%0A%7D)(jQuery);%0A// Assign elements with a non-blank title field%0A// You might overwrite this if you want to use livequery or whatever%0A// But i keep this for the ease of use
 %0A$(f

Refactor rollover part