var currentMenu = null;
var currentMenuV = null;
var lastMenuStarter = null;
var mytimer = null;
var timerOn = false;
var mytimerV = null;
var timerOnV = false;
var opera = window.opera ? true : false;

if (!document.getElementById)
	document.getElementById = function() { return null; }


function changeToUrl(x){	
	var y;
//	alert (x);
	if(x!=null){
		y=x.length;
		y=(y-1);
		x=x.substr(0,y)+".html";
		return x;}else{return null;}
}

function initialiseDummy(dummy, root) {
	if (dummy != null) {
		dummy.onmouseover = function() {
			containingMenu = this.parentNode.parentNode;
			for (var x=0;x<containingMenu.childNodes.length;x++) {
				if (containingMenu.childNodes[x].nodeName.toUpperCase()=="LI") {
					if (containingMenu.childNodes[x].getElementsByTagName("ul").length>0) {
						if(!Element.hasClassName(containingMenu.childNodes[x].getElementsByTagName("UL").item(0),"vybrane")){
							containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
							containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.display = 'none';}
					}
				}
			}
		}
		dummy.onfocus = function() {
			dummy.onmouseover();
		}
	}
}

function initialiseMenu(menu, starter, root) {
	var leftstarter = false;

	if (menu == null || starter == null) return;
		
	currentMenu = menu;

	starter.onmouseover = function() {
		if (currentMenu) {
			if (this.parentNode.parentNode!=currentMenu) {
				currentMenu.style.visibility = "hidden";
				currentMenu.style.display = "none";
				hideAllMenus(currentMenu, root);

			}
			if (this.parentNode.parentNode == root) {
				while (currentMenu.parentNode.parentNode != root) {
					if (currentMenu.parentNode.parentNode) {
						currentMenu.parentNode.parentNode.style.visibility = "hidden";
						currentMenu.parentNode.parentNode.style.display = "none";
					}
					currentMenu = currentMenu.parentNode.parentNode;
				}
			}
			currentMenu = null;
			this.showMenu();
        	}
	}

	menu.onmouseover = function() {
		if (currentMenu) {
			currentMenu = null;
			this.showMenu();
        	}
	}	

	starter.showMenu = function() {
		if (!opera) {
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
			}
			else {
			 	menu.style.left = this.offsetLeft + this.offsetWidth + "px";
			 	menu.style.top = this.offsetTop + "px";
			}
		}
		else {
			var rootOffset = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";

			}
			else {
			 	menu.style.left = this.offsetWidth - rootOffset + "px";
			 	menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}

		}
		API.setObjOpacity(menu, 1);
		menu.style.visibility = "visible";
		menu.style.display="block";
		anim = new Animator();
		anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 0.1, 1));
		anim.play();
		menu.style.zIndex = API.maxZ + 100;
		currentMenu = menu;
	}

	starter.onfocus	 = function() {
		starter.onmouseover();
	}

	menu.onfocus	 = function() {
//			currentMenu.style.visibility="hidden";
	}

	menu.showMenu = function() {
		menu.style.visibility = "visible";
		menu.style.display="block";
		currentMenu = menu;
		stopTime();
	}

	menu.hideMenu = function()  {
		if (!timerOn) {
			mytimer = setInterval("killMenu('" + this.id + "', '" + root.id + "');", 2000);
			timerOn = true;
			for (var x=0;x<menu.childNodes.length;x++) {
				if (menu.childNodes[x].nodeName=="LI") {
					if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
						menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
						menuItem.style.visibility = "hidden";
						menuItem.style.display="none";
/*						menuItem.style.opacity = 1;
						anim = new Animator({onComplete: function() {
							menuItem.style.visibility = "hidden";
						}});
						anim.addSubject(new NumericalStyleSubject(menuItem, 'opacity', 1, 0));
						anim.play();
*/					}
				}
			}
		}
	}

	menu.onmouseout = function(event) {
		this.hideMenu();
	}
	menu.onblur = function() {
		this.hideMenu();
	}
	starter.onmouseout = function() {
		for (var x=0;x<menu.childNodes.length;x++) {
			if (menu.childNodes[x].nodeName=="LI") {
				if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
					menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
					menuItem.style.visibility = "hidden";
					menuItem.style.display="none";
				}
			}
		}//alert('a');
/*		menu.style.opacity = 1;
		anim = new Animator({onComplete: function() {
			menu.style.visibility = "hidden";
		}});
		anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 1, 0));
		anim.play();
*/		menu.style.visibility = "hidden";
		menu.style.display="none";
	}
}

function initialiseMenuV(menu, starter, root) {	
	var leftstarter = false;

	if (menu == null || starter == null) return;
		
	currentMenuV = menu;	

	starter.showMenu = function() {
		if (!opera) {
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
			}
			else {
			 	menu.style.left = this.offsetLeft + this.offsetWidth + "px";
			 	menu.style.top = this.offsetTop + "px";
			}
		}
		else {
			var rootOffset = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";

			}
			else {
			 	menu.style.left = this.offsetWidth - rootOffset + "px";
			 	menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}

		}
		API.setObjOpacity(menu, 1);
		menu.style.visibility = "visible";
		menu.style.display="block";
		anim = new Animator();
		anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 0.1, 1));
		anim.play();
		menu.style.zIndex = API.maxZ + 100;
		currentMenuV = menu;
	}
	
	starter.hideMenu = function() {
		if (!opera) {
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
			}
			else {
			 	menu.style.left = this.offsetLeft + this.offsetWidth + "px";
			 	menu.style.top = this.offsetTop + "px";
			}
		}
		else {
			var rootOffset = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";

			}
			else {
			 	menu.style.left = this.offsetWidth - rootOffset + "px";
			 	menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}

		}
		API.setObjOpacity(menu, 1);
		menu.style.visibility = "hidden";
		menu.style.display="none";
		anim = new Animator();
		anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 1, 0.1));
		anim.play();
		menu.style.zIndex = API.maxZ + 100;
		currentMenuV = menu;
	}

	menu.showMenu = function() {
		menu.style.visibility = "visible";
		menu.style.display="block";
		if(API.browser.ie){
			menu.style.filter = 'alpha(opacity=1)';	
		}else{
			menu.style.opacity=1;	
		}
		currentMenuV = menu;
		stopTimeV();
		
	}

	menu.hideMenu = function()  {
		
		//alert(this.nodeName);
		if (!timerOnV) {
			mytimerV = setInterval("killMenuV('"+this.id+"');", 1000);
			timerOnV = true;
			//this.style.display="none";
			//this.style.visibility="hidden";
			
			
			
			
		}
	}
}

function killMenu(menu, root) {
	//alert(menu);
//	menu.style.visibility = "hidden";
	var menu = document.getElementById(menu);
	var root = document.getElementById(root);
	API.setObjOpacity(menu, 100);
	anim = new Animator({onComplete: function() {
		menu.style.visibility = "hidden";
		menu.style.display="none";
	}});
	anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 1, 0.1));
	anim.play();
	//alert(menu.getElementsByTagName("UL").length);
	for (var x=0;x<menu.childNodes.length;x++) {
		if (menu.childNodes[x].nodeName=="LI") {
			if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
				menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
				menuItem.style.visibility = "hidden";
				menuItem.style.display="none";
			}
		}
	}
	while (menu.parentNode.parentNode!=root) {
		menu.parentNode.parentNode.style.visibility = "hidden";
		menu.parentNode.parentNode.style.display="block";
		menu = menu.parentNode.parentNode;
	}
	stopTime();
}

function stopTime() {
	if (mytimer) {
	 	 clearInterval(mytimer);
		 mytimer = null;
		 timerOn = false;
	}
} 

function killMenuV(menu) {
	var menu = document.getElementById(menu);
	var parent=menu;
	
	
	//alert (menu);
	API.setObjOpacity(menu, 100);
	anim = new Animator({onComplete: function() {
			menu.style.visibility = "hidden";
			menu.style.display="none";
			
			
			for (var x=0;x<parent.childNodes.length;x++) {
				if(parent.childNodes[x].nodeName=="LI"){
					if(!API.browser.ie){
						//alert(parent.childNodes[x].childNodes.length);
						if(parent.childNodes[x].childNodes.length>3){
							//alert(parent.childNodes[x].childNodes[6].nodeName);
							parent.childNodes[x].childNodes[3].innerHTML="+";
							parent.childNodes[x].childNodes[6].style.display="none";
							parent.childNodes[x].childNodes[6].style.visibility="hidden";
							}
					}else{
						//alert(this.childNodes[x].childNodes.length);
						if(parent.childNodes[x].childNodes.length>2){
							parent.childNodes[x].childNodes[2].innerHTML="+";
							parent.childNodes[x].childNodes[4].style.display="none";
							parent.childNodes[x].childNodes[4].style.visibility="hidden";}
					}
				}		
			}
			
			}});
	anim.addSubject(new NumericalStyleSubject(menu, 'opacity', 1, 0.1));
	anim.play();
	
	stopTimeV();
}

function stopTimeV() {
	if (mytimerV) {
	 	 clearInterval(mytimerV);
		 mytimerV = null;
		 timerOnV = false;
	}
} 

function cssMenuInit() {
	if (document.getElementById("menuList")) {
		var root = document.getElementById("menuList");
		var rootOffset = root.offsetLeft;
		getMenus(root, root);
	}
}

function cssMenuVerticalInit() {
	if (document.getElementById("menuListV")) {
		var root = document.getElementById("menuListV");
		var rootOffset = root.offsetLeft;
		getMenusV(root, root);
	}
}

function getMenus(elementItem, root) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
				if (elementItem.childNodes[x].getElementsByTagName("P").item(0)) {
					menuStarter = elementItem.childNodes[x].getElementsByTagName("P").item(0);
				} else {
					menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
				}
				menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
				getMenus(menuItem, root);
				initialiseMenu(menuItem, menuStarter, root);
			}
			else {
				initialiseDummy(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
			}
		}
	}
}

function getMenusV(elementItem, root) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	var selItem;
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
			if(API.browser.ie)
				{selItem=elementItem.childNodes[x].childNodes[0];}
			else
				{selItem=elementItem.childNodes[x].childNodes[1];}
			if(changeToUrl(selItem.href)==document.location){
				selItem.style.color="#008b95";
				selItem.style.fontWeight="bold";
								
				while(selItem.id!="mainMenuV"){
					if (selItem.nodeName.toUpperCase()=="LI"){
						if(!API.browser.ie){
							if(selItem.childNodes[1].className=="starter"){
//								alert(selItem.childNodes[3].innerHTML);
								selItem.childNodes[3].innerHTML="-";}
						}else{
							//alert(selItem.childNodes[0].className);
							if(selItem.childNodes[0].className=="starter"){
								//alert(selItem.childNodes[2].innerHTML);
								selItem.childNodes[2].innerHTML="-";
								}
						}
					}
					selItem.style.display="block";
					selItem.style.visibility="visible";
					Element.addClassName(selItem, "vybrane");
//					Element.addClassName(selItem.childNodes[1], "vybrane");
//					selItem.tag="vybrane";
					selItem=selItem.parentNode;
				}				
			}
			if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
				if (elementItem.childNodes[x].getElementsByTagName("P").item(0)) {
					menuStarter = elementItem.childNodes[x].getElementsByTagName("P").item(0);
				} else {
					menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
					//alert(menuStrater.innerHTML);
					new Insertion.After(elementItem.childNodes[x].getElementsByTagName("A").item(0), '&nbsp;<a onClick="starterPlus.onclick(this); return false;" href="" id="starterPlus" class="starterPlus">+</a>&nbsp;');
				}
				menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
				getMenusV(menuItem, root);
				initialiseMenuV(menuItem, menuStarter, root);
			}
			else {
				//initialiseDummy(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
			}
		}
	}
}

var starterPlus = {};

starterPlus.onclick = function(obj){
	var temp;
	temp=obj.parentNode.childNodes[6];
	if(API.browser.ie){temp=obj.parentNode.lastChild;}else{temp=obj.parentNode.childNodes[6];}
//	alert (temp.nodeName+"|"+temp.innerHTML);
	if(obj.innerHTML=="+"){
		//alert(obj.prevSibling.innerHTML);
		temp.showMenu();
		obj.innerHTML="-";
	}
	else {
		//alert(obj.prevDomSibling.innerHTML);
		temp.hideMenu();
		obj.innerHTML="+";
	}
}



function hideAllMenus(elementItem, root) {
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
				if(!Element.hasClassName(elementItem.childNodes[x].getElementsByTagName("UL").item(0), "vybrane")){
					elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
					elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.display = 'none';}
				hideAllMenus(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root);
			}
		}
	}
}

