window.addEvent('domready', function(){
	$('menu').getElement('ul').getElements('ul').each(function(ul){
		ul.setStyles({
			'overflow': 'hidden',
			'display': 'none',
			'height': 0,
			'opacity': 0
		}).set('morph', {
			'duration': 500,
			'onComplete': function(){
				if (ul.getStyle('height').toInt() > 0) {
					ul.setStyle('height', 'auto');
				} else {
					ul.setStyle('display', 'none');
				}
			}
		});
		ul.getParent().getElement('a').addEvent('click', function(e){
			new Event(e).stop();
			if (!ul.getParent().hasClass('selected') && ul.getStyle('height').toInt() != 0) {
				ul.getParent().removeClass('open');
				ul.setStyle('height', ul.getScrollSize().y).morph({
					'height': 0,
					'opacity': 0
				});
			} else {
				if (!ul.getParent().hasClass('selected')) {
					ul.getParent().getParent().getChildren('li').each(function(li) {
						if (!li.hasClass('selected') && !li.hasClass('selected') && li.getElement('ul') && li.getElement('ul').getStyle('height').toInt() != 0) {
							li.removeClass('open');
							li.getElement('ul').setStyles({
								'height': li.getElement('ul').getScrollSize().y
							}).morph({
								'height': 0,
								'opacity': 0
							});
						}
					});
					ul.getParent().addClass('open');
					ul.setStyles({
						'display': 'block',
						'height': 0
					}).morph({
						'height': ul.getScrollSize().y,
						'opacity': 1
					});
				}
			}
		});
	});
	$('menu').getElement('ul').getElements('ul').each(function(ul){
		if (ul.getParent().hasClass('selected')) {
			ul.setStyles({
				'display': 'block',
				'height': 'auto',
				'opacity': 1
			});
		}
	});
	$('menu').getElements('a').each(function(a){
		if (a.getProperty('title')) {
			new Element('div').addClass('title').grab(
				new Element('div').grab(
					new Element('p').set('text', a.getProperty('title'))
				)
			).inject(a, 'after');
		}
	});
	$('menu').getElements('.title').each(function(title){
		title.getParent().addEvent('mouseenter', function() {
			title.addClass('open');
			title.getParent().addClass('hover');
		}).addEvent('mouseleave', function() {
			title.removeClass('open');
			title.getParent().removeClass('hover');
		});
	});
	$('menu').getElements('li').each(function(li){
		if (li.getChildren('.title').length > 0) {
			li.addEvent('mouseenter', function() {
				li.getElement('.title').setStyle('display', 'block');
			}).addEvent('mouseleave', function() {
				li.getElement('.title').setStyle('display', 'none');
			});
		}
	});
});
