var Command = new Class({
	options: {
		nav: {
			idName: 'nav',
			subNavClassName: 'subnav',
			overClassName: 'over'
		}
	},
	initialize: function(options){
		this.navSetUp();
	},
	navSetUp: function(){
		var parent = this;
		this.nav = $(this.options.nav.idName);
		this.nav.a = $$('a');
		this.nav.a.each(function(item){
			if(item.nextSibling && item.nextSibling.tagName == 'UL'){
				item.addEvent('mouseover', parent.navRollOverHandler.bindWithEvent(item));
				item.addEvent('mouseleave', parent.navRollLeaveHandler.bindWithEvent(item));
			}
		})
	},
	navRollOverHandler: function(event){
		var parent = this.getParent();
		var sub = this.getNext();
		parent.addClass('over');
		sub.setStyles({
			'display' : 'block'
		});
		sub.addEvent('mouseover', function(){
			if(!parent.hasClass('over')){
				parent.addClass('over');
			}
			this.setStyles({
				'display' : 'block'
			});
		});
		if(parent.getPrevious() && parent.getPrevious().tagName == 'LI'){
			parent.getPrevious().addClass('nobackground');
		}
	},
	navRollLeaveHandler: function(event){
		var parent = this.getParent();
		var sub = this.getNext();
		parent.removeClass('over');
		sub.setStyles({
			'display' : 'none'
		});
		sub.addEvent('mouseleave', function(){
			if(parent.hasClass('over')){
				parent.removeClass('over');
			}
			this.setStyles({
				'display' : 'none'
			});
		});
		if(parent.getPrevious() && parent.getPrevious().tagName == 'LI'){
			parent.getPrevious().removeClass('nobackground');
		}
	}
});

window.addEvent('domready', function(){
	var ct = new Command();
});