// dynamic drop-down menus
// v 1.0
// (c) 2007 IA West, LLC.
//
// The position of submenus are realative to their parent items
// *The menu config script needs to preceede this file
// it requires that menus and items arrays have been defined

var subs = new Array();
var menuids = new Array();
var mainsids = new Array();
var subssids = new Array();
var debug = "";

function showhide(menuID){
	//NOTE: menuids array must be previously set via menu_define.js for this to work
	menuvisible = false;
			
	if (document.getElementById) {
  		for(i=0;i<menuids.length;i++){
			if (menuids[i] != null && menuids[i] == menuID){
				document.getElementById(menuids[i]).style.visibility="visible";
				lastmenu = menuID;
				menuvisible = true;
			}
			else{
				document.getElementById(menuids[i]).style.visibility="hidden";
			}
		}
	} else {
		return false;
	}
}
function init_menus(){
	output = "<div class=\"menu\"><span class=\"chrome\" style=\"position:absolute;left:-600px\"><a href=\"#content_start\">Skip Navigation</a></span>\n<ul>\n";
	for (x=0;x<labels.length;x++){
		thislabel = labels[x].split(",");;
		mainsids[mainsids.length] = thislabel[0];
		output += "<li id=\"" + thislabel[0] + "_parent\"><a onMouseOver=\"showhide('" + thislabel[0] + "')\" onMouseOut=\"showhide()\"  href=\"" + baseurl + thislabel[2] + "\">" + thislabel[1] + "</a></li>\n";	
		if(thislabel[0] != 0 && typeof (menus[thislabel[0]]) != "undefined"){
			// create menu definition
			 create_menu(thislabel[0],'',1);
		}
	}
	 output += "\n</ul>\n</div>\n";

	 document.write(output);
	 for(f=0;f<subs.length;f++){
		 document.write(subs[f]);
	 }
	 //position top level menus
	 for (m=0;m<mainsids.length;m++){
		menuparent = mainsids[m]+ "_parent";
		document.getElementById(mainsids[m]).style.left = document.getElementById(menuparent).offsetLeft - 15 + "px"; //account for padding

		
		//document.getElementById(mainsids[m]).style.top  =  document.getElementById(menuparent).offsetTop + document.getElementById(menuparent).offsetHeight ;
		document.getElementById(mainsids[m]).style.top  =  300  + "px"; // hardcoded position from top of page (for compatibility)
 	}
	// position remaining menus (start from the end of the array)
	 for (m=subssids.length-1;m>=0;m--){
		menuparent = subssids[m]+ "_parent";
		if(document.getElementById(subssids[m]).style){

			document.getElementById(subssids[m]).style.zIndex = 600;	
			document.getElementById(subssids[m]).style.left = document.getElementById(menuparent).offsetParent.offsetLeft + 162  + "px";
			document.getElementById(subssids[m]).style.top  =  document.getElementById(menuparent).offsetTop  + document.getElementById(menuparent).offsetParent.offsetTop + 1  + "px";
		}
	}
	
}

function create_menu(id,myparent,mains){
	menuids[menuids.length] = id;
	var buffer = "";
	i=0;
	if(mains){
		mouseovertext= "onMouseOver=\"showSub('" + id + "')\"";
	} else {
		mouseovertext= "onMouseOver=\"showSub('" + myparent + "');showSub('" + id + "');\"";
	}
	mouseoutext = " onMouseOut=\"showhide()\"";
	submenustyle = " style=\"padding-bottom:20px;padding-left:15px\"";
	buffer += "<div  class=\"submenu\" id=\"" + id + "\"" + mouseovertext + mouseoutext  + submenustyle+"><ul>\n";
	while(i<menus[id].length){
		thisitem = menus[id][i].split(",");
		
		if (thisitem[3] == "1") {
			thisbaseurl = "";
			link_target = " target='_blank' ";
		} else if (thisitem.length >= 5 && thisitem[4] == "1"){
			thisbaseurl = document.location.pathname;
			link_target = "";
		} else {
			thisbaseurl = baseurl;
			link_target = "";
		}
		if(thisitem[0] != 0 && typeof (menus[thisitem[0]]) != "undefined"){
			mousetxt = "onMouseOver=\"showSub('"+ thisitem[0] +"')\" onMouseOut=\"hideSub('"+ thisitem[0] + "')\"";
			buffer +=  "<li class=\"subsubmenu\" " + mousetxt + " id=\"" + thisitem[0] +"_parent\"><a href=\"" + thisbaseurl + thisitem[2]  + "\"" + link_target + " >" + thisitem[1] + "</a>\n";
			// has its own menu (recursive function)
				j = i;
				create_menu(thisitem[0],id,0);
				i = j+1; //needed to preserve i variable through recursion
			buffer += "</li>\n";	
		} else {
			i++;
			buffer +=  "<li><a href=\"" + thisbaseurl + thisitem[2] + "\"" + link_target + " >" + thisitem[1] + "</a></li>\n";
		}
	}
	buffer += "<li class=last ><a href=\"#\">&nbsp;</a></li>\n";
	buffer += "</ul></div>\n";
	subs[subs.length] =  buffer;
	if(! mains){
		 subssids[subssids.length] = id;
	 }
}

init_menus();