var topMenuOpened;
var leftMenuOpened;
window.onload = function(){
	initializeMenu();
	initializeLeftMenu();
}
//-------------------------------------------------------------------------------------
function initializeMenu(){
	var menu = document.getElementById("top_menu");
	var topLevel = getElementsByClass ("top_menu_element", menu, "li");
	var secondLevel;
	
	for (var i=0; i<topLevel.length; i++){
		topLevel[i].onmouseover = mouseOver;
		topLevel[i].onmouseout = mouseOut;
		secondLevel = getElementsByClass ("top_submenu_content", topLevel[i], "ul");
		if (secondLevel.length>0){
			secondLevel[0].onmouseover = function(){ 
			clearTimeout(this.timer); 
			this.topOver = true;};
			secondLevel[0].onmouseout = mouseOut;
		}
	}
}
//-------------------------------------------------------------------------------------
function mouseOver(){
	var ul;
	ul = getElementsByClass("top_submenu_content", this, "ul");
	if (ul.length== 0) return;
	ul = ul[0];
	ul.topOver = true;
	clearTimeout(ul.timer);

	if ((topMenuOpened!=ul)&&(typeof(topMenuOpened)!="undefined")){
		hideMenu(topMenuOpened);
	}
	showMenu(ul);
	topMenuOpened = ul;
}
//-------------------------------------------------------------------------------------
function mouseOut(){
	var ul;
	if (this.nodeName == "LI"){
		ul = getElementsByClass("top_submenu_content", this, "ul");
		if (ul.length== 0) return;
		ul = ul[0];
	}
	else { 
		ul = this;
	}
	ul.topOver = false;
	clearTimeout(ul.timer);
	ul.timer = setTimeout(function(){ 
		if (!ul.topOver) {
			hideMenu(ul);
		}    
	}, 300);
}
//-------------------------------------------------------------------------------------
function showMenu(menu){
	var inputs = document.getElementsByTagName('input');
	for (var r=0; r<inputs.length; r++){
		inputs[r].blur();
	}

	menu.style.display = "block";
	for (var i=0; i<menu.parentNode.childNodes.length; i++){
		if (menu.parentNode.childNodes[i].nodeName == "A")
		if (menu.parentNode.childNodes[i].className.indexOf("top_submenu_title")>=0){
			menu.parentNode.childNodes[i].className=menu.parentNode.childNodes[i].className.replace(/top_submenu_title/g, "top_submenu_title hovered");
			break;
		}
	}
}
//-------------------------------------------------------------------------------------
function hideMenu(menu){
	menu.style.display = "none";
	for (var i=0; i<menu.parentNode.childNodes.length; i++){
		if (menu.parentNode.childNodes[i].nodeName == "A")
		if (menu.parentNode.childNodes[i].className.indexOf("hovered")>=0){
			menu.parentNode.childNodes[i].className=menu.parentNode.childNodes[i].className.replace(/hovered/g, "");
			break;
		}
	}
}
//-------------------------------------------------------------------------------------
function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)*"+searchClass+"(\s|$)*");
	
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
//*************************************************************************************
function initializeLeftMenu(){
	var leftMenu = document.getElementById("left_menu");
	var level = new Array();
	level=level.concat(getElementsByClass("left_menu_showmore", leftMenu, "span"), getElementsByClass("left_menu_nomore", leftMenu, "span"));
	for (var i=0; i<level.length; i++){
		level[i].onclick = mouseOverLeft;
		if(level[i].clientHeight!=getElementsByClass("left_menu_href",level[i].parentNode,"a")[0].clientHeight)
			level[i].style.height=getElementsByClass("left_menu_href",level[i].parentNode,"a")[0].clientHeight-3+"px";
	}	

	var secondLevel = getElementsByClass ("left_submenu_content", level[i], "ul");
	var maxh=0;
	for (var i = 0; i < secondLevel.length; i++) {
		secondLevel[i].style.display="block";
		if(secondLevel[i].offsetHeight>maxh)
			maxh=secondLevel[i].offsetHeight;
		secondLevel[i].ownHeight=secondLevel[i].offsetHeight;
		secondLevel[i].style.display="";
	}
	for (var i=0; i<secondLevel.length; i++){
		//secondLevel[i].style.height=maxh+"px";
		if(secondLevel[i].className.indexOf('opened')==-1)
			secondLevel[i].style.height="0";
		secondLevel[i].onmouseover = function(){ 
			clearTimeout(this.timerLeft); 
			this.leftOver = true;};
		secondLevel[i].onmouseout = mouseOutLeft;
	}
}
//-------------------------------------------------------------------------------------
function mouseOverLeft(){
	var ul = null;
	span=this.parentNode;
	for (var i=0; i<span.childNodes.length; i++){
		if (span.childNodes[i].className == "left_submenu_content"){
			ul = span.childNodes[i];
			break;
		}
	}
	if (!ul) return;
	ul.leftOver = true;
	
	clearTimeout(ul.timerLeft);
	
	if ((leftMenuOpened!=ul)&&(typeof(leftMenuOpened)!="undefined")){
		var pul=ul.parentNode;
		while(pul!=leftMenuOpened && pul) pul=pul.parentNode;
		
		//if(!pul) hideLeftMenu(leftMenuOpened);
	}
	hideLeftMenu(getElementsByClass("opened left_submenu_content",document.getElementById("left_menu"),"ul")[0]);
	showLeftMenu(ul);
	leftMenuOpened = ul;
	
}
//-------------------------------------------------------------------------------------
function mouseOutLeft(){
	return;
	var ul;
	if (this.nodeName == "LI"){
		ul = getElementsByClass("left_submenu_content", this, "ul");
		if (ul.length== 0) return;
		ul = ul[0];
	}
	else { 
		ul = this;
	}
	ul.leftOver = false;
	clearTimeout(ul.timerLeft);
	ul.timerLeft = setTimeout(function(){ 
		if (!ul.leftOver) {
			hideLeftMenu(ul);
		}    
	}, 1000);
}
//-------------------------------------------------------------------------------------
function showLeftMenu(menu){
	menu.className = "opened left_submenu_content";    
	move(menu,1);
	for (var i=0; i<menu.parentNode.childNodes.length; i++){
	if (menu.parentNode.childNodes[i].nodeName == "A")
		if (menu.parentNode.childNodes[i].className.indexOf("left_menu_href")>=0){
			menu.parentNode.childNodes[i].className = "left_menu_href parent_selected"; break;
		}
	}  
}
//-------------------------------------------------------------------------------------
function hideLeftMenu(menu){
	if(!menu) return;
	move(menu,-1);
	for (var i=0; i<menu.parentNode.childNodes.length; i++){
	if (menu.parentNode.childNodes[i].nodeName == "A")
		if (menu.parentNode.childNodes[i].className.indexOf("parent_selected")>=0){
			menu.parentNode.childNodes[i].className = "left_menu_href"; break;
		}
	}
}
//-------------------------------------------------------------------------------------
function move(obj,dir){
	if(!obj) return;
	var HEIGHT = (((dir>0)?obj.ownHeight:0)-obj.offsetHeight);
	var STEPS = 15;
	var POWR = 4;
	
	if (obj.anim) {
		return false;
	}
	obj.step = 0;
	obj.min = obj.offsetHeight;
	obj.anim = setInterval(function(){
		obj.style.height = obj.min + (Math.pow(obj.step / STEPS, POWR)) * HEIGHT + 'px';
		obj.step++;
		if (obj.step > STEPS) {
			clearInterval(obj.anim);
			obj.className=(dir>0)? "opened left_submenu_content" : "left_submenu_content";
			obj.anim = false;
		}
	}, 40);
}
