// Переменная, устанавливающая задержку пребывания развернутого меню
var tm;
var ie6 = (navigator.userAgent.indexOf('MSIE') != -1);

//Функция, дающая запрет закрытию подменю
function cancelClose(){
    if(tm) {
        clearTimeout(tm);
    }
}

//Функция, открывающая меню
function showMenu(obj) {
	
	//Если не существует доселе открытого подменю, то...
	if(typeof object == "undefined")
		{
			//Находим элементы. которые должны быть показаны
			parentObj = obj.parentNode;
         objSelect = obj;
			workObj = parentObj.childNodes;
			for (i=0;i<workObj.length;i++)
				{
					if(workObj[i].className != undefined)
						if(workObj[i].className.indexOf("submenu") == 0)
							{
								//Обозначаем то, что пожменю уже открыто
								object = workObj[i];
								//Открываем само подменю
								object.style.display = 'block';
								//Убираем подчеркивание у элемента основного меню
								objSelect.style.textDecoration = 'none';
								//Если это меню слева, то мы делаем отступы для появляющегося подменю
								if(object.className.indexOf("submenu_l") == 0)
								    {
								        object.style.left = ie6 ? 1+objSelect.offsetWidth+"px" : 12 + objSelect.offsetWidth+"px";
								    }
								cancelClose();
							}
				}
		}
	//И если было открыто до селе подменю, мы его закрываем, а лишь потом открываем новое
	else 
		hideMenu();
}

//Функция устанавливающая задержку закрытия, при отведения мыши в поле, где не находтся другого элемента основного меню
function closeMenu() {
    tm = setTimeout("hideMenu()",500);
}

//Закрывает открытое меню до этого меню
function hideMenu() {
	if (typeof object != "undefined")
		{
			object.style.display = "none";
			object = undefined;
		}
	if (typeof objSelect != "undefined")
	   {
				//выставляем у основного пункта подчеркивание
            objSelect.style.textDecoration = 'underline';
        }
}

//Функция расставляем события для элементов меню и подменю
//имеет в своем составе две основные переменные, задающие id основного(верхнего) меню и 
//меню слева
function srMenu(menuIdFirst, menuIdSecond) {
	if(typeof menuIdFirst != 'undefined')
		{
			menuFirst = document.getElementById(menuIdFirst);
			elementA = menuFirst.getElementsByTagName('A');
			elementUl = menuFirst.getElementsByTagName('Ul');
			for (i=0;i<elementA.length;i++)
				{
						if(elementA[i].parentNode.tagName.indexOf('DT') == 0)
							 {
								  elementA[i].onmouseover = function() { hideMenu();showMenu(this); }
								  elementA[i].onmouseout = function() { closeMenu() }
							 }
				  }
			 for (i=0;i<elementUl.length;i++)
				{
						if(elementUl[i].parentNode.tagName.indexOf('DT') == 0)
							 {
								  elementUl[i].onmouseover = function() { cancelClose(); }
								  elementUl[i].onmouseout = function() { closeMenu() }
							 }
				  }
		};
	if (typeof menuIdSecond != 'undefined')
		{
			 menuSecond = document.getElementById(menuIdSecond);
			elementA = menuSecond.getElementsByTagName('A');
			elementDiv = menuSecond.getElementsByTagName('DIV');
			for (i=0;i<elementA.length;i++)
				{
						if(elementA[i].parentNode.tagName.indexOf('DT') == 0)
							 {
								  elementA[i].onmouseover = function() { hideMenu();showMenu(this); }
								  elementA[i].onmouseout = function() { closeMenu() }
							 }
				  }
			 for (i=0;i<elementDiv.length;i++)
				{
						if(elementDiv[i].parentNode.tagName.indexOf('DT') == 0)
							 {
									elementDiv[i].parentNode.style.zIndex  = elementDiv.length-i;
								  elementDiv[i].onmouseover = function() { cancelClose(); }
								  elementDiv[i].onmouseout = function() { closeMenu() }
							 }
				  }
		};
}

