document.menus = [];

function Menu (root_id) {

  this.root = document.getElementById(root_id);

  this.setup(this.root); }



Menu.prototype.setup = function (r) { 

  var c = r.childNodes;

  for (var i = 0; i < c.length; i++) {

    if (c[i].tagName == "A" && c[i].parentNode.tagName == "LI") {

      c[i].onmouseover = mMouOvrItm;

      c[i].onmouseout = mMouOutItm;

      c[i].getParents = mGetParents;

      var pli = c[i].parentNode;

      for (var j = 0; j < pli.childNodes.length; j++) {

        if (pli.childNodes[j].tagName == "UL")

        {

          c[i].m = pli.childNodes[j];

          c[i].m.p = c[i];

          c[i].m.style.visibility = "hidden";

          c[i].m.onmouseover = mMouOvrMnu;

          c[i].m.onmouseout = mMouOutMnu;

          c[i].ptr = document.menus.length;



          c[i].hide = mHide;

          document.menus.push(c[i]);

          break;

        }

      }

    }

    this.setup( c[i] );

  }

}



function mMouOvrItm() {

  if (this.parentNode.className) {  

    this.parentNode.classNameOrig = this.parentNode.className;

    }

  

    if (this.tOut) clearTimeout(this.tOut);



    var p = this.getParents();



    for (var i = 0; i < document.menus.length; i++) {

      var h = true;

      for (var j = 0; j < p.length; j++)

      	if (p[j] == document.menus[i].m) h = false;

      if (h) document.menus[i].hide();

    }



    if (this.m) { 

      this.m.style.visibility = "visible";

      swfHide();

     }

}



function mMouOutItm() {

  

  if (this.parentNode.classNameOrig) {

    this.parentNode.className = this.parentNode.classNameOrig;

    this.parentNode.classNameOrig = null;

  }

  if (this.m)

    this.tOut = setTimeout("document.menus["+this.ptr+"].hide()",700);

}



function mMouOvrMnu() {

  if (this.p.tOut) clearTimeout(this.p.tOut);

}



function mMouOutMnu() {

  this.p.onmouseout();

}



function mHide(p) {

  this.m.style.visibility = "hidden";

  if (document.swfOn) clearTimeout(document.swfOn);

  document.swfOn = setTimeout("swfShow()",2000);

}



function mGetParents() {

  var a = [];

  var p = this.parentNode;

  while (p) {

     if (p.tagName=='UL')

     	a.push(p);

     p = p.parentNode;

  }

  return a;

}



function swfShow() {

  var swfs = document.getElementsByTagName('object');

  for(var i = 0; i < swfs.length; i++) {

    swfs[i].style.visibility = "visible";

  }

}



function swfHide() {

  if (document.swfOn) clearTimeout(document.swfOn)

  var swfs = document.getElementsByTagName('object');

  for(var i = 0; i < swfs.length; i++) {

    swfs[i].style.visibility = "hidden";

  }

}



