var oldstatus=null; //глобальная переменная;
//хранит предыдущую строку статуса

//Получить SPAN с параметром name равным аргументу функции
function getSpan(name){
spans=document.all.tags("span");
for (var i=0; i<spans.length; i++) if (spans[i].name==name) return spans[i];
return null;
}

//Получить DIV с параметром name равным аргументу функции
function getDiv(name){
var dvs = divs.item("submenu");
if (dvs != null)
for (var i=0; i<dvs.length; i++) if (dvs[i].name==name) return dvs[i];
return null;
}

//Спрятать все подменю с zIndex >= zIndex текущего подменю
// zi и имя (name) текущего подменю
function HideGtDiv(zi, dn){
var dvs = divs.item("submenu");
//выделяем из массива divs элементы c id=submenu
for (var i=0; i<dvs.length; i++)
 if (dvs[i].style.zIndex>=zi)
  if (dvs[i].name!=dn) dvs[i].style.visibility="hidden";
}

//Спрятать все подменю выше или равные по иерархии подменю,
//содержащее элемент se
function HideSubMenu(se){
var spn = menu.getMenuItem(se.name);
//получим объект пункта меню с именем элемента se 
if (spn==null) return;
var mb = spn.owner;                //mb - подменю-владелец пункта меню
var div = getDiv(mb.idname);     //найдем DIV с именем текущего подменю
if (div==null) return;
HideGtDiv(div.style.zIndex,div.name);
//спрячем все подменю выше или равные текущему подменю
//восстановим строку статуса 
if (oldstatus!=null) window.status=oldstatus;
else window.status=window.defaultStatus;
}

//Спрятать (скрыть) все подменю
function HideAllSubMenu(){
var dvs = divs.item("submenu");
 for (var i=0; i<dvs.length; i++)
  if (dvs[i].className=="submenu")
    dvs[i].style.visibility="hidden";
}

// Функция отображения меню mb
function ViewSubMenu(mb){
var obj = getDiv(mb.idname);
if (obj == null) return;
var spn = getSpan(mb.idname);
var offs = 0;
var bdy = document.body;
var w=0;
if (bdy!=null) w=bdy.clientWidth;
else  w=window.screen.width;
if (mb.owner.idname==null)
{
 HideAllSubMenu();
 if (spn != null) offs = spn.offsetLeft;
 obj.style.pixelTop =MainMenuBar.offsetTop + MainMenuBar.offsetHeight;
 obj.style.pixelLeft =MainMenuBar.offsetLeft+offs;
  if ((obj.style.pixelLeft + obj.style.pixelWidth)>w)
  if ((w-obj.style.pixelWidth)>0)
     obj.style.pixelLeft = w-obj.style.pixelWidth;
}
else
{
 var ownr = getDiv(mb.owner.idname);
 if (spn != null) offs = spn.offsetWidth;
 obj.style.pixelTop = ownr.offsetTop + spn.offsetTop;
 obj.style.pixelLeft = ownr.offsetLeft+offs-2;
 if ((obj.style.pixelLeft + obj.style.pixelWidth)>w)
  if ((ownr.offsetLeft-obj.style.pixelWidth)>0)
    obj.style.pixelLeft = ownr.offsetLeft-obj.style.pixelWidth+2;
}
 obj.style.visibility="";
}

//******* Обработчик для элементов с id=submenu ******
function doEventMenu(){
 var e = window.event;
 var SE = e.srcElement;
 var TE = e.toElement;
 if (e.type=="mouseout"){
    if (TE==null) return;
    if (TE.name==null) HideAllSubMenu();
 }
 else 
 if (e.type=="mouseover"){
   if (SE==null) return;
   var mb = menu.getSubMenu(SE.name);
   if (mb!=null) ViewSubMenu(mb);
 }
}
//******* Обработчик для элементов с id=menupunkt ******
function doEventSubMenu(){
 var e = window.event;
 var SE = e.srcElement;
 if (e.type=="mouseout"){
    SE.className = "nonact";
    if (oldstatus==null)  window.status=window.defaultStatus;
    else window.status=oldstatus;
}
else
if (e.type=="mouseover"){
   SE.className = "active";
   HideSubMenu(SE)
   var mi = null, mb = null;
   if((mi = menu.getMenuItem(SE.name))==null) return;
   if(oldstatus==null) oldstatus=window.status;
   window.status=mi.a;
}else
 if (e.type=="click"){
   if((mi = menu.getMenuItem(SE.name))==null) return;
//   if (mi.objname == "item")
   {
   if ((mi.a.indexOf("javascript",0)!=-1)||(mi.a.indexOf("jscript",0)!=-1)) eval(mi.a);
   else
   {
     if (oldstatus==null)  window.status=window.defaultStatus;
       else window.status=oldstatus;
     document.location=mi.a;
   }
    HideAllSubMenu();
   }
}}

