	var timeBeforeAutoHide = 700;
	var slideSpeed_out = 10;
	var slideSpeed_in = 5;

	var slideTimeout_out = 25;
	var slideTimeout_in = 20;

	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 slideDirection; // default "down"
	var menuId;

	/* Don't change anything below here */
	
	var activeSubmenuId = false;
	var activeMenuItem = 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(activeMenuItem)
			{
				activeMenuItem.className='';
				activeMenuItem = 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 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(activeMenuItem)
				activeMenuItem.className='';
			if(subObj)
			{
				if(!subPositioned[numericId])
				{
					if(slideDirection=='right')
					{
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetWidth + 'px';
						submenuObjArray[numericId]['left'] = subObj.style.left.replace(/[^0-9]/g,'');
						subObj.style.top = getTopPos(submenuObjArray[numericId]['parentDiv']) + 'px';
					}

					if(slideDirection=='down')
					{
						subObj.style.left = getLeftPos(submenuObjArray[numericId]['parentDiv']) + 'px';
						submenuObjArray[numericId]['left'] = subObj.style.left.replace(/[^0-9]/g,'');
						subObj.style.top = getTopPos(submenuObjArray[numericId]['parentDiv']) + submenuObjArray[numericId]['parentDiv'].offsetHeight + 'px';
						submenuObjArray[numericId]['top'] = subObj.style.top.replace(/[^0-9]/g,'');
					}

					subPositioned[numericId] = true;
				}

				subObj.style.visibility = 'visible';
				subObj.style.zIndex = currentZIndex;
				currentZIndex++;
				this.className='activeMenu';
				activeMenuItem = this;
			}
		}
		else
		{
			var numericId = activeSubmenuId;
		}

		if(activeSubmenuId && (numericId!=activeSubmenuId || !subObj))
			slideMenu(activeSubmenuId,(slideSpeed_in*-1));
		if(numericId!=activeSubmenuId && this && subObj)
		{
			subObj.style.width = '0px';
			subObj.style.height = '0px';
			if(navigator.userAgent.indexOf('MSIE')>=0)
			{
				subObj.style.height = '1px';
			}
			slideMenu(numericId,slideSpeed_out);
			activeSubmenuId = numericId;
		}
		else
		{
			if(numericId!=activeSubmenuId)
				activeSubmenuId = false;
		}
		if(showSubOnMouseOver)
			stopAutoHide();
	}
	
	function slideMenu(menuIndex,speed)
	{
		var obj = submenuObjArray[menuIndex]['divObj'];
		var obj2 = submenuObjArray[menuIndex]['ulObj'];
		var width; // = submenuObjArray[menuIndex]['width'];
		var height; // = obj.offsetHeight + speed;

		if(slideDirection=='right')
		{
			width = obj.offsetWidth + speed;
			height = submenuObjArray[menuIndex]['height'];
		}

		if(slideDirection=='down')
		{
			width = submenuObjArray[menuIndex]['width'];
			height = obj.offsetHeight + speed;
		}


		if(speed<0)
		{
			if(width<0)
				width = 0;

			if(height<0)
				height = 1;

			obj.style.width = width + 'px';
			obj.style.height = height + 'px';

			if(slideDirection=='right')
			{
				obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px';

				if(width>1 && okToSlideInSub[menuIndex])
				{
					setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_in);
				}
				else
				{
					obj.style.visibility = 'hidden';
					obj.style.width = '0px';
					if(navigator.userAgent.indexOf('MSIE')>=0)
						obj.style.width = '0px';
					if(activeSubmenuId==menuIndex)
						activeSubmenuId=false;
				}
			}

			if(slideDirection=='down')
			{
				obj2.style.top = height - submenuObjArray[menuIndex]['height'] + 'px';

				if(height>1 && okToSlideInSub[menuIndex])
				{
					setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_in);
				}
				else
				{
					obj.style.visibility = 'hidden';
					obj.style.height = '0px';
					if(navigator.userAgent.indexOf('MSIE')>=0)
						obj.style.height = '0px';
					if(activeSubmenuId==menuIndex)
						activeSubmenuId=false;
				}
			}
		}
		else
		{
			if(width>submenuObjArray[menuIndex]['width'])
				width = submenuObjArray[menuIndex]['width'];

			if(height>submenuObjArray[menuIndex]['height'])
				height = submenuObjArray[menuIndex]['height'];

			obj2.style.left = width - submenuObjArray[menuIndex]['width'] + 'px';
			obj2.style.top = height - submenuObjArray[menuIndex]['height'] + 'px';

			obj.style.width = width + 'px';
			obj.style.height = height + 'px';

			if(slideDirection=='right')
			{
				if(width<submenuObjArray[menuIndex]['width'])
				{
					setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
				}
				else
				{
					okToSlideInSub[menuIndex] = true;
				}
			}

			if(slideDirection=='down')
			{
				if(height<submenuObjArray[menuIndex]['height'])
				{
					setTimeout('slideMenu(' + menuIndex + ',' + speed + ')',slideTimeout_out);
				}
				else
				{
					okToSlideInSub[menuIndex] = true;
				}
			}
		}
	}

	function resetPosition()
	{
		subPositioned.length = 0;
	}
			
	function initAutomatedMenu(menu_id)
	{
		menuId = menu_id;
		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(menuId);	

		if(!menuObj)
		{
			return;
		}

		var menuItemList = new Array();

		var slide = menuObj.getAttribute("slide");
		if(slide)
		{
			if(slide == "down" || slide == "up")
			{
				slideDirection = "down";
			}

			if(slide == "right" || slide == "left")
			{
				slideDirection = "right";
			}
		}
		else
		{
			slideDirection = "down";
		}

		var menuItem = menuObj.getElementsByTagName('li')[0];
		while(menuItem)
		{
			if(menuItem.tagName && menuItem.tagName.toLowerCase()=='li')
			{
				menuItemList[menuItemList.length] = menuItem;
				var aTag = menuItem.getElementsByTagName('a')[0];
				if(showSubOnMouseOver)
					aTag.onmouseover = showSub;	
				else
					aTag.onclick = showSub;	
			}
			menuItem = menuItem.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<menuItemList.length;no++)
		{
			var sub = menuItemList[no].getElementsByTagName('UL')[0];
			if(sub)
			{
				menuItemList[no].id = 'menuItem' + (no+1);
				var div = document.createElement('DIV');
				div.className='subcategory';
				document.body.appendChild(div);
				div.appendChild(sub);

				if(slideDirection=='right')
				{
					div.style.left = getLeftPos(menuItemList[no]) + menuItemList[no].offsetWidth + 'px';
					div.style.top = getTopPos(menuItemList[no]) + 'px';
				}

				if(slideDirection=='down')
				{
					div.style.left = getLeftPos(menuItemList[no]) + 'px';
					div.style.top = getTopPos(menuItemList[no]) + menuItemList[no].offsetHeight + '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]['parentDiv'] = menuItemList[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
					submenuObjArray[no+1]['height'] = sub.offsetHeight;
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
					submenuObjArray[no+1]['top'] = div.style.top.replace(/[^0-9]/g,'');

					if(fixedSubMenuWidth)
					{
						submenuObjArray[no+1]['width'] = fixedSubMenuWidth-2;
					}
				}
				sub.style.left = 1 - sub.offsetWidth + 'px';
				sub.style.top = 1 - sub.offsetHeight + 'px';

				if(browserVersion<7 && isMSIE)
				{
					div.style.width = '1px';
					div.style.height = '1px';
				}

				if(navigator.userAgent.indexOf('Opera')<0)
				{
					submenuObjArray[no+1] = new Array();
					submenuObjArray[no+1]['parentDiv'] = menuItemList[no];
					submenuObjArray[no+1]['divObj'] = div;
					submenuObjArray[no+1]['ulObj'] = sub;
					submenuObjArray[no+1]['width'] = sub.offsetWidth;
					submenuObjArray[no+1]['height'] = sub.offsetHeight;
					submenuObjArray[no+1]['left'] = div.style.left.replace(/[^0-9]/g,'');
					submenuObjArray[no+1]['top'] = div.style.top.replace(/[^0-9]/g,'');

					if(fixedSubMenuWidth)
					{
						submenuObjArray[no+1]['width'] = fixedSubMenuWidth;
					}
				}	

				if(!document.all)
				{
					div.style.width = '1px';
					div.style.height = '1px';
				}
			}			
		}

		menuObj.style.visibility = 'visible';
		window.onresize = resetPosition;
	}
