
	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, October 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Update log:
	
	March, 15th: Fixed problem with sliding in MSIE
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/	
	var expandFirstItemAutomatically = false;	// Expand first menu item automatically ?
	var initMenuIdToExpand = false;	// Id of menu item that should be initially expanded. the id is defined in the <li> tag.
		var expandMenuItemByUrl = true;	// Menu will automatically expand by url - i.e. if the href of the menu item is in the current location, it will expand
		
		
		var initialMenuItemAlwaysExpanded = true;	// NOT IMPLEMENTED YET
		
		var dhtmlgoodies_slmenuObj;
		var divToScroll = false;
		var ulToScroll = false;	
		var divCounter = 1;
		var otherDivsToScroll = new Array();
		var divToHide = false;
		var parentDivToHide = new Array();
		var ulToHide = false;
		var offsetOpera = 0;
		if(navigator.userAgent.indexOf('Opera')>=0)offsetOpera=1;	
		var slideMenuHeightOfCurrentBox = 0;
		var objectsToExpand = new Array();
		var initExpandIndex = 0;
		var alwaysExpanedItems = new Array();
		
		function popMenusToShow()
		{
		var obj = divToScroll;
		var endArray = new Array();
		while(obj && obj.tagName!='BODY'){
		if(obj.tagName=='DIV' && obj.id.indexOf('slideDiv')>=0){
		var objFound = -1;
		for(var no=0;no<otherDivsToScroll.length;no++){
							       if(otherDivsToScroll[no]==obj){
							       objFound = no;		
							       }					
							       }	
							       if(objFound>=0){
			otherDivsToScroll.splice(objFound,1);	
			}		
			}	
			obj = obj.parentNode;
			}	
			}
			
			function showSubMenu(e,inputObj)
			{
			
			if(this && this.tagName)inputObj = this.parentNode;
			if(inputObj && inputObj.tagName=='LI'){
			divToScroll = inputObj.getElementsByTagName('DIV')[0];
			for(var no=0;no<otherDivsToScroll.length;no++){
								       if(otherDivsToScroll[no]==divToScroll)return;
								       }			
								       }
								       hidingInProcess = false;
								       if(otherDivsToScroll.length>0){
				if(divToScroll){				
				if(otherDivsToScroll.length>0){
				popMenusToShow();
				}
				if(otherDivsToScroll.length>0){	
				autoHideMenus();
				hidingInProcess = true;
				}
				}	
				}		
				if(divToScroll && !hidingInProcess){
				divToScroll.style.display='';
				otherDivsToScroll.length = 0;
				otherDivToScroll = divToScroll.parentNode;
				otherDivsToScroll.push(divToScroll);	
				while(otherDivToScroll && otherDivToScroll.tagName!='BODY'){
				if(otherDivToScroll.tagName=='DIV' && otherDivToScroll.id.indexOf('slideDiv')>=0){
				otherDivsToScroll.push(otherDivToScroll);
				
				}
				otherDivToScroll = otherDivToScroll.parentNode;
				}			
				ulToScroll = divToScroll.getElementsByTagName('UL')[0];
				if(divToScroll.style.height.replace('px','')/1<=1)scrollDownSub();
										}	
										
										
										}
										
										
										
										function autoHideMenus()
										{
										if(otherDivsToScroll.length>0){
					divToHide = otherDivsToScroll[otherDivsToScroll.length-1];
					parentDivToHide.length=0;
					var obj = divToHide.parentNode.parentNode.parentNode;
					while(obj && obj.tagName=='DIV'){			
					if(obj.id.indexOf('slideDiv')>=0)parentDivToHide.push(obj);
					obj = obj.parentNode.parentNode.parentNode;
					}
					var tmpHeight = (divToHide.style.height.replace('px','')/1 - slideMenuHeightOfCurrentBox);
					if(tmpHeight<0)tmpHeight=0;
								   if(slideMenuHeightOfCurrentBox)divToHide.style.height = tmpHeight  + 'px';
								   ulToHide = divToHide.getElementsByTagName('UL')[0];
								   slideMenuHeightOfCurrentBox = ulToHide.offsetHeight;
								   scrollUpMenu();		
								   }else{
								   slideMenuHeightOfCurrentBox = 0;
								   showSubMenu();			
								   }
								   }
								   
								   
								   function scrollUpMenu()
								   {
								   
								   var height = divToHide.offsetHeight;
								   height-=15;
								   if(height<0)height=0;
										divToHide.style.height = height + 'px';
										
										for(var no=0;no<parentDivToHide.length;no++){	
										parentDivToHide[no].style.height = parentDivToHide[no].getElementsByTagName('UL')[0].offsetHeight + 'px';
										}
										if(height>0){
										setTimeout('scrollUpMenu()',5);
										}else{
										divToHide.style.display='none';
										otherDivsToScroll.length = otherDivsToScroll.length-1;
										autoHideMenus();			
										}
										}	
										
										function scrollDownSub()
										{
										if(divToScroll){			
										var height = divToScroll.offsetHeight/1;
										var offsetMove =Math.min(15,(ulToScroll.offsetHeight - height));
										height = height +offsetMove ;
										divToScroll.style.height = height + 'px';
										
										for(var no=1;no<otherDivsToScroll.length;no++){
										var tmpHeight = otherDivsToScroll[no].offsetHeight/1 + offsetMove;
										otherDivsToScroll[no].style.height = tmpHeight + 'px';
										}			
										if(height<ulToScroll.offsetHeight)setTimeout('scrollDownSub()',5); else {
										divToScroll = false;
										ulToScroll = false;
										if(objectsToExpand.length>0 && initExpandIndex<(objectsToExpand.length-1)){
										initExpandIndex++;
										
										showSubMenu(false,objectsToExpand[initExpandIndex]);
										}
										}
										}
										}
										
										function initSubItems(inputObj,currentDepth)
										{		
										divCounter++;		
										var div = document.createElement('DIV');	// Creating new div		
										div.style.overflow = 'hidden';	
										div.style.position = 'relative';
										div.style.display='none';
										div.style.height = '1px';
										div.id = 'slideDiv' + divCounter;
										div.className = 'slideMenuDiv' + currentDepth;		
										inputObj.parentNode.appendChild(div);	// Appending DIV as child element of <LI> that is parent of input <UL>		
										div.appendChild(inputObj);	// Appending <UL> to the div
										var menuItem = inputObj.getElementsByTagName('LI')[0];
										while(menuItem){
										if(menuItem.tagName=='LI'){
										var aTag = menuItem.getElementsByTagName('A')[0];
										aTag.className='slMenuItem_depth'+currentDepth;	
										var subUl = menuItem.getElementsByTagName('UL');
										if(subUl.length>0){
										initSubItems(subUl[0],currentDepth+1);					
										}
										aTag.onclick = showSubMenu;				
										}			
										menuItem = menuItem.nextSibling;						
										}		
										}
										
										function initSlideDownMenu()
										{
										dhtmlgoodies_slmenuObj = document.getElementById('dhtmlgoodies_slidedown_menu');
										dhtmlgoodies_slmenuObj.style.visibility='visible';
										var mainUl = dhtmlgoodies_slmenuObj.getElementsByTagName('UL')[0];		
										var mainMenuItem = mainUl.getElementsByTagName('LI')[0];
										mainItemCounter = 1;
										while(mainMenuItem){			
										if(mainMenuItem.tagName=='LI'){
										var aTag = mainMenuItem.getElementsByTagName('A')[0];
										aTag.className='slMenuItem_depth1';	
										var subUl = mainMenuItem.getElementsByTagName('UL');
										if(subUl.length>0){
										mainMenuItem.id = 'mainMenuItem' + mainItemCounter;
										initSubItems(subUl[0],2);
										aTag.onclick = showSubMenu;
										mainItemCounter++;
										}				
										}			
										mainMenuItem = mainMenuItem.nextSibling;	
										}		
										
										if(location.search.indexOf('mainMenuItemToSlide')>=0){
										var items = location.search.split('&');
										for(var no=0;no<items.length;no++){
										if(items[no].indexOf('mainMenuItemToSlide')>=0){
										values = items[no].split('=');
										showSubMenu(false,document.getElementById('mainMenuItem' + values[1]));	
										initMenuIdToExpand = false;				
										}
										}			
										}else if(expandFirstItemAutomatically>0){
										if(document.getElementById('mainMenuItem' + expandFirstItemAutomatically)){
										showSubMenu(false,document.getElementById('mainMenuItem' + expandFirstItemAutomatically));
										initMenuIdToExpand = false;
										}
										}
										
										if(expandMenuItemByUrl)
										{
										var aTags = dhtmlgoodies_slmenuObj.getElementsByTagName('A');
										for(var no=0;no<aTags.length;no++){
										var hrefToCheckOn = aTags[no].href;				
										if(location.href.indexOf(hrefToCheckOn)>=0 && hrefToCheckOn.indexOf('#')<hrefToCheckOn.length-1){
										initMenuIdToExpand = false;
										var obj = aTags[no].parentNode;
										while(obj && obj.id!='dhtmlgoodies_slidedown_menu'){
										if(obj.tagName=='LI'){							
										var subUl = obj.getElementsByTagName('UL');
										if(initialMenuItemAlwaysExpanded)alwaysExpanedItems[obj.parentNode] = true;
										if(subUl.length>0){								
										objectsToExpand.unshift(obj);
										}
										}
										obj = obj.parentNode;	
										}
										showSubMenu(false,objectsToExpand[0]);
										break;					
										}			
										}
										}
										
										if(initMenuIdToExpand)
										{
										objectsToExpand = new Array();
										var obj = document.getElementById(initMenuIdToExpand)
										while(obj && obj.id!='dhtmlgoodies_slidedown_menu'){
										if(obj.tagName=='LI'){
										var subUl = obj.getElementsByTagName('UL');
										if(initialMenuItemAlwaysExpanded)alwaysExpanedItems[obj.parentNode] = true;
										if(subUl.length>0){						
										objectsToExpand.unshift(obj);
										}
										}
										obj = obj.parentNode;	
										}
										
										showSubMenu(false,objectsToExpand[0]);
										
										}
										
										
										
										}
										window.onload = initSlideDownMenu;
