var ShowMenu = {
	init: function() {
		var liEle = document.getElementsByTagName("li");
		for(var i = 0; i < liEle.length; i++) {
			if (liEle[i].className == "submenu")
			{
				Core.addEventListener(liEle[i], "mouseover", ShowMenu.showDelay);
				Core.addEventListener(liEle[i], "mouseout", ShowMenu.hideDelay);
				if (navigator.userAgent.search("MSIE 6") > 0) {		/* IE6 submenu mouseout hack */
					Core.addEventListener(liEle[i], "mouseover", ShowMenu.mouseHacks);
					Core.addEventListener(liEle[i], "mouseout", ShowMenu.mouseHacks);
				}
			}
			if (liEle[i].className == "search") {
				Core.addEventListener(liEle[i].childNodes[0], "click", ShowMenu.animateSearch);
				var form = liEle[i].childNodes[2];
				form._height = form.scrollHeight;		/* Store dest. height before hidden */
				form.className = "hidden";
			}
		}
		var key = document.getElementById("key");
		if(key != null) {
			var input = document.createElement("input");
			input.type = "hidden";
			input.name = "key";
			input.value = "prdel";
			key.appendChild(input);
		}
	},

	showDelay: function(event) {
		var sub = this.childNodes[2];
		clearTimeout(sub._hideDelay);
		sub._showDelay = setTimeout(function() {ShowMenu.showSubmenu(sub);}, 300);
	},

	hideDelay: function(event) {	
		var sub = this.childNodes[2];
		clearTimeout(sub._showDelay);
		sub._hideDelay = setTimeout(function() {ShowMenu.hideSubmenu(sub);}, 300);
	},

	showSubmenu: function(sub) {
		sub._inc = 10;
		sub._next = 0;

		sub.className = "show";
		ShowMenu.fadeUp(sub);
	},

	hideSubmenu: function(sub) {
		sub._inc = 10;
		sub._next = 100;
		ShowMenu.fadeDown(sub);
	},

	animateSearch: function(event) {
		var srch = Core.nextSibl(this);

//	If animation is running -> animation switch
		if(srch._run == 1) {
			clearTimeout(srch._timer);
			ShowMenu.animateUp(srch);
			return;
		}
		if(srch._run == 0) {
			clearTimeout(srch._timer);
			ShowMenu.animateDown(srch);
			return;
		}

//	If animation not running -> animation start
		srch._inc = 10;
		srch._next = 0; 
		srch.className = "show";
		ShowMenu.animateDown(srch);
	},

	fadeUp: function(sub) {
		if(sub._visible == 1)
			return;
		sub._next = sub._inc + sub._next;
		sub.style.opacity = sub._next/100;
		sub.style.filter = "alpha(opacity="+sub._next+")";
		if(sub._next < 100)
			sub._timer = setTimeout(function() {ShowMenu.fadeUp(sub);}, 30);
		else {
			sub._visible = 1;
			sub.style.filter = null;	/* IE8 hack: in the end of fade font isn't smoothed. */ 
		}
	},

	fadeDown: function(sub) {
		sub._next = sub._next - sub._inc;
		sub.style.opacity = sub._next/100;
		sub.style.filter = "alpha(opacity="+sub._next+")";
		if(sub._next > 0)
			sub._timer = setTimeout(function() {ShowMenu.fadeDown(sub);}, 30);
		else {
			sub.className = "hidden";
			sub._visible = 0;
		}
	},

	animateDown: function(srch) {
		srch._run = 1;
		srch._next = srch._inc + srch._next;
		srch.style.height = srch._next + "px";
		if(srch._next < srch._height)
			srch._timer = setTimeout(function() {ShowMenu.animateDown(srch);}, 20);
	},

	animateUp: function(srch) {
		srch._run = 0;
		srch._next = srch._next - srch._inc;
		srch.style.height = srch._next + "px";
		if(srch._next > 0)
			srch._timer = setTimeout(function() {ShowMenu.animateUp(srch);}, 20);
		else {
			srch._run = null;
			srch.className = "hidden";
		}
	},

	mouseHacks: function(event) {
		if(event.type == "mouseover")
				this.className = "menuIE6over";
		if(event.type == "mouseout")
				this.className = "menuIE6out";
	}
};
Core.start(ShowMenu);

