//***********************************************************
// COMMON
//***********************************************************
var BlockMenu			= 1;
var displayedMenu		= null;
var leftSubmenuPosition	= 200;	//for Old Browsers
var SubMenuPosOffsetX   = -4;
var SubMenuPosOffsetY   = -1;

//***********************************************************
// MENU OBJECT
//***********************************************************
function menuObject(oName){
	this.name				= oName;
	this.items				= new Array();
	this.itemCount			= 0;
	this.subMenus			= new Array();
	this.subMenuCount		= 0;
	this.handleMenu			= 0;
	this.header				= "";
	
	this.appendItem			= fnAppendMenuItem;
	this.initialize			= fnInitializeMenuItems;
	
	this.hideMenu			= fnHideMenu;
	this.showMenu			= fnShowMenu;
	
	return this
};
//***********************************************************
function fnAppendMenuItem(oItem){
	if(oItem.dtlevel<0){
		this.header = oItem.name;
	}
	else if(oItem.dtlevel==0){
		this.itemCount	= this.items.push(oItem);
	}else{
		this.subMenuCount = this.subMenus.push(oItem);
		if(oItem.id_section==this.section){
			this.handleMenu = oItem.id_section_parent;
		};
	};
};
//***********************************************************
function fnInitializeMenuItems(){
	
	//this.subMenus.sort(fnSortMenuItems);
	
	var arrSbPosInSubMenus	= new Array();
	var menu = "";
	menu += "<div  class='menu_01'><ul><li><div>"+this.header+"</div><ul onmouseout='"+this.name+".hideMenu();'>";
	for(var i=0; i<this.itemCount; i++){
		var sbPosInSubMenus	= getSubMenuPos(this.subMenus, this.items[i].id_section);
		if(sbPosInSubMenus!=-1){
			menu += "<li>" + writeTopMenuItem(this.name, this.items[i].name, this.items[i].id_section) + "</li>\n";
			var mSbCount 	= arrSbPosInSubMenus.push(sbPosInSubMenus);
		}else{
			menu += "<li>" + writeTopMenuHref(this.items[i], this.name) + "</li>\n";
		};
	};
	menu += "</ul></li></ul></div>";
	//alert(menu);
	document.write(menu);
	
	var submenuHtml = "";
	for(var j=0; j<mSbCount; j++){
		var mParent = this.subMenus[arrSbPosInSubMenus[j]].id_section_parent;
		submenuHtml += '<style type="text/css">#Left' + mParent + '{position: absolute; visibility: hidden;}</style>\n';
		submenuHtml += '<div id="Left' + mParent + '" name="Left' + mParent + '" class="submenu" onmouseover="'+this.name+'.showMenu('+mParent+')" onmouseout="'+this.name+'.hideMenu();">\n';
		submenuHtml += '<ul class="submenu_01">\n';
		submenuHtml += writeSubMenuItems(this.subMenus, arrSbPosInSubMenus[j], mParent);
		submenuHtml += '</ul><img src="img/submenu_btm.gif" alt="" width="196" height="15" border="0"></div>\n';
	};
	//alert(submenuHtml);
	document.write(submenuHtml);
};
//***********************************************************
function fnHideMenu(mWhich){
	if(BlockMenu==0){
		if(!mWhich){
			mWhich = displayedMenu;
		};
		if(mWhich!=null){
			eval(WhatItUses+'"Left'+mWhich+'"'+useDaOrLa+'.visibility="hidden"');
		};
		displayedMenu = null;
	};
};
//***********************************************************
function fnShowMenu(cnt){
	if (BlockMenu==0){
		if(displayedMenu!=null){
			this.hideMenu(displayedMenu)
		};
		displayedMenu = cnt;
 		whichlayer4setpos = "Left" + cnt;
		parentid = "Left" + cnt + "Section";
		PositionLayer(whichlayer4setpos, parentid);
		eval(WhatItUses+'"Left'+cnt+'"'+useDaOrLa+'.visibility="visible"');
	 };
};

//***********************************************************
// MENU ITEM OBJECT
//***********************************************************
function menuItemObject(id_section, id_section_parent, dtlevel, name, redirurl){
	this.id_section			= id_section;
	this.id_section_parent	= id_section_parent;
	this.dtlevel			= dtlevel-1;
	this.name				= name;
	this.redirurl			= redirurl;
	
	return this
};

//***********************************************************
// COMMON FNS FOR MENU OBJECT
//***********************************************************
function fnSortMenuItems(a,b){
	return a.dtlevel < b.dtlevel;
};
//***********************************************************
function getSubMenuPos(oArray, oParent){
	for(var k=0; k<oArray.length; k++){
		if(oArray[k].id_section_parent == oParent){
			return k
		};
	};
	return -1;
};
//***********************************************************
function writeTopMenuItem(oMenuName, oItemName, cnt){
	var oMOver = " onmouseover='" + oMenuName + ".hideMenu();" + oMenuName + ".showMenu(" + cnt + ");'";
	return '<a href="#" onfocus="this.blur()"' + oMOver + '" id="Left' + cnt + 'Section"  name="Left' + cnt + 'Section">' + oItemName + '</a>';
};
//***********************************************************
function writeTopMenuHref(oItemObject, oItemName){
	var oMOver = (oItemName==null) ? "" : " onmouseover='" + oItemName + ".hideMenu();'";
	var mHref = (oItemObject.redirurl!="") ? oItemObject.redirurl : "/?section=" + oItemObject.id_section;
	return '<a href="' + mHref + '" onfocus="this.blur()"' + oMOver + '>' + oItemObject.name + '</a>';
};
//***********************************************************
function writeSubMenuItems(oItems, oStart, oParent){
	var oTxt = new String();
	for(var l=oStart; l<oItems.length; l++){
		if(oItems[l].id_section_parent == oParent){
			oTxt += '<li>' + writeTopMenuHref(oItems[l], null) + '</li>\n';
		}else{
			return oTxt;
		};
	};
	return oTxt
};

//***********************************************************
// HANDLER FOR IE 5
//***********************************************************
if (Array.prototype && !Array.prototype.push) {
	Array.prototype.push = function() {
		for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
		return this.length;
	};
};

function PositionLayer(whichlayer4setpos, parentid)
{ 
	 if (ie5 || ns6)
	 
	 {
		tl3x = mm_ElementX3rdgenbrowser(parentid) 
		tlhobj = document.getElementById(parentid)
		tl3x += tlhobj.offsetWidth;
		eval('document.getElementById("'+whichlayer4setpos+'").style.left='+(tl3x+SubMenuPosOffsetX)+';');
		tl3y = mm_ElementY3rdgenbrowser(parentid) 
		tlhobj = document.getElementById(parentid)
		eval('document.getElementById("'+whichlayer4setpos+'").style.top='+(tl3y+SubMenuPosOffsetY)+' ;');
	 }
	 
	 else
	 {
		 eval(whichlayer4setpos+'.style.left='+leftSubmenuPosition)
		 eval(whichlayer4setpos+'.style.top=mm_ElementY('+parentid+') + '+parentid+'.offsetHeight -1;')
	 }
} 


//pro starsi prohlizece 
function mm_ElementX(o)
{var x = 0; do x += o.offsetLeft; while ((o = o.offsetParent)); return x;}

function mm_ElementY(o)
{var y = 0; do y += o.offsetTop; while ((o = o.offsetParent)); return y;}

//pro nove prohlizece 
function mm_ElementX3rdgenbrowser(o)
{var x = 0; var hlpobjX3 = 0; 
hlpobjX3 = document.getElementById(o)
do x += hlpobjX3.offsetLeft;
while ((hlpobjX3 = hlpobjX3.offsetParent));
return x;}

function mm_ElementY3rdgenbrowser(o)
{var y = 0; var hlpobjY3 = 0; 
hlpobjY3 = document.getElementById(o)
do y += hlpobjY3.offsetTop;
while ((hlpobjY3 = hlpobjY3.offsetParent));
return y;}
