// popup.js
// Ben Scofield - scofield@culann.com
// created 10 Oct 2001
// updated 31 Mar 2005

var keepOpen  = 0;
var isOpen    = 0;
var moveIt    = false;
var show      = "block";
var hide      = "none";
var divObject, divStyle, insertObject;
var tempX, tempY;
var x_offset  = 10;
var y_offset  = 20;

// get browser brand and version
NS4 = (document.layers) ? true : false;
NS6 = (document.getElementById) ? true : false;
IE4 = (document.all) ? true : false;
IE6 = (NS6 && navigator.userAgent.indexOf("MSIE") > 0) ? true : false;
IE5 = (IE4 && navigator.userAgent.indexOf("MSIE 5") > 0) ? true : false;
Mac = (navigator.userAgent.indexOf("Win") > 0) ? false : true;
// testing hierarchy: IE6, NS6, IE5, IE4, NS4
// browser unsupported if all are false (or if (minimally) NS4, NS6, and IE4 are false)

// set object variable to popup div based on browser
if (NS6)
	{
	divObject = document.getElementById("popup");
	divStyle  = document.getElementById("popup").style;
	}
else if (IE4)
	{
	divObject = document.all["popup"];
	divStyle  = document.all["popup"].style;
	}
else if (NS4)
	{
	insertObject = document.insert;
	divObject = document.popup;
	divStyle  = document.popup;
	show      = "block";
	hide      = "none";
	}

if (NS4) 
	{
	document.captureEvents(Event.MOUSEMOVE);
	}
else if (IE5 || IE6)
    {
    document.onmousemove = getMouseXY;
    }
else if (NS6)
    {
    document.addEventListener("mousemove",getMouseXY,true);
    }

// functions

function reveal(elementID)
	{
	if (reveal.arguments[1] && !(IE5 || IE6))
		{
		offsetY = reveal.arguments[1];
		offsetX = reveal.arguments[2];
		}
	else
		{
		offsetY = y_offset;
		offsetX = x_offset;
		}

	if (!NS6 && !IE6)
		{
		alert("Your browser is incapable of rendering this feature.\n\nPlease upgrade to a more recent browser.");
		}
	else
		{
//  		moveIt = true;
  		write_text(document.getElementById(elementID).innerHTML);
  		divStyle.display = show;
  		move_div();
  		
  		keepOpen = 0;
		}
	}
	
function persist()
	{
	if (!NS4 && !NS6 && !IE4)
		{
		alert("Your browser is incapable of rendering this feature.\n\nPlease upgrade to a more recent version of Netscape Navigator or Internet Explorer.");
		}
	else
		{
		moveIt   = false;
		keepOpen = 1;
		}
	}
	
function obscure()
	{
	if (!NS4 && !NS6 && !IE4)
		{
		alert("Your browser is incapable of rendering this feature.\n\nPlease upgrade to a more recent version of Netscape Navigator or Internet Explorer.");
		}
	else
		{	
		if (keepOpen == 0)
			{
			  divStyle.display = hide;
		  	moveIt = false;
	  		isOpen = 0;
			}
		}
	}
	
// utility functions
function write_text(passed_text)
	{
	passed = "<div id='insert'>" + passed_text + "</div>";
	if (NS6) 
		{
  		divObject.innerHTML = passed;
		}
	else if (IE4) 
		{
		  divStyle.innerHTML = passed;
		} 
	else if (NS4) 
		{
	  	divObject.document.open();
  		divObject.document.write(passed);
		  divObject.document.close()
		} 
	}
	
function move_div()
{
	var xCoord = tempX + offsetX;
	var yCoord = tempY + offsetY;
	var clientWidth = document.body.clientWidth;
	var insertObj = document.getElementById("insert");
	var insertObjWidth = insertObj.offsetWidth;

	if( insertObjWidth + xCoord > clientWidth )
	{
		xCoord = clientWidth - (insertObjWidth + 25);
	}
	
	if (NS6 && !IE6)
  {
		divStyle.left = xCoord + "px";
		divStyle.top  = (window.pageYOffset + yCoord) + "px";
  }
	else
	{
		divStyle.left = xCoord;
		divStyle.top  = yCoord;
	} 
}

function getMouseXY(e) 
{

  if (IE5 || IE6) 
	{ 
		tempX = event.clientX + document.body.scrollLeft;
 		tempY = event.clientY + document.body.scrollTop;
	} 
  else if (NS6)
	{ 
    	tempX = e.clientX + document.body.scrollLeft;
    	tempY = e.clientY + document.body.scrollTop;
	} 
	else 
	{  
 		tempX = e.screenX;
  		tempY = e.screenY;
	}  


	if (moveIt)
	{
	  move_div();
	}
}