/**
 * @author justin
 */
tooltip = {
   showEvent : "click" ,
   hideEvent : "mouseover"  ,

   xCursor : -1,  xPadding : 15,
   yCursor : -1,  yPadding : 15,

   ttPrefix : "jtb",
   ttClassName : "tooltip",

   tts : {},

/* **********mouseover****mouseout********************************************************************************** */


getMouseXY : function (e) { 
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

  if (e)
  { 
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      tooltip.xCursor = e.pageX;
      tooltip.yCursor = e.pageY;
     
     
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
    
    
        if (document.documentElement && document.documentElement.scrollTop>=0)
        {
        
             tooltip.xCursor = e.clientX + document.documentElement.scrollLeft;
            tooltip.yCursor = e.clientY + document.documentElement.scrollTop;
        }
        else if (document.body && document.body.scrollTop>=0)
        {
            tooltip.xCursor = e.clientX + document.body.scrollLeft;
            tooltip.yCursor = e.clientY + document.body.scrollTop;
        }

     
      
      
    }  
  }
},
InitMouse : function () { 
   
    if (document.documentElement && document.documentElement.scrollTop)
        {
        
              document.documentElement.scrollTop=document.documentElement.scrollTop+1000;
        }
        else if (document.body && document.body.scrollTop)
        {
            tooltip.xCursor = e.clientX + document.body.scrollLeft;
            tooltip.yCursor = e.clientY + document.body.scrollTop;
        }
       var  evt = document.createEvent('MouseEvents'); 
        document.dispatchEvent(evt); 
},
/* ************************************************************************************************ */

   addEventListener : function (sender, e, l ) {
        sender["on"+e] = l;
   },

   

/* ************************************************************************************************ */


   simple: function(source,target,evon,evoff)
   {
   	 
		var curent, prev;

		curent=document.getElementById(target);
		curent.style.display = "none";
        curent.style.position = "absolute";
			
		prev=document.getElementById(source);
	 	tooltip.addEventListener ( prev, evon, tooltip.showTT );
        tooltip.addEventListener ( prev, evoff, tooltip.hideTT );
        if ( prev.id == "" ) prev.id = tooltip.genID();
        if ( curent.id == "" ) curent.id = tooltip.genID();
        tooltip.tts[prev.id] = curent.id;
        tooltip.tts[prev.id] = curent.id ;
		
   },


   init : function() {
   window.scroll(0,1);    var clsRegExp = new RegExp("(^|\\s)" + tooltip.ttClassName + "(\\s|$)");
      var forRegExp = new RegExp("(^|\\s)" + tooltip.ttPrefix    );

      var allElements = document.body.getElementsByTagName("*");

      var curent, prev;

      for ( var i=0; i < allElements.length; i++ ) {
         curent = allElements[i];
         if ( clsRegExp.test ( curent.className ) ) {
            prev = allElements[i-1];
            tooltip.addEventListener ( prev, tooltip.showEvent, tooltip.showTT );
            tooltip.addEventListener ( prev, tooltip.hideEvent, tooltip.hideTT );
            if ( prev.id == "" ) prev.id = tooltip.genID();
            if ( curent.id == "" ) curent.id = tooltip.genID();
            tooltip.tts[prev.id] = curent.id;

            curent.style.display = "none";
            curent.style.position = "absolute";

         } else if ( forRegExp.test ( curent.className ) ) {
            var x = curent.className.indexOf ( tooltip.ttPrefix ) ;
            var y = curent.className.indexOf ( ' ', x );
            y = ( y == -1 ) ? curent.className.length : y;

            var prevID = curent.className.substring(x+4, y );

            prev = document.getElementById ( prevID );

            if ( prev ) {
               tooltip.addEventListener ( prev, tooltip.showEvent, tooltip.showTT );
               tooltip.addEventListener ( prev, tooltip.hideEvent, tooltip.hideTT );
               if ( prev.id == "" ) prev.id = tooltip.genID();
               if ( curent.id == "" ) curent.id = tooltip.genID();
               tooltip.tts[prev.id] = curent.id;
               tooltip.tts[prev.id] = curent.id ;
            }

            curent.style.display = "none";
            curent.style.position = "absolute";
         }
      }
   },

/* ************************************************************************************************ */

   showTT : function () {
      tt = document.getElementById( tooltip.tts[ this.id ] );
      tt.style.display = "block";
     
      tt.style.position = "absolute";
      
      tt.style.left = (tooltip.xCursor + tooltip.xPadding) + "px";
      
      tt.style.top  = (tooltip.yCursor + tooltip.yPadding) + "px";
   },

/* ************************************************************************************************ */

   hideTT : function () {
   
      tt = document.getElementById( tooltip.tts[ this.id ] );
      tt.style.display = "none";
   },
   hide : function (idt) {
   
      tt = document.getElementById( tooltip.tts[ idt ] );
      tt.style.display = "none";
   },

/* ************************************************************************************************ */

   genID : function () {
      var id = new String("tooltip");
      var i = 1;
      while ( document.getElementById ( id + i ) ) { i++ };
      return id + i;
   }
}

tooltip.addEventListener ( window, "load", tooltip.init );
tooltip.addEventListener ( document, "mousemove", tooltip.getMouseXY ); 

