
activateMenu = function(nav) {

    /* currentStyle restricts the Javascript to IE only */
    if (document.all &&
        document.getElementById(nav).currentStyle) {  
        var navroot = document.getElementById(nav);

        /* Get all the list items within the menu */

        var lis=navroot.getElementsByTagName("LI");  
        for (i=0; i<lis.length; i++) {

            /* If the LI has another menu
             * level */
            if(lis[i].lastChild.tagName=="UL"){

                /* assign
                 * the
                 * function
                 * to
                 * the
                 * LI */
                lis[i].onmouseover=function() { 

                    /* display
                     * the
                     * inner
                     * menu
                     * */
                    this.lastChild.style.display="block";
                }
                lis[i].onmouseout=function() {   
                    this.lastChild.style.display="none";
                }
            }
        }
    }
}
window.onload= function(){
    /* pass the function the id of the top level UL */

    /* remove one, when only using one menu */
    activateMenu('nav'); 
    activateMenu('vertnav'); 
}





var dhtmlgoodies_menuObj;       // Reference to the menu div
var currentZIndex = 1000;
var liIndex = 0;
var visibleMenus = new Array();
var activeMenuItem = false;
var timeBeforeAutoHide = 1200; // Microseconds from mouse leaves menu to auto hide.
var dhtmlgoodies_menu_arrow = '../img/arrow.gif';

var MSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false;
var navigatorVersion = navigator.appVersion.replace(/.*?MSIE ([0-9]\.[0-9]).*/g,'$1')/1;
var menuBlockArray = new Array();
var menuParentOffsetLeft = false;       
function getTopPos(inputObj)
{

 var returnValue = inputObj.offsetTop;
 if(inputObj.tagName=='LI' && inputObj.parentNode.className=='menuBlock1'){
  var aTag = inputObj.getElementsByTagName('A')[0];
  if(aTag)returnValue += aTag.parentNode.offsetHeight;

 }       
 while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;

 return returnValue;
}

function getLeftPos(inputObj)
{
 var returnValue = inputObj.offsetLeft;
 while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
 return returnValue;
}

function showHideSub()
{

 var attr = this.parentNode.getAttribute('currentDepth');
 if(navigator.userAgent.indexOf('Opera')>=0){
  attr = this.parentNode.currentDepth;
 }

 this.className = 'currentDepth' + attr + 'over';

 if(activeMenuItem && activeMenuItem!=this){
  activeMenuItem.className=activeMenuItem.className.replace(/over/,'');
 }
 activeMenuItem = this;

 var numericIdThis = this.id.replace(/[^0-9]/g,'');
 var exceptionArray = new Array();
 // Showing sub item of this LI
 var sub = document.getElementById('subOf' + numericIdThis);
 if(sub){
  visibleMenus.push(sub);
  sub.style.display='';
  sub.parentNode.className = sub.parentNode.className + 'over';
  exceptionArray[sub.id] = true;
 }       

 // Showing parent items of this one

 var parent = this.parentNode;
 while(parent && parent.id && parent.tagName=='UL'){
  visibleMenus.push(parent);
  exceptionArray[parent.id] = true;
  parent.style.display='';

  var li = document.getElementById('dhtmlgoodies_listItem' + parent.id.replace(/[^0-9]/g,''));
  if(li.className.indexOf('over')<0)li.className = li.className + 'over';
  parent = li.parentNode;

 }

 hideMenuItems(exceptionArray);
}

function hideMenuItems(exceptionArray)
{
 /*
    Hiding visible menu items
  */
 var newVisibleMenuArray = new Array();
 for(var no=0;no<visibleMenus.length;no++){
  if(visibleMenus[no].className!='menuBlock1' && visibleMenus[no].id){
   if(!exceptionArray[visibleMenus[no].id]){
    var el = visibleMenus[no].getElementsByTagName('A')[0];
    visibleMenus[no].style.display = 'none';
    var li = document.getElementById('dhtmlgoodies_listItem' + visibleMenus[no].id.replace(/[^0-9]/g,''));
    if(li.className.indexOf('over')>0)li.className = li.className.replace(/over/,'');
   }else{                          
    newVisibleMenuArray.push(visibleMenus[no]);
   }
  }
 }               
 visibleMenus = newVisibleMenuArray;             
}



var menuActive = true;
var hideTimer = 0;
function mouseOverMenu()
{
 menuActive = true;              
}

function mouseOutMenu()
{
 menuActive = false;
 timerAutoHide();        
}

function timerAutoHide()
{
 if(menuActive){
  hideTimer = 0;
  return;
 }

 if(hideTimer<timeBeforeAutoHide){
  hideTimer+=100;
  setTimeout('timerAutoHide()',99);
 }else{
  hideTimer = 0;
  autohideMenuItems();    
 }
}

function autohideMenuItems()
{
 if(!menuActive){
  hideMenuItems(new Array());     
  if(activeMenuItem)activeMenuItem.className=activeMenuItem.className.replace(/over/,'');         
 }
}


function initSubMenus(inputObj,initOffsetLeft,currentDepth)
{       
 var subUl = inputObj.getElementsByTagName('UL');
 if(subUl.length>0){
  var ul = subUl[0];

  ul.id = 'subOf' + inputObj.id.replace(/[^0-9]/g,'');
  ul.setAttribute('currentDepth' ,currentDepth);
  ul.currentDepth = currentDepth;
  ul.className='menuBlock' + currentDepth;
  ul.onmouseover = mouseOverMenu;
  ul.onmouseout = mouseOutMenu;
  currentZIndex+=1;
  ul.style.zIndex = currentZIndex;
  menuBlockArray.push(ul);
  var topPos = getTopPos(inputObj);
  var leftPos = getLeftPos(inputObj)/1 + initOffsetLeft/1;                        
  ul = dhtmlgoodies_menuObj.appendChild(ul);
  ul.style.position = 'absolute';
  ul.style.left = leftPos + 'px';
  ul.style.top = topPos + 'px';
  var li = ul.getElementsByTagName('LI')[0];

  while(li){
   if(li.tagName=='LI'){   
    li.className='currentDepth' + currentDepth;                                     
    li.id = 'dhtmlgoodies_listItem' + liIndex;
    liIndex++;                              
    var uls = li.getElementsByTagName('UL');
    li.onmouseover = showHideSub;

    if(uls.length>0){
     var offsetToFunction = li.getElementsByTagName('A')[0].offsetWidth+2;
     if(navigatorVersion<6 && MSIE)offsetToFunction+=15;     // MSIE 5.x fix
     initSubMenus(li,offsetToFunction,(currentDepth+1));
    }       
    if(MSIE){
     var a = li.getElementsByTagName('A')[0];
     a.style.width=li.offsetWidth+'px';
     a.style.display='block';
    }                                       
   }
   li = li.nextSibling;
  }
  ul.style.display = 'none';      
  if(!document.all){
   //dhtmlgoodies_menuObj.appendChild(ul);
  }
 }       
}


function resizeMenu()
{
 var offsetParent = getLeftPos(dhtmlgoodies_menuObj);

 for(var no=0;no<menuBlockArray.length;no++){
  var leftPos = menuBlockArray[no].style.left.replace('px','')/1;
  menuBlockArray[no].style.left = leftPos + offsetParent - menuParentOffsetLeft + 'px';
 }
 menuParentOffsetLeft = offsetParent;
}

/* 
   Initializing menu 
 */
function initDhtmlGoodiesMenu()
{
 dhtmlgoodies_menuObj = document.getElementById('dhtmlgoodies_menu');


 var aTags = dhtmlgoodies_menuObj.getElementsByTagName('A');
 for(var no=0;no<aTags.length;no++){                     

  var subUl = aTags[no].parentNode.getElementsByTagName('UL');
  if(subUl.length>0 && aTags[no].parentNode.parentNode.parentNode.id != 'dhtmlgoodies_menu'){
   var img = document.createElement('IMG');
   img.src = dhtmlgoodies_menu_arrow;
   aTags[no].appendChild(img);                             

  }

 }

 var mainMenu = dhtmlgoodies_menuObj.getElementsByTagName('UL')[0];
 mainMenu.className='menuBlock1';
 mainMenu.style.zIndex = currentZIndex;
 mainMenu.setAttribute('currentDepth' ,1);
 mainMenu.currentDepth = '1';
 mainMenu.onmouseover = mouseOverMenu;
 mainMenu.onmouseout = mouseOutMenu;             

 var mainMenuItemsArray = new Array();
 var mainMenuItem = mainMenu.getElementsByTagName('LI')[0];
 mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
 while(mainMenuItem){

  mainMenuItem.className='currentDepth1';
  mainMenuItem.id = 'dhtmlgoodies_listItem' + liIndex;
  mainMenuItem.onmouseover = showHideSub;
  liIndex++;                              
  if(mainMenuItem.tagName=='LI'){
   mainMenuItem.style.cssText = 'float:left;';     
   mainMenuItem.style.styleFloat = 'left';
   mainMenuItemsArray[mainMenuItemsArray.length] = mainMenuItem;
   initSubMenus(mainMenuItem,0,2);
  }                       

  mainMenuItem = mainMenuItem.nextSibling;

 }

 for(var no=0;no<mainMenuItemsArray.length;no++){
  initSubMenus(mainMenuItemsArray[no],0,2);                       
 }

 menuParentOffsetLeft = getLeftPos(dhtmlgoodies_menuObj);        
 window.onresize = resizeMenu;   
 dhtmlgoodies_menuObj.style.visibility = 'visible';      
}

window.onload = initDhtmlGoodiesMenu;

