var Menu = Class.create();
Menu.prototype = {
	initialize: function(element) {
		this.element = $(element);
		this.dspSubmenu();
		Event.observe(this.element, 'click', this.onClick.bindAsEventListener(this));
	},
	
	dspSubmenu: function() {
		this.element.getElementsBySelector('[class="current"]').each(
			function(item) {
				var subMenu = item.next('div',0);
				if(typeof subMenu != 'undefined' && !subMenu.visible()) subMenu.show();
				var upMenu = item.up('div',0);
				if(typeof upMenu != 'undefined' && !upMenu.visible()) {
					upMenu.show();
					expandable_elem = upMenu.previous('a',0);
					if (typeof expandable_elem != 'undefined' && expandable_elem.hasClassName('expandable')) {
						expandable_elem.removeClassName('expandable');
						expandable_elem.addClassName('expanded');
					}
				}
			}
		);
	},
	
	onClick: function(evt) {
		var elem = Event.findElement(evt, 'a');
		if (typeof elem != 'undefined') {
			if(elem.readAttribute('href').match(/toggle/)) {
				var subMenu = elem.next('div',0);
				if(typeof subMenu != 'undefined' && subMenu.visible()) {
					Effect.SlideUp(subMenu);
					if (elem.hasClassName('expanded')) {
						elem.removeClassName('expanded');
						elem.addClassName('expandable');
					}
				} else {
					Effect.SlideDown(subMenu);
					if (elem.hasClassName('expandable')) {
						elem.removeClassName('expandable');
						elem.addClassName('expanded');
					}
				}
			}
		}
	}
};
