/*****************************************************************************************/
/** 																					**/
/** rdflanaganlayer.js																	**/
/** 																					**/
/** Javascript functions used by R.D. Flanagan website for creating and displaying		**/
/** popup menus.																		**/
/** 																					**/
/*****************************************************************************************/

var unself
var activeMenu = 0;

var isNS = (navigator.appName == "Netscape");
var isMacIE = ( (navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1) );
var layerRef = (isNS) ? "document" : "document.all";
var styleRef = (isNS) ? "" : ".style";
var isDynamic = (((document.layers && document.layers['layerTest']) || (document.all && document.all['layerTest'])) && !isMacIE );

function getXCoord(imgID)
{
	if (isNS)
	{
		xPos = document.images[imgID].x;
	}
	else
	{
		xPos = getIEXCoord(imgID);
	}

    return xPos;
}

function getYCoord(imgID)
{
	if (isNS)
	{
		yPos = document.images[imgID].y;
	}
  	else
  	{
		yPos = getIEYCoord(imgID);
	}

	return yPos;
}

function getIEXCoord(imgElem)
{
	xPos = eval(imgElem).offsetLeft;
	tempEl = eval(imgElem).offsetParent;
	while (tempEl != null)
	{
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}

	return xPos;
}

function getIEYCoord(imgElem)
{
	yPos = eval(imgElem).offsetTop;
	tempEl = eval(imgElem).offsetParent;
	while (tempEl != null)
	{
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}

	return yPos;
}

function activateMenu(menuLayerRef, imageName, left, top)
{
	var lightsout;
	if (isDynamic && activeMenu != menuLayerRef)
	{
		if (activeMenu)
		{
			hideMenu("menu" + activeMenu);
		}

		menuID = "menu" + menuLayerRef;
		activeMenu = menuLayerRef;

		if (isNS)
		{
			document[menuID].left = getXCoord(imageName) + left;
			document[menuID].top = getYCoord(imageName) + top;
		}
		else
		{
			document.all[menuID].style.pixelLeft = getXCoord(imageName) + left;
			document.all[menuID].style.pixelTop = getYCoord(imageName) + top;
		}

		showMenu(menuID, left, top);
	}
}

function showMenu(layerID, left, top)
{
	eval(layerRef + '["' + layerID + '"]' +
	styleRef + '.visibility = "visible"');
}

function hideMenu(layerID)
{
	eval(layerRef + '["' + layerID + '"]' +
	styleRef + '.visibility = "hidden"');
}

// If there is an active menu, turn it off.
function turnOff()
{
	if (activeMenu)
	{
		menuID = "menu" + activeMenu;
		hideMenu(menuID);
		activeMenu = 0;
    }
}

// Turn off the menus.
function init()
{
	if (isDynamic)
	{
    	if (isNS)
    	{
        	document.captureEvents(Event.mouseup);
        }
        document.onmouseup = turnOff;
    }
}

// Hide a menu.
function hideMe()
{
	if (activeMenu)
	{
		menuID = "menu" + activeMenu;
		hideMenu(menuID);
		activeMenu = 0;
    }
}

// Work-around Netscape resize bug.
if (isDynamic && isNS)
{
	origWidth = innerWidth;
	origHeight = innerHeight;
}

function reDo()
{
	if (innerWidth != origWidth || innerHeight != origHeight)
	{
		location.reload();
    }
}

if (isDynamic && isNS)
{
    onresize = reDo;
}

function timer(offon)
{
	if (offon == 0)
	{
		unself = setTimeout('turnOff()', 1200);
    }

	if (offon ==1)
	{
		clearTimeout(unself);
	}
} 