// create the tooltip object

function tooltip(){}



// setup properties of tooltip object

tooltip.id="tooltip";

tooltip.offsetx = 30;

tooltip.offsety = 10;

tooltip.x = 0;

tooltip.y = 0;

tooltip.snow = 0;

tooltip.tooltipElement=null;

tooltip.saveonmouseover=null;

tooltip.ie4 = (document.all)? true:false;		// check if ie4

tooltip.ie5 = false;

if(tooltip.ie4) tooltip.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0 || navigator.userAgent.indexOf('MSIE 6')>0);

tooltip.dom2 = ((document.getElementById) && !(tooltip.ie4||tooltip.ie5))? true:false; // check the W3C DOM level2 compliance. ie4, ie5, ns4 are not dom level2 compliance !! grrrr >:-(





/**

* Open ToolTip. The title attribute of the htmlelement is the text of the tooltip

* Call this method on the mouseover event on your htmlelement

* ex :  <div id="myHtmlElement" onmouseover="tooltip.show(this)"...></div>

*/

tooltip.show = function (htmlelement, div_innerHTML) {



   text=div_innerHTML;



	if(this.dom2){

		this.tooltipElement = document.getElementById(this.id);

      this.saveonmouseover=document.onmousemove;

		document.onmousemove = this.mouseMove;

	}else if ( this.ie4 ) {

      this.tooltipElement = document.all[this.id].style;

      this.saveonmouseover=document.onmousemove;

      document.onmousemove = this.mouseMove;

	}



   if ( this.ie4 || this.dom2 ) {

      if(this.ie4) document.all[this.id].innerHTML = text;

      else if(this.dom2) document.getElementById(this.id).innerHTML=text;



      this.moveTo(this.x + this.offsetx , this.y + this.offsety);



      if(this.ie4) this.tooltipElement.visibility = "visible";

      else if(this.dom2) this.tooltipElement.style.visibility ="visible";

   }

   return false;

}



/**

* hide tooltip

* call this method on the mouseout event of the html element

* ex : <div id="myHtmlElement" ... onmouseout="tooltip.hide(this)"></div>

*/

tooltip.hide = function (htmlelement)

{

	if (this.ie4 || this.dom2)

	{

		if(this.ie4)

			this.tooltipElement.visibility = "hidden";

      	else if (this.dom2)

			this.tooltipElement.style.visibility = "hidden";



     	document.onmousemove=this.saveonmouseover;

	}

}







// Moves the tooltip element

tooltip.mouseMove = function (e)

{

   // we don't use "this", but tooltip because this method is assign to an event of document

   // and so is dreferenced



   if (tooltip.ie4 || tooltip.dom2)

   {

      if (tooltip.dom2)

	  {

         tooltip.x = e.pageX;

         tooltip.y = e.pageY;

      }

	  else

	  {

         if ((tooltip.ie4) || (tooltip.ie5))

		 {

		 	tooltip.x = event.x + document.body.scrollLeft;

			tooltip.y = event.y + document.body.scrollTop;

		 }

      }



      tooltip.moveTo( tooltip.x + tooltip.offsetx , tooltip.y + tooltip.offsety);

   }

}



// Move the tooltip element

tooltip.moveTo = function (xL, yL)

{

	if (this.dom2)

	{

		this.tooltipElement.style.left = xL + 'px';

    	this.tooltipElement.style.top = yL + 'px';

	}

	else if (this.ie4)

	{

    	this.tooltipElement.left = xL;

     	this.tooltipElement.top = yL;

   	}

}




