// -- POPUP NAVIGATION SCRIPT --
// NOTE: This code also requires "navigation.cfm" located in this same directory
// (common.webfirst.us/scripts/navigation/)
// Added: Istvan, 2005-08-31

/***********************************************
* AnyLink Vertical Menu- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

/*
USAGE EXAMPLE:

<a href="default.htm" onMouseover="dropdownmenu(this, event, menu1, '165px')" onMouseout="delayhidemenu()">Webmaster Links</a><br />

CONFIG EXAMPLE:

// Contents for menu 1
var menu1=new Array()
menu1[0]='<a href="http://www.javascriptkit.com">JavaScript Kit</a>'
menu1[1]='<a href="http://www.freewarejava.com">Freewarejava.com</a>'

// Contents for menu 2, and so on
var menu2=new Array()
menu2[0]='<a href="http://www.javascriptkit.com/cutpastejava.shtml">Free JavaScripts</a>'
menu2[1]='<a href="http://www.javascriptkit.com/javaindex.shtml">JavaScript tutorials</a>'

var disappeardelay = 250  //menu disappear speed onMouseout (in miliseconds)
var horizontaloffset = 2 //horizontal offset of menu from default location. (0-5 is a good value)
*/

///// No further editting needed
var chClass = '';
var ie4 = document.all;
var ns6 = document.getElementById&&!document.all;

// document.getElementById(chClass).className=\'menuMainLinkSub\';

if (ie4 || ns6) document.write('<div id="dropmenudiv" style="visibility:hidden; width:160px;" onmouseover="clearhidemenu(); document.getElementById(chClass).className=\'menuMainLinkSubHover\';" onmouseout="dynamichide(event); document.getElementById(chClass).className=eval(\'orig\'+chClass);"></div>');

function iecompattest()	
	{
	return (document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
	}

function populatemenu(what)
	{
	if (ie4 || ns6) dropmenuobj.innerHTML=what.join('');
	}

function delayhidemenu()
	{
	if (ie4 || ns6) delayhide = setTimeout('hidemenu()',disappeardelay);
	}

function clearhidemenu()
	{
	if (typeof delayhide != 'undefined') clearTimeout(delayhide);
	}

function clickreturnvalue()
	{
	if (ie4 || ns6) { return false; } else { return true; }
	}

function hidemenu(e)
	{
	if (typeof dropmenuobj != 'undefined') { if (ie4 || ns6) dropmenuobj.style.visibility = 'hidden'; }
	}

function getposOffset(what, offsettype)
	{
	var totaloffset = (offsettype == 'left') ? what.offsetLeft : what.offsetTop;
	var parentEl = what.offsetParent;
	while (parentEl != null)
		{
		totaloffset = (offsettype == 'left') ? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl = parentEl.offsetParent;
		}
	return totaloffset;
	}

function showhide(obj, e, visible, hidden, menuwidth)
	{
	if (ie4 || ns6) dropmenuobj.style.left = dropmenuobj.style.top = -500;
	dropmenuobj.widthobj = dropmenuobj.style;
	dropmenuobj.widthobj.width = menuwidth;
	if (e.type == 'click' && obj.visibility == hidden || e.type == 'mouseover') { obj.visibility = visible; }
	else if (e.type == 'click') { obj.visibility = hidden; }
	}

function clearbrowseredge(obj, whichedge)
	{
	var edgeoffset = 0;
	if (whichedge == 'rightedge')
		{
		var windowedge = ie4 && !window.opera ? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15;
		dropmenuobj.contentmeasure = dropmenuobj.offsetWidth;
		if (windowedge-dropmenuobj.x-obj.offsetWidth < dropmenuobj.contentmeasure) edgeoffset = dropmenuobj.contentmeasure+obj.offsetWidth;
		}
	else
		{
		var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset;
		var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
		dropmenuobj.contentmeasure = dropmenuobj.offsetHeight;
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
			{
			// move menu up?
			edgeoffset = dropmenuobj.contentmeasure-obj.offsetHeight;
			// up no good either? (position at top of viewable window then)
			if ((dropmenuobj.y-topedge) < dropmenuobj.contentmeasure) edgeoffset = dropmenuobj.y;
			}
		}
	return edgeoffset
	}

function dropdownmenu(obj, e, menucontents, menuwidth)
	{
	if (window.event) event.cancelBubble = true;
	else if (e.stopPropagation) e.stopPropagation();
	clearhidemenu();
	dropmenuobj = document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv;
	populatemenu(menucontents);
	if (ie4 || ns6)
		{
		showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth);
		dropmenuobj.x = getposOffset(obj, "left");
		dropmenuobj.y = getposOffset(obj, "top");
		dropmenuobj.style.left = dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+horizontaloffset+"px";
		dropmenuobj.style.top = dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px";
		}
	return clickreturnvalue();
	}

function contains_ns6(a, b)
	{
	while (b.parentNode)
	if ((b = b.parentNode) == a) return true;
	return false;
	}

function dynamichide(e)
	{
	if (ie4 && !dropmenuobj.contains(e.toElement)) delayhidemenu();
	else if (ns6 && e.currentTarget != e.relatedTarget && !contains_ns6(e.currentTarget, e.relatedTarget)) delayhidemenu();
	}