var ie5=document.all;	//old msie
var ns6=document.getElementById&&!document.all;	//netscape
var disappearDelay=250;	//menu disappear speed onMouseout (in ms)
var enableAnchorLink=0;	//Enable or disable the anchor link when clicked on? (1=e, 0=d)
var hideMenu_onclick=1;	//hide menu when user clicks within menu? (1=yes, 0=no)

function clearBrowserEdge(obj, whichEdge) {
	var edgeOffset=0;
	if (whichEdge=="rightedge") {
		var windowEdge=ie5 && !window.opera? ieCompatTest().scrollLeft+ieCompatTest().clientWidth-15 : window.pageXOffset+window.innerWidth-15;
		dropMenuObj.contentmeasure=dropMenuObj.offsetWidth;
		if (windowEdge-dropMenuObj.x < dropMenuObj.contentmeasure)
			edgeOffset=dropMenuObj.contentmeasure-obj.offsetWidth;
	}
	else {
		var topedge=ie5 && !window.opera? ieCompatTest().scrollTop : window.pageYOffset;
		var windowEdge=ie5 && !window.opera? ieCompatTest().scrollTop+ieCompatTest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
		dropMenuObj.contentmeasure=dropMenuObj.offsetHeight;
		if (windowEdge-dropMenuObj.y < dropMenuObj.contentmeasure) { //move up?
			edgeOffset=dropMenuObj.contentmeasure+obj.offsetHeight;
			if ((dropMenuObj.y-topedge)<dropMenuObj.contentmeasure) //up no good either?
				edgeOffset=dropMenuObj.y+obj.offsetHeight-topedge;
		}
	}
	return edgeOffset;
}

function clearHideMenu() {
	if (typeof delayHide!="undefined")
		clearTimeout(delayHide);
}

function clickReturnValue() {
	if ((ie5||ns6) && !enableAnchorLink) 
		return false;
	else 
		return true;
}

function delayhideMenu() {
	delayHide=setTimeout("dropMenuObj.style.visibility='hidden'",disappearDelay);
}

function dynamichide(e) {
	if (ie5&&!dropMenuObj.contains(e.toElement))
		delayhideMenu();
	else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
		delayhideMenu();
}

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 ieCompatTest() {
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function setupDDMenus() {
	// ID of top level menu
	var menuPA=document.getElementById("hdrPracticeAreas");
	// ID of menu items listing
	menuPA.onmouseover=function(event) {
		showDDMenu(this, event, 'menuPracticeAreas')
	}
}

function showDDMenu(obj, e, dropMenuID, isTop) {
	var e=window.event || e;
	var topmenuoffset=(typeof isTop!="undefined")? 6 : 0;
	if (window.event) 
		event.cancelBubble=true;
	else if (e.stopPropagation) 
		e.stopPropagation();
	if (typeof dropMenuObj!="undefined") //hide previous menu
		dropMenuObj.style.visibility="hidden";
	clearHideMenu();
	if (ie5||ns6){
		obj.onmouseout=delayhideMenu;
		dropMenuObj=document.getElementById(dropMenuID);
		if (hideMenu_onclick) 
			dropMenuObj.onclick=function(){dropMenuObj.style.visibility='hidden'};
		dropMenuObj.onmouseover=clearHideMenu;
		dropMenuObj.onmouseout=ie5? function(){ dynamichide(event)} : function(event){ 	dynamichide(event)};
		showHide(dropMenuObj.style, e, "visible", "hidden");
		dropMenuObj.x=getposOffset(obj, "left");
		dropMenuObj.y=getposOffset(obj, "top");
		dropMenuObj.style.left=dropMenuObj.x-clearBrowserEdge(obj, "rightedge")+"px";
		dropMenuObj.style.top=dropMenuObj.y-clearBrowserEdge(obj, 	"bottomedge")+obj.offsetHeight-topmenuoffset+"px";
	}
	return clickReturnValue();
}

function showHide(obj, e, visible, hidden) {
	if (ie5||ns6)
		dropMenuObj.style.left=dropMenuObj.style.top=-500;
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover") {
		obj.visibility=visible;
	}
	else if (e.type=="click") {
		obj.visibility=hidden;
	}
}

