var menuwidth='165'; //default menu width
//var menubgcolor='#E2E8F2'; //menu bgcolor
var disappeardelay=250; //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes"; //hide menu when user clicks within menu?
/////No further editting needed ???
var mainOn = '';
var dropOffset = (document.all)?[0,1]:[0,20]; //x,y
//this version of menus creates a gap in Safari between dropdowndiv and dropdownsub related to 
//the browsers calculation of offset position - subOffset counters the discrepency
var subOffset = (navigator.userAgent.indexOf('Safari')>-1)?[-8,-11]:[0,0];
var ie4=document.all;
var ns6=document.getElementById&&!document.all;

function writeDiv(divID){
	if (ie4||ns6){
		params = (divID=="dropmenudiv")?' onMouseover="clearhidemenu();" onMouseout="dynamichide(event);"':' onMouseover="clearhidemenu();clearhidesub();"';
		document.write('<div id="'+divID+'" style="position:absolute; visibility:hidden; width:'+menuwidth+'px;"' + params + '></div>');
	}
}

//parLeft ,parTop, parWidth, parHeight
var mainPos = new Array();
var subPos = new Array();
var menuPos;
var inSub;

function getposOffset(what,offsettype){
	mainPos=[what.offsetLeft,what.offsetTop,what.offsetWidth,what.offsetHeight]; //load parent pos
	totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	sum = totaloffset;
	parentEl=what.offsetParent;
	while (parentEl!=null){
		sum += (offsettype=="left")?parentEl.offsetLeft : parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return sum;
}

function showhide(obj, e, visible, hidden, menuwidth){
	if (ie4||ns6) {	dropmenuobj.style.left=dropmenuobj.style.top=-500; }
	if (menuwidth!=""){
		dropmenuobj.widthobj=dropmenuobj.style;
		dropmenuobj.widthobj.width = menuwidth+"px";
	}
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover"){
		obj.visibility=visible;
	} else if (e.type=="click"){
		obj.visibility=hidden;
	}
}

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function clearbrowseredge(obj,whichedge,dropdirection){
	var edgeoffset=0;
	if (whichedge=="rightedge"){
//windowedge returns inside screen dimension - 15 (canned value)
		var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth : window.pageXOffset+window.innerWidth;
//dropmenuobj.contentmeasure returns drawn dimension of dropdown main div
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth;
		if (windowedge-dropmenuobj.x < 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 : window.pageYOffset+window.innerHeight;
		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 populatemenu(what,where,menuwidth,menuname){
	if (ie4||ns6) {
//		if(inSub !== menuname))){
			document.getElementById(where).innerHTML=what.join("");
			if(menuwidth){document.getElementById(where).style.width = menuwidth+"px";}
			inSub = (where=="dropsubdiv")?menuname:"";
//		}
	}
}

function dropdownmenu(obj, e, menucontents, menuwidth, dropdirection, menuname){
	if (window.event){ event.cancelBubble=true;
	} else if (e.stopPropagation){  e.stopPropagation(); }
	clearhidemenu();
	menuPos = getposOffset(document.getElementById('menubar'),'left');
	dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv;
	populatemenu(menucontents,dropmenuobj.id,menuwidth,menuname);
	
	if (ie4||ns6){
		dropmenuobj.style.visibility = ((e.type=="click" && obj.visibility==hidden) || (e.type=="mouseover"))?"visible":"hidden";
		mainOn= 'main';
//		dropmenuobj.x returns num absolute position on page 
		dropmenuobj.x=getposOffset(obj,"left");
		dropmenuobj.y=getposOffset(obj,"top");
		dCalcL = (dropdirection=="left")?((mainPos[2]+dropmenuobj.x)-(menuwidth+dropOffset[0])):(dropmenuobj.x+dropOffset[0]);
		dCalcT = mainPos[1]+mainPos[3]-dropOffset[1];
		clearbrowseredge(obj,"rightedge",dropdirection);
		dropmenuobj.style.left=dCalcL+"px";
//		ieComp = (document.all)?2:-12;
		dropmenuobj.style.top=(dropmenuobj.y+dCalcT)+"px";
	}
	return clickreturnvalue();
}

function dropdownsub(objID,e,menucontents,menuwidth,dropdirection,parentwidth,menuname){
	if (window.event){ event.cancelBubble=true; 
	} else if (e.stopPropagation){  e.stopPropagation(); }
	clearhidemenu();
	clearhidesub();
	dropsubobj=document.getElementById? document.getElementById("dropsubdiv") : dropsubdiv;
	populatemenu(menucontents,dropsubobj.id,menuwidth,menuname);
	if (ie4||ns6){
		dobj = document.getElementById(objID);
		dobj.x=getposOffset(dobj,"left");
		dobj.y=getposOffset(dobj,"top");
		dobj.w=dobj.offsetWidth;
		dobj.p = (dropdirection=="right")?(dobj.w + dobj.x + subOffset[0] - 1):(dobj.w + dobj.x - menuwidth - parentwidth + 1);
		dobj.t=getposOffset(dobj,"top")+5+subOffset[1];
		d=document.getElementById('dropsubdiv').style;
		d.visibility= "visible";
		d.left= dobj.p+"px";
		d.top= dobj.t+"px";
		d.width= menuwidth+"px";
	}
	return clickreturnvalue();
}

function clickreturnvalue(){
	if (ie4||ns6){ return false;
	} else{ return true; }
}

function contains_ns6(a, b) {
	while (b.parentNode){
		if ((b = b.parentNode) == a){ return true; }
	}
	return false;
}

function dynamichide(e){
	delayhide=setTimeout("eval(\"document.getElementById('dropmenudiv').style.visibility='hidden'\");",disappeardelay);
}

function hidemenu(e){
	if (typeof dropmenuobj!="undefined"){
		if (ie4||ns6){
		dropmenuobj.style.visibility="hidden";
		}
	}
}

function delayhidemenu(){
	if (ie4||ns6){
		delayhide=setTimeout("hidemenu()",disappeardelay);
	}
}

function clearhidemenu(){
	if (typeof delayhide!="undefined"){
		clearTimeout(delayhide);
	}
}

if (hidemenu_onclick=="yes"){ document.onclick=hidemenu; }

function getIDX(id){
	re = /^(menu)([0-9]{1,2})/;
	id = re.exec(id);
	return id[2];
}

function hiLiteSub(divID,act){
	swapnav(act,menuImgs[getIDX(divID)-1]); //hilites top level graphic button
	if (document.getElementById){
		nameArray = divID.split("_"); //array to recursively hilite the selection path
		if (act=="a" && nameArray.length>2){
			divParents=[nameArray[0]+"_"+nameArray[1]];
			eval("document.getElementById('"+divParents[0]+"').className='dropSubLev1_a';");
			mainOn='sub';
			for (i=1;i<nameArray.length-1;i++){
				divParents[i]=divParents[i-1]+"_"+nameArray[i+1];
				eval("document.getElementById('"+divParents[i]+"').className='dropSubLev2_a';");
			}
		}else{
			lev = document.getElementById(divID).className.charAt(10);
			eval("document.getElementById('"+divID+"').className='dropSubLev"+lev+"_"+act+"';");
			if (act=="a"){
				clearhidesub();
				mainOn='main';
			}
		}
	}
}

function hideSub(){
	if (document.getElementById){
		sDiv=document.getElementById('dropsubdiv');
		if (sDiv.style.visibility=="visible"){
			sDiv.style.visibility="hidden";
		}
		if (mainOn !== 'main'){ 
			dynamichide('pass');
		}
	}
}

function delaysubhide(){
	if (ie4||ns6){
		delaysubhider=setTimeout("hideSub()",disappeardelay);
	}
}

function clearhidesub(){
	if (typeof delaysubhider!="undefined"){
		clearTimeout(delaysubhider);
	}
}

function swapnav(state,nm){
//	alert(state+','+nm);
	eval("document.images['"+nm+"'].src="+nm+"_"+state+".src;");
}

function imgNavLoader(imgs,sect){
	ai=["_a","_i"];
	for (i=0;i<imgs.length;i++){
		for(a=0;a<2;a++){
			eval(imgs[i]+ai[a]+"= new Image();");
			eval(imgs[i]+ai[a]+".src='/images/nav/"+imgs[i]+ai[a]+".gif';");
		}
	}
	if((sect)&&(sect!='home')){
		eval(sect+"_i.src="+sect+"_a.src;");
	}
}

function initDivs(){
	writeDiv('dropmenudiv');
	writeDiv('dropsubdiv');
}
function showntell(n){
	document.getElementById('debug').innerHTML = n;
}