	/************************************************************************************************************
	(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();
var readyToScrollUp = true;
var readyToScrollDown = true;
	
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){
			   alert (objFound);
				otherDivsToScroll.splice(objFound,1);	
			}	*/	
		}	
		obj = obj.parentNode;
	}	
}

function showSubMenu(e,inputObj)
{

   if (readyToScrollUp)
   {
      if(this && this.tagName)inputObj = this.parentNode;
     
   	if(inputObj && inputObj.tagName=='LI'){
   		divToScroll = inputObj.getElementsByTagName('DIV')[0];
   	}
   	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='block';
   		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 if (divToHide.id != divToScroll.id)
	{
	   //slideMenuHeightOfCurrentBox = 0;
		showSubMenu();			
	}
	slideMenuHeightOfCurrentBox = 0;
	/*else{
		
	}*/
}


function scrollUpMenu()
{
   if (readyToScrollUp)   
   {
  //    readyToScrollDown = false;
      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()',1);
   	}else{
   		divToHide.style.display='none';
//   		readyToScrollDown = true;
   		if (otherDivsToScroll.length>0) otherDivsToScroll.length = otherDivsToScroll.length-1;
   		autoHideMenus();			
   	}      
   }	
}	

function scrollDownSub()
{
//if (readyToScrollDown)
//{
   readyToScrollUp = false;
   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()',1); else {
			divToScroll = false;
			ulToScroll = false;
			readyToScrollUp = true;
			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()
{
//берем объект по id = dhtmlgoodies_slidedown_menu 	
   dhtmlgoodies_slmenuObj = document.getElementById('dhtmlgoodies_slidedown_menu');
//делаем его visible   
	dhtmlgoodies_slmenuObj.style.visibility='visible';
//берем первый UL, в который заключено все меню	
	var mainUl = dhtmlgoodies_slmenuObj.getElementsByTagName('UL')[0];		
//берем его LI	
	var mainMenuItem = mainUl.getElementsByTagName('LI')[0];
	mainItemCounter = 1;
	while(mainMenuItem){			
		if(mainMenuItem.tagName=='LI'){
//получаем объекты ссылки		   
			var aTag = mainMenuItem.getElementsByTagName('A')[0];
//устанавливаем имя класса для ссылки			
			if (aTag) aTag.className='slMenuItem_depth1';	
//берем подуровни меню, вложенные списки			
			var subUl = mainMenuItem.getElementsByTagName('UL');
//если они есть 			
			if(subUl.length>0){
//устанавливаем идентификаторы			   
				mainMenuItem.id = 'mainMenuItem' + mainItemCounter;
				initSubItems(subUl[0],2);
//ставим событие onclick
				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');
    if (subSel = document.getElementById('subselected')) {

      showSubMenu(false,subSel.parentNode.parentNode.parentNode.parentNode);
    }
		
	}
			
	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;

