//hanlers for treating of menu events
var oldstatus=null;

//Get SPAN object with name "name"
function getSpan(name){
for (var i=0; i<spans.length; i++) if (spans[i].name==name) return spans[i];
return null;
}

//Get DIV object with name "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;
}

//hide all submenu with zIndex >= zIndex of current submenu
function HideGtDiv(zi, dn){
var dvs = divs.item("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";
}

function HideSubMenu(se){
var spn = menu.getMenuItem(se.name);
if (spn==null){alert("Span <"+se.name+"> isn't found"); return;};
var mb = spn.owner;
var div = getDiv(mb.idname);
if (div==null){alert("DIV <"+mb.idname+"> isn't found"); 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";
}

function ViewSubMenu(mb){
var obj = getDiv(mb.idname);
if (obj == null) {alert("Div isn't found"); 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="";
}

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);
 }
}
//*********************
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) {alert("doEventSubMenu:cryak1");return;}
   if(oldstatus==null) oldstatus=window.status;
   window.status=mi.a;
}else
 if (e.type=="click"){
   if((mi = menu.getMenuItem(SE.name))==null) {alert("doEventSubMenu:cryak2");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();
   }
}}
