﻿var gnIsMSIE = 0,
	gnIsGecko = 0,
	gnIsOpera = 0,
	gnIsGeckoRV = 0,
	gnBrowserVersion = 0,
	
	gnHasGetElementById = 0,
	gbAppIsMac = 0,
	varGlob_C = 0,
	nVersionBelow6 = 0,
	versionOfSomething = 0,
	varGlob_J = 0,
	varGlobAA_1 = /apy([0-9]+)m([0-9]+)/,
	varGlobAA_2 = /apy([0-9]+)m([0-9]+)i([0-9]+)/,
	nSomeIndex = 0,
	gnMenuNo = 0,
	gnThisMenuNo = 0,
	garrMenuFile = [],
	varGlob_M = [],
	gbIsMouseDown = false,
	gnMouseDownPosX,
	gnMouseDownPosY,
	elemMouseDown,
	gElemJustMouseDown,
	gnPressedItem = -1,
	varGlob_S = null,
	strHTMLbuffer = "",
	varGlob_U = "",
	varGlob_V = 1000,
	gElemBody;

DetectBrowserType();
	
if(!(gnIsOpera&&gnBrowserVersion<6))
	var strUnitType = "px";
else 
	var strUnitType = "";


function GetScrollPosition()
{
	var sx = versionOfSomething ? gElemBody.scrollLeft : pageXOffset, 
		sy = versionOfSomething ? gElemBody.scrollTop : pageYOffset;
	return[sx,sy]
};
	

// *** Vrátí [left,top] elementu *** //
function GetLeftTopPosition( elem )
{
	with(elem)
		return[(nVersionBelow6) ? left : parseInt(style.left), (nVersionBelow6)? top : parseInt(style.top) ];
};


// *** Nastaví left top elementu do jeho stylu *** //
function SetLeftTop( elem, nLeft, nTop )
{
	with( elem )
	{
		if( nVersionBelow6 )
		{
			left = nLeft;
			top = nTop;
		}
		else
		{
			style.left = nLeft + strUnitType;
			style.top = nTop + strUnitType;
		};
	};
};


// *** Timeout akce *** //
function TimeoutAction20()
{
	if( gbIsMouseDown )
		return;
				
	for( var nMenuFileIdx = 0; nMenuFileIdx < garrMenuFile.length; ++nMenuFileIdx )
		if( garrMenuFile[nMenuFileIdx] &&
			garrMenuFile[nMenuFileIdx].mMFbFloatable &&
			garrMenuFile[nMenuFileIdx].ptrAbsolutePos )
		{
			var elem_4 = FGetElementByID( "apy" + nMenuFileIdx + "m0" ),
				positionLeftTop = GetLeftTopPosition ( elem_4 ),
				positionScroll = GetScrollPosition(),
				l = positionScroll[0] + garrMenuFile[nMenuFileIdx].left,
				t = positionScroll[1] + garrMenuFile[nMenuFileIdx].top;
				
			if(positionLeftTop[0] != l||positionLeftTop[1] != t)
			{
				var dx=(l-positionLeftTop[0])/garrMenuFile[nMenuFileIdx].mMFnFloatIterations,dy = (t-positionLeftTop[1])/garrMenuFile[nMenuFileIdx].mMFnFloatIterations;
				if(!nVersionBelow6)
					with(Math)
					{
						if(abs(dx)<1)
							dx = abs(dx)/dx;
						if(abs(dy)<1)
							dy = abs(dy)/dy;
					}
				else
				{
					if(dx>-1&&dx<0)
						dx = -1;
					else if(dx>0&&dx<1)
						dx = 1;
					
					if(dy>-1&&dy<0)
						dy = -1;
					else if(dy>0&&dy<1)dy = 1;
				};
				
				SetLeftTop( elem_4, positionLeftTop[0]+((positionLeftTop[0] != l)?dx:0), positionLeftTop[1]+((positionLeftTop[1] != t)?dy:0) );
				l111a(garrMenuFile[nMenuFileIdx]);
			};
		};
};


var crossType = 1;


// *** Funkce při startu *** //
function MenuOnload()
{
	gElemBody = ( document.compatMode == "CSS1Compat" && !gnIsGeckoRV ) ? document.documentElement : document.body;
	
	if( nVersionBelow6 )
		document.layers[0].visibility = "show";
		
	if( !( gnIsOpera && gnBrowserVersion < 6 ) )
	{
		for( var nMenuFileIdx = 0; nMenuFileIdx<garrMenuFile.length; ++nMenuFileIdx )
		{
			if( garrMenuFile[nMenuFileIdx] && !garrMenuFile[nMenuFileIdx].mMFbUsesFrames && garrMenuFile[nMenuFileIdx].mMFbFloatable && garrMenuFile[nMenuFileIdx].ptrAbsolutePos )
			{
				window.setInterval( "TimeoutAction20()", 20 );
				break;
			};
		}
	}
			
	strHTMLbuffer = "";
	varGlob_U = "";
	varGlob_J = 1;
	
	//// OnMouseMoveFunct();
	
	if(varGlob_S)
		varGlob_S();
		
	onerror = OnErrorHandler;
};


var nbUsesFrames = 0,
	gnVar_D = "",
	gnVar_C = 0,
	ptrSubFrameInd = 1,
	nView = 0;


// *** Inicializuje se pro frame *** //
function apy_initFrame( param1, param2, subFrameInd, view )
{
	if( nVersionBelow6 || ( gnIsOpera&&gnBrowserVersion < 7 ) || ( gnIsMSIE&&gnBrowserVersion < 5 ) )
	{
		nbUsesFrames = 0;
		crossType = 1;
	}
	else
	{
		nbUsesFrames = 1;
		crossType = 1;
		gnVar_D = param1;
		gnVar_C = param2;
		ptrSubFrameInd = subFrameInd;
		nView = view;
		
		if(nSomeIndex<1000)
			nSomeIndex = 1000;
	};
	
	apy_init();
};



function HookLibOnload()
{
	if(window.attachEvent)
		window.attachEvent("onload",MenuOnload);
	else
	{
		varGlob_S = (typeof(onload) == 'function')?onload:null;
		onload = MenuOnload;
	};
};


var nPosEqual,strVisibility;


// *** Připraví důležité proměnné *** //
function PrepareVariables()
{
	if(typeof(popupMode) == "undefined"||nVersionBelow6)popupMode = 0;
	nPosEqual = (absolutePos||popupMode)?"absolute":"static";
	strVisibility = (nVersionBelow6)?"show":((popupMode)?"hidden":"visible");
	
	if( typeof( pressedItem ) == "undefined" )
		pressedItem = -2;
	else if( pressedItem >= 0 )
		gnPressedItem = pressedItem;
		
	if(nVersionBelow6)
	{
		separatorWidth = " "+separatorWidth;
		separatorHeight = " "+separatorHeight;
		separatorVWidth = " "+separatorVWidth;
		separatorVHeight = " "+separatorVHeight;
		if(separatorWidth.indexOf("%") >= 0)separatorWidth = separatorWidth.substring(0,separatorWidth.indexOf("%"));
		if(separatorHeight.indexOf("%") >= 0)separatorHeight = "";
		if(separatorVWidth.indexOf("%") >= 0)separatorVWidth = "1";
		if(separatorVHeight.indexOf("%") >= 0)separatorVHeight = "1";
	};
	if(typeof(nbUsesFrames) == "undefined")nbUsesFrames = 0;
	if(typeof(gnVar_C) == "undefined")gnVar_C = 0;
	if(typeof(ptrSubFrameInd) == "undefined")ptrSubFrameInd = 1;
	if(typeof(nView) == "undefined")nView = 0;
	if(typeof(gnVar_D) == "undefined")gnVar_D = "";
	if(typeof(shadowTop) == "undefined")shadowTop = 1;
	if(typeof(cssStyle) == "undefined")cssStyle = 0;
	if(typeof(transOptions) == "undefined")transOptions = "";
	if(typeof(cssClass) == "undefined"||nVersionBelow6)
	{
		cssStyle=0;
		cssClass = "";
	};
	
	if(typeof(pathPrefix) == "undefined")pathPrefix = "";
	if(typeof(DX) == "undefined")DX = -5;
	if(typeof(DY) == "undefined")DY = 0;
	if(typeof(topDX) == "undefined")topDX = 0;
	if(typeof(topDY) == "undefined")topDY = 0;
	if(typeof(macIEoffX) == "undefined")macIEoffX = 10;
	if(typeof(macIEoffY) == "undefined")macIEoffY = 15;
	if(typeof(macIEtopDX) == "undefined")macIEtopDX = 0;
	if(typeof(macIEtopDY) == "undefined")macIEtopDY = 2;
	if(typeof(macIEDX) == "undefined")macIEDX = -3;
	if(typeof(macIEDY) == "undefined")macIEDY = 0;
	if(gbAppIsMac&&gnIsMSIE)
	{
		DX=macIEDX;
		DY = macIEDY;
		topDX = macIEtopDX;
		topDY = macIEtopDY;
	};
	
	if(typeof(saveNavigationPath) == "undefined")saveNavigationPath = (nVersionBelow6?0:1);
	if(typeof(orientation) == "undefined")orientation = 0;
	if(typeof(columnPerSubmenu) == "undefined"||columnPerSubmenu<1)columnPerSubmenu = 1;
	if(typeof(bottomUp) == "undefined")bottomUp = 0;
	if(typeof(showByClick) == "undefined")showByClick = 0;
};
	
	

// Upraví menu items
function UpdateMenuItemsFormat()
{
	// Přidej rouru před
	for( var i = 0; i < menuItems.length && typeof(menuItems[i]) != "undefined"; i++ )
		menuItems[i][0] = '|' + menuItems[i][0];
		
	// Udělej z toho podpole
	var varUpdatedMenuItems = [[""]];
	menuItems = varUpdatedMenuItems.concat(menuItems);
};


// Prefixy protokolů
var arrPrefixes = ["http://","https://","ftp://"];
	
		
// *** Nemá strPath prefix protokolu? *** //
function IsNotPrefixed( strPath )
{
	for( var i = 0; i < arrPrefixes.length; i++ )
	{
		// Je tam prefix?
		if( strPath.indexOf(arrPrefixes[i]) == 0 )
			return false;
	}
	return true;
};
	
	
// *** Vrátí "oprefixované" pole cest *** //
function GetPrefixedArray( arrPaths )
{
	var arr = [""];
	
	for( var i = 0; i < arrPaths.length; i++ )
	{
		if( arrPaths[i] && IsNotPrefixed(arrPaths[i]) )
			arr[i] = pathPrefix+arrPaths[i];
	}
	return arr;
};
	
	
// *** Inicializace knihovny *** //
function apy_init()
{
	if( !nSomeIndex || nSomeIndex == 1000 )
		HookLibOnload();
		
	if( nVersionBelow6 && nSomeIndex > 0 )
		return;
	
	var strItemHTML = "";
	
	PrepareVariables();
	
	// ** Menu files ** //
	garrMenuFile[nSomeIndex] = 
		{
			mMFArrMenus:				[],
			mAnyThisIndex:			nSomeIndex,
			id:						"apy"+nSomeIndex,
			mMF_B:					null,
			left:					posX,
			top:					posY,
			mMFbFloatable:			floatable,
			mMFbMovable:			movable,
			ptrAbsolutePos:			absolutePos,
			mMFnFloatIterations:	( floatIterations <= 0 ) ? 6 : floatIterations,
			mMFarrPressedItem:		pressedItem,
			mMFn_C:					0,
			mMFnPressedItem:		gnPressedItem,
			mMFbUsesFrames:			nbUsesFrames,
			mMF_F:					gnVar_C,
			mMFSubFrameInd:			ptrSubFrameInd,
			mMFnView:				nView,
			mMF_E:					gnVar_D,
			mMFPopupMode:			popupMode,
			mMFCssStyle:			cssStyle,
			mMFCssClassName:		cssClass,
			mMFSaveNavigationPath:	saveNavigationPath,
			mMFOrientation:			orientation,
			mMFBottomUp:			bottomUp,
			mMFShowByClick:			( nVersionBelow6 ? 0 : showByClick ),
			mMFn_D:					0
		};
		
	var arrMenuFile = garrMenuFile[nSomeIndex],
		varMenu,
		strID = "",
		strStatusString = statusString,
		nPrevCharPos = -1,
		nCharPos;
	
	// POkud je popum mode, aktualizuj formát tabulky s položkami menu
	if( popupMode )
		UpdateMenuItemsFormat();
		
	var styleCssStyle = null,
		strMenuItemIndex,
		strMenuItem6,
		styleBorderWidth = null,
		styleBorderStyle = null,
		styleMenuBorderColor = null,
		styleMenuBackColor = null,
		styleMenuBackImage = null,
		strFontColor = null,
		varFontStyle = null,
		varFontDecoration = null,
		varBackColor = null,
		varBorderColor = null,
		varBorderWidth = null,
		varBorderStyle = null,
		icons = null,
		varArrowImageMain = null,
		varArrowImageSub = null,
		varBackImage = null,
		II1I1 = null,
		IIll = null,
		arr2ImageMain = [GetParamOrDefault(arrowImageMain[0],""),	GetParamOrDefault(arrowImageMain[1],"")],
		arr2ImageSub = [GetParamOrDefault(arrowImageSub[0],""), GetParamOrDefault(arrowImageSub[1],"")],
		arr2BackImage = [GetParamOrDefault(itemBackImage[0],""), GetParamOrDefault(itemBackImage[1],"")],
		Illll = "0px",
		arr2FontColor = [fontColor[0],GetParamOrDefault(fontColor[1],"")],
		arr2FontStyle = [fontStyle,fontStyle], 
		arr2FontDecoration = [fontDecoration[0],GetParamOrDefault(fontDecoration[1],"")],
		arr2ItemBackColor = [itemBackColor[0],GetParamOrDefault(itemBackColor[1],"")],
		pamItemBorderWidth = itemBorderWidth,
		arr2ItemBorderColor = [itemBorderColor[0],GetParamOrDefault(itemBorderColor[1],"")],
		arr2ItemBorderStyle = [itemBorderStyle[0], GetParamOrDefault(itemBorderStyle[1],"")],
		pamColumnPersubmenu = columnPerSubmenu,
		strTarget = "",
		strTarget2 = "",
		IlllI = "";
		
	if( typeof(menuBorderStyle) == "object" && menuBorderStyle.length == 1 )
		menuBorderStyle = menuBorderStyle[0];
		
	// ** Projdi všechny menu items ** //
	for( var i = 0; ( i < menuItems.length && typeof(menuItems[i] ) != "undefined" ); i++ )
	{
		nCharPos = 0;
		
		// Přeskoč úvodní trubky
		while( menuItems[i][0].charAt( nCharPos ) == "|" )
			nCharPos++;
			
		// Jsou na začátku nějaké trubky? Tak je odstraň
		if( nCharPos > 0 )
			menuItems[i][0] = menuItems[i][0].substring( nCharPos, menuItems[i][0].length );
				
		strMenuItemVal7 = GetParamOrDefault( menuItems[i][7], "" );
		
		nMenuItemIndex = (strMenuItemVal7) ? parseInt( strMenuItemVal7 ) : -1;
		
		if(!cssStyle)
		{
			styleBorderWidth = GetStyleNameValue("menuBorderWidth",nMenuItemIndex,"submenu",menuBorderWidth);
			styleBorderStyle = GetStyleNameValue("menuBorderStyle",nMenuItemIndex,"submenu",menuBorderStyle);
			styleMenuBorderColor = GetStyleNameValue("menuBorderColor",nMenuItemIndex,"submenu",menuBorderColor);
			styleMenuBackColor = GetStyleNameValue("menuBackColor",nMenuItemIndex,"submenu",menuBackColor);
			styleMenuBackImage = GetStyleNameValue("menuBackImage",nMenuItemIndex,"submenu",menuBackImage);
			if( IsNotPrefixed(styleMenuBackImage) )
				styleMenuBackImage  =  pathPrefix + styleMenuBackImage;
		}
		else
		{
			styleCssStyle = GetStyleNameValue("CSS",nMenuItemIndex,"submenu",cssClass);
		}
	
		pamColumnPersubmenu = GetStyleNameValue("columnPerSubmenu",nMenuItemIndex,"submenu",columnPerSubmenu);
		styleItemSpacing = GetStyleNameValue("itemSpacing",nMenuItemIndex,"submenu",itemSpacing);
		styleItemPadding = GetStyleNameValue("itemPadding",nMenuItemIndex,"submenu",itemPadding);
		
		if( nPrevCharPos < nCharPos )
		{
			if( i > 0 )
				strID = "m"+varMenu.mAnyThisNo+"i"+varMenu.i[gnThisMenuNo].mItemThisMenuNo;
			gnMenuNo = arrMenuFile.mMFArrMenus.length;
			gnThisMenuNo = 0;
			arrMenuFile.mMFArrMenus[gnMenuNo] = 
				{
					i:[],
					mAnyThisIndex:nSomeIndex,
					mAnyThisNo:gnMenuNo,
					id:"apy"+nSomeIndex+"m"+gnMenuNo,
					mMenuStr_A:"",
					mMenu_B:null,
					mMenuStrThisId:"apy" + nSomeIndex + strID,
					mnMenuPos_A:nCharPos,
					mMenuNDx: (nCharPos>1)? DX : topDX,
					mMenuNDy: (nCharPos>1)? DY : topDY,
					mMenuMacOffX:macIEoffX,
					mMenuMacOffY:macIEoffY,
					mMenu_C:0,
					mMenu_D:0,
					mMenuStyleBorderWidth:styleBorderWidth,
					mBorderStyleArr:styleBorderStyle,
					mBorderColorArr:styleMenuBorderColor,
					mMenuOrientation: i ? ((pamColumnPersubmenu>1) ? 1 : orientation ) : isHorizontal,
					mMenuStyleItemSpacing:styleItemSpacing,
					mMenuStyleItemPadding:styleItemPadding,
					mBackgroundColorArr:styleMenuBackColor,
					mBackgroundImageArr:styleMenuBackImage,
					mMenuTransparency :	!i ? 100 : transparency,
					mMenuTransition:!i?0:transition?transition:1,
					mMenuTransDuration:transition?transDuration:0,
					mMenuShadowColor:shadowColor,
					mMenuShadowLen:shadowLen,
					mMenuWidth:GetParamOrDefault(menuWidth,"0px"),
					mMenuStrHTML:"",
					mMFCssClassName:styleCssStyle,
					mMenuColumnsPerSubmenu:pamColumnPersubmenu
				};
				
			varMenu = garrMenuFile[nSomeIndex].mMFArrMenus[gnMenuNo];
		};
		
		if( nPrevCharPos > nCharPos )
		{
			while(garrMenuFile[nSomeIndex].mMFArrMenus[gnMenuNo].mnMenuPos_A>nCharPos)
				gnMenuNo--;
			varMenu = garrMenuFile[nSomeIndex].mMFArrMenus[gnMenuNo];
		};
		
		nPrevCharPos = nCharPos;
		if(!statusString||statusString == "link")
			strStatusString = GetParamOrDefault(menuItems[i][1],"");
		else if(statusString == "text")
			strStatusString = GetParamOrDefault(menuItems[i][0],"");
			
		gnThisMenuNo = varMenu.i.length;
		IlllI = "apy"+nSomeIndex+"m"+gnMenuNo+"i"+gnThisMenuNo;
		if(menuItems[i][0] == "-")
			IlllI += "sep";
			
		strMenuItem6 = GetParamOrDefault( menuItems[i][6], "" );
		nItemOrSubmenuIndex = (strMenuItem6) ? parseInt( strMenuItem6 ) : -1;
		
		icons = GetPrefixedArray([GetParamOrDefault(menuItems[i][2],""),GetParamOrDefault(menuItems[i][3],"")]);
		varArrowImageMain =	GetPrefixedArray(GetStyleNameValue("arrowImageMain",nItemOrSubmenuIndex,"item",arr2ImageMain));
		varArrowImageSub = GetPrefixedArray(GetStyleNameValue("arrowImageSub",nItemOrSubmenuIndex,"item",arr2ImageSub));
		varBackImage = GetPrefixedArray(GetStyleNameValue("itemBackImage",nItemOrSubmenuIndex,"item",arr2BackImage));
		II1I1 =	GetStyleNameValue("itemWidth",nItemOrSubmenuIndex,"item",Illll);
		if(!cssStyle)
		{
			strFontColor = GetStyleNameValue("fontColor",nItemOrSubmenuIndex,"item",arr2FontColor);
			varFontStyle = GetStyleNameValue("fontStyle",nItemOrSubmenuIndex,"item",arr2FontStyle);
			varFontDecoration = GetStyleNameValue("fontDecoration",nItemOrSubmenuIndex,"item",arr2FontDecoration);
			varBackColor = GetStyleNameValue("itemBackColor",nItemOrSubmenuIndex,"item",arr2ItemBackColor);
			varBorderColor = GetStyleNameValue("itemBorderColor",nItemOrSubmenuIndex,"item",arr2ItemBorderColor);
			varBorderWidth = GetStyleNameValue("itemBorderWidth",nItemOrSubmenuIndex,"item",pamItemBorderWidth);
			varBorderStyle = GetStyleNameValue("itemBorderStyle",nItemOrSubmenuIndex,"item",arr2ItemBorderStyle);
		}
		else
		{ 
			IIll = GetStyleNameValue("CSS",nItemOrSubmenuIndex,"item",cssClass);
		}
			
		strTarget2 = GetParamOrDefault(menuItems[i][5],"");
		
		if(strTarget2 == "_")
			strTarget2 = 0;
		else 
			strTarget2 = 1;
		
		strTarget = GetParamOrDefault( menuItems[i][5], "_self");
		
		if(strTarget == "_self"&&itemTarget != "")
			strTarget = itemTarget;
			
		IIll1 = GetParamOrDefault(menuItems[i][1],"");
		
		if(IIll1&&IIll1.toLowerCase().indexOf("javascript:") != 0&&pathPrefix)
			IIll1 = pathPrefix+IIll1;
			
		if(!nCharPos)
			itemAlign_ = itemAlign;
		else 
			itemAlign_ = subMenuAlign;
		
		
		// ** Menu item *** //
		varMenu.i[gnThisMenuNo] = 
		{
			mAnyThisIndex:		nSomeIndex,
			mAnyThisNo:			gnMenuNo,
			mItemThisMenuNo:	gnThisMenuNo,
			id:						IlllI,
			mItemParentMenuStrID:				"",
			mItemStrText:			menuItems[i][0],
			strTargetOrHRef:		IIll1,
			mItemStrTarget:				strTarget,
			status:				strStatusString,
			mItemTitle:				GetParamOrDefault(menuItems[i][4],""),
			align:				itemAlign_,
			mItemVAlign:		"middle",
			cursor:				itemCursor?itemCursor:"hand",
			mItemStrTarget2:	strTarget2,
			mItemStyleSpacing:				varMenu.mMenuStyleItemSpacing,
			mMenuStyleItemPadding:	varMenu.mMenuStyleItemPadding,
			mColorArr:			strFontColor,
			font:				varFontStyle,
			mTextDecorationArr:	varFontDecoration,
			mBackgroundColorArr:	varBackColor,
			mBackgroundImageArr:	varBackImage,
			mItemArr_A:				["",""],
			mItemIcons:				icons,
			mItemIconWidth:				nCharPos ? iconWidth : iconTopWidth,
			mItemIconHeight:				nCharPos ? iconHeight : iconTopHeight,
			mItemArrowImageMain:				varArrowImageMain,
			m1Arr:				varArrowImageSub,
			ptrArrowWidth:		arrowWidth,
			ptrArrowHeight:		arrowHeight,
			mBorderColorArr:	varBorderColor,
			mMenuStyleBorderWidth:varBorderWidth,
			mBorderStyleArr:	varBorderStyle,
			mItemBoolVisibility:				false,
			width:				II1I1,
			mMFCssClassName:	IIll,
			mItemSaveNavigationPath:				0
		};
		
		if( !varMenu.i[gnThisMenuNo].mItemIcons[0] && varMenu.i[gnThisMenuNo].mItemIcons[1] )
			varMenu.i[gnThisMenuNo].mItemIcons[0] = blankImage;
			
		if( varMenu.i[gnThisMenuNo].mItemIcons[0] != "" )
			varMenu.mMenu_C = 1;
	};
	
	var varMenu;
	for(var i = 1; i<garrMenuFile[nSomeIndex].mMFArrMenus.length;i++)
	{
		varMenu = GetMenuOrItemByID( garrMenuFile[nSomeIndex].mMFArrMenus[i].mMenuStrThisId );
		varMenu.mItemParentMenuStrID = garrMenuFile[nSomeIndex].mMFArrMenus[i].id;
		garrMenuFile[varMenu.mAnyThisIndex].mMFArrMenus[varMenu.mAnyThisNo].mMenu_D = 1;
	};
	
	var nMenuCount  =  garrMenuFile[nSomeIndex].mMFArrMenus.length,
		llll1,
		lII11,
		IIl1a,
		l1I11 = -1;
	
	
	// ** Pro všechna menu ** //
	for( var nMenuIdx = 0; nMenuIdx < nMenuCount; nMenuIdx++ )
	{
		// menu
		var varMenu = garrMenuFile[nSomeIndex].mMFArrMenus[nMenuIdx];
		
		if( nVersionBelow6 )
		{
			if( nPosEqual == "absolute" &&! nMenuIdx )
				strHTMLbuffer += "<LAYER POSITION=" + nPosEqual + " left=" + garrMenuFile[nSomeIndex].left + " top=" + garrMenuFile[nSomeIndex].top + " ID=" + varMenu.id + " VISIBILITY=HIDE Z-INDEX=" + varGlob_V + ">";
			else 
				strHTMLbuffer += "<LAYER POSITION=" + nPosEqual + " ID=" + varMenu.id + " VISIBILITY=HIDE Z-INDEX=" + varGlob_V + ">";
			
			strHTMLbuffer += "<TABLE CELLSPACING=0 CELLPADDING=0 " + (nMenuIdx?"":"WIDTH=" + varMenu.mMenuWidth) + " ";
			strHTMLbuffer += "BORDER=" + varMenu.mMenuStyleBorderWidth + " BGCOLOR=" + varMenu.mBackgroundColorArr + " BACKGROUND='" + varMenu.mBackgroundImageArr + "'>";
			
			for( var nItemNo = 0; nItemNo < varMenu.i.length; nItemNo++ )
			{
				var varItem = varMenu.i[nItemNo];
				
				strHTMLbuffer += varMenu.mMenuOrientation ? "":"<TR>";
				strHTMLbuffer += "<TD NOWRAP WIDTH=" + ((nMenuIdx||!varMenu.mMenuOrientation)?"100%":"") + '>';
				strHTMLbuffer += "<ILAYER ID=" + varItem.id + " Z-INDEX=10 WIDTH=100%>";
				strHTMLbuffer += "<LAYER ID=" + varItem.id + "I WIDTH=100%><FONT STYLE='font-size:1pt'>";
				
				for(var jj=0;jj<2;jj++)
				{
					strHTMLbuffer += "<LAYER ID=" + varItem.id + "IW" + jj + " VISIBILITY=" + (jj?"HIDE":"SHOW") + " BGCOLOR=" + varItem.mBackgroundColorArr[0] + " height=1 ";
					strHTMLbuffer += "onMouseOver='FOnMouseOver_2(event,\"" + varItem.id + "\");' onMouseOut='MenuOnMouseOut(event,\"" + varItem.id + "\");'>";
					if(varItem.mItemStrText == "-")
					{
						if(itemBorderWidth>0)
						{
							strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=" + itemBorderColor[0] + " height=1><TR><TD NOWRAP width=1 height=1>";
							strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 CELLSPACING=" + (itemBorderWidth-2) + " CELLPADDING=" + (itemBorderWidth) + " height=1><TR><TD  height=1 NOWRAP width=1>";
						};
						
						strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 height=1 CELLSPACING=" + varItem.mItemStyleSpacing + " CELLPADDING=" + varItem.mMenuStyleItemPadding + " BGCOLOR=" + varItem.mBackgroundColorArr[0] + " BACKGROUND='" + varItem.mBackgroundImageArr[0] + "'>";
						strHTMLbuffer += "<TD NOWRAP width=100% VALIGN=middle align=" + ((separatorAlignment == "")?"center":separatorAlignment) + " >";
						strHTMLbuffer += "<FONT STYLE='font-size:1pt'>";
						IlIII=varItem.id.indexOf("m");
						lIla=varItem.id.indexOf("i");
						st=parseInt(varItem.id.substring(IlIII + 1,lIla));
						
						if(st>0)
						{
							if(separatorImage != "")
								strHTMLbuffer += "<img src='" + separatorImage + "' width=" + ((separatorWidth == "")?"50":separatorWidth) + " height=" + ((separatorHeight == "")?"1":separatorHeight) + ">";
							else 
								strHTMLbuffer += "<img src='" + blankImage + "' width=0 height=0>";
						}
						else
						{
							if(separatorVImage != "")
								strHTMLbuffer += "<img src='" + separatorVImage + "' width=" + ((separatorVWidth == "")?"1":separatorVWidth) + " height=" + ((separatorVHeight == "")?"1":separatorVHeight) + ">";
							else 
								strHTMLbuffer += "<img src='" + blankImage + "' width=0 height=0>";
						};
						
						strHTMLbuffer += "</FONT></TD></TABLE>";
						
						if(itemBorderWidth>0)
						{
							strHTMLbuffer += "</TR></TD></TABLE>";
							strHTMLbuffer += "</TR></TD></TABLE>";
						};
					}
					else
					{
						if(itemBorderWidth>0)
						{
							strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=" + itemBorderColor[jj] + "><TD NOWRAP width=1>";
							strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 CELLSPACING=" + (itemBorderWidth-2) + " CELLPADDING=" + (itemBorderWidth) + "><TD NOWRAP width=1>";
						};
						
						strHTMLbuffer += "<TABLE WIDTH=100% BORDER=0 CELLSPACING=" + varItem.mItemStyleSpacing + " CELLPADDING=" + varItem.mMenuStyleItemPadding + " BGCOLOR=" + varItem.mBackgroundColorArr[jj] + " BACKGROUND='" + varItem.mBackgroundImageArr[jj] + "'>";
						if(jj&&!varItem.mItemIcons[jj])
							varItem.mItemIcons[jj]=varItem.mItemIcons[0];
							
						strHTMLbuffer += "<TD NOWRAP ALIGN=LEFT VALIGN=MIDDLE WIDTH=" + ((varItem.mItemIcons[0]||varItem.mItemIcons[1])?varItem.mItemIconWidth:1) + ">" + GenerateImgHTML(varItem.mItemIcons[jj],varItem.id + "ICO",varItem.mItemIconWidth,varItem.mItemIconHeight) + "</TD>";
						if(varItem.mItemStrText)
						{
							strHTMLbuffer += "<TD NOWRAP WIDTH=100% ALIGN=" + varItem.align + " VALIGN=" + varItem.mItemVAlign + ">";
							strHTMLbuffer += "<a id='" + varItem.id + "A" + jj + "' TARGET='" + varItem.mItemStrTarget + "' href=\"#\" onClick='MenuOnclick(event,\"" + varItem.id + "\");'>";
							strHTMLbuffer += "<FONT STYLE='font:" + varItem.font[jj] + ";color: " + varItem.mColorArr[jj] + ";text-decoration:" + varItem.mTextDecorationArr[jj] + ";'>";
							strHTMLbuffer += varItem.mItemStrText + "</FONT></a></TD>";
						};
						if((nMenuIdx?varItem.m1Arr[0]:varItem.mItemArrowImageMain[0])&&varItem.mItemParentMenuStrID)
						{
							strHTMLbuffer += "<TD WIDTH="+varItem.ptrArrowWidth + " NOWRAP ALIGN=RIGHT VALIGN=MIDDLE>";
							strHTMLbuffer += GenerateImgHTML(nMenuIdx?varItem.m1Arr[jj]:varItem.mItemArrowImageMain[jj],varItem.id + "ARR",varItem.ptrArrowWidth,varItem.ptrArrowHeight) + "</TD>";
						};
						
						strHTMLbuffer += "</TABLE>";
						if(itemBorderWidth>0)
						{
							strHTMLbuffer += "</TD></TABLE>";
							strHTMLbuffer += "</TD></TABLE>";
						};
					};
				
					strHTMLbuffer += "</LAYER>";
				};
			
				strHTMLbuffer += "</FONT></LAYER></ILAYER></TD>" + (varMenu.mMenuOrientation?"":"</TR>");
			};
		
			strHTMLbuffer += "</TABLE></LAYER>";
		}
		else  // not nVersionBelow6
		{			
			strHTMLbuffer += gnIsMSIE?"<TABLE CELLPADDING=" + (shadowTop?varMenu.mMenuShadowLen:"0") + " CELLSPACING=0 ":"<DIV ";
			strHTMLbuffer += " ID=" + varMenu.id + " STYLE='width:";
			
			if(varGlob_C)
				strHTMLbuffer += (nMenuIdx?(varGlob_C?"0px":"1px"):varMenu.mMenuWidth) + ";";
			else 
				strHTMLbuffer += (nMenuIdx?"0px":varMenu.mMenuWidth) + ";";
				
			if(nMenuIdx||(!nMenuIdx&&shadowTop))
				strHTMLbuffer += GetTransitionString(varMenu);
				
			// FAKE
			strHTMLbuffer += " BORDER-COLLAPSE: collapse;";
			strHTMLbuffer += " position:" + nPosEqual + ";left:" + garrMenuFile[nSomeIndex].left+"px; top:"+garrMenuFile[nSomeIndex].top+"px;";
			strHTMLbuffer += "z-index:" + varGlob_V + ";visibility:" + strVisibility + "'>"; strHTMLbuffer += gnIsMSIE?"<TD>":"";
			strHTMLbuffer += "<TABLE ID="+varMenu.id+"TB CELLPADDING=0 CELLSPACING="+varMenu.mMenuStyleItemSpacing;
			
			if(!cssStyle)
			{
				strHTMLbuffer += " STYLE='width:"+(nMenuIdx?(varGlob_C?"0px":"1px"):varMenu.mMenuWidth);
				strHTMLbuffer += ";border-style:"+varMenu.mBorderStyleArr+";border-width:"+varMenu.mMenuStyleBorderWidth+"px;";
				strHTMLbuffer += "border-color:"+varMenu.mBorderColorArr+";background:"+varMenu.mBackgroundColorArr+";margin:0px;";
				strHTMLbuffer += "background-image:url("+varMenu.mBackgroundImageArr+");background-repeat:repeat'>";
			}
			else 
				strHTMLbuffer += " class='"+varMenu.mMFCssClassName+"'>";
			
		/*	if( !nMenuIdx && movable )
				AddHtmlOnMouse(varMenu.mMenuOrientation,varMenu.id);
		*/	
			l1I11=-1;
				
				for( var nItemNo=0; nItemNo < varMenu.i.length; nItemNo++ )
				{
					var varItem=varMenu.i[nItemNo];
					strItemHTML="";
					if(nMenuIdx&&varMenu.mMenuColumnsPerSubmenu>1)
						l1I11++;
						
					strItemHTML += ((!varMenu.mMenuOrientation||l1I11 == 0)?"<TR ID="+varItem.id+"TR>":"");
					strItemHTML += "<TD ID="+varItem.id+" NOWRAP VALIGN=MIDDLE HEIGHT=100% "+((varItem.width&&varItem.mItemStrText != "-")?"WIDTH="+varItem.width:"");
					strItemHTML += " STYLE='padding:0px;'>";
					strItemHTML += "<TABLE ID=\""+varItem.id+"I\" CELLSPACING=0 CELLPADDING=0 HEIGHT=100% WIDTH=100% BORDER=0 TITLE='"+varItem.mItemTitle+"'";
					
					if(!cssStyle)
					{					
						strItemHTML += " STYLE='border-style:"+varItem.mBorderStyleArr[0]+";border-width:"+varItem.mMenuStyleBorderWidth+"px;margin:0px;";
						strItemHTML += "border-color:"+varItem.mBorderColorArr[0]+";background-color:"+varItem.mBackgroundColorArr[0]+";";
					
						// FAKE
						strItemHTML += " BORDER-COLLAPSE: collapse;";
	
						if(varItem.mItemStrText != "-")
							strItemHTML += "cursor:"+((varItem.cursor == "hand")?(gnIsMSIE?"hand":"pointer"):varItem.cursor)+";";
						if(!gnIsGecko||(gnIsGecko&&gnBrowserVersion >= 7))
							strItemHTML += "font:"+varItem.font[0]+";text-decoration:"+varItem.mTextDecorationArr[0]+";color:"+varItem.mColorArr[0]+";";
							
						strItemHTML += "background-image:url("+varItem.mBackgroundImageArr[0]+");background-repeat:repeat;' ";}else strItemHTML += " class='"+varItem.mMFCssClassName[0]+"'";if(garrMenuFile[nSomeIndex].mMFbUsesFrames&&nMenuIdx&&crossType == 1){llll1="parent.frames["+garrMenuFile[nSomeIndex].mMF_F+"]";lII11="onMouseOver='"+llll1+".FOnMouseOver_2(event,\""+varItem.id+"I\");' onMouseOut='"+llll1+".MenuOnMouseOut(event,\""+varItem.id+"I\");'";
						IIl1a=((varItem.mItemStrText == "-")?">":"onClick='"+llll1+".MenuOnclick(event,\""+varItem.id+"I\");'>");
					}
					else
					{
						lII11="onMouseOver='FOnMouseOver_2(event,\""+varItem.id+"I\");' onMouseOut='MenuOnMouseOut(event,\""+varItem.id+"I\");'";
						IIl1a=((varItem.mItemStrText == "-")?">":"onClick='MenuOnclick(event,\""+varItem.id+"I\");'>");
					};
					
					if(varItem.mItemStrText == "-")
					{
						strItemHTML += lII11+IIl1a;
						strItemHTML += "<TD ID="+varItem.id+"ITD NOWRAP width=100%  height=100% align="+((!separatorAlignment)?"center":separatorAlignment);
						strItemHTML += ((!cssStyle)?" STYLE='color:"+varItem.mColorArr[0]+";padding:"+varItem.mMenuStyleItemPadding+"px;'><FONT STYLE='font-size:1px'>":">");
						
						if(nMenuIdx>0)
						{
							if(separatorImage)
								strItemHTML += GetImageHTML( separatorImage, separatorWidth, separatorHeight )
						}
						else if(separatorVImage)
							strItemHTML += GetImageHTML(separatorVImage,separatorVWidth,separatorVHeight);
						
						strItemHTML += "</FONT></TD>";
					}
					else
					{
						strItemHTML += lII11+IIl1a;
						if(varItem.mItemIcons[0]||varItem.mItemIcons[1]){strItemHTML += "<TD ID="+varItem.id+"IITD WIDTH="+varItem.mItemIconWidth+" NOWRAP ALIGN=CENTER VALIGN=MIDDLE HEIGHT=100% ";
						strItemHTML += "STYLE='padding:"+varItem.mMenuStyleItemPadding+"px'>";
						strItemHTML += GenerateImgHTML(varItem.mItemIcons[0],varItem.id+"ICO",varItem.mItemIconWidth,varItem.mItemIconHeight)+"</TD>";
					};
					if(varItem.mItemStrText)
					{
						strItemHTML += "<TD ID="+varItem.id+"ITD NOWRAP ALIGN="+varItem.align+" VALIGN="+varItem.mItemVAlign+" width=100% ";
						strItemHTML += "STYLE='padding:"+varItem.mMenuStyleItemPadding+"px;'>";
						if(gnIsGecko&&(gnBrowserVersion<7))
							strItemHTML += "<FONT id=\""+varItem.id+"ITX\" STYLE='font:"+varItem.font[0]+";text-decoration:"+varItem.mTextDecorationArr[0]+";color:"+varItem.mColorArr[0]+";'>"+varItem.mItemStrText+"</FONT>";
						else 
							strItemHTML += varItem.mItemStrText;
							
						strItemHTML += "</TD>";};
						
						if((nMenuIdx?varItem.m1Arr[0]:varItem.mItemArrowImageMain[0])&&varItem.mItemParentMenuStrID)
						{
							strItemHTML += "<TD ID="+varItem.id+"IATD WIDTH="+varItem.ptrArrowWidth+" NOWRAP ALIGN=CENTER VALIGN=MIDDLE HEIGHT=100% STYLE='padding:"+varItem.mMenuStyleItemPadding+"px'>";
							strItemHTML += GenerateImgHTML(nMenuIdx?varItem.m1Arr[0]:varItem.mItemArrowImageMain[0],varItem.id+"ARR",varItem.ptrArrowWidth,varItem.ptrArrowHeight)+"</TD>";
						};
					};
					
					strItemHTML += "</TABLE></TD>"+((!varMenu.mMenuOrientation||l1I11 == varMenu.mMenuColumnsPerSubmenu-1)?"</TR>":"");
					
					if(l1I11 == varMenu.mMenuColumnsPerSubmenu-1)
						l1I11=-1;
						
					strHTMLbuffer += strItemHTML;
				};
				
				strHTMLbuffer += "</TABLE>"+(gnIsMSIE?"</TD></TABLE>":"</DIV>");
			};
			
			if(nVersionBelow6)
				varGlob_U += strHTMLbuffer;
			else
			{
				if(garrMenuFile[nSomeIndex].mMFbUsesFrames&&crossType != 3)
				{
					arrMenuFile.mMFArrMenus[nMenuIdx].mMenuStrHTML=strHTMLbuffer;
					if(!nMenuIdx)
						document.write(strHTMLbuffer);
				}
				else if(varGlob_C&&!gbAppIsMac)
				{
					if(!nMenuIdx)
						document.write(strHTMLbuffer);
					else 
						document.body.insertAdjacentHTML('afterBegin',strHTMLbuffer);
				}
				else 
					document.write(strHTMLbuffer);
			};
			
			strHTMLbuffer="";
			strItemHTML="";
			nPosEqual="absolute";
			strVisibility=(nVersionBelow6)?"hide":"hidden";
			varGlob_V += 10;
		};
		
		if(nVersionBelow6){varGlob_U += strHTMLbuffer;
			document.write(varGlob_U);
	};
	
	
	if(garrMenuFile[nSomeIndex].mMFarrPressedItem >= 0)if(crossType == 1||crossType == 3)
	{
		gnBool_A = true;
		setPressedItem(nSomeIndex,garrMenuFile[nSomeIndex].mMFn_C,garrMenuFile[nSomeIndex].mMFnPressedItem,false);
	};
	
/*	if(!nSomeIndex||nSomeIndex == 1000)
		nDemo=lllIa();
*/		
	nSomeIndex++;
	gnPressedItem = -1;
};
				
	

// *** Vygeheruje HTML kód s IMG elementem *** //	
function GetImageHTML( strImageSrc, nImageWidth, nImageHeight )
{
	return"<img src='"+strImageSrc+"' width="+((!nImageWidth)?"100%":nImageWidth)+" height="+((!nImageHeight)?"1":nImageHeight)+">";
};
	

// *** Vrátí [a] nebo [a,b] se jménem a hodnotou položky CSS stylu z itemStyles[] *** //
function GetStyleNameValue( strStyleName, nIdx, strItemOrSubmenu, parDefault )
{
	if( nIdx == -1 )
		return parDefault;

	var arrStyleNameValue = [];
	
	if( strItemOrSubmenu  == "item" )
		var varStyles = itemStyles[nIdx];
	if( strItemOrSubmenu == "submenu" )
		var varStyles = menuStyles[nIdx];
		
	var f = false;
	
	for( var j = 0; !f; j++ )
	{
		if(!varStyles[j])
			return parDefault;
		else if(varStyles[j].indexOf(strStyleName) >= 0)
			break;
	};
	
	var strStyle = varStyles[j],
		nPosEqual = strStyle.indexOf("="),
		nPosComma = strStyle.indexOf(",");
	
	if( nPosComma == -1 || strStyleName == "fontStyle" )
	{
		nPosComma=strStyle.length;
		arrStyleNameValue[0] = strStyle.substring(nPosEqual+1,nPosComma);
	}
	else
	{
		arrStyleNameValue[0] = strStyle.substring(nPosEqual+1,nPosComma);
		arrStyleNameValue[1] = strStyle.substring(nPosComma+1,strStyle.length);
	};
	
	if( arrStyleNameValue.length == 1 && gnIsGecko&&gnBrowserVersion  >=  6 && gnBrowserVersion < 7 )
	{
		if( strStyleName.indexOf("font") < 0 )
			arrStyleNameValue = arrStyleNameValue[0];
	}
			
	return arrStyleNameValue;
};
	


function GetClientXYSize(e)
{
	with( e )
		return[(gnIsMSIE||gnIsOpera)?clientX:pageX,(gnIsMSIE||gnIsOpera)?clientY:pageY];
};
	


// *** onmousedown handler funkce *** //
function FOnMOuseDown1( parEvent, nElemID )
{
	// Už je zmačknuto?
	if( nVersionBelow6 || gbIsMouseDown )
		return;
		
	elemMouseDown = FGetElementByID( "apy" + nElemID + "m0" );
	gElemJustMouseDown = garrMenuFile[nElemID];
	
	var posClientXYSize = GetClientXYSize( parEvent ),
		positionLeftTop = GetLeftTopPosition( elemMouseDown ),
		positionScroll = versionOfSomething?GetScrollPosition():[0,0];
			
	gnMouseDownPosX = posClientXYSize[0] - positionLeftTop[0] + positionScroll[0];
	gnMouseDownPosY = posClientXYSize[1] - positionLeftTop[1] + positionScroll[1];
	
	gbIsMouseDown = true;
};
	

// *** onmouseup handler funkce *** //
function FOnMOuseUp_1()
{
	var positionScroll=GetScrollPosition(),
		positionLeftTop = GetLeftTopPosition(elemMouseDown);
	gElemJustMouseDown.left = positionLeftTop[0]-positionScroll[0];
	gElemJustMouseDown.top = positionLeftTop[1]-positionScroll[1];
	gbIsMouseDown  =  false;
};
	
	
function l111a( gElemJustMouseDown )
{
	var elem_4 = FGetElementByID( gElemJustMouseDown.id + 'm0' ),
		l1I1 = GetLeftTopWidthHeight( elem_4 );
		
	IlI1a( l1I1, elem_4.id );
	
	if( gnIsMSIE )
		F18( l1I1, "SELECT", elem_4.id, gElemJustMouseDown );		
	if( ( gnIsGecko && gnBrowserVersion < 7 ) || gnIsOpera )
		F18( l1I1, "IFRAME", elem_4.id, gElemJustMouseDown );
		
	F18( l1I1, "APPLET", elem_4.id, gElemJustMouseDown );
};
	


if(gnIsMSIE)
{
	document.onselectstart = function()
	{
		if(gbIsMouseDown)
			return false;
		return true;
	};
};
	
	
	
function GetStyle( parA )
{
	return nVersionBelow6 ? parA : parA.style;
};
	

// *** Zkopíruje CSS styl nějak *** //
function CopyStyleSomehow( parElement, over, strSrc )
{
	if( !over && parElement.mItemSaveNavigationPath )
		return;
	
	// existuje CSS?
	if( garrMenuFile[parElement.mAnyThisIndex].mMFCssStyle )
	{
		FGetElementByID( parElement.id + "I").className = parElement.mMFCssClassName[over];
	}
	else
	{
		var parStyle = GetStyle( FGetElementByID( parElement.id + "I" ) );
		
		if( parElement.mBackgroundColorArr[over] )
			parStyle.backgroundColor = parElement.mBackgroundColorArr[over];
			
		if( parElement.mBorderColorArr[over] )
			parStyle.borderColor = parElement.mBorderColorArr[over];
			
		if( parElement.mBorderStyleArr[over] )
			parStyle.borderStyle = parElement.mBorderStyleArr[over];
			
		if( parElement.mBackgroundImageArr[over] )
			parStyle.backgroundImage = "url(" + parElement.mBackgroundImageArr[over] + ")";
			
		if( gnIsGecko && gnBrowserVersion < 7 )
		{
			if( parElement.mColorArr[over] || parElement.mTextDecorationArr[over] )
			{
				var elem = FGetElementByID( parElement.id + "ITX" ).style;
				
				if( parElement.mColorArr[over] )
					elem.color = parElement.mColorArr[over];
					
				if( parElement.mTextDecorationArr[over] )
					elem.textDecoration = parElement.mTextDecorationArr[over];
			};
		}
		else
		{
			if( parElement.mColorArr[over] )
				parStyle.color = parElement.mColorArr[over];
				
			if( parElement.mTextDecorationArr[over] )
				parStyle.textDecoration = parElement.mTextDecorationArr[over];
		};
	
		if( parElement.mItemIcons[over] )
			FGetElementByID( parElement.id+"ICO" ).src = parElement.mItemIcons[over];
			
		if( parElement.mItemParentMenuStrID && ( strSrc ? parElement.m1Arr[over] : parElement.mItemArrowImageMain[over] ) )
			FGetElementByID( parElement.id + "ARR").src = strSrc ? parElement.m1Arr[over] : parElement.mItemArrowImageMain[over];
	};
};
	
	
function apygk()
{
	document.getElementById("apy0gk").style.visibility="hidden";
	return;
};
	
	
function FOnMouseOver_2(eEvent,id)
{
	var SomethingByApyId = GetMenuOrItemByID(id);
	
	if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFShowByClick && !garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFn_D && !SomethingByApyId.mAnyThisNo )
		return;
		
	II11a = ((id.indexOf("sep") >= 0)?1:0);
	
	var elem = FGetElementByID(id);
	
	
	
	if( gnIsMSIE )
		if(eEvent.fromElement && elem.contains(eEvent.fromElement))
			return;
			
	var varMenu = garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[SomethingByApyId.mAnyThisNo];
	
	if(garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B)
	{
		clearTimeout(garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B);
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B = null;
	};
	
	if(varMenu.mMenu_B)
	{
		clearTimeout(varMenu.mMenu_B);
		varMenu.mMenu_B = null;
	};
	
	if(!SomethingByApyId.mItemStrTarget2)
		return;
		
	if(nVersionBelow6)
	{
		if(!SomethingByApyId.mItemBoolVisibility)
		{
			elem.document.layers[0].document.layers[1].visibility = "show";
			elem.document.layers[0].document.layers[0].visibility = "hide";
		};
	}	
	else if(!II11a&&!SomethingByApyId.mItemBoolVisibility)
		CopyStyleSomehow(SomethingByApyId,1,SomethingByApyId.mAnyThisNo);
		
	if(varMenu.mMenuStr_A != ""&&varMenu.mMenuStr_A != SomethingByApyId.mItemParentMenuStrID)
	{
		if(garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFbUsesFrames&&crossType == 1)
		{
			if(apy_frameAccessible(garrMenuFile[SomethingByApyId.mAnyThisIndex],varMenu.id,garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFSubFrameInd))F20(varMenu.mMenuStr_A);
		}
		else 
			F20(varMenu.mMenuStr_A);
	};
	
	if(SomethingByApyId.mItemParentMenuStrID != ""&&varGlob_J)
		varMenu.mMenu_B=setTimeout("FunOnTimeout('"+SomethingByApyId.mItemParentMenuStrID+"')",150);
		
	status = SomethingByApyId.status;	
};
	
	
// *** handler "onmouseout" *** //
function MenuOnMouseOut( eEvent, strID )
{
	II11a = (( strID.indexOf( "sep" ) >= 0 ) ? 1 : 0 );
	var elem = FGetElementByID( strID );
	
	if( gnIsMSIE && eEvent.toElement && elem.contains( eEvent.toElement ) )
		return;
		
	var SomethingByApyId = GetMenuOrItemByID( strID ),
		varMenu = garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[SomethingByApyId.mAnyThisNo],
		Ill11 = garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[0];
		
	if( Ill11.mMenuStr_A  !=  "" )
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B = setTimeout( "F20('" + Ill11.mMenuStr_A + "'); status='';",1000);
		
	if( varMenu.mMenu_B )
	{
		clearTimeout( varMenu.mMenu_B );
		varMenu.mMenu_B = null;
	};
	
	
	if( !SomethingByApyId.mItemStrTarget2 )
		return;
		
	if( nVersionBelow6 )
	{
		if( !SomethingByApyId.mItemBoolVisibility )
		{
			elem.document.layers[0].document.layers[0].visibility="show";
			elem.document.layers[0].document.layers[1].visibility = "hide";
		};
	}
	else if( !II11a && !SomethingByApyId.mItemBoolVisibility )
		CopyStyleSomehow( SomethingByApyId, 0, SomethingByApyId.mAnyThisNo );
};
	
	
// *** handler onclick *** //
function MenuOnclick( eEvent, id )
{
	if( nVersionBelow6 )
		MenuOnMouseOut( eEvent, id );
		
	var SomethingByApyId = GetMenuOrItemByID( id );
	
	if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFShowByClick && 
		!garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFn_D && 
		!SomethingByApyId.mAnyThisNo &&
		SomethingByApyId.mItemParentMenuStrID )
	{
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFn_D = 1;
		FOnMouseOver_2( eEvent, id );
		return;
	};
	
	if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFarrPressedItem != -2 )
		setPressedItem( SomethingByApyId.mAnyThisIndex, SomethingByApyId.mAnyThisNo, SomethingByApyId.mItemThisMenuNo, true );
		
	if( !SomethingByApyId.mItemStrTarget2 || !SomethingByApyId.strTargetOrHRef )
		return;
	
	var Ill11 = garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[0];
	
	if(Ill11.mMenuStr_A)
		F20(Ill11.mMenuStr_A);
		
	if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B )
	{
		clearTimeout( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B );
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMF_B = null;
	};
	
	// Vyřeší klik na target
	if( SomethingByApyId.strTargetOrHRef )
	{
		// Je to javascript?
		if( SomethingByApyId.strTargetOrHRef.toLowerCase().indexOf("javascript:") == 0 )
			eval( SomethingByApyId.strTargetOrHRef.substring( 11, SomethingByApyId.strTargetOrHRef.length ) );
		else
		{
			// Je to _self?
			if( !SomethingByApyId.mItemStrTarget || SomethingByApyId.mItemStrTarget == "_self" )
			{
				if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFbUsesFrames && ( crossType == 1 || crossType == 3 ) )
					parent.frames[garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFSubFrameInd].location.href=SomethingByApyId.strTargetOrHRef;
				else 
					location.href = SomethingByApyId.strTargetOrHRef;
			}
			else 
				// Je to href?
				open( SomethingByApyId.strTargetOrHRef, SomethingByApyId.mItemStrTarget );
		};
	};
};
	
	
// *** Je bod uvnitř obdélníku? *** //
function IsPointInsideSquare( nPosX, nPosY, arrParam )
{
	if( nPosX >= arrParam[0] &&
		nPosX <= ( arrParam[0] + arrParam[2] ) && 
		nPosY >= arrParam[1] &&
		nPosY <= ( arrParam[1] + arrParam[3] ) )
		return true;
	return false;
};
	
	
// *** Protínají se dva obdélníky aspoň částečně? *** //	
function SquaresIntersects( arrParamA, arrParamB )
{
	var nVal_0 = arrParamA[0],
		nVal_02 = arrParamA[0] + arrParamA[2],
		nVal_1 = arrParamA[1],
		nVal_13 = arrParamA[1] + arrParamA[3];
	
	if( IsPointInsideSquare( nVal_0,nVal_1, arrParamB ) ||
		IsPointInsideSquare( nVal_0, nVal_13, arrParamB ) ||
		IsPointInsideSquare( nVal_02, nVal_1, arrParamB ) ||
		IsPointInsideSquare( nVal_02, nVal_13, arrParamB ) )
		return true;
		
	return false;
};
	
	
// *** Testuje průnik dvouo obdélníků *** //
function IsSquareInSquare( arrParam1, arrParam2 )
{
	var nVal_0 = arrParam1[0],
		nVal_02 = arrParam1[0] + arrParam1[2],
		nVal_1 = arrParam1[1],
		nVal_13 = arrParam1[1] + arrParam1[3];
		
	if( nVal_0 < arrParam2[0] &&
		nVal_02 > ( arrParam2[0] + arrParam2[2] ) &&
		nVal_1 > arrParam2[1] &&
		( nVal_13 < arrParam2[1] + arrParam2[3] ) )
	{
		return true;
	}
	return false;
};
	
	
function IlI1a( arrSquare_A, param_B)
{
	if(nVersionBelow6)
		return;
		
	if(varGlob_M.length>0)
	{
		for(var ll1l1=0; ll1l1<varGlob_M.length; ll1l1 += 2)
		{
			if(varGlob_M[ll1l1] == param_B)
			{
				varGlob_M[ll1l1+1].style.visibility="visible";
				varGlob_M[ll1l1]=null;
				varGlob_M[ll1l1+1]=null;
			};
		};
		var lIl1I = true;
		for(ll1l1 = 0;ll1l1<varGlob_M.length;ll1l1 += 2)
			if(varGlob_M[ll1l1])
			{
				lIl1I = false;
				break;
			};
			
		if(lIl1I)
			varGlob_M = [];
	};
};
	
	
	
function F18( arrSquare_A, tag, param_B, elemMouseDown )
{
	if( nVersionBelow6 || ( gnIsOpera&gnBrowserVersion < 6 ))
		return;
		
	if( !elemMouseDown.mMFbUsesFrames || crossType == 3 )
		var varWindow = window;
	else 
		var varWindow = parent.frames[elemMouseDown.mMFSubFrameInd];
		
	if(gnIsGecko||gnIsGeckoRV||gnIsOpera)
		var elem = varWindow.document.getElementsByTagName( tag );
	else 
		var elem = varWindow.document.body.all.tags( tag );
		
	if( elem != null )
	{
		for( var j = 0; j < elem.length; ++j )
		{
			arrSquare_B = GetLeftTopWidthHeight( elem[j] );
			if( ( elem[j].style.visibility != "hidden" ) &&
				( SquaresIntersects( arrSquare_B, arrSquare_A ) ||
				SquaresIntersects( arrSquare_A, arrSquare_B ) ||
				IsSquareInSquare( arrSquare_B, arrSquare_A ) ) )
			{
				elem[j].style.visibility = "hidden";
				varGlob_M[varGlob_M.length] = param_B;
				varGlob_M[varGlob_M.length] = elem[j];
			};
		};
	};
};
	
	
function CreateMenuHTML( elemMouseDown )
{
	var strHTML = "";
	for( var i = 1; i < elemMouseDown.mMFArrMenus.length; i++ )
	{
		strHTML += elemMouseDown.mMFArrMenus[i].mMenuStrHTML;
	}
	return strHTML;
};
	

// *** Existuje onresize? *** //
function OnResizeExists()
{
	document.location.href = document.location.href;
	if( OnResizeFun )
		OnResizeFun();
	return true;
};


// *** Nastavení "onresize" *** //
var OnResizeFun = null;

if( nVersionBelow6 )
{
	if( typeof(onresize)!="undefined")
		OnResizeFun = onresize;
	onresize = OnResizeExists;
};
	
	
// *** Error handler *** //
function OnErrorHandler(lIa,strURL_1,I1la)
{
	return true;
};


if(!nVersionBelow6&&!(gnIsMSIE&&gnBrowserVersion<5))
{
	var es = "";
	es += "function apy_frameAccessible (mMenu, id, frmN) {";
	es += "var apyFrame = parent.frames[frmN];";
	es += "try {";
	es += " var obj = apyFrame.document.getElementById (id);";
	es += " crossType = 1;";
	es += " return true;";
	es += "}";
	es += "catch (e) {";
	es += " crossType = 3;";
	es += " return false;";
	es += "} }";
	eval(es);
};
	
	
function IIlla(elemMouseDown,id)
{
	var parentWindow=parent.frames[elemMouseDown.mMFSubFrameInd],
		elem = parentWindow.document.getElementById(id);
	
	if(!elem)
	{
		if(versionOfSomething)
			parentWindow.document.body.insertAdjacentHTML("beforeEnd",CreateMenuHTML(elemMouseDown));
		else 
			parentWindow.document.body.innerHTML+=CreateMenuHTML(elemMouseDown);
	};
};
	
	
	
function F19( strStyle, param_A )
{
	var l11Il = 0,lIlII = -1,l111I = ((!param_A)?0:1);
	for(var i = 0;i<strStyle.length;i++)
	{
		if(strStyle.charAt(i) == ','||i == strStyle.length-1)
		{
			lIlII++;
			if(lIlII == param_A)
			{
				var b = strStyle.substring(0,l11Il+l111I);
				if(param_A>0)
				{
					var strStylePart = strStyle.substring(l11Il+l111I,i+l111I-1),
					eEvent = strStyle.substring(i+l111I-1,strStyle.length)
				}
				else
				{
					var strStylePart = strStyle.substring(l11Il+l111I,i+l111I),
						eEvent = strStyle.substring(i+l111I,strStyle.length)
				};
				return[b,strStylePart,eEvent]
			};
			
			l11Il = i;
		};
	};
};


var I1I;
	
	
	
function F10( gElemJustMouseDown )
{
	var IlIl = gElemJustMouseDown.mMFn_C,
		i = gElemJustMouseDown.mMFnPressedItem;
		
	gnBool_A = true;
	gnBool_B = true;
	setPressedItem( gElemJustMouseDown.mAnyThisIndex, IlIl, i, true );
};
	
	
// *** funkce volaná jen při timeoutu *** //
function FunOnTimeout(id)
{
	var l11 = GetMenuOrItemByID(id),
	elemMouseDown = garrMenuFile[l11.mAnyThisIndex],
	flEn =  (l11.mMenuTransDuration && !gbAppIsMac&&varGlob_C&&gnBrowserVersion >= 5.5);
	
	if(elemMouseDown.mMFbUsesFrames&&crossType>0)
	{
		if(!apy_frameAccessible(elemMouseDown,id,elemMouseDown.mMFSubFrameInd))
		{
			var elem = FGetElementByID(id);
			if(!elem)
			{
				if(gnIsMSIE||(gnIsOpera&&gnBrowserVersion >= 7))
					document.body.insertAdjacentHTML( "beforeEnd", CreateMenuHTML( elemMouseDown ));
				else 
					document.body.innerHTML += CreateMenuHTML( elemMouseDown );
				F10( elemMouseDown );
				var elem = FGetElementByID(id);
			};
		}
		else
		{
			IIlla(elemMouseDown,id);
			var elem = parent.frames[elemMouseDown.mMFSubFrameInd].document.getElementById(id);
			if(elemMouseDown.mMFarrPressedItem >= 0&&elemMouseDown.mMFnPressedItem != -1)
				F10(elemMouseDown);
		};
	}
	else 
		var elem = FGetElementByID(id);
		
	if(flEn)
	{
		var I1llI = elem.filters[0];
		if(gnBrowserVersion >= 5.5)
			I1llI.enabled = 1;
		if(I1llI.Status != 0)
			I1llI.stop();
	};
	
	var arrXY = GetMenuPosition(l11),
		SomethingByApyId = GetMenuOrItemByID(l11.mMenuStrThisId);
		
	if(nVersionBelow6)
	{
		elem.left = arrXY[0]+itemBorderWidth+itemPadding+itemSpacing-1;
		elem.top = arrXY[1]-itemBorderWidth+(isHorizontal?itemBorderWidth+itemPadding:0);
		if(elem.visibility != "show")elem.visibility = "show";
		for(var i = 0;i<l11.i.length;i++)if(l11.i[i].mItemBoolVisibility)
		{
			var elem = FGetElementByID(l11.i[i].id);
			with(elem.document.layers[0])
			{
				document.layers[1].visibility = "show";
				document.layers[0].visibility = "hide";
			};
		}
		else
		{
			var elem = FGetElementByID(l11.i[i].id);
			if(elem.document.layers[0].document.layers[1].visibility == "show")
				with(elem.document.layers[0])
				{
					document.layers[1].visibility = "hide";
					document.layers[0].visibility = "show";
				};
		};
		
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[SomethingByApyId.mAnyThisNo].mMenuStr_A = id;
	}
	else
	{
		if(elemMouseDown.mMFbUsesFrames&&crossType == 1&&l11.mnMenuPos_A == 1)
		{
			var l11l1 = GetLTWHforWindowOrElement(elemMouseDown,1),
				I1II = GetLTWHforWindowOrElement(null),
				l = 0,
				t = 0;
				
			if(elemMouseDown.mMFnView == 1)
			{
				if(gnIsMSIE||gnIsOpera)
					var dy = parent.frames[elemMouseDown.mMFSubFrameInd].window.screenTop-window.screenTop+I1II[1];
				else 
					var dy = I1II[1];
				l = l11l1[0];
				t = arrXY[1]+l11l1[1]-dy;
			}
			else
			{
				if(gnIsMSIE||gnIsOpera)var dx = parent.frames[elemMouseDown.mMFSubFrameInd].window.screenLeft-window.screenLeft+I1II[0];
				else 
					var dx = I1II[0];
				l = arrXY[0]+l11l1[0]-dx;
				t = l11l1[1];
			};
			var arrLTWH = GetLeftTopWidthHeight(FGetElementByID(elem.id+'TB'));
			if(l+arrLTWH[2]>l11l1[0]+l11l1[2])l = l11l1[0]+l11l1[2]-arrLTWH[2];
			if(t+arrLTWH[3]>l11l1[1]+l11l1[3])t = l11l1[1]+l11l1[3]-arrLTWH[3];
			if(l<l11l1[0])l = l11l1[0];
			if(t<l11l1[1])t = l11l1[1];
			elem.style.left = l+strUnitType;
			elem.style.top = t+strUnitType;
		}
		else
		{
			elem.style.left = arrXY[0]+strUnitType;
			elem.style.top = arrXY[1]+strUnitType;
			if(!gnIsOpera&&!gnIsGeckoRV&&!gnIsGecko&&crossType == 3)
			{
				if(elemMouseDown.mMFnView == 1)
					var sizes = parent.document.getElementById(elemMouseDown.mMF_E).mMenuColumnsPerSubmenu;
				else 
					var sizes = parent.document.getElementById(elemMouseDown.mMF_E).rows;
					
				if(!I1I)
					I1I = sizes;
				
				var lll1I = F19(sizes,elemMouseDown.mMF_F),
					lIllI = GetLTWHforWindowOrElement(elemMouseDown),
					lIl11 = GetLeftTopWidthHeight(elem);
					
				if(elemMouseDown.mMFnView == 1)
				{
					if(lIl11[0]+lIl11[2]>lIllI[2])
						parent.document.getElementById(elemMouseDown.mMF_E).mMenuColumnsPerSubmenu = lll1I[0]+(lIl11[0]+lIl11[2])+lll1I[2];
				}
				else if(lIl11[1]+lIl11[3]>lIllI[3])
				{
					parent.document.getElementById(elemMouseDown.mMF_E).rows = lll1I[0]+(lIl11[1]+lIl11[3])+lll1I[2];
				};
			};
		};
		
		garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFArrMenus[SomethingByApyId.mAnyThisNo].mMenuStr_A = id;
		SomethingByApyId.mItemSaveNavigationPath = garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFSaveNavigationPath;
		
		if(elem.style.visibility != "visible")
		{
			if(flEn)I1llI.apply();elem.style.visibility = "visible";if(flEn)I1llI.play();
		};
	};
	
	if(!nVersionBelow6)
	{
		llIIl = FGetElementByID(elem.id+"TB");
		l1I1 = GetLeftTopWidthHeight(llIIl);
		if(gnIsMSIE||(gnIsOpera&&gnBrowserVersion<7))
			F18(l1I1,"SELECT",llIIl.id,elemMouseDown);
			
		if((gnIsGecko&&gnBrowserVersion<7)||(gnIsOpera&&gnBrowserVersion >= 7))
			F18(l1I1,"IFRAME",llIIl.id,elemMouseDown);
		F18(l1I1,"APPLET",llIIl.id,elemMouseDown);
	};
};
	
	
function F20(id)
{
	var elem = FGetElementByID(id);
	
	if(!elem)
		return;
		
	var l11 = GetMenuOrItemByID(id);
	if(l11.mMenuStr_A != "")
		F20(l11.mMenuStr_A);
		
	if(garrMenuFile[l11.mAnyThisIndex].mMFSaveNavigationPath)
	{
		var ll1I1 = GetMenuOrItemByID(l11.mMenuStrThisId);
		ll1I1.mItemSaveNavigationPath = 0;
		if(!ll1I1.mItemBoolVisibility)
			CopyStyleSomehow(ll1I1,0,ll1I1.mAnyThisNo);
	};
	
	l11.mMenuStr_A = "";
	
	if(l11.mMenu_B)
	{
		clearTimeout(l11.mMenu_B);
		l11.mMenu_B = null;
	};
	
	if(nVersionBelow6)
		elem.visibility = "hide";
	else 
		elem.style.visibility = "hidden";
	
	if(!nVersionBelow6)
	{
		llIIl = FGetElementByID(elem.id+"TB");
		l1I1 = GetLeftTopWidthHeight(llIIl);
		IlI1a(l1I1,llIIl.id);
	};
	
	if(l11.mnMenuPos_A == 1&&crossType == 3&&I1I)
	{
		if(garrMenuFile[l11.mAnyThisIndex].mMFnView)
			parent.document.getElementById(garrMenuFile[l11.mAnyThisIndex].mMF_E).mMenuColumnsPerSubmenu = I1I;
		else 
			parent.document.getElementById(garrMenuFile[l11.mAnyThisIndex].mMF_E).rows = I1I;
		I1I = null;
	};
	
	if( garrMenuFile[l11.mAnyThisIndex].mMFShowByClick && garrMenuFile[l11.mAnyThisIndex].mMF_B )
		garrMenuFile[l11.mAnyThisIndex].mMFn_D = 0;
};
	
	
function GetParamOrDefault(param,valDefault)
{
	return(typeof(param) != "undefined"&&param)?param:valDefault;
};
	
	
// *** Vrátí element z dokumentu podle jeho ID *** //
function FGetElementByID(id)
{
	if( gnIsMSIE && gnBrowserVersion < 5 )
		return document.all[id];
		
	// Vezmi element z příslušné vrstvy
	if( nVersionBelow6 )
	{
		var e = varGlobAA_2.exec( id ),
			l = document.layers[id];
		if( !l && e )
			l = document.layers[e[2]].document.layers[id];
		return l;
	};
	
	var SomethingByApyId = GetMenuOrItemByID(id);
	
	if( garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFbUsesFrames&&crossType != 3)
	{
		if(SomethingByApyId.mAnyThisNo == 0)
			return document.getElementById(id);
		else 
			return parent.frames[garrMenuFile[SomethingByApyId.mAnyThisIndex].mMFSubFrameInd].document.getElementById(id);
	}
	else 
		return document.getElementById(id);
};
	


// *** Vrátí menu podle jeho ID *** //
function GetMenuOrItemByID( id )
{
	var nVar_A;
	
	if( id.indexOf("i") > 0 )
	{
		nVar_A = varGlobAA_2.exec(id);
		return garrMenuFile[ parseInt( nVar_A[1] ) ].mMFArrMenus[ parseInt( nVar_A[2] ) ].i[ parseInt(nVar_A[3]) ];
	}
	else
	{
		nVar_A = varGlobAA_1.exec(id);
		return garrMenuFile[ parseInt( nVar_A[1] ) ].mMFArrMenus[ parseInt( nVar_A[2] ) ];
	};
};
	
	
	
// *** Detekuje typ browseru *** //	
function DetectBrowserType()
{
	var strUserAgent = navigator.userAgent,
		strAppName = navigator.appName,
		strAppVersion = navigator.appVersion;
		
	gbAppIsMac = strAppVersion.indexOf( "Mac" ) >= 0;
	gnHasGetElementById = document.getElementById ? 1 : 0;
	
	// Safari
	var bIsSafari= ( parseInt( navigator.productSub ) >= 20020000 ) && ( navigator.vendor.indexOf("Apple Computer") != -1 ),
		bIsGeckoSafari = bIsSafari && ( navigator.product == "Gecko" );
		
	if( bIsGeckoSafari )
	{
		gnIsGecko = 1;
		gnBrowserVersion = 6;
		return;
	};
	
	// Opera 
	if( strUserAgent.indexOf( "Opera" ) >= 0 )
	{
		gnIsOpera = 1;
		gnBrowserVersion = parseFloat( strUserAgent.substring( strUserAgent.indexOf("Opera") + 6, strUserAgent.length ) );
	}
	// Netscape
	else if( strAppName.toLowerCase() == "netscape" )
	{
		if( strUserAgent.indexOf( "rv:" ) != -1 && strUserAgent.indexOf("Gecko") != -1 && strUserAgent.indexOf("Netscape") ==  -1 )
		{
			gnIsGeckoRV = 1;
			gnBrowserVersion = parseFloat( strUserAgent.substring( strUserAgent.indexOf("rv:") + 3, strUserAgent.length ) );
		}
		else
		{
			gnIsGecko = 1;
			if( strUserAgent.indexOf( "Gecko" ) != -1 && strUserAgent.indexOf("Netscape") > strUserAgent.indexOf("Gecko") )
			{
				if( strUserAgent.indexOf( "Netscape6" ) > -1)
					gnBrowserVersion = parseFloat( strUserAgent.substring( strUserAgent.indexOf("Netscape") + 10, strUserAgent.length ) );
				else if(strUserAgent.indexOf("Netscape") > -1)
					gnBrowserVersion = parseFloat( strUserAgent.substring( strUserAgent.indexOf("Netscape") + 9, strUserAgent.length ) );
			}
			else gnBrowserVersion = parseFloat( strAppVersion );
		};
	}
	// Explorer
	else if(document.all?1:0)
	{
		gnIsMSIE = 1;
		gnBrowserVersion = parseFloat( strUserAgent.substring( strUserAgent.indexOf("MSIE ") + 5, strUserAgent.length ) );
	};
	
	nVersionBelow6 = gnIsGecko && gnBrowserVersion < 6;
	varGlob_C = gnIsMSIE&&gnBrowserVersion >= 5;
	versionOfSomething = gnIsMSIE || ( gnIsOpera && gnBrowserVersion >= 7 );
};
	
	
function lI1la(elemMouseDown)
{
	var frm = parent.frames[elemMouseDown.mMFSubFrameInd];
	return(frm.document.compatMode == "CSS1Compat"&&!gnIsGeckoRV)?frm.document.documentElement:frm.document.body
};
	

// *** Vrátí [ left top width height ] pro okno nebo element *** //
function GetLTWHforWindowOrElement( elemMouseDown, q )
{
	var l = 0,
		t = 0,
		w = 0,
		h = 0;
	
	if( gnIsGecko || gnIsGeckoRV || gnIsOpera )
	{
		var varWindow = (( elemMouseDown && elemMouseDown.mMFbUsesFrames && crossType  ==  1 ) ? parent.frames[elemMouseDown.mMFSubFrameInd].window : window );
		
		w = varWindow.innerWidth;
		h = varWindow.innerHeight;
		l = varWindow.pageXOffset;
		t = varWindow.pageYOffset;
	}
	else
	{
		var varElement = ((elemMouseDown&&elemMouseDown.mMFbUsesFrames&&crossType == 1)?lI1la(elemMouseDown):gElemBody);
		
		l = varElement.scrollLeft;
		t = varElement.scrollTop;
		w = varElement.clientWidth;
		h = varElement.clientHeight;
	};
	return[l,t,w,h];
};
	

// *** Vrátí [ left, top, width, height ] *** //
function GetLeftTopWidthHeight( elemOrig )
{
	var l = 0,
		t = 0,
		h = 0,
		w = 0;
	
	// Není definován? Tak vrať [0,0,0,0]
	if(!elemOrig)
		return[l,t,w,h];
		
	// Vezmi výšku a šířku
	if( gnIsOpera && gnBrowserVersion<6 )
	{
		h = elemOrig.style.pixelHeight;
		w = elemOrig.style.pixelWidth;
	}
	else if( nVersionBelow6 )
	{
		h = elemOrig.clip.height;
		w = elemOrig.clip.width;
	}
	else
	{
		h = elemOrig.offsetHeight;
		w = elemOrig.offsetWidth;
	};
	
	// Vezmi element nebo jeho offset parenta
	var elemOffseted =( nVersionBelow6 ) ? elemOrig : elemOrig.offsetParent;
	
	// Napočítej pozici elementu přes všechny rodiče až k počátku 
	while( elemOffseted )
	{
		l += parseInt( nVersionBelow6 ? elemOrig.pageX : elemOrig.offsetLeft );
		t += parseInt( nVersionBelow6 ? elemOrig.pageY : elemOrig.offsetTop );
		t += ( gbAppIsMac && gnIsMSIE ) ? elemOrig.parentNode.offsetTop : 0;
		
		// Jdi na předka
		elemOrig = elemOrig.offsetParent;
		elemOffseted = (nVersionBelow6) ? elemOrig : elemOrig.offsetParent;
	};
	
	// Vrať [left, top, width, height]
	return[l,t,w,h];
};
	
	
function GetMenuPosition(varMenu)
{
	var elem = FGetElementByID(varMenu.id),
		IlIlI = FGetElementByID(varMenu.mMenuStrThisId),
		IlI1 = GetLeftTopWidthHeight(IlIlI),
		I1l1l = GetMenuOrItemByID(varMenu.mMenuStrThisId),
		II1l = GetLTWHforWindowOrElement(garrMenuFile[varMenu.mAnyThisIndex]);
		
	if(!nVersionBelow6)
	{
		var llllI = FGetElementByID(elem.id+'TB'),lll11 = GetLeftTopWidthHeight(llllI);
	}
	else 
		var lll11 = GetLeftTopWidthHeight(elem),x = 0,y = 0;
		
	if(garrMenuFile[I1l1l.mAnyThisIndex].mMFArrMenus[I1l1l.mAnyThisNo].mMenuOrientation)
	{
		if(gnIsMSIE||gnIsGecko)
		{
			if(itemAlign == "right")
				x = IlI1[0]+IlI1[2]-lll11[2]-varMenu.mMenuNDx;
			else if(itemAlign == "center")
				x = IlI1[0]+(IlI1[2]-lll11[2])/2;
			else 
				x = IlI1[0]+varMenu.mMenuNDx;
		}
		else x = IlI1[0]+varMenu.mMenuNDx;
		
		if(garrMenuFile[varMenu.mAnyThisIndex].mMFBottomUp)
			y = IlI1[1]-lll11[3]-varMenu.mMenuNDy;
		else 
			y = IlI1[1]+IlI1[3]+varMenu.mMenuNDy;
	}
	else
	{
		x = varMenu.mMenuNDx+IlI1[0]+IlI1[2];
		y = varMenu.mMenuNDy+IlI1[1];
	};
	
	II1l[2] += II1l[0];
	II1l[3] += II1l[1];
	
	if(!garrMenuFile[varMenu.mAnyThisIndex].mMFbUsesFrames||(varMenu.mnMenuPos_A>1&&crossType != 3))
	{
		if(x+lll11[2]>II1l[2])x = II1l[2]-lll11[2];
		if(x<II1l[0])x = II1l[0];
		if(y+lll11[3]>II1l[3])y = II1l[3]-lll11[3];
		if(y<II1l[1])y = II1l[1];
	};
	
	if(gbAppIsMac&&gnIsMSIE)
	{
		x += varMenu.mMenuMacOffX;
		y += varMenu.mMenuMacOffY;
	};
	
	return[x,y];
};
	
	
function GenerateImgHTML(src,id,w,h)
{
	if(!src&&nVersionBelow6&&(id.indexOf("ICO")>0))
	{
		w = 1;
		src = blankImage;
	};
	
	if(!src)return"";
	var strHTML = "<IMG SRC=\""+src+"\"";
	
	if(id)
		strHTML += " ID="+id;
		
	if(w != "100%")
	{
		if(w>0)
			strHTML += " WIDTH="+w;
		else if(gnIsGecko)
			strHTML += " WIDTH=0";
	};
	
	if(h>0)
		strHTML += " HEIGHT="+h;
	else if(gnIsGecko)
		strHTML += " HEIGHT=0";
		
	strHTML += " BORDER=0>";
	return strHTML;
};


// Pole Javascript effects
var arrEffects = [['Blinds'],['Checkerboard'],['GradientWipe'],['Inset'],['Iris'],['Pixelate'],['RadialWipe'],['RandomBars'],['RandomDissolve'],['Slide'],['Spiral'],['Stretch'],['Strips'],['Wheel'],['Zigzag']];
	
function GetDXImageFilterString( nEffectNo, nDuration )
{
	if(gnBrowserVersion<5.5)
		return;
	var sF = "progid:DXImageTransform.Microsoft."+arrEffects[nEffectNo-25]+'('+transOptions+',duration='+nDuration+')';
	return sF;
};
	


// *** Vrátí string s transitions *** //
function GetTransitionString( varMenu )
{
	if( varGlob_C && !gbAppIsMac )
	{
		var sF = "filter:";
		if( varMenu.mMenuTransition )
		{
			if( varMenu.mMenuTransition  == 24 )
				sF += "blendTrans(Duration=" + varMenu.mMenuTransDuration/1000 + ") ";
			else if( varMenu.mMenuTransition < 24 )
				sF += "revealTrans(Transition=" + varMenu.mMenuTransition + ",Duration=" + varMenu.mMenuTransDuration/1000 + ") ";
			else 
				sF += GetDXImageFilterString( varMenu.mMenuTransition, varMenu.mMenuTransDuration/1000 );
		}
				
		if(varMenu.mMenuTransparency)
			sF += "Alpha(opacity="+varMenu.mMenuTransparency+") ";
		if(varMenu.mMenuShadowColor)
			sF += "Shadow(color="+varMenu.mMenuShadowColor+",direction=135,strength="+varMenu.mMenuShadowLen+") ";
		
		sF += ";";
		return sF;
	}
	else return"";
};
	

// *** Slepí ID elementu *** //
function ComposeApyName( n, IlIl, i )
{
	return'apy'+n+'m'+IlIl+'i'+i+((gnIsGecko&&gnBrowserVersion<7)?'ITX':'ITD');
};


var gnBool_A = false,
	gnBool_B = false;
	
	
	
function setPressedItem( n, param_A, i, ll1ll )
{
	var elemMouseDown = garrMenuFile[n];
	
	if( !gnBool_A && elemMouseDown.mMFnPressedItem != -1 )
	{
		gnBool_A = true;
		with( elemMouseDown )
		{
			setPressedItem( n, mMFn_C, mMFnPressedItem, ll1ll );
			if( mMFn_C  ==  param_A && mMFnPressedItem == i )
			{
				mMFn_C = 0;
				mMFnPressedItem = -1;
				return;
			};
		};
	};
	
	if( !gnBool_A )
	{
		elemMouseDown.mMFn_C = param_A;
		elemMouseDown.mMFnPressedItem = i;
	}
	else 
		gnBool_A = false;
		
	var SomethingByApyId = GetMenuOrItemByID( 'apy'+n+'m'+param_A+'i'+i );
	
	if(!gnBool_B)
		SomethingByApyId.mItemBoolVisibility = !SomethingByApyId.mItemBoolVisibility;
	
	gnBool_B = false;
	if( !nVersionBelow6 )
		CopyStyleSomehow( SomethingByApyId, ( SomethingByApyId.mItemBoolVisibility ? 1 : 0 ), SomethingByApyId.mAnyThisNo );
		
	if( ll1ll && param_A > 0 )
	{
		var elem = garrMenuFile[n].mMFArrMenus[param_A];
		for(var j = elem.mnMenuPos_A; j > 0; j-- )
		{
			IlIlI = GetMenuOrItemByID(elem.mMenuStrThisId);
			if( !nVersionBelow6 )
			{
				CopyStyleSomehow( IlIlI, (SomethingByApyId.mItemBoolVisibility?1:0),IlIlI.mAnyThisNo);
			}
			else if(j == 1)
			{
				with(FGetElementByID(IlIlI.id).document.layers[0])
				{
					document.layers[1].visibility=(SomethingByApyId.mItemBoolVisibility?"show":"hide");
					document.layers[0].visibility=(SomethingByApyId.mItemBoolVisibility?"hide":"show");
				};
			}
			IlIlI.mItemBoolVisibility = SomethingByApyId.mItemBoolVisibility;
			elem = garrMenuFile[n].mMFArrMenus[IlIlI.mAnyThisNo];
		};
	};
};
	
	
// *** Vrátí z eventu [x,y] pozici scroll left top *** // 
function GetEventXY(event)
{
	var x = 0,
		y = 0;
		
	if( gnIsMSIE || gnIsOpera )
	{
		x = event.clientX + ( versionOfSomething ? gElemBody.scrollLeft : 0 );
		y = event.clientY + ( versionOfSomething ? gElemBody.scrollTop : 0 );
	}
	else
	{
		x = event.pageX;
		y = event.pageY;
	};
	
	return[x,y];
};

