var expandFirstItemAutomatically = false;	// Expand first menu item automatically ?

var initMenuIdToExpand = 'initialExpandedMenuItem';	// 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-=10;

	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';

		otherDivsToScroll.length = otherDivsToScroll.length-1;

		autoHideMenus();			

	}

}	



function scrollDownSub()

{

	if(divToScroll){			

		var height = divToScroll.offsetHeight/1;

		var offsetMove =Math.min(10,(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;

			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;
				aTags[no].style.fontWeight = "bold";
				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)
		obj.style.fontWeight = "bold";
		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;

	