/*
 * Glossary popup functions for both Netscape Communicator 4.0+ and Internet Explorer 4.0+
 *
 * popup.js - 99/03/16 Liqiang Chen
 * 
 * 99/9/23  Roger Feese - modified to make compatible with Internet Explorer 5.0+
 */

function popupon(text, event) 
{ 
  borderColor = '#000000';
  bgColor = '#cccccc';
  border = 1;
  padding = 3;
  Font = 'face="Verdana, Arial, Helvetica, sans-serif" size=2';

  if (!(document.all || document.layers)) return;

  var tableWidth = 350;
  var textTable = "<table" + " id='definition'" + " width=" + tableWidth + " cellpadding="+ padding +" border="+ border +" cellspacing=0 bordercolor="+ borderColor +">";
  textTable += "<tr><td bgcolor="+ bgColor +"><font "+ Font +">" + text + "</font></td></tr></table>";

  var posX=0;
  var posY=0;

  if (document.all != null) { // for Internet Explorer 4.0 or above
    document.all.glossary.innerHTML = textTable;

    posX = event.clientX;
	var windowWidth = document.body.clientWidth;
	var tableRightX = posX + document.all.definition.clientWidth;
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth;
	if (posX < 0) posX = 0;

    posY = event.clientY + 15;
	var windowHeight = document.body.clientHeight;
	var tableBottomY = posY + document.all.definition.clientHeight;
	if (tableBottomY > windowHeight) posY -= tableBottomY - windowHeight; 
	if (posY < 0) posY = 0;

    document.all.glossary.style.left = posX + document.body.scrollLeft;
    document.all.glossary.style.top = posY + document.body.scrollTop;
	document.all.glossary.style.visibility = 'visible';
  } 
  else { // for Netscape 4.0 or above
	document.glossary.document.open();
    document.glossary.document.write(textTable);
	document.glossary.document.close();
	
	posX = event.pageX - pageXOffset + 5;
	var windowWidth = window.innerWidth;
	var tableRightX = posX + document.layers.glossary.clip.width; 
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth + 10;
	if (posX < 0) posX = 0;

	posY = event.pageY - pageYOffset + 15;
	var windowHeight = window.innerHeight;
	var tableBottomY = posY + document.layers.glossary.clip.height;
 	if (tableBottomY > windowHeight) posY -= tableBottomY - windowHeight + 10;
	if (posY < 0) posY = 0;

	document.layers.glossary.moveTo(posX + pageXOffset,posY + pageYOffset)
	document.layers.glossary.visibility="show"
  }
}

function popupBelow(text, event) 
{ 
  borderColor = '#000000';
  bgColor = '#cccccc';
  border = 1;
  padding = 3;
  Font = 'face="Verdana, Arial, Helvetica, sans-serif" size=2';

  if (!(document.all || document.layers)) return;

  var tableWidth = 350;
  var textTable = "<table" + " id='definition'" + " width=" + tableWidth + " cellpadding="+ padding +" border="+ border +" cellspacing=0 bordercolor="+ borderColor +">";
  textTable += "<tr><td bgcolor="+ bgColor +"><font "+ Font +">" + text + "</font></td></tr></table>";

  var posX=0;
  var posY=0;

  if (document.all != null) { // for Internet Explorer 4.0 or above
    document.all.glossary.innerHTML = textTable;

    posX = event.clientX;
	var windowWidth = document.body.clientWidth;
	var tableRightX = posX + document.all.definition.clientWidth;
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth;
	if (posX < 0) posX = 0;

    posY = event.clientY;

    document.all.glossary.style.left = posX + document.body.scrollLeft;
    document.all.glossary.style.top = posY + document.body.scrollTop;
	document.all.glossary.style.visibility = 'visible';
  } 
  else { // for Netscape 4.0 or above
	document.glossary.document.open();
    document.glossary.document.write(textTable);
	document.glossary.document.close();
	
	posX = event.pageX - pageXOffset + 5;
	var windowWidth = window.innerWidth;
	var tableRightX = posX + document.layers.glossary.clip.width; 
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth + 10;
	if (posX < 0) posX = 0;

	posY = event.pageY + 15;

	document.layers.glossary.moveTo(posX + pageXOffset,posY)
	document.layers.glossary.visibility="show"
  }
}

function popupAbove(text, event) 
{ 
  borderColor = '#000000';
  bgColor = '#cccccc';
  border = 1;
  padding = 3;
  Font = 'face="Verdana, Arial, Helvetica, sans-serif" size=2';

  if (!(document.all || document.layers)) return;

  var tableWidth = 350;
  var textTable = "<table" + " id='definition'" + " width=" + tableWidth + " cellpadding="+ padding +" border="+ border +" cellspacing=0 bordercolor="+ borderColor +">";
  textTable += "<tr><td bgcolor="+ bgColor +"><font "+ Font +">" + text + "</font></td></tr></table>";

  var posX=0;
  var posY=0;

  if (document.all != null) { // for Internet Explorer 4.0 or above
    document.all.glossary.innerHTML = textTable;

    posX = event.clientX;
	var windowWidth = document.body.clientWidth;
	var tableRightX = posX + document.all.definition.clientWidth;
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth;
	if (posX < 0) posX = 0;

    posY = event.clientY - (definition.clientHeight + 30);

    document.all.glossary.style.left = posX + document.body.scrollLeft;
    document.all.glossary.style.top = posY + document.body.scrollTop;
	document.all.glossary.style.visibility = 'visible';
  } 
  else { // for Netscape 4.0 or above
	document.glossary.document.open();
    document.glossary.document.write(textTable);
	document.glossary.document.close();
	
	posX = event.pageX - pageXOffset + 5;
	var windowWidth = window.innerWidth;
	var tableRightX = posX + document.layers.glossary.clip.width; 
	if (tableRightX > windowWidth) posX -=  tableRightX - windowWidth + 10;
	if (posX < 0) posX = 0;

	posY = event.pageY - (document.layers.glossary.clip.height + 30);

	document.layers.glossary.moveTo(posX + pageXOffset,posY)
	document.layers.glossary.visibility="show"
  }
}

function popupoff() 
{ 
  if (!(document.all || document.layers)) return;
  if (document.all != null) document.all.glossary.style.visibility = 'hidden';
  else document.glossary.visibility = "hidden";
}
