function Menu(menu_name,parent_menu)
{
   this.name = menu_name;
   this.parent = parent_menu;
   this.over_menu = false;
   this.over_menu_div = false;
   this.active = false;
   this.children = new Array();
   if (parent_menu) parent_menu.children.push(this);
}

Menu.prototype.remove = function()
{
   if ((! this.over_menu) && (! this.over_menu_div)) {
      document.getElementById(this.name+'_menu').style.display = 'none';
      this.active = false;
     // if (this.parent) document.getElementById(this.name+'_menu_link').className = '';
   }
}

Menu.prototype.mouseover = function()
{
   this.over_menu = true;
   document.getElementById(this.name+'_menu').style.display = '';
   this.active = true;
}

Menu.prototype.activate = function()
{
   this.over_menu = true;
   alert(this.name);
   //document.getElementById(this.name+'_menu_link').className = 'sub_menu';
   document.getElementById(this.name+'_menu').style.display = '';
   this.active = true;
}

Menu.prototype.mouseout = function()
{
   this.over_menu = false;
   var menu = this;
   setTimeout(function() { menu.remove(); },0);
}

Menu.prototype.div_mouseover = function()
{
   this.over_menu_div = true;
   if (this.parent) this.parent.over_menu_div = false;
   //document.getElementById(this.name+'_menu_link').className = 'sub_menu';
}

Menu.prototype.div_mouseout = function()
{
   this.over_menu_div = false;
   var menu = this;
   if (this.parent) {
      setTimeout(function () {
         if ((! menu.parent.over_menu_div) && (! menu.over_menu_div)) {
            menu.over_menu = false;   menu.remove();
         }
      },0);
      setTimeout(function () {
         if ((! menu.parent.over_menu_div) && (! menu.over_menu_div)) {
            menu.parent.over_menu_div = false;   menu.parent.remove();
         }
      },0);
   }
   else if (this.children.length > 0) {
      setTimeout(function () {
         if (! menu.over_menu_div) {
            var over_child_div = false;
            for (var index in menu.children) {
               if (menu.children[index].over_menu_div) over_child_div = true;
            }
            if (! over_child_div) {
               menu.over_menu_div = false;   menu.remove();
            }
         }
      },0);
      var child_active = false;
      for (var index in this.children) {
         if (this.children[index].active) child_active = true;
      }
      if (child_active)
         setTimeout(function () {
            if (! menu.over_menu_div) {
               for (var index in menu.children) {
                  if (menu.children[index].active &&
                      (! menu.children[index].over_menu_div)) {
                     menu.children[index].over_menu = false;
                     menu.children[index].remove();
                  }
               }
            }
         },0);
   }
   else setTimeout(function() { menu.remove(); },100);
   //document.getElementById(this.name+'_menu_link').className = 'link';
}

Menu.prototype.sub_mouseover = function(child_name)
{
   for (var index in this.children) {
      if (this.children[index].name == child_name) {
         if (! this.children[index].active) this.children[index].activate();
      }
      else if (this.children[index].active) {
         this.children[index].over_menu = false;
         this.children[index].over_menu_div = false;
         this.children[index].remove();
      }
   }
}

var golfers_menu = new Menu('golfers',golfers_menu);
var courses_menu = new Menu('courses',courses_menu);
var moreinfo_menu = new Menu('moreinfo',moreinfo_menu);
