var menuLayers = new Array()

// y offset for visible submenu region
var offsetDY = 25

var checkLayerName = ""
var checkX1 = 0
var checkY1 = 0
var checkX2 = 0
var checkY2 = 0

//browser detection + cross-browser variables
var hide="hidden" 
var show="visible" 
var ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ));
var ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4 ));
var ns6 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 5 ));

if (ns4) {
  hide="hide"
  show="show"
  //NS4 event capture
  document.captureEvents(Event.MOUSEMOVE);
  document.onmousemove=mmHide;
} else if (ns6)
   document.addEventListener("mousemove", mmHide, false)
  else if (ie4)
   document.onmousemove=mmHide; 

// getLayerStyle
function getObj(name) {
  if (ns6)
    return document.getElementById(name).style
  else if (ie4)
    return document.all[name].style
  else if (ns4)
    return document.layers[name]
}

// initialize layers
function initMenu(mLayersNames) { 
  for (var i=0; i<mLayersNames.length; i++)
    menuLayers[i]=getObj(mLayersNames[i])
}

function hideSubMenus() {
checkLayerName = "";
  for (var i=0; i < menuLayers.length; i++)
    menuLayers[i].visibility = hide
}

function expandMenu(name) {
  if  (menuLayers.length==0) return;
  hideSubMenus();
  if (name=="") return;
  x = getObj(name);
  x.visibility = show;
  if (ns6) {
    x = document.getElementById(name)
    checkX1 = parseInt(x.style.left)
    checkX2 = checkX1 + parseInt(x.style.width)
	checkY1 = parseInt(x.style.top)
   	checkY2 = checkY1 + parseInt(x.style.height)
  } else if (ie4) {
    x = document.all[name]
	checkX1 = parseInt(x.style.left)
   	checkX2 = checkX1 + x.clientWidth
    checkY1 = parseInt(x.style.top)
	checkY2 = parseInt(x.style.top) + x.clientHeight
  } else if (ns4) {
    x = document.layers[name]
    checkX1 = x.pageX
    checkX2 = checkX1 + x.document.width
	checkY1 = x.pageY
   	checkY2 = x.pageY + x.document.height
  }
  checkY1 -= offsetDY
  checkLayerName = name
}
var counter = 0
// cross-browser mouse move hide
function mmHide(e) {  
  if(ie4){
    mouseX = window.event.x+document.body.scrollLeft; 
    mouseY = window.event.y+document.body.scrollTop; 
  } else if((ns4)||(ns6)){
      mouseX = e.pageX
      mouseY = e.pageY
  }
  // child layer visible
  if (checkLayerName != "")
    if ((mouseX > checkX2)||(mouseX < checkX1)||(mouseY > checkY2)||(mouseY < checkY1)) {
      hideSubMenus()
      checkLayerName = ""
    }
}

function MM_swapImgRestore() { //v3.0
 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
 var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
 if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
 if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
 if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_reloadPage(init) { //reloads the window if Nav4 resized
 if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
 document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
 else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);
