var ua, isOpera;
ua=(navigator.userAgent.indexOf("Gecko") == -1) ? "IECompatible" : "Gecko";
var ieVer = "6";
if(navigator.userAgent.indexOf("MSIE 5.5") != -1)
{
	ieVer = "5.5";
}
if(navigator.userAgent.indexOf("MSIE 5.0") != -1)
{
	ieVer = "5.0";
}
isOpera=(navigator.userAgent.indexOf("Opera") == -1) ? false : true;
var exec_delay, timer_running=false; // ссылка на идентификатор таймера, флаг запущенного таймера

/*
 * Функция показывает выпадающее меню для пункта горизонтального меню.
 * Принимаемый параметр обязателен
 */
function Show(what)
{
 HideAll('0'); // прячем выпавшие до этого меню с нулевой задержкой
 var num = what.href.substring(what.href.lastIndexOf('/')+1,what.href.length);
 var nn=document.getElementById("sm"+num);
 //alert( nn );
//var nn=what.parentNode.getElementsByTagName('div'); // выбираем выпадающее меню. div там всего один, сделан такой выбор, чтобы не возиться с идентификаторами
 if (nn)
 {
	// alert( ua );
	switch(ua)
	 {
	  case "IECompatible":
	   nn.style.left=what.parentNode.parentNode.parentNode.parentNode.parentNode.offsetLeft+what.parentNode.offsetLeft+what.offsetLeft; // позиционируем выпадающее меню
	   if(isOpera){ nn.style.width=ComputeWidth(nn);}
	   break;
	  case "Gecko":
	   nn.style.left=what.parentNode.parentNode.parentNode.parentNode.parentNode.offsetLeft+what.parentNode.offsetLeft+what.offsetLeft+"px"; // если не указывать "px" для браузеров Gecko - работать не будет
	   nn.style.width=ComputeWidth(nn)+"px;";
	   break;
	 }
	 a_s=nn.getElementsByTagName('a'); // если в выпадающем меню нет ссылок - выводить его не нужно
	 if(a_s.length>0) { nn.style.visibility="visible";}
 }
}

/*
 * Поскольку дивы, спозиционированные абсолютно не растягиваются элементами находящимися внутри них, для Opera
 * и Gecko-браузеров приходится вычислять и устанавливать ширину выпадающего меню.
 * Эта функция возвращает ширину самого широкого пункта меню.
 */
function ComputeWidth(what)
{
 var a_s=what.getElementsByTagName('a');
 var width=0;
 for(var i=0; i<a_s.length; i++) {  width=(width<a_s[i].offsetWidth) ? a_s[i].offsetWidth : width; }
 return width;
}

/*
 * Функция прячет все выпавшие меню с определенной задержкой или без нее.
 *
 */
function HideAll(delay)
{
 if(delay!=0){ exec_delay=setTimeout("HideAll('0')", delay); timer_running=true;} // если нужна задержка, запускаем таймер и устанавливаем флаг
 else
 {
	 var menu=document.getElementById('menuItems');
	 var nodes=menu.getElementsByTagName('td');
	 for(var j=0; j<nodes.length; j++)
	 {  
		 n2 = nodes[j];
		 if(n2.className=="mi")
		 {
		 str=nodes[j].childNodes[0].href
		 var num1 = str.substring(str.lastIndexOf('/')+1,str.length);
		 nn1 =document.getElementById("sm"+num1);		 
		 if(nn1)
			 {
				 nn1.style.visibility="hidden";
			 }
		 }
	 
	 } // делаем все выпадающие меню невидимыми
	 if(timer_running) // обнуляем таймер и сбрасываем флаг
	 {
		 clearTimeout(exec_delay);
		 timer_running=false;
	 }
  }
}

/*
 * Объект, используемый для запуска меню
 *
 */
function startMenu()
{
 var root=document.getElementById('menuItems'); // устанавливаем события для пунктов горизонтального меню
 var tds=root.getElementsByTagName('td');
 for(var k=0; k<tds.length; k++)
 {
	if(tds[k].className=="mi")
	 {
	  switch(ua)
	  {
	   case "IECompatible":
		  if(isOpera)
		  {
	       tds[k].childNodes[0].onmouseover=function(){Show(this);};
//	       tds[k].childNodes[1].onmouseout=function() {HideAll('2000');};
		  }
		  else
		  {
		   tds[k].firstChild.onmouseover=function(){Show(this);};
//	       tds[k].firstChild.onmouseout=function() {HideAll('2000');};
	      }
		  break;
	   case "Gecko":
	      tds[k].childNodes[0].onmouseover=function(){Show(this);};
//	      tds[k].childNodes[1].onmouseout=function() {HideAll('2000');};
	  }
	 }
 }

 root=document.getElementById('ldh'); // устанавливаем событие все окружающим меню элементам чтобы закрывать выпадающее меню
 ldhs=root.getElementsByTagName('td');
 for(k=0;k<ldhs.length;k++)
	{
		if(ldhs[k].className=="ldh3")
		{
			ldhs[k].onmouseover=function(){HideAll('0');}
		}
	}
 root=document.getElementById('contentBody');
 root.onmouseover=function(){HideAll('0');}
 root=document.getElementById('logo');
 root.onmouseover=function(){HideAll('0');}
 root=document.getElementById('menuItems');// устанавливаем события для выпадающих меню
 tds=root.getElementsByTagName('td');
 for(var l=0;l<tds.length;l++)
 {
	if(tds[l].className=="mi")
	 {
		switch(ua)
		 {
			case "IECompatible":
				if(isOpera)
				 {
					var str = tds[l].childNodes[0].href;		
				 }
				 else
				 {
					if(ieVer == "6")
					 {var str = tds[l].childNodes[0].href;		}
					else
					 {var str = tds[l].childNodes[0].href;		}
				 }
				break;
			case "Gecko":
				var str = tds[l].childNodes[0].href;		
				break;
		 }
		if(str.indexOf("?PHP") != -1)
		 {
			var num = str.substring(str.lastIndexOf('/')+1,str.indexOf("?PHP"));
		 }
		 else
		 {
			var num = str.substring(str.lastIndexOf('/')+1,str.length);
		 }

	 }
 }
}
