var menu = new function() {
	var active = undefined;
	var menu = this;
	
	this.init = function() {
		var element = undefined;
		var elements = document.getElementsByTagName('ul');
		for(var i in elements) {
			if(!elements[i].parentNode) {
				continue;
			}
			if(elements[i].className.indexOf('menu') >= 0) {
				element = elements[i];
				break;
			}
		}
		if(element) {
			parents = element.getElementsByTagName('li');
			for(var i in parents) {
				if(!parents[i].parentNode) {
					continue;
				}
				var child = undefined;
				var children = parents[i].getElementsByTagName('ul');
				for(var j in children) {
					if(children[j].parentNode == parents[i]) {
						child = children[j];
						break;
					}
				}
				var timeout = undefined;
				parents[i].menu = new Object();
				parents[i].menu.timeout = undefined;
				
				if(child)
					parents[i].menu.child = child;
					
				parents[i].onmouseover = function() {
					clearTimeout(this.menu.timeout);
					
					$(this).addClass('hover');
					
					if(this.menu.child) {
						this.menu.child.style.display = 'block';
 						//$(this.menu.child).fadeIn('fast');
					}
					
					if(active && active != this) {
						var obj = this;
						while(obj.parentNode && obj.parentNode != active) {
							obj = obj.parentNode;
						}
						if(obj.parentNode != active) {
							$(active).removeClass('hover');
							if(active.menu.child) {
								active.menu.child.style.display = 'none';
								//$(active.menu.child).fadeOut('fast');
							}
						}
					}
					return false;
				}
				parents[i].onmouseout = function() {
					var parent = this;
					this.menu.timeout = setTimeout(function() {
						$(parent).removeClass('hover');
						if(parent.menu.child) {
							parent.menu.child.style.display = 'none';
	 						//$(parent.menu.child).fadeOut('fast');
						}
					}, 500);
					active = this;
				}
				
			}
		}
	}
};
