
var main_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 main_menu_arrow = 'http://www.dh1tmlgoodies.com/scripts/dh1tmlgoodies-menu2/images/arrow.gif'; 
var main_menu_arrow = ''; 

var MSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false; 
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox')>=0?true:false; 
var navigatorVersion = navigator.appVersion.replace(/.*?MSIE ([0-9]\.[0-9]).*/g,'$1')/1; 
var menuBlockArray = new Array(); 
var menuParentOffsetLeft = false;    


// {{{ getStyle() 
/** 
* Return specific style attribute for an element 
* 
* @param Object el = Reference to HTML element 
* @param String property = Css property 
* @private 
*/        
function getStyle(el,property) 
{        

  if (document.defaultView && document.defaultView.getComputedStyle) { 

	 var retVal = null;              
	 var comp = document.defaultView.getComputedStyle(el, ''); 
	 if (comp){ 
		retVal = comp[property]; 
		  
		if(!retVal){ 
		   var comp = document.defaultView.getComputedStyle(el, null); 
		   retVal = comp.getPropertyCSSValue(property); 
		}          
	 }    

	 if(retVal==null)retVal=''; 
	  
	 return el.style[property] || retVal; 
  } 
  if (document.documentElement.currentStyle && MSIE){    
	 var value = el.currentStyle ? el.currentStyle[property] : null; 
	 return ( el.style[property] || value ); 
										  
  } 
  return el.style[property];              
} 
  
function getTopPos(inputObj) 
{ 
var origInputObj = 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; 
 } 
 var topOfMenuReached = false; 
 while((inputObj = inputObj.offsetParent) != null){ 
	if(inputObj.parentNode.id=='main_menu')topOfMenuReached=true; 
	if(topOfMenuReached && !inputObj.className.match(/menuBlock/gi) || (!MSIE && origInputObj.parentNode.className=='menuBlock1')){ 
	   var style = getStyle(inputObj,'position'); 
	   if(style=='absolute' || style=='relative'){                
		  return returnValue;            
	   } 
	} 
	  
	returnValue += inputObj.offsetTop;          
 } 

 return returnValue; 
} 

function getLeftPos(inputObj) 
{ 
 var returnValue = inputObj.offsetLeft; 
  
 var topOfMenuReached = false; 
 while((inputObj = inputObj.offsetParent) != null){ 
   if(inputObj.parentNode.id=='main_menu')topOfMenuReached=true; 
	if(topOfMenuReached && !inputObj.className.match(/menuBlock/gi)){ 
	   var style = getStyle(inputObj,'position'); 
	   if(style=='absolute' || style=='relative')return returnValue; 
	} 
  
	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('tigerid_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('tigerid_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); 
	 ul = main_menuObj.appendChild(ul); 
	 var topPos = getTopPos(inputObj); 
	 var leftPos = getLeftPos(inputObj)/1 + initOffsetLeft/1;          
	 
	 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 = 'tigerid_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){ 
		//main_menuObj.appendChild(ul); 
	 } 
  }    
} 


function resizeMenu() 
{ 
  var offsetParent = getLeftPos(main_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() 
{ 
  main_menuObj = document.getElementById('main_menu'); 
	
	
  var aTags = main_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 != 'main_menu'){ 
		/* var img = document.createElement('IMG'); 
		img.src = main_menu_arrow; 
		aTags[no].appendChild(img);         */      

	 } 

  } 
		  
  var mainMenu = main_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 = 'tigerid_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(main_menuObj);    
  window.onresize = resizeMenu;    
  main_menuObj.style.visibility = 'visible';    
} 
window.onload = initDhtmlGoodiesMenu;