/*******************************************************************************
____________________________ API DOCUMENTATION BEGIN ___________________________
````````````````````````````````````````````````````````````````````````````````
Variables and functions used throughout website.

````````````````````````````````````````````````````````````````````````````````
_____________________________ API DOCUMENTATION END ____________________________
*******************************************************************************/

//------------------------------------------------------------------------------
// VARIABLES BEGIN
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// VARIABLES END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// BROWSER WINDOW FUNCTIONS BEGIN
//------------------------------------------------------------------------------

//FUNCTION-- creates a mini popup browser window for glossary
function glossaryWin(url) {
 var showToolBar = 0;
 if(document.all) showToolBar=1;
 glossaryWin1= window.open(url,"glossary",'directories=no,location=no,menubar=1,resizable=yes,scrollbars=yes,status=no,titlebar=yes,width=690,height=275,toolbar='+showToolBar);
 if(glossaryWin1 != null) glossaryWin1.focus();
}

//------------------------------------------------------------------------------

//FUNCTION-- creates a mini popup browser window for videos
function videoWin(url) {
 var showToolBar = 0;
 if(document.all) showToolBar=0;
 videoWin1= window.open(url,"video",'directories=no,location=no,menubar=0,resizable=yes,scrollbars=no,status=no,titlebar=no,width=660,height=435,toolbar='+showToolBar);
 if(videoWin1 != null) videoWin1.focus();
}

//------------------------------------------------------------------------------
// BROWSER WINDOW FUNCTIONS END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// ROLLOVER FUNCTIONS BEGIN
//------------------------------------------------------------------------------

//FUNCTION-- preload images
function preloadImage(argVirtualName, argFilePath, argFileName) {
 eval(argVirtualName +' = new Image()'); //create a new image object
 eval(argVirtualName +'.src = "' + argFilePath + argFileName + '"');
}

//------------------------------------------------------------------------------
// ROLLOVER FUNCTIONS END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// TOGGLE BEGIN
//------------------------------------------------------------------------------

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

//------------------------------------------------------------------------------

function toggleLayers() {
  var i,p,v,obj,args=toggleLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

//------------------------------------------------------------------------------
// TOGGLE END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// CSS FUNCTIONS BEGIN
//------------------------------------------------------------------------------

//FUNCTION-- sets CSS class
function setCssClass(argID, argClass) {
 document.getElementById(argID).className = argClass;
}

//------------------------------------------------------------------------------
// CSS FUNCTIONS END
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// MENU BEGIN
//------------------------------------------------------------------------------

menus = new Array(); 

//CLASS CONSTRUCTOR-- creates menu object with foundation properties
function menu(argID, argPage, argParentMenu, argSubMenu, argMenuOnClass) {
 this.id = argID;
 this.page = argPage;
 this.parentMenu = argParentMenu;   
 this.subMenu = argSubMenu; 
 this.menuOnClass = argMenuOnClass;

 menus.push(this);
}

//------------------------------------------------------------------------------

function setMenu(argID) {
 var pageId = document.getElementById(argID).className; //set target class

 for(var j=0;j<menus.length;j++)
 {
  if(pageId == menus[j].page)
  {
   setCssClass(menus[j].id, menus[j].menuOnClass); //set selected state of menu for page

   //if menu has a subMenu then expand it
   if(menus[j].subMenu)
   {
    document.getElementById(menus[j].subMenu).style.display = "inline";
   }

   var parentMenu = menus[j].parentMenu;

   while(parentMenu)
   {
	  document.getElementById(parentMenu.subMenu).style.display = "inline"; //expand parent menu
	  setCssClass(parentMenu.id, parentMenu.menuOnClass); //set selected state of parent menu
	  parentMenu = parentMenu.parentMenu; //set flag for next parentMenu check
   }
   break;
  }
 } 
}

//------------------------------------------------------------------------------
// MENU END
//------------------------------------------------------------------------------
