<!--
//STRUCTURE FORMAT

// LEVEL 0 ROOT		nav_home

// LEVEL 1 MENU		menu_home
// LEVEL 1 ITEM 1	item_home_test1
// LEVEL 1 ITEM 2	item_home_test2
// LEVEL 1 ITEM 3	item_home_test3

// LEVEL 2 MENU		menu_home_test2
// LEVEL 2 ITEM 1	item_home_test2_test1
// LEVEL 2 ITEM 2	item_home_test2_test2
// LEVEL 2 ITEM 3	item_home_test2_test3

// LEVEL 3 MENU		menu_home_test2_test3
// LEVEL 3 ITEM 1	item_home_test2_test3_test1
// LEVEL 3 ITEM 2	item_home_test2_test3_test2
// LEVEL 3 ITEM 3	item_home_test2_test3_test3

var zDelaySec = 375;
var zMouseOver = false;

var zCurrRoot = null;
var zCurrMain = null;

var zCurrParent = null;
var zCurrGroup = null;
var zCurrElement = null;
var zCurrSub = null;

var znavOffsetTop = 0;
var znavOffsetLeft = -2; // typically border size

var zsubnavOffsetTop = 0;
var zsubnavOffsetLeft = 0;

var zchildOffsetWidth = 0;

var zDropdownAlignment = 'align'; // Options are align, left, right or center

var zNavClass = 'nav';
var zNavClassOn = 'navon';

var zItemClass = 'navitem';
var zItemClassOn = 'navitemon';

function GetTopPos(eID)
{
  var nTopPos = eID.offsetTop;
  var eParElement = eID.offsetParent;
  while (eParElement != null) { nTopPos += eParElement.offsetTop; eParElement = eParElement.offsetParent; }
  return nTopPos;
}
function GetLeftPos(eID)
{
  var nLeftPos = eID.offsetLeft;
  var eParElement = eID.offsetParent;
  while (eParElement != null) { nLeftPos += eParElement.offsetLeft; eParElement = eParElement.offsetParent; }
  return nLeftPos;
}

function GetWidth(eID) { var xPos = eID.offsetWidth; if(xPos) { return xPos; } }
function GetHeight(eID) { var xPos = eID.offsetHeight; if(xPos) { return xPos; } }

function NavigateTo(zLink,zTarget) {
  if(zTarget == 'new') { window.open(zLink,'naverwindow','resizable=yes,scrollbars=yes,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes'); }
  if(zTarget == null) { top.location.href=zLink; }
}
function DelayHide(zID) { if(zMouseOver == false){ HideElement(zID); } }
function HideElement(zID)
{
  //zID = Must be a menu, not a item
  //zLevel = getLevel(zID);
  //zID = getMenu(zLevel,zID) 
  
  var zCurrGroup = eval("parent.zGroup_" + zID);
  var zCurrSub = eval("parent.zSub_" + zID);
  var nav=document.getElementById(zID); 
  if(nav != null) { nav.style.visibility = 'hidden'; }

  var navroot=document.getElementById(zCurrRoot);
  if(navroot != null) {
    if(navroot.className == zNavClassOn) { navroot.className = zNavClass; }
  }
  
  eval("parent.zGroup_" + zID + " = null;");
  eval("parent.zSub_" + zID + " = null;");
  if(zCurrSub) { HideElement(zCurrSub); }
  if(zCurrGroup) { HideElement(zCurrGroup); }
}
function ForceHideElement(zID)
{
  //zID = Must be a menu, not a item
  //zLevel = getLevel(zID);
  //zID = getMenu(zLevel,zID)
    
  var zCurrSub = eval("parent.zSub_" + zID);
  var nav=document.getElementById(zID); 
  if(nav != null) { nav.style.visibility = 'hidden'; }

  var navroot=document.getElementById(zCurrRoot);
  if(navroot != null) {
    if(navroot.className == zNavClassOn) { navroot.className = zNavClass; }
  }
  
  eval("parent.zGroup_" + zID + " = null;");
  eval("parent.zSub_" + zID + " = null;");
  if(zCurrSub) { ForceHideElement(zCurrSub); }
}
function HideNav(zID)
{
  //zParent = Root button (ie. nav_home)
  //zElement = Level 1 button (ie. subnav_home)
  
  zParent = getMenu(0,zID);
  zElement = getMenu(1,zID);
   
  zMouseOver = false;
  clearTimeout(parent.zDelay);
  parent.zDelay = setTimeout("DelayHide('" + zElement + "');", zDelaySec);
}
function HideSubNav(zID)
{
  zLevel = getLevel(zID);
  zType = getType(zID);
  zRoot = getMenu(0,zID);
  
  if (zType == "menu") {
	//zGroup = Parent menu, up one level from menu calling routine
	//zParent = Item that this menu is attached to
	//zElement = The menu calling the routine
    zGroup = getMenu(zLevel-1,zID);
    zParent = getItem(zID);
    zElement = zID;
  }
  if (zType == "item") {
	//zGroup = Menu containing the item calling the routine (ie. subnav_home)
	//zParent = Item calling the routine (ie. nav_home_test1)
	//zElement = Child Menu for the Item (ie. subnav_home_test1)
    zGroup = getMenu(zLevel,zID);
    zParent = zID;
    zElement = getChild(zID);
  }
  
  zMouseOver = false;
  clearTimeout(parent.zDelay);
  parent.zDelay = setTimeout("DelayHide('" + zElement + "');", zDelaySec);

  SelectPath("off",zParent);
}
function ShowNav(zID)
{
  //zParent = Root button (ie. nav_home)
  //zElement = Level 1 button (ie. subnav_home)
  
  zParent = getMenu(0,zID);
  zElement = getMenu(1,zID);
  
  zMouseOver = true;
  clearTimeout(parent.zDelay);
  
  if(((zParent != zCurrRoot) && (zCurrMain != zElement)) && ((zCurrRoot) && (zCurrMain))) { ForceHideElement(zCurrMain); }
  zCurrRoot = zParent; zCurrMain = zElement;
  
  var navparent=document.getElementById(zParent);
  if(navparent != null) {
    if(navparent.className == zNavClass) { navparent.className = zNavClassOn; }
    
    var nav=document.getElementById(zElement);

    if(nav != null) {      
      var zWidth = GetWidth(navparent);
      var zWidthChild = GetWidth(nav);      
	  var zHeight = GetHeight(navparent);
	  
	  var zAlignment = zDropdownAlignment;
	  
	  if(zDropdownAlignment.indexOf('align') !=-1) { var navalign=nav.getAttributeNode("align"); if(navalign != null) { var zAlignment = navalign.value; }; }
	  	  
	  switch (zAlignment) { 	
	    case 'left':
	      var zPositionModifier = 0;	      
	      break
	    case 'right':
	      var zPositionModifier = Math.round(((zWidthChild - zWidth) * -1));
	      break
	    case 'center':
	      var zPositionModifier = Math.round((((zWidthChild - zWidth) / 2) * -1));
	      break
	    default:
	      var zPositionModifier = 0;
	      break
	  }
	  	   
      var zTopPos = GetTopPos(navparent) + zHeight + znavOffsetTop;
      var zLeftPos = GetLeftPos(navparent) + znavOffsetLeft + zPositionModifier;      
      nav.style.top = zTopPos + 'px'; nav.style.left = zLeftPos + 'px'; nav.style.visibility = 'visible';
    }
  }
}
function ShowSubNav(zID)
{
  zLevel = getLevel(zID);
  zType = getType(zID);
  zRoot = getMenu(0,zID);
  
  if (zType == "menu") {
	//zGroup = Parent menu, up one level from menu calling routine
	//zParent = Item that this menu is attached to
	//zElement = The menu calling the routine
    zGroup = getMenu(zLevel-1,zID);
    zParent = getItem(zID);
    zElement = zID;
  }
  if (zType == "item") {
	//zGroup = Menu containing the item calling the routine (ie. subnav_home)
	//zParent = Item calling the routine (ie. nav_home_test1)
	//zElement = Child Menu for the Item (ie. subnav_home_test1)
    zGroup = getMenu(zLevel,zID);
    zParent = zID;
    zElement = getChild(zID);
  }
   
  zMouseOver = true;
  clearTimeout(parent.zDelay);
  
  var nav=document.getElementById(zElement);
  eval("parent.zGroup_" + zElement + " = '" + zGroup + "';");
  var zCurrSub = eval("parent.zSub_" + zGroup);

  if((zCurrSub != zElement) && (zCurrSub)) {
    var navcurr=document.getElementById(zCurrSub);
    if(navcurr != null) { ForceHideElement(zCurrSub); }  
  }
  eval("parent.zSub_" + zGroup + " = '" + zElement + "';");
  
  var navroot=document.getElementById(zRoot);
  if(navroot != null) { navroot.className = zNavClassOn; }
      
  var navparent=document.getElementById(zParent);
  if(navparent != null) {

    //if(navparent.className == zItemClass) { navparent.className = zItemClassOn; }
    
    var zWidth = GetWidth(navparent);
    var zTopPos = GetTopPos(navparent) + zsubnavOffsetTop;
    var zLeftPos = GetLeftPos(navparent) + zWidth + zsubnavOffsetLeft;
    
    if(nav != null) { nav.style.top = zTopPos + 'px'; nav.style.left = zLeftPos + 'px'; nav.style.visibility = 'visible'; }
  }

  SelectPath("on",zParent);
}
function SelectPath (zState,zID) {
	if ((zState != null) && (zID != null)) {
		
		tArray = zID.split("_");
		tArray[0] = "item";
		zID = tArray.join("_");

		zCurrID = zID;
		while (zCurrID.length >= 1)
		{
			switch (zState) { 	
				case "on":
					var zItem=document.getElementById(zCurrID);
					if(zItem != null) { zItem.className = zItemClassOn; }
					break;
				case "off":
					var zItem=document.getElementById(zCurrID);
					if(zItem != null) {  zItem.className = zItemClass; }
					break;
			}

			tArray = zCurrID.split("_");
			tArray.splice(tArray.length-1,1);
			if (tArray.length < 3) { zCurrID = ""; }
			else { zCurrID = tArray.join("_"); }
			//alert("'" + zCurrID + "'");
		}

	}
}
function SwitchID(zOld,zNew)
{
  var idOld=document.getElementById(zOld);
  var idNew=document.getElementById(zNew);
  if ((idOld != null) && (idNew != null)) { idOld.style.display = 'none'; idNew.style.display = 'inline'; }
}

function getMenu (intLevel,zID) {
	if ((intLevel >= 0) && (zID != null)) {
		tArray = zID.split("_");	
		if (intLevel == 0) { tArray[0] = "nav"; tArray.splice(2,tArray.length); }
		else { tArray[0] = "menu"; tArray.splice(intLevel+1,tArray.length); }
		strNewID = tArray.join("_");
		return strNewID;
	}
}
function getLevel (zID) {
	if (zID != null) {
		tArray = zID.split("_");
		intLevel = null;		
		if ((tArray[0] == "nav") && (tArray.length == 2)) { intLevel = 0; }; 
		if ((tArray[0] == "menu") && (tArray.length >= 2)) { intLevel = tArray.length-1; };
		if ((tArray[0] == "item") && (tArray.length >= 3)) { intLevel = tArray.length-2; };	
		return intLevel;
	}
}
function getChild (zID) {
	if (zID != null) {
		tArray = zID.split("_");
		tArray[0] = "menu";
		strNewID = tArray.join("_");
		return strNewID;
	}
}
function getItem (zID) {
	if (zID != null) {
		tArray = zID.split("_");
		tArray[0] = "item";
		strNewID = tArray.join("_");
		return strNewID;
	}
}
function getType(zID) {
	if (zID != null) {
		tArray = zID.split("_");
		return tArray[0];
	}	
}
function getParent(zID) {
	intLevel = getLevel(zID);
	strType = getType(zID);
	tParent = null;
	if (strType == "menu") {
		if (intLevel == 1) { tParent = getMenu(0,zID); }
		if (intLevel >= 2) { tParent = getItem(zID); }
	}
	if (strType == "item") { tParent = getMenu(intLevel,zID); }
	return tParent;
}

// -->
