state = null;
X1 = 0;
X2 = 0;
X3 = 0;
Y1 = 0;
Y2 = 0;
Y3 = 0;



function Display(M, TD, S)
{
 var M, S;
 if (document.all)
   {
    if (state) state.style.visibility = 'hidden';

    var TOP = 0, LEFT=0;
    obj = document.all(TD);
    while (obj)
      {
       TOP  += obj.offsetTop;
       LEFT += obj.offsetLeft;
       obj = obj.offsetParent;
     }

    document.all(S).style.left = LEFT+'px'; 
    document.all(S).style.top = TOP+document.all(M).offsetHeight+8+'px'; 
    document.all(S).style.visibility = 'visible';
    X1 = LEFT - document.body.scrollLeft;
    X2 = LEFT + document.all(M).offsetWidth - document.body.scrollLeft;
    X3 = LEFT + document.all(S).offsetWidth - document.body.scrollLeft;
    Y1 = TOP- 6 - document.body.scrollTop;
    Y2 = TOP + document.all(M).offsetHeight - document.body.scrollTop;
    Y3 = TOP + document.all(M).offsetHeight+document.getElementById(S).offsetHeight+8+10 - document.body.scrollTop;
    state = document.all(S); 
   }
 else if (document.getElementById && !document.all)
   {
    if (state) state.style.visibility = 'hidden';
    document.getElementById(S).style.left = document.getElementById(M).offsetLeft+'px'; 
    document.getElementById(S).style.top = document.getElementById(M).offsetTop+document.getElementById(M).offsetHeight+10+'px'; 
    document.getElementById(S).style.visibility = 'visible';
    X1 = document.getElementById(M).offsetLeft;
    X2 = document.getElementById(M).offsetLeft + document.getElementById(M).offsetWidth;
    X3 = document.getElementById(S).offsetLeft + document.getElementById(S).offsetWidth;
    Y1 = document.getElementById(M).offsetTop - 6;
    Y2 = document.getElementById(M).offsetTop + document.getElementById(M).offsetHeight;
    Y3 = document.getElementById(S).offsetTop + document.getElementById(S).offsetHeight + 10;
    state = document.getElementById(S);
   }
 else if (document.layers)  
   {
    if (state) state.visibility = 'hide';
    document.layers[S].left = document.layers[M].pageX;
    document.layers[S].top = document.layers[M].pageY+document.layers[M].clip.height+10;   
    document.layers[S].visibility = 'show';
    X1 = document.layers[M].pageX;
    X2 = document.layers[M].pageX + document.layers[M].clip.width;
    X3 = document.layers[S].pageX + document.layers[S].clip.width;
    Y1 = document.layers[M].pageY - 6;
    Y2 = document.layers[M].pageY + document.layers[M].clip.height;
    Y3 = document.layers[S].pageY + document.layers[S].clip.height + 10;	
    state = document.layers[S];   
   }
}


function Hide(e)
{
 var x, y;
 if (document.all)
   {
    x = window.event.clientX;
    y = window.event.clientY; 
	if (state) 
      if (x < X1 || x > X3 || y < Y1 || y > Y3 || (x>X2 && y<Y2)) 
        state.style.visibility = 'hidden';
   }
 else if (document.getElementById && !document.all)
   {
    x = e.pageX;
    y = e.pageY;     
    if (state) 
      if (x < X1 || x > X3 || y < Y1 || y > Y3 || (x>X2 && y<Y2)) 
        state.style.visibility = 'hidden';
   }
 else if (document.layers)  
   {
    x = e.pageX;
    y = e.pageY;     
    if (state) 
      if (x < X1 || x > X3 || y < Y1 || y > Y3 || (x>X2 && y<Y2)) 
        state.visibility = 'hide';
   }
}


function Init()
{
 if (document.all)
    document.onmousemove=Hide;
 else if (document.getElementById && !document.all)  
    document.addEventListener('mousemove', Hide, true);
 else if (document.layers)    
   {
    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = Hide;   
   }	
}


