	var DropdownNav = Class.create({
		initialize: function(selector) {
			this.selector = selector;
			this.lis = $$(selector);
			this.ul = this.lis[0].up('ul');
			this.active = null;
			this._mouseover = this.mouseover.bindAsEventListener(this);
			this.selected = this.setSelected();
			Event.observe(document, 'mouseover', this._mouseover);
		},
		
		mouseover: function(event) {
			var elem = Event.element(event);
			if (elem.descendantOf(this.ul) || elem == this.ul) {
				this.show(event);				
			} else {
				this.hide();
			}
		},
		
		setSelected: function() {
			for (var i=0, c=this.lis.length; i<c; i++) {
				var li = this.lis[i];
				if (li.hasClassName('selected')) {
					this.addClass(li, '_selected');
					this.addClass(li, '_hover');
					return li;
					break;	
				}
			}
		},
		
		show : function(event) {
			var elem = Event.findElement(event, 'li');
			if (elem && (!this.active || !elem.descendantOf(this.active)) && elem != this.selected) {
				this.hide();
				elem.addClassName('hover');
				this.addClass(elem, '_hover');
				this.active = elem;
				this.active.innerHTML.escapeHTML();
			}
		},
		
		addClass : function(element, newClass) {
			var clses = element.className.split(' ');
			var newClasses = [];
			for (var i=0, c=clses.length; i<c; i++) {
				var cls = clses[i];
				if (-1 != cls.indexOf('cms_')) {
					newClasses.push(cls+newClass)
				}
				newClasses.push(cls);
			}
			element.className = newClasses.join(' ');
		},
		
		removeClass : function(element, newClass) {
			var clses = element.className.split(' ');
			var newClasses = [];
			for (var i=0, c=clses.length; i<c; i++) {
				var cls = clses[i];
				if (-1 != cls.indexOf('cms_') && -1 != cls.indexOf(newClass)) {
					continue
				}
				newClasses.push(cls);
			}
			element.className = newClasses.join(' ');
		},
		
		hide : function() {
			if (this.active) {
				this.active.removeClassName('hover');
				this.removeClass(this.active, '_hover');
				this.active = null;
			}
		}
	});
	Event.observe(window, 'load', function() {
		new DropdownNav('.top_nav > ul > li');
	});
