// Detect version of browser
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
// Delay for menus to disappear (in secconds)
var menuDelay ="1.0";
// Variable Declarations
if (typeof offsetx == 'undefined') { var offsetx = 2; }
if (typeof offsety == 'undefined') { var offsety = 0; }
var menuWidthD = 130;
var x = 0, y = 0;
var activeMenu = "";
var timerID = "";
var onImg = "";
var onName = "";
if (document.images) {
	// Set image sources
	dot_on = new Image;
	dot_on.src = "images/ndot.gif";
	dot_off = new Image;
	dot_off.src = "images/narr.gif";
	}
// Swaps images in
function imgOn(varName, imgId) {
	if (document.images) {
		document[imgId].src = eval(varName + "_on.src");
		onImg = imgId;
		onName = varName;
	}
} 
// Swaps images out
function imgOff(varName) {
	if (document.images) {
		document[onImg].src = eval(varName + "_off.src");
	}
}
function startTimer(objName) {
	delay = menuDelay * 1000;
	var command = "hideObject('"+objName+"'); imgOff('dot');";
	timerID = setTimeout(command,delay);
}
function clearTimer() {
	clearTimeout(timerID);
}
function checkActive(objName,img,dir) {
	// No active menu
	if (activeMenu == "") {
		activeMenu = objName;
	}
	// Same active menu
	else if (activeMenu == objName) {
		clearTimeout(timerID);
		activeMenu = objName;
	}
	// Different active menu
	else {
		clearTimeout(timerID);
		imgOff('dot', onImg);
		hideObject(activeMenu);
		activeMenu = objName;
	}
	// Decide placement
	if (dir == "down") {
		align(objName,img,'D');
	}
	else if (dir == "upright") {
		align(objName,img,'UR');
	}
	else {
		align(objName,img,'DR');
	}
	imgOn('dot', img);
	showObject(activeMenu);
}
// Shows an object
function showObject(objName) {
	if (ns4) {
		var lyr = eval("document."+objName);
		lyr.visibility = "show";
		on = 1;
	}
	else if (ie4) {
		var hold = eval("document.all."+objName);
		hold.style.visibility = "visible";
		on = 1;
	}
}
// Hides an object
function hideObject(objName) {
	if (ns4) {
		var lyr = eval("document."+objName);
		lyr.visibility = "hide";
		on = 0;
	}
	else if (ie4) {
		var hold = eval("document.all."+objName);
		hold.style.visibility = "hidden";
		on = 0;
	}
}
// Displays a layer
function align(objName,img,placement) {
	if ( (ns4) || (ie4) ) {
		// Find Image Width & Height
		var imgWidth = eval("document."+img+".width");
		var imgHeight = eval("document."+img+".height");
		// Convert String to a number
		imgWidth = imgWidth - 0; imgHeight = imgHeight - 0;
		// Find Location in Document
		var locString = findLoc(img);
		var xLoc = locString.substring(0,locString.indexOf(','));
		var yLoc = locString.substring(locString.indexOf(',')+1,locString.length);
		// Convert String to a number
		xLoc = xLoc - 0; yLoc = yLoc - 0;
		if (placement == "DR") {
			// Calc Co-ords to place image
			var finX = x+imgWidth+xLoc+offsetx-1;
			var finY = y+yLoc+offsety+5;
		}
		else if (placement == "UR") {
		// Calc width & height of layer
		if (ns4)
			{
			var lyr = eval("document."+objName);
			var upOffset = lyr.document.height;
			}
		else if (ie4)
			{
			var lyr = eval("document.all."+objName);
			var upOffset = lyr.children[0].height;
			}
//			alert(upOffset)
			// Calc Co-ords to place image
			var finX = x+imgWidth+xLoc+offsetx-1;
			var finY = y+imgHeight+yLoc+offsety+1-upOffset;
		}
		else if (placement == "D") {
			// Calc Co-ords to place image
			var finX = x+imgWidth+xLoc-menuWidthD-4;
			var finY = y+imgHeight+yLoc+offsety+1;
		}
		// Call to place a layer
		moveIt(objName,finX,finY);
	}
}
// Place a layer
function moveIt(objName,finX,finY) {
	if (ns4) {
		var lyr = eval("document."+objName);
		lyr.left = finX;
		lyr.top = finY;
	}
	if (ie4) {
		var hold = eval("document.all."+objName);
		hold.style.pixelLeft = finX;
		hold.style.pixelTop = finY;
	}
}
// Determines position of object
function findLoc(objName) {
	if (ns4) {
		var imgX = eval("document."+objName+".x");
		var imgY = eval("document."+objName+".y");
		return(imgX + "," + imgY);
	}
	if (ie4) {
		var isMac = navigator.userAgent.indexOf("Mac") >0;
		if (isMac) {
			var top = 0, left = 0;
			var	parString = "parentElement.";
			var	tmpString = "parentElement.";
			while ((eval("document.all."+objName+"."+parString+"id")) != "MAINBODY") {
				top += eval("document.all."+objName+".parentElement."+parString+"offsetTop");
				left += eval("document.all."+objName+".parentElement."+parString+"offsetLeft");
				parString += tmpString;
			}
			top += (eval("document.all."+objName+".offsetTop")) - 0;
			left += (eval("document.all."+objName+".offsetLeft")) - 0;
			return(left + "," + top);
		}
		else {
			var top = 0, left = 0;
			var	parString = "offsetParent.";
			while ((eval("document.all."+objName+"."+parString+"id")) != "MAINBODY") {
				top += eval("document.all."+objName+"."+parString+"offsetTop");
				left += eval("document.all."+objName+"."+parString+"offsetLeft");
				tmpString = "offsetParent.";
				parString += tmpString;
			}
			top += eval("document.all."+objName+".offsetTop");
			left += eval("document.all."+objName+".offsetLeft");
			return(left + "," + top);
		}
	}
}
