
var
  xpos=0;
  ypos=0;
  xoffset=10; 
  yoffset=15; 
  isNetscape=false;
  onPageOnly=true;
  
var timerID,
  clearTimerID,
  popupTimerID,
  posX=0,
  posY=0,
  fClear=false;
  
function hover_popup(text,delay,width,align) {
  text = text.replace(/\'/g, "\\\'");
  delay = delay ? delay : 1500;
  width=width ? ' width='+width : '';
  align = align ? align : 'center'
  popupTimerID = window.setTimeout("hover_popup2('"+text+"','"+width+"','"+align+"')", delay)
}

function hover_popup2(text, width, align) {
  width=width ? ' width='+width : ' width="250"';
  align = align ? align : 'center'
  // 'hover' is a span in INSource-Header.asp file
  hobj=document.getElementById('hover');
  hobj.innerHTML='<table'+width+'><tr><td class=hover align='+align+' valign=middle>&nbsp;'+text+'&nbsp;</td></tr></table>';
  hobj.style.display="block";
}

function hover_clear(target) {
  window.clearTimeout(popupTimerID)
  hobj=document.getElementById('hover');
  hobj.style.display="none";
  hobj.innmerHTML='';  
}

function hover_popup_header(tableid,text,delay,space,pad) {
  text = text.replace(/\'/g, "\\\'");
  delay = (delay) ? delay : 0;
  space = (space) ? space : 1;
  pad = (pad) ? pad : 1;
  timerID = window.setTimeout("hover_popup_header2('"+tableid+"','"+text+"',"+space+","+pad+")",delay)
}

function hover_popup_header2(tableid,text,space,pad,cssclass) {
  cssclass = (cssclass) ? cssclass : 'Table_HeaderGrid';
  var names = text.split(';');
  var table = document.getElementById(tableid);
  if (!table) return;
  // 'header' is a span in INSource-Header.asp file
  var hobh = document.getElementById("header");
  posX = findPosX(table)
  posY = findPosY(table)
  
  fClear = false;
  
  var str = "<table id=htbl class="+cssclass+" border=1 cellspacing="+space+" cellpadding="+pad+
      " width="+table.offsetWidth+"><tr>";
  for (var i = 0; i < names.length; i++) {
    str += "<td>"+names[i]+"</td>";
  }      
  str += "</tr></table>";
  
  if (document.body.scrollTop > posY) {
    hobh.style.left = posX;
    hobh.innerHTML=str;
    hobh.style.display="block";
    
    var htbl = document.getElementById("htbl");
    var TD1 = table.all.tags("TD");
    var TD2 = htbl.all.tags("TD");
    for (var i = 0; i < TD2.length; i++) {
      TD2[i].style.width = TD1[i].clientWidth-((space/2)+pad);
    }  
  }  
  else
    hover_header_clear();
}

function hover_header_clear(target) {
  fClear = true;
  clearTimerID = window.setTimeout("hover_header_clear2()",500)
}

function hover_header_clear2(target) {
  window.clearTimeout(clearTimerID);
  if (fClear == false) return;
  window.clearTimeout(timerID)
  hobh=document.getElementById('header');
  hobh.style.display="none";
  hobh.innmerHTML='';  
}

// This is called from INSource-Header.asp with the body onmousemove event.
function xy(x,y) {
  hobj=document.getElementById('hover');
  hobh=document.getElementById('header');
  xpos = isNetscape ? x : window.event.x;
  ypos = isNetscape ? y : window.event.y;
  xpos = xpos + xoffset + document.body.scrollLeft;
  ypos = ypos + yoffset + document.body.scrollTop;
  if (onPageOnly) {
    if ((xpos+hobj.clientWidth)>document.body.clientWidth+document.body.scrollLeft) 
      xpos=document.body.clientWidth-hobj.clientWidth+document.body.scrollLeft;
    if ((ypos+hobj.clientHeight)>document.body.clientHeight+document.body.scrollTop) 
      ypos=ypos-hobj.clientHeight-yoffset;
  }
  hobj.style.left=xpos;
  hobj.style.top=ypos;
  if (document.body.scrollTop > posY) 
    hobh.style.top=document.body.scrollTop;
}

function get_browser() {
  alert(navigator.appName);
}

if (navigator.appName=="Netscape") {
  isNetscape=true;
  document.captureEvents(Event.MOUSEMOVE);
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
