// Basic data declarations
var glnav_rolloverTimer = new Array();               // Timers for navigation menus
var glnav_rolloffTimer = new Array();
var glnav_onImg = new Array();
var glnav_offImg = new Array();
var glnav_imgPath = "./images/";
var nav_ready;

// Swap images on based on the DIV object that contains the image and a name array
function imageOn(layerObj,name) {
   if (layerObj.doc.images) {
    layerObj.doc.images[name].src = glnav_onImg[name].src
   }
}

function navImgOn(name) {
  var imgName = glnav_navImgPrefix+name;
  eval("navObj=" + glnav_navDivPrefix);
  imageOn(navObj,imgName);
  return true;
}

// Swap images off based on the DIV object that contains the image and a name array 
function imageOff(layerObj,name) {
	if (layerObj.doc.images) {
		layerObj.doc.images[name].src = glnav_offImg[name].src
	}
}

function navImgOff(name) {
  var imgName = glnav_navImgPrefix+name;
  eval("navObj=" + glnav_navDivPrefix);
  imageOff(navObj,imgName);
  return true;
}

// Helper code to generate Image objects for image swaps
function imgSwapInit(refName,imgActive,imgNormal) {
  glnav_onImg[refName] = eval("new Image()");
  glnav_offImg[refName] = eval("new Image()");
  glnav_onImg[refName].src = imgActive;
  glnav_offImg[refName].src = imgNormal;
  return true;
}

function setRolloffTimer(name, currMenu) {
	if (nav_ready) {
		if (glnav_rolloverTimer[name]) clearTimeout(glnav_rolloverTimer[name]);
		glnav_rolloffTimer[name] = setTimeout("closeMenu('" + name + "', '" + currMenu + "');", glnav_menuInterval);
	}
}

function setRolloverTimer(name, currMenu) {
	if (nav_ready) {
		if (glnav_rolloffTimer[name]) clearTimeout(glnav_rolloffTimer[name]);
		glnav_rolloverTimer[name] = setTimeout("openMenu('" + name + "', '" + currMenu + "');", glnav_menuInterval);
	}
}

// Wrapper functions to handle opening menus
function openMenu(name, currMenu) {
	if (glnav_rolloverTimer[name]) clearTimeout(glnav_rolloverTimer[name]);
	if (name!==currMenu) {
		if (currMenu!='') navImgOff(currMenu);
		navImgOn(name);
		}
	glnav_menuObjs[name].openMenu();
	return false;
}

function closeMenu(name, currMenu) {
	if (glnav_rolloffTimer[name]) clearTimeout(glnav_rolloffTimer[name]);
	if (name!==currMenu) {
		if (currMenu!='') navImgOn(currMenu);
		navImgOff(name);
		}
	glnav_menuObjs[name].closeMenu();
	
	return false;
}

function getDomObjRef(id) {
	var obj;
	if (is.ie5 || is.ns6) {
		obj = document.getElementById(id);
	} else if (is.ie4) {
		obj = document.all[id];
	}
	return obj; 
}

function goTo(theURL){
	if (theURL) { 
		document.location.href = theURL;
	}
}

// ********************************************************
// onLoad Initialization function
// ********************************************************
function init() {
    // LAYER INITIALIZATION
	//debugln(glnav_navDivPrefix + " = new DynLayer('" + glnav_navDivId + "','')");
	eval(glnav_navDivPrefix + " = new DynLayer('" + glnav_navDivId + "','')");
	
	// Initialize layer objects and events for menus
	for (var i = 0; i < glnav_menuNames.length; i++) {
	  var menuName = glnav_menuNames[i];
	  var menuObj = glnav_menuObjs[menuName];
	  
	  // Build layer object for menu
	  eval(menuObj.containerDivRef + " = new DynLayer('" + menuObj.containerDivName + "','')");
	  
	  // Bind mouseover|out event handlers to menus
	  eval("menuDivObj=" + glnav_menuObjs[menuName].containerDivRef);
	  menuDivObj.elm.onmouseover = new Function("setRolloverTimer('"+menuName+"', '" + whichMenu + "')");
	  menuDivObj.elm.onmouseout = new Function("setRolloffTimer('"+menuName+"', '" + whichMenu + "')");
	  
	  // Bind mousedown events for all menu elements
	  if (!is.ns4) {
		  var textArray = glnav_menuText[menuName];
		  var urlArray = glnav_menuURLs[menuName];
		  //debugln('binding click events for ' + menuName);
		  for (var j = 0; j < textArray.length; j++) {
		  	elmName = menuObj.name + 'Elm' + j;
			menuElmObj = getDomObjRef(elmName);
			//debugln(' elm: ' + elmName + "(" + typeof menuElmObj + ")");
			if ((textArray[j] != '') && (urlArray[j] != '')) menuElmObj.onclick = new Function("goTo('" + urlArray[j] + "'); return false;");
		  }
	  }
	}
	nav_ready = true;
}
