/* Pull-down menu JS code */
/* one that works reliably!! */
/* Parts drawn from various sources but mostly (c) 2004-2006 Lee Collier */

/* browser identification */

NS4 = (document.layers);
NS6 =  ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 5));
IE4 = (document.all);
MAC45 = (navigator.appVersion.indexOf("MSIE 4.5") != -1);
ver4 = (NS4 || IE4);   
isMac = (navigator.appVersion.indexOf("Mac") != -1);

/* constants */

menuHeight=-60;
menuOffset=258;

/* variables */
var overmenu = false;
var openmenu = null;

 
function FindLeftEdge(img)
{
	/* returns leftmost pixel location of an image */

	xPos = img.offsetLeft;
	tempEl = img.offsetParent;
	while (tempEl != null)
	{
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function FindTopEdge(img)
{
	/* returns topmost pixel location of an image */

	yPos = img.offsetTop;
	tempEl = img.offsetParent;
	while (tempEl != null)
	{
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	if (MAC45) yPos=menuOffset;
	return yPos;
}

function findloc (imgname)
{
	/* returns top left corner pixel location of an image */

	var holdingImage = document.images[imgname];
	var canvasLeft = (NS4 && !NS6) ? holdingImage.x : FindLeftEdge(holdingImage);
	var canvasTop = (NS4 && !NS6) ? holdingImage.y : FindTopEdge(holdingImage);
	var canvasWidth = holdingImage.width;
	var canvasHeight = holdingImage.height;
	return ([canvasLeft,canvasTop]);
}

function MM_preloadImages()
{
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d)
{
	var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function setImage(name,src)
{
	if(image=MM_findObj(name))
		image.src=src;
}

function dropDown(num)
{
	/* drop down a rolled up menu */

	var d=document,name,image;

	if (openmenu!=num)
	{
		clearRollupTimer();
		rollUp();

		dropdown=MM_findObj("dropdown_"+num);
		button=MM_findObj("menu_"+num);
		mynavbox=MM_findObj("navbox");
		link=MM_findObj("a_"+num);


		/* set dropdown location based on menu button's parent DIV position */

		if (NS4)
		{
			dropdown.top = button.top;
			dropdown.left = button.left;
			dropdown.visibility = "show";
		}
		else if (NS6)
		{
			if(num<15)
				aLeft=(button.offsetLeft+button.offsetParent.offsetLeft)+"px";
			else
				aLeft=(button.offsetLeft+button.offsetParent.offsetLeft-dropdown.offsetWidth+button.offsetWidth)-1+"px";
			aTop=(button.offsetTop+button.offsetParent.offsetTop+button.offsetHeight)+0+"px";
			dropdown.style.left = aLeft;
			dropdown.style.top = aTop;
			dropdown.style.visibility = "visible";
		}
		else
		{
			dropdown.style.visibility = "visible";
			if(num<15)
				aLeft=(button.offsetLeft+button.offsetParent.offsetLeft)+"px";
			else
				aLeft=(button.offsetLeft+button.offsetParent.offsetLeft-dropdown.offsetWidth+button.offsetWidth)-1+"px";
			aTop=(button.offsetTop+button.offsetParent.offsetTop+button.offsetHeight)+0+"px";
			dropdown.style.left = aLeft;
			dropdown.style.top = aTop;
		}

		openmenu=num;
		overmenu=false;
	}
}


function rollUp ()
{
	/* roll up a dropped down menu */

	var d=document;
	if(openmenu)
	{
		window.clearTimeout(d.rollUpTimer);
		menu=MM_findObj("dropdown_"+openmenu);
		if (NS4)
			menu.visibility = "hide";
		else
			menu.style.visibility = "hidden";

		link=MM_findObj("a_"+openmenu);

		openmenu=null;
		overmenu=false;
	}
}
	
function overMenu()
{
	/* called by page when mouse enters dropped down menu */

	var d=document;
	clearRollupTimer();
	overmenu=true;

}

function offMenu()
{
	/* called by page when mouse leaves dropped down menu */

	var d=document;
	setRollupTimer();
	overmenu=false;

}

function overButton(num)
{
	/* called by page when mouse enters a menu button */

	var d=document,name,image;
	if(!(openmenu==num))
	{
		if(openmenu)
			rollUp();
		// There's no menu for button 1
		if(num>1)
			d.dropDownTimer=window.setTimeout('dropDown('+num+')',0);
	}
	else
		clearRollupTimer();
}

function offButton(num)
{
	/* called by page when mouse leaves a menu button */	

	var d=document;
	if ((openmenu==num) && (!overmenu))
	{
		setRollupTimer();
	}
	else if(openmenu!=num)
	{
		window.clearTimeout(d.dropDownTimer);
	}
}

function overPage()
{
	if(openmenu)
		offMenu();
}

function setRollupTimer()
{	
	/* menu has been exited so may need to rollup unless re-entered shortly */

	var d=document;
	d.rollUpTimer=window.setTimeout('rollUp()',500);
}

function clearRollupTimer()
{
	/* rollup has been cancelled by going back over the menu */

	var d=document;
	window.clearTimeout(d.rollUpTimer);
}

function initMenu(filepath)
{
	/* called on page load */
	/* prepends all filenames with filepath */

	var d=document;
	
	d.dropDownTimer = new Object;
	d.rollUpTimer = new Object;
	
}
