	var timeBeforeAutoHide = 700;	// Microseconds to wait before auto hiding menu(1000 = 1 second)
	var slideSpeed_out = 7;	// Steps to move sub menu at a time ( higher = faster)
	var slideSpeed_in = 7;
	
	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 yOffsetSubMenu = 0; 	
	var slideDirection = 'top';	// Slide to left or right ?
	
	/* Don't change anything below here */
	
	var activeSubMenuId = false;
	var activeMainMenuItem = false;
	var currentZIndex = 1000;		
	var autoHideTimer = 0;
	var submenuObjArray = new Array();
	var okToSlideInSub = new Array();
	var subPositioned = new Array();
	

// ------------------------------------------------------------------------ 
	function stopAutoHide()
	{
		autoHideTimer = -1;
	}
// ------------------------------------------------------------------------ 	
	function initAutoHide()
	{
		autoHideTimer = 0;
		if(autoHideTimer>=0)autoHide();
	}
// ------------------------------------------------------------------------ 	
	function autoHide()
	{
		if(autoHideTimer>timeBeforeAutoHide)
		{
			
			if(activeMainMenuItem){
				activeMainMenuItem.className='';
				activeMainMenuItem = false;
			}
			
			if(activeSubMenuId){
				var obj = document.getElementById('subMenuDiv' + activeSubMenuId);
				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 resetPosition()
	{
		subPositioned.length = 0;
	}

// ------------------------------------------------------------------------ showSub
	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])
				{
					switch (slideDirection) 
					{
						case 'left': 
							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';
							break;
						case 'top': 
							subObj.style.top = getTopPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetHeight + yOffsetSubMenu + 'px';
					  	submenuObjArray[numericId]['top'] = subObj.style.top.replace(/[^0-9]/g,'');
							subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + 'px';
							break;
					  default: 
					  	subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetWidth + 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(activeSubMenuId && (numericId!=activeSubMenuId || !subObj)) slideMenu(activeSubMenuId,(slideSpeed_in*-1));
		
		if(numericId!=activeSubMenuId && this && subObj)
		{
			switch (slideDirection) 
			{
				case 'top': 
					subObj.style.height = '0px';	
					break;
			  default: 
			  	subObj.style.width = '0px';	
			}
			slideMenu(numericId,slideSpeed_out);
			activeSubMenuId = numericId;
		}
		else
		{
			if(numericId!=activeSubMenuId)activeSubMenuId = false;
		}
		
		if(showSubOnMouseOver)stopAutoHide();
	}

// ------------------------------------------------------------------------ SlideMenu
	function slideMenu(menuIndex,speed)
	{
		var obj = submenuObjArray[menuIndex]['divObj'];
		var obj2 = submenuObjArray[menuIndex]['ulObj'];
		var width = obj.offsetWidth + speed;
		var height = obj.offsetHeight + speed;
		if(speed<0)
		{
			switch (slideDirection) 
			{
			  case 'left':
					if(width<0)width = 0;  
					obj.style.width = width + 'px';			  
					obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
					obj2.style.left = '0px';
					break;
				case 'top': 
					if(height<0)height = 0;
					obj.style.height = height + 'px';
					obj2.style.top = height - submenuObjArray[menuIndex]['height'] + 'px';
					break;
				default: 
					if(width<0)width = 0;  
					obj.style.width = width + 'px';
					obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px';
					break;			
			}
			if (width>0 && height>0 && okToSlideInSub[menuIndex]) 
			{
				setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_in);
			}
			else
			{
				obj.style.visibility = 'hidden';
				
				switch (slideDirection) 
				{
					case 'top': 
						obj.style.height = '0px';
						break;
					default: 
						obj.style.width = '0px';
						break;			
				}
				if(activeSubMenuId==menuIndex)activeSubMenuId=false;
			}
		}
		else
		{
			switch (slideDirection) 
			{
				case 'left': 
					if(width > submenuObjArray[menuIndex]['width'])width = submenuObjArray[menuIndex]['width'];
					obj.style.left = submenuObjArray[menuIndex]['left'] - width + 'px';
					obj2.style.left = '0px';
					obj.style.width = width + 'px';
					if(width<submenuObjArray[menuIndex]['width'])
					{
						setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
					}
					else
					{
						okToSlideInSub[menuIndex] = true;
					}
					break;
				case 'top': 
					if ( height > submenuObjArray[menuIndex]['height']) height = submenuObjArray[menuIndex]['height'];
					obj2.style.top = height - submenuObjArray[menuIndex]['height'] + 'px' 
					obj.style.height = height + 'px';
					if(height < submenuObjArray[menuIndex]['height'])
					{
						setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
					}
					else
					{
						okToSlideInSub[menuIndex] = true;
					}
					break;
			  default:			
			    if(width > submenuObjArray[menuIndex]['width'])width = submenuObjArray[menuIndex]['width'];
					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;
					}
					break;
 			}
		}
	}

// ------------------------------------------------------------------------ initMainMenu
	function initMainMenu()
	{
		var menuObj = document.getElementById('SiteMenu_menu');	
		menuObj.style.visibility = 'visible';
		var mainMenuItemArray = new Array();
		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;	
			}
			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)
			{
				mainMenuItemArray[no].id = 'mainMenuItem' + (no+1);
				var div = document.createElement('DIV');
				div.className='SiteMenu_subMenu';
				document.body.appendChild(div);
				div.appendChild(sub);
		
				switch (slideDirection) 
				{
					case 'left': 
						div.style.left = getLeftPos(mainMenuItemArray[no]) + xOffsetSubMenu + 'px';
						div.style.top = getTopPos(mainMenuItemArray[no]) + 'px';
						break;
					case 'top': 
						div.style.top = getTopPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetHeight + yOffsetSubMenu + 'px';
						div.style.left = getLeftPos(mainMenuItemArray[no]) + 'px';
						break;
				  default: 
						div.style.left = getLeftPos(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetWidth + xOffsetSubMenu + 'px';
						div.style.top = getTopPos(mainMenuItemArray[no]) + 'px';
						break;
				}
	
				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]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['Level'] = no;
					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]['top'] = sub.offsetTop;
					submenuObjArray[no+1]['height'] = sub.offsetHeight;					
				}
				
				switch (slideDirection) 
				{
					case 'top': 
						sub.style.top = 1 - sub.offsetHeight + 'px';	
						if(document.all)div.style.height = '1px';	
						break;
				  default: 
						sub.style.left = 1 - sub.offsetWidth + 'px';	
						if(document.all)div.style.width = '1px';	
						break;
				}
				
				if(navigator.userAgent.indexOf('Opera')<0)
				{
					submenuObjArray[no+1] = new Array();
					submenuObjArray[no+1]['parentDiv'] = mainMenuItemArray[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['Level'] = no;
					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]['top'] = div.style.top.replace(/[^0-9]/g,'');
					submenuObjArray[no+1]['height'] = sub.offsetHeight;
					if(fixedSubMenuWidth)submenuObjArray[no+1]['width'] = fixedSubMenuWidth;
				}	

				switch (slideDirection) 
				{
					case 'top': 
						if(!document.all)div.style.height = '1px';			
						break;
				  default: 
						if(!document.all)div.style.width = '1px';				
						break;
				}
			}
		}

		menuObj.style.visibility = 'visible';
		window.onresize = resetPosition;
	}
	
// ------------------------------------------------------------------------ 
	
	window.onload = initMainMenu;

