// Переменная, устанавливающая задержку пребывания развернутого меню
var tm;
var ie6 = (navigator.userAgent.indexOf('MSIE') != -1);
//Создаем элементы em для определения длины текста
var em = document.createElement('EM');
var emTextNode = document.createTextNode('');
var emClone = new Array();
var emCloneTextNode = new Array();
em.style.fontStyle = 'normal';

//Функция, дающая запрет закрытию подменю
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';
								
								if(parentObj.className != 'end')
									{
										object.style.left = (objSelect.firstChild.firstChild.scrollWidth/1 + 25) + 'px';
									};
								if(parentObj.className == 'start')
									{
										object.style.left = (objSelect.firstChild.firstChild.scrollWidth/1 + 35) + 'px';
									};
								objSelect.className = 'act';

								cancelClose();
							};
				};
		}
	//И если было открыто до селе подменю, мы его закрываем, а лишь потом открываем новое
	else 
		hideMenu();
};

//Функция устанавливающая задержку закрытия, при отведения мыши в поле, где не находтся другого элемента основного меню
function closeMenu() {
    tm = setTimeout("hideMenu()",1000);
};

//Закрывает открытое меню до этого меню
function hideMenu() {
	if (typeof object != "undefined")
		{
			object.style.display = "none";
			objSelect.className = '';
			object = undefined;
		};
};

//Функция расставляем события для элементов меню и подменю
//имеет в своем составе переменную, задающую id основного меню
function srMenu(menuId) {
	if(typeof menuId != 'undefined')
		{
			menuElem = document.getElementById(menuId);
			elementA = menuElem.getElementsByTagName('A');
			elementDiv = menuElem.getElementsByTagName('DIV');
			for (i=0;i<elementA.length;i++)
				{
						if(elementA[i].parentNode.tagName.indexOf('LI') == 0)
							 {
								  elementA[i].onmouseover = function() { hideMenu();showMenu(this); }
								  elementA[i].onmouseout = function() { closeMenu() }
								  //Заполняем теги span элементами em с текстом пунктов меню
								  emClone[i] = em.cloneNode(true);
								  emCloneTextNode[i] = emTextNode.cloneNode(true);
								  emCloneTextNode[i].nodeValue = elementA[i].firstChild.firstChild.nodeValue;
								  emClone[i].appendChild(emCloneTextNode[i]);
								  elementA[i].firstChild.removeChild(elementA[i].firstChild.firstChild);
								  elementA[i].firstChild.appendChild(emClone[i]);
							 };
				  };
			 for (i=0;i<elementDiv.length;i++)
				{
						if(elementDiv[i].parentNode.tagName.indexOf('LI') == 0)
							 {
								  elementDiv[i].onmouseover = function() { cancelClose(); }
								  elementDiv[i].onmouseout = function() { closeMenu() }
							 };
				  };
		};
};

