// Переменная, устанавливающая задержку пребывания развернутого меню
var tm;
var spanEl = document.createElement('SPAN');
spanEl.className = 'menuItemR';
oSpanEl = new Array();
//Функция, дающая запрет закрытию подменю
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)
							{
								selObj = obj;
								selObj.className = 'menuItem_act';
								//Обозначаем то, что пожменю уже открыто
								object = workObj[i];
								//Открываем само подменю
								object.style.display = 'block';
								if(selObj.parentNode.className.indexOf('end') == 0){
									object.style.left = (selObj.parentNode.scrollWidth-170) + 'px';
									object.className += ' endItem';
								};
								cancelClose();
							};
				};
		}
	//И если было открыто до селе подменю, мы его закрываем, а лишь потом открываем новое
	else 
		hideMenu();
};

//Функция устанавливающая задержку закрытия, при отведения мыши в поле, где не находтся другого элемента основного меню
function closeMenu() {
    tm = setTimeout("hideMenu()",1000);
};

//Закрывает открытое меню до этого меню
function hideMenu() {
	if (typeof object != "undefined")
		{
			object.style.display = "none";
			object = undefined;
			selObj.className = 'menuItem';
		};
};

//Функция расставляем события для элементов меню и подменю
//имеет в своем составе переменную, задающую id основного меню
function srMenu(menuId) {
	if(typeof menuId != 'undefined')
		{
			menuElem = document.getElementById(menuId);
			elementA = menuElem.getElementsByTagName('A');
			elementDl = menuElem.getElementsByTagName('DL');
			for (i=0;i<elementA.length;i++)
				{
						if(elementA[i].parentNode.tagName.indexOf('DIV') == 0)
							 {
								  elementA[i].onmouseover = function() { hideMenu();showMenu(this); }
								  elementA[i].onmouseout = function() { closeMenu() }
								  oSpanEl[i] = spanEl.cloneNode(true);
								  elementA[i].parentNode.style.width =  (elementA[i].scrollWidth + 26) + 'px';
								  elementA[i].className =  'menuItem';
								  elementA[i].appendChild(oSpanEl[i]);
							 };
				  };
			 for (i=0;i<elementDl.length;i++)
				{
						if(elementDl[i].parentNode.tagName.indexOf('DIV') == 0)
							 {
								  elementDl[i].onmouseover = function() { cancelClose(); }
								  elementDl[i].onmouseout = function() { closeMenu() }
							 };
				  };
		};
};

