/*------------------------------------------------------------------------------*/
/* GGC Menu Script                                                              */
/* Dependencies - Prototype Base                                                */
/*------------------------------------------------------------------------------*/

var Submenu = Class.create();
Submenu.prototype = {
	initialize: function(controller, parent, element) {
		this.controller = controller;
		this.parent = parent;
		this.element = element;
		if(element) {
			this.parent.submenuref = element.id;
			this.parent.onmouseover = this.controller.showMenu.bindAsEventListener(this.controller);
			this.parent.onmouseout = this.controller.hideMenu.bindAsEventListener(this.controller);
			var anchors = element.getElementsByTagName('a');
			for(var i = 0; i < anchors.length; i++) {
				anchors[i].onmouseover = stopTimer;
				anchors[i].onmouseout = this.controller.hideMenu.bindAsEventListener(this.controller);
			}
		}
		else {
			this.parent.onmouseover = hide;
		}
	}
};

var current = null;
var timer = null;
var MenuController = Class.create();
MenuController.prototype = {
	initialize: function() {
		var parents = $('members', 'membership', 'golf', 'clubhouse', 'history', 'contact');
		for(var i = 0; i < parents.length; i++) {
			new Submenu(this, parents[i], $('sub-' + parents[i].id));
		}
	},
	
	showMenu: function(evt) {
		if(current) {
			hide();
		}
		if(timer) {
			stopTimer();
		}
		current = Event.element(evt);
		$(current.submenuref).className = 'visible';
	},
	
	hideMenu: function(evt) {
		timer = setTimeout('hide()', 1000);
	}
};

hide = function() {
	if(current) {
		$(current.submenuref).className = 'hidden';
	}
}

stopTimer = function() {
	clearTimeout(timer);
}

loadSubMenus = function() {
	new MenuController();
}
