       var photo_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 photo_menu_arrow = 'images/arrow.gif';
        
       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=='photo_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=='photo_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){ 
			  sub.style.top = '29px';
			  $("#" + sub.id).slideDown("slow");
		   
             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('photo_listItem' + parent.id.replace(/[^0-9]/g,'')); 
             if(li.className.indexOf('over')<0)li.className = li.className + 'over'; 
             parent = li.parentNode; 
          } 
		   hideMenuItems(exceptionArray,false); 
    
              
         
    
       } 
	   
	
       function hideMenuItems(exceptionArray,autoHide) 
       { 
          /* 
          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]; 
				   
				   //Added by Maarten Willebrands, makes the menu slide up when autohide is executed.
				   if (!autoHide)
				   {
						$('#' +  visibleMenus[no].id).stop(true,true);
						visibleMenus[no].style.display = 'none'; 
				   }
				   else
				   {
						$('#' + visibleMenus[no].id).slideUp("slow");
					}
                   
                   var li = document.getElementById('photo_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(),true);    
			 
             if(activeMenuItem)activeMenuItem.className=activeMenuItem.className.replace(/over/,'');        
          } 
       } 
        
        
    function initSubMenus(inputObj,initOffsetLeft,currentDepth,main_menu_id) 
    {  
             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; 
            
             // ADD - add background image and no-repeat 
//             ul.style.backgroundImage="url('images/"+main_menu_id+".jpg')"; 
//             ul.style.backgroundRepeat="no-repeat"; 
               
             ul.onmouseover = mouseOverMenu; 
             ul.onmouseout = mouseOutMenu; 
             currentZIndex+=1; 
             ul.style.zIndex = currentZIndex; 
             menuBlockArray.push(ul); 
             ul = photo_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';
             ul.style.left = '0px'; 
			
             ul.style.top = '0px';              
             var li = ul.getElementsByTagName('LI')[0]; 
             while(li){ 
                if(li.tagName=='LI'){    
                   li.className='currentDepth' + currentDepth;                
                   li.id = 'photo_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){ 
                //photo_menuObj.appendChild(ul); 
             } 
          }    
       } 
    
    
       function resizeMenu() 
       { 
          var offsetParent = getLeftPos(photo_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 initphotoMenu() 
    { 
    photo_menuObj = document.getElementById('photo_menu'); 
    var aTags = photo_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 != 'photo_menu') 
    { 
    var img = document.createElement('IMG'); 
    img.src = photo_menu_arrow; 
    aTags[no].appendChild(img);  
    } 
    } 
    var mainMenu = photo_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 + 0 + 'px'; 
    while(mainMenuItem){ 
     
    // ADD - get main menu id name 
    main_menu_id = mainMenuItem.id; 
    mainMenuItem.className='currentDepth1'; 
    mainMenuItem.id = 'photo_listItem' + liIndex; 
    mainMenuItem.onmouseover = showHideSub; 
    liIndex++;  
    if(mainMenuItem.tagName=='LI'){ 
	
    mainMenuItem.style.cssText = 'float:left;';  
    mainMenuItem.style.styleFloat = 'left';
    mainMenuItemsArray[mainMenuItemsArray.length] = mainMenuItem; 
    
    // ADD - "main_menu_id" to be sent to the submenu 
    initSubMenus(mainMenuItem,0,2,main_menu_id); 
      
    } 
    mainMenuItem = mainMenuItem.nextSibling; 
    } 
    for(var no=0;no<mainMenuItemsArray.length;no++){ 
    //alert(mainMenuItemsArray[no].id) 
    initSubMenus(mainMenuItemsArray[no],0,2,'');  
    } 
    menuParentOffsetLeft = getLeftPos(photo_menuObj);  
    //window.onresize = resizeMenu;  
    photo_menuObj.style.visibility = 'visible';  
    } 

