var intr;
var menus = Array();
var brdr;
var brdrfx;
var tempo = 300;
function fadeOut() {
	var mb = false;
	for (var i = 0; i < menus.length; i++) {
		var ret = menus[i];
		if (ret.a.getProperty('class').indexOf('active') == -1) {
			ret.fx.cancel();
			ret.fx.slideOut();
		} else {
			ret.fx.cancel();
			ret.fx.slideIn();
			var height = ret.ul.getSize().y;
			moveBorder(height + 10);
			mb = true;
		}
	}
	if (!mb) {
		moveBorder(0);
	}
	window.clearInterval(intr);
}
function rollOut() {
	window.clearInterval(intr);
	intr = window.setInterval("fadeOut()",1000);
}

function fadeListIn(a) {
	window.clearInterval(intr);
	var mb = false;
	for (var i = 0; i < menus.length; i++) {
		var ret = menus[i];
		if (a == ret.a) {
			ret.fx.cancel();
			ret.fx.slideIn();
			var height = ret.ul.getSize().y;
			moveBorder(height + 10);
			mb = true;
		} else { 
			ret.fx.cancel();
			ret.fx.slideOut();
		}
	}
	if (!mb) {
		moveBorder(0);
	}
}

function enableFadeOut(a) {
	a.onmouseover = function() {
		window.clearInterval(intr);
	}
	a.onmouseout = function() {
		rollOut();
	}
}

function enableFaderList(li) {
	window.clearInterval(intr);
	
	var ret = Object();
	ret.a = li.getChildren('a')[0];
	ret.a.onmouseover = function() {
		fadeListIn($(this));
	}
	if (li.getChildren('div').length > 0) {
		
		var div = li.getChildren('div')[0];
		ret.ul = div.getChildren('ul')[0];
		ret.ul.style.display = 'block';
		
		ret.fx = new Fx.Slide(ret.ul, {
		    duration: tempo
		});
		
		if (ret.a.getProperty('class').indexOf('active') == -1) {
			ret.fx.hide();
		} else {
			var height = ret.ul.getSize().y;
			moveBorder(height + 10, true);
		}
		
		return ret;

	//t += 'li ' + ret.a.firstChild.nodeValue + '\n';
	}
}
function initBorder() {
	
		brdr = $$('div#border')[0];
		brdrfx = new Fx.Tween(brdr, {
		    duration: tempo
		});
		moveBorder(0);
}
function moveBorder(to, em) {
	to += 33;
	brdrfx.cancel();
	if (em) {
		brdrfx.set('top', to + 'px');
	} else {
		brdrfx.start('top', brdr.getStyle('top'), to + 'px');
	}
}

window.addEvent(
	'domready', 
	function() {
		initBorder();
		var mainmenu = $$('div#mainmenu')[0];
		
		
		var as = mainmenu.getElements('a');
		for (var i = 0; i < as.length; i++) {
			enableFadeOut(as[i])
		}
		
		var uls = mainmenu.getChildren('ul');
		for (var i = 0; i < uls.length; i++) {
			var lis = uls[i].getChildren('li');
			for (var j = 0; j < lis.length; j++) {
				var ret = enableFaderList(lis[j]);
				if (ret != null) menus[menus.length] = ret;
			} 
		}
		
		//alert($$('div#border'));
	}
);
