var Tooltip = Class.create();
var tooltip_element = "";
var tooltip_call = "";
var old_posx = 0;
var old_posy = 0;
var tooltip_disabled = false;

Tooltip.prototype = {
	initialize: function()
	{
		var content = "";
		content += '<div id="tooltip" style="display:none">';
		content += '</div>';
		document.write(content);
		//$('tooltip').hide();

	},
	show: function(element,text,multiline,move_effect,dynamic)
	{

		if(tooltip_element == "")
		{
			if(dynamic == null)
			{
				var dynamic = false;
			}
			tooltip_element = element;
			var timeout = 0;


			var content = "";
			content += '	<table width="100%" cellpadding="4" cellspacing="1" class="maintable">';
			if(text.match(/<br/) && multiline)
			{
				multiline = true;
				content += '		<tr>';
				content += '			<td class="tablehead2" align="right"><b><a href="javascript:myTooltip.close()" onmouseover="myTooltip.close()">X</a></b></td>';
				content += '		</tr>';
			}
			content += '		<tr>';
			content += '			<td id="tooltip_content" class="tooltip"></td>';
			content += '		</tr>';
			content += '	</table>';
			$('tooltip').innerHTML = content;
			
			$('tooltip_content').innerHTML = text;
			$('tooltip_content').show();
			//alert(element.x);
			element.title ="";
			var posy = 0;
			var posx = 0;

			var width = element.offsetWidth;
			var height = element.offsetHeight;
			if(width>30 && height>30)
			{
				dynamic = true;
			}
			$('tooltip').show();
			new Event.observe(
			         element,
			         'mousemove',
			         function(event){
			         	//$('tooltip').innerHTML = Event.pointerX(event);
			         	if((posy==0 && posx==0) || dynamic)
			         	{
			         		posy = Event.pointerY(event)+10;
			         		posx = Event.pointerX(event)+10;
			         		myTooltip.move(posx,posy,false);
			         	}
			         },false);
			if(!multiline)
			{
				new Event.observe(
			 		element,
			 		'mouseout',
			 		function(event){
			 			myTooltip.close();

					}
				,false);
			}
		}else{
			if(tooltip_element!=element)
			{

				tooltip_element = "";
				//this.close();
				this.show(element,text,multiline,true);
			}
		}


	},
	close: function()
	{
		tooltip_element = "";
		$('tooltip').hide();
	},
	move: function(x,y,effect)
	{
		if(effect)
		{
			new Effect.Move ('tooltip',{ x: x, y: y,mode: 'absolute'});
			setTimeout("myTooltip.move("+x+","+y+");",1000);
		}else{
			$('tooltip').setStyle({
			  top: y+"px",
			  left: x+"px"
			});
		}
	}


};

var myTooltip = new Tooltip();
function tooltip(element,text,multiline)
{
	myTooltip.show(element,text,multiline);
}