 
	var timeBeforeAutoHide = 700;	// Microseconds to wait before auto hiding menu(1000 = 1 second)
	var slideSpeed_out = 10;	// Steps to move sub menu at a time ( higher = faster)
	var slideSpeed_in = 10;
		
	
	var slideTimeout_out = 25;	// Microseconds between slide steps ( lower = faster)
	var slideTimeout_in = 10;	// Microseconds between slide steps ( lower = faster)
	
	var showSubOnMouseOver = true;	// false = show sub menu on click, true = show sub menu on mouse over
	var fixedSubMenuWidth = false;	// Width of sub menu items - A number(width in pixels) or false when width should be dynamic
	
	var xOffsetSubMenu = 0; 	// Offset x-position of sub menu items - use negative value if you want the sub menu to overlap main menu
	
	var slideDirection = 'left';	// Slide to left or right ?
	
	/* Don't change anything below here */
	
    var activeSubMenuId = false;
    var LastactiveSubMenuId = false;
	var LastactiveSubMenuId2 = false;
	var activeMainMenuItem = false;
	var currentZIndex = 1000;		
	var autoHideTimer = 0;
	var submenuObjArray = new Array();
	var okToSlideInSub = new Array();
    var subPositioned = new Array();
    var submenuActive = new Array();
	var listfdivbyact = new Array();
    var ind = 0;
    var ind2 = 0;
	var overofmenu = 0;

	function stopAutoHide()
	{
		autoHideTimer = -1;
	}
	
	function initAutoHide()
	{   
        if(activeSubMenuId) LastactiveSubMenuId = activeSubMenuId;
        autoHideTimer = 0;
		if(autoHideTimer>=0)autoHide();   
	}
	
	function autoHide()
	{	
		if(autoHideTimer>timeBeforeAutoHide)
		{
            overofmenu = 1;

			if(activeMainMenuItem){
                activeMainMenuItem.className='';
				activeMainMenuItem = false;
			}
			
			if(activeSubMenuId){
				var obj = document.getElementById('subMenuDiv' + activeSubMenuId);
				showSub();
			}
            if(!activeSubMenuId && LastactiveSubMenuId) {
                var obj = document.getElementById('subMenuDiv' + LastactiveSubMenuId);
                showSub();
            }
		}else{
			if(autoHideTimer>=0){
				autoHideTimer+=50;
				setTimeout('autoHide()',50);
			}
		}
	}	
	
	function getTopPos(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  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 showSub()
	{   
        var subObj = false;
		if(this && this.tagName){
			var numericId = this.parentNode.id.replace(/[^0-9]/g,'');
			okToSlideInSub[numericId] = false;
			var subObj = document.getElementById('subMenuDiv' + numericId);
			if(activeMainMenuItem) { activeMainMenuItem.className=''; }
			if(subObj){
				if(!subPositioned[numericId]){
					if(slideDirection=='right'){
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetWidth + xOffsetSubMenu + 'px';
					}else{
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + xOffsetSubMenu + 'px';
						
					}
					submenuObjArray[numericId]['left'] = subObj.style.left.replace(/[^0-9]/g,'');
					subObj.style.top = getTopPos(submenuObjArray[numericId]['parentDiv']) + 'px';
					subPositioned[numericId] = true;
				}				
				subObj.style.visibility = 'visible';
				subObj.style.zIndex = currentZIndex;
				currentZIndex++;	
				this.className='activeMainMenuItem';
				activeMainMenuItem = this;
			}
		}else{
			var numericId = activeSubMenuId;
		}
        
        if(LastactiveSubMenuId) {
            if(LastactiveSubMenuId != LastactiveSubMenuId2 || ind == 0) {
                LastactiveSubMenuId2 = LastactiveSubMenuId;
                submenuActive[ind] = LastactiveSubMenuId; 
                ind++;
            }
        }
        
        if(submenuObjArray[numericId])
            var qq = submenuObjArray[numericId]['numb'];
        else  qq = 0;
    
        var myLinkItem = document.getElementById(numericId);
        if(myLinkItem) {
            ind2 = -1;
            listfdfba(myLinkItem, numericId);     
        }
        var inda = 0;
        var ggg = '';
        while (inda < ind2) {
            if(listfdivbyact[inda]) ggg = ggg + listfdivbyact[inda] + ' ';
            inda++;
        }
        //document.getElementById("aaa").innerHTML = ggg;
        
        
        if(overofmenu == 1) {
            while(ind >= 0) {
                if(submenuActive[ind]) slideMenu(submenuActive[ind],(slideSpeed_in*-1));
                ind--;
            }
            overofmenu = 0;   
        }
        
         
        if(activeSubMenuId && (numericId!=LastactiveSubMenuId || !subObj)) {
            var subObj22 = document.getElementById('submenuUl' + LastactiveSubMenuId);
            var myLinkItem = document.getElementById(numericId);
            if(myLinkItem) {
                var paridfc = myLinkItem.parentNode;
            }  else {  var paridfc = '';   }
            
            if(!paridfc || !subObj22) {
                var parmyLinkItem = submenuObjArray[numericId]['idd']; 
                var parparentElm = parmyLinkItem.parentNode;
                if(parparentElm) { var parparentElmDIV = parparentElm.parentNode; }
                ddd = submenuObjArray[LastactiveSubMenuId]['divObj'];
                if(parparentElmDIV) {
                    if(parparentElmDIV.id != ddd.id)
                        slideMenu(LastactiveSubMenuId,(slideSpeed_in*-1));
                }
                else
                    slideMenu(LastactiveSubMenuId,(slideSpeed_in*-1));
                //ind--;
            }
            else if(paridfc.id != subObj22.id) { 
                    slideMenu(LastactiveSubMenuId,(slideSpeed_in*-1)); 
                    //ind--;                          
            }         
        }  
       
        for (var kk=0; kk<ind; kk++) {
            var hh = submenuActive[kk];
            var ll = 0;
            for( var cc=0; cc<ind2; cc++) {
                if(hh == listfdivbyact[cc]) { ll = 1; break; }
                else { ll = 0; }
            }
            if(ll == 0 && hh != qq && hh != LastactiveSubMenuId) {  slideMenu(hh,(slideSpeed_in*-1));  }
        }
        
        if(numericId!=activeSubMenuId && this && subObj){
			subObj.style.width = '0px';	
			slideMenu(numericId,slideSpeed_out);
			activeSubMenuId = numericId;
		}else{
			if(numericId!=activeSubMenuId)activeSubMenuId = false;
		}
		if(showSubOnMouseOver)stopAutoHide();
 
	}
	function listfdfba(myLinkItem, numericId)
    {
        var parentElm = myLinkItem.parentNode;
        if(parentElm) { var parentElmDIV = parentElm.parentNode; }
        if(parentElmDIV.id != 'dhtmlgoodies_subMenu') {
            for(var i=0; i<submenuObjArray.length; i++) {
                if(submenuObjArray[i]) {
                    dd = submenuObjArray[i]['divObj'];
                    if(dd.id == parentElmDIV.id) {
                        if(ind2 == -1) ind2 = 0;
                        listfdivbyact[ind2] = i;
                        ind2++;
                        var mm = submenuObjArray[i]['idd'];
                        if(mm) { listfdfba(mm);   }
                    }
                }
            } 
        }
    }
	function slideMenu(menuIndex,speed){
		var obj = submenuObjArray[menuIndex]['divObj'];
		var obj2 = submenuObjArray[menuIndex]['ulObj'];
		var width = obj.offsetWidth + speed;
		if(speed<0){
			if(width<0)width = 0;
			obj.style.width = width + 'px';
			if(slideDirection=='left'){
				obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
				obj2.style.left = '0px';
			}else{
				obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px' 
			}
			if(width>0 && okToSlideInSub[menuIndex])setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_in); else{
				obj.style.visibility = 'hidden';
				obj.style.width = '0px';
				if(activeSubMenuId==menuIndex)activeSubMenuId=false;
			}
			
		}else{
			if(width>submenuObjArray[menuIndex]['width'])width = submenuObjArray[menuIndex]['width'];
			if(slideDirection=='left'){
				obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
				obj2.style.left = '0px';
			}else{
				obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px' 
			}		
			
			obj.style.width = width + 'px';
			if(width<submenuObjArray[menuIndex]['width']){
				setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
			}else{
				okToSlideInSub[menuIndex] = true;
			}
		}
	}
	function resetPosition()
	{
		subPositioned.length = 0;
	}
    
    var subMenuItemArray = new Array();
    var mainMenuItemArray = new Array();
	function otherlevelsub(maMenuItem)
    {
         var subMenuItem;
         if(maMenuItem.tagName && maMenuItem.tagName.toLowerCase()=='li'){
            mainMenuItemArray[mainMenuItemArray.length] = maMenuItem;
            var aTag = maMenuItem.getElementsByTagName('A')[0];
            if(showSubOnMouseOver)
                aTag.onmouseover = showSub;    
            else
                aTag.onclick = showSub;    
        }
        /////////
        subMenuItem = maMenuItem.getElementsByTagName('LI')[0];
        while(subMenuItem){
            otherlevelsub(subMenuItem);
            subMenuItem = subMenuItem.nextSibling;
        }
        ////////
        maMenuItem = maMenuItem.nextSibling;
    }		
	function initLeftMenu()
	{
		var isMSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false;
		var browserVersion = parseInt(navigator.userAgent.replace(/.*?MSIE ([0-9]+?)[^0-9].*/g,'$1'));
		if(!browserVersion)browserVersion=1;
		
		var menuObj = document.getElementById('dhtmlgoodies_menu');	
		var subMenuItem;
		var mainMenuItem = menuObj.getElementsByTagName('LI')[0];
		while(mainMenuItem){
			if(mainMenuItem.tagName && mainMenuItem.tagName.toLowerCase()=='li'){
				mainMenuItemArray[mainMenuItemArray.length] = mainMenuItem;
				var aTag = mainMenuItem.getElementsByTagName('A')[0];
				if(showSubOnMouseOver)
					aTag.onmouseover = showSub;	
				else
					aTag.onclick = showSub;	
			}
            /////////
            subMenuItem = mainMenuItem.getElementsByTagName('LI')[0];
            while(subMenuItem){
                otherlevelsub(subMenuItem);
                subMenuItem = subMenuItem.nextSibling;
            }
            ////////
			mainMenuItem = mainMenuItem.nextSibling;
		}
        
		var lis = menuObj.getElementsByTagName('A');
       
		for(var no=0;no<lis.length;no++){
			if(!showSubOnMouseOver)lis[no].onmouseover = stopAutoHide; 
			lis[no].onmouseout = initAutoHide;
			lis[no].onmousemove = stopAutoHide;
		}
  		
		for(var no=0;no<mainMenuItemArray.length;no++){
			var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];
			if(sub){
                var ppid = sub.parentNode;
				mainMenuItemArray[no].id = 'mainMenuItem' + (no+1);
				var div = document.createElement('DIV');
				div.className='dhtmlgoodies_subMenu';
				document.body.appendChild(div);
				div.appendChild(sub);
				if(slideDirection=='right'){
					div.style.left = getLeftPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetWidth + xOffsetSubMenu + 'px';
				}else{
					div.style.left = getLeftPos(mainMenuItemArray[no]) + xOffsetSubMenu + 'px';
				}
				div.style.top = getTopPos(mainMenuItemArray[no]) + 'px';
				div.id = 'subMenuDiv' + (no+1);
				sub.id = 'submenuUl' + (no+1);
				sub.style.position = 'relative';	

				if(navigator.userAgent.indexOf('Opera')>=0){
					submenuObjArray[no+1] = new Array();
                    submenuObjArray[no+1]['numb'] = no+1;
					submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
                    submenuObjArray[no+1]['idd'] = ppid;
				}
				sub.style.left = 1 - sub.offsetWidth + 'px';	
				
				
				
				if(browserVersion<7 && isMSIE)div.style.width = '1px';	
					
				if(navigator.userAgent.indexOf('Opera')<0){
					submenuObjArray[no+1] = new Array();
                    submenuObjArray[no+1]['numb'] = no+1;
					submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
                    submenuObjArray[no+1]['idd'] = ppid;
					
					
					
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
					if(fixedSubMenuWidth)submenuObjArray[no+1]['width'] = fixedSubMenuWidth;
				}	

				if(!document.all)div.style.width = '1px';				
			}			
		}	
        
		menuObj.style.visibility = 'visible';
		window.onresize = resetPosition;
	}
	
	window.onload = initLeftMenu;

