function getEleId(eleId)
{
	obj = document.getElementById(eleId);
	if(obj)
	{
		return obj;
	}
	else return false;
}

function getEleProp(eleId, prop){
	obj = document.getElementById(eleId);
	if(obj)
	{
		var toeval = 'obj.'+prop
		return eval(toeval);
	}
	else return false;
}

function setEleProp(eleId, prop, pValue){
	obj = document.getElementById(eleId);
	if(obj)
	{
		var toeval = 'obj.'+prop+' = "'+pValue+'"';
		return eval(toeval);
	}
	else return false;
}

function show(eleId){document.getElementById(eleId).style.display = 'block';}

function hide(eleId){document.getElementById(eleId).style.display = 'none';}

function blick(eleId)
{
	if(document.getElementById(eleId).style.display == 'none'){
		show(eleId);
	}else{
		hide(eleId);
	}
}

function getHeight(eleId)
{
	ele = getEleId(eleId);
	return(ele.offsetHeight);
}

function getWidth(eleId)
{
	ele = getEleId(eleId);
	return(ele.offsetWidth);
}

function openWindow(url, name, features)
{
	window.open(url, name, features);
}

function pictureWindow(picture, title, root)
{
	picWin = window.open(root+'/image.php?title='+title+'&img='+picture, title, 'width=200,height=200,scrolling=no');
}

function submitForm(eleId)
{
	form = document.getElementById(eleId);
	if(form)form.submit();
}

function posByElement(targetEleId, topEleId, hCor, vCor, position)
{
	targetEle = getEleId(targetEleId);
	topEle = getEleId(topEleId);

	if(targetEle && topEle)
	{
		eleTop = topEle.offsetHeight + vCor;
		eleLeft = topEle.offsetWidth + hCor;

		while(topEle){
			eleTop += topEle.offsetTop;
			eleLeft += topEle.offsetLeft;

			topEle = topEle.offsetParent;
		}

		//pozice
		if(position == 'bottom-left')eleLeft = eleLeft - getWidth(topEleId);
		if(position == 'top-right')eleTop = eleTop - getHeight(topEleId);

		targetEle.style.top = eleTop+'px';
		targetEle.style.left = eleLeft+'px';
	}
}

function insertFlash(eleId, swfFile, width, height, alt, wmode, flashVars)
{
	directFlashVars = '';
	if(flashVars != '')directFlashVars = '?'+flashVars;

	flashHtml =
	'<!--[if !IE]> -->'+"\n"+
	'<object type="application/x-shockwave-flash" data="'+swfFile+directFlashVars+'" width="'+width+'" height="'+height+'">'+"\n"+
	'<!-- <![endif]-->'+"\n"+
	'<!--[if IE]>'+"\n"+
	'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+width+'" height="'+height+'">'+"\n"+
	'<param name="movie" value="'+swfFile+directFlashVars+'" />'+"\n"+
	'<!--><!---->'+"\n"+
	'<param name="loop" value="true" />'+"\n"+
	'<param name="menu" value="false" />'+"\n"

	if(wmode)flashHtml += '<param name="wmode" value="transparent" />'+"\n";
	if(flashVars != '')flashHtml += '<param name="flashvars" value="'+flashVars+'" />'+"\n";

	flashHtml += alt+"\n";
	flashHtml += '</object>'+"\n";
	flashHtml += '<!-- <![endif]-->'+"\n";

	obj = document.getElementById(eleId);
	obj.innerHTML = flashHtml;
}

var imgoff = 0
var max = 0

function switchImage(idBackground, ajaxRequestId, idItem, direction) {
	if(
	(direction == 'next' && imgoff < max - 1) ||
	(direction == 'prev' && imgoff > 0)
	){
		if(direction == 'next')++imgoff
		else --imgoff
		url = baseUrl+'/ajax.php?type='+ajaxRequestId+'&param[pid]='+idItem+'&param[imgoff]='+imgoff

		$(idBackground).setStyle({
			backgroundImage: 'url("'+baseUrl+'/_img/loading.gif")',
			backgroundPosition: 'center center'
		})

		new Ajax.Request(url, {
			onSuccess: function(transport) {
				if(transport.responseText.match('.*false.*'))
				{
					if(direction == 'next') {
						--imgoff
						$('nextimage').className = 'nextimage-blank'
					} else {
						++imgoff
						$('previmage').className = 'previmage-blank'
					}
				} else {
					parts = transport.responseText.split('|')

					if(/MSIE/.test(navigator.userAgent) && !window.opera) {
						//v ie se neodpaluje spolehlive image onload
						$(idBackground).setStyle({
							backgroundImage: 'url('+parts[0]+')',
							backgroundPosition: 'top left',
							height: parts[2]+'px'
						})

						imgs = $(idBackground).getElementsByTagName('img')
						imgs[0].height = parts[2]-20
					} else {
						limg = new Image()
						limg.src = parts[0]
						limg.onload = function () {
							$(idBackground).setStyle({
								backgroundImage: 'url('+parts[0]+')',
								backgroundPosition: 'top left',
								height: parts[2]+'px'
							})

							imgs = $(idBackground).getElementsByTagName('img')
							imgs[0].height = parts[2]-20
						}
					}

					if(direction == 'next') {
						if(parts[1].match('.*1.*'))$('nextimage').className = 'nextimage'
						else $('nextimage').className = 'nextimage-blank'

						$('previmage').className = 'previmage'
					} else {
						if(imgoff > 0)$('previmage').className = 'previmage'
						else $('previmage').className = 'previmage-blank'

						$('nextimage').className = 'nextimage'
					}
				}
			}
		})
	}
}

/* menu */

function debugAdd(text)
{
	debugObj = getEleId('debugdiv');
	debugObj.innerHTML = debugObj.innerHTML +'<br />'+ text;
}

menuOn = false;
menuTimeOut = 100;
var tabBaseName = new String('submenu-tab-');

//depth - urovni zanoreni
//menuCount - pocet submenu
//menuItemHeight - vyska jednoho podmenu
//topParentName - zaklad id polozky z hlavniho menu
//menuTabTopSpace - kolik pixelu pred prvnim menu

//asi prepsat na allDivs = document.getElementsByTagName('div');
//tohle je hrozne narocny pro vetsi menu

function positionHierMenu(depth, menuCount, menuItemHeight, menuTabTopSpace, topParentName)
{
	mainHcor = 19;
	mainVcor = -1;
	subHcor = -23;
	subVcor = 0;

	itemsPerLevel = 8;
	//debug = true;
	debug = false;

	//menu ktera neexistuji
	var notExists = new Array();

	//projed menu
	for(imenu = 1; imenu <= menuCount; ++imenu)
	{
		if(debug)debugAdd("menu: "+imenu+"<br>");

		//over jestli existuje hlavni menu
		chId = tabBaseName+imenu;
		chEle = getEleId(chId);

		if(chEle)
		{
			if(debug)debugAdd("korenove menu: "+chId+" existuje");

			//napozicovat korenovou tabulku submenu na polozku horniho menu
			chEle.style.display = 'block';
			posByElement(tabBaseName+imenu, topParentName+imenu, mainHcor, mainVcor, 'bottom-left');
			chEle.style.display = 'none';

			if(debug)debugAdd("pozicovat: "+tabBaseName+imenu+" na: "+topParentName+imenu+"<br>");

			depths = new Array();
			//projed urovne
			for(level = 1; level <= depth; ++level)
			{
				//vytvor pole s tolika elementy na kolikatym ses levelu
				var eles = new Array();
				for(n = 1; n <= level; ++n)eles.push(1);

				//if(debug)debugAdd("level: "+level+"<br>");

				//jed tolikrat kolik na dane urovni ma byt celkem elementu
				for(iitem = 1; iitem <= Math.pow(itemsPerLevel, level); ++iitem)
				{
					menuId = '';
					//if(debug)debugAdd(""+imenu+"");

					menuId = menuId + imenu;
					//vypis tolik cisel, na kolikaty ses urovni
					for(n = 0; n < eles.length; ++n)
					{
						//if(debug)debugAdd("-"+eles[n]+"");

						menuId = menuId + "-"+eles[n];
					}

					chEleId = tabBaseName+menuId;

					//over jestli uz nejaky parent uz neni oznacen jako neexistujici
					menuExists = true;

					for(ne = 0; ne < notExists.length; ++ne)
					{
						if(chEleId.search(notExists[ne]) != -1)
						{
							menuExists = false;
						}
						if(debug)debugAdd(chEleId.search(notExists[ne]));
					}

					if(menuExists)
					{

						parentId = '';

						//na co pozicovat
						//if(debug)debugAdd(" - pozicovat na: ");
						//if(debug)debugAdd(""+imenu+"");

						parentId = parentId + imenu;
						for(n = 0; n < eles.length - 1; ++n)
						{
							//if(debug)debugAdd("-"+eles[n]+"");

							parentId = parentId + "-"+eles[n];
						}

						//if(debug)debugAdd("<br>");

						//pozicovat
						//na prvni urovni pozicovat na hlavni menu
						//if(level == 1)parentId = topParentName+imenu;
						//else if(debug)debugAdd("neni prvni level<br>");

						pEleId = tabBaseName+parentId;

						chEle = getEleId(chEleId);
						pEle = getEleId(pEleId);

						if(debug)debugAdd('element: '+chEleId+" ");

						if(chEle && pEle)
						{
							if(debug)debugAdd('existuje<br>');

							if(debug)debugAdd("pozicovat: "+chEleId+" na "+pEleId+"<br>");
							pEle.style.visibility = 'hidden';
							chEle.style.visibility = 'hidden';

							pEle.style.display = 'block';
							chEle.style.display = 'block';
							//menu existuje napozicuj ho

							posByElement(chEleId, pEleId, subHcor, ((menuItemHeight * (eles[eles.length - 1] - 1)) + menuTabTopSpace) - subVcor, 'top-right');
							pEle.style.display = 'none';
							chEle.style.display = 'none';

							pEle.style.visibility = 'visible';
							chEle.style.visibility = 'visible';
						}
						else
						{
							if(debug)debugAdd('neexistuje<br>');
							/*
							//menu neexistuje - ukonci tuhle uroven

							//sniz pocet cyklu po ktery se to bude provadet
							moveForward = ((itemsPerLevel) - eles[eles.length - 1]);
							iitem = iitem + moveForward;
							if(debug)debugAdd('posun dopredu o: '+moveForward+"<br>");

							//zvys promenout tak aby se prehodila uroven
							eles[eles.length - 1] = eles[eles.length - 1] + moveForward;
							//if(debug)debugAdd(eles[eles.length - 1]+" = "+(itemsPerLevel - 1)+"<br>");
							*/
							notExists.push(chEleId);
						}

						++eles[eles.length - 1];

						//!!! jakmele jakakoliv polozka eles dosahne hodnoty itemsPerLevel tak se snuluje a predchozi se zvysi o 1 !!!
						for(e = eles.length - 1; e >= 0; --e)
						{
							if(eles[e] >= itemsPerLevel + 1)
							{
								eles[e] = 1;
								++eles[e - 1];
							}
						}
						if(debug)debugAdd("<br>");
					}
				}
			}
			if(debug)debugAdd("<br>");
		}
		else
		{
			if(debug)debugAdd("korenove menu: "+chId+" neexistuje");
		}
	}
}

function positionSimpleMenu()
{
	i = 1;
	menuTab = true;

	while(menuTab)
	{
		tabId = tabBaseName+i;

		menuTab = getEleId(tabId);
		if(menuTab)
		{
			posByElement(tabId, 'menu-item-'+i, 0, 0, 'bottom-left');
		}

		++i;
	}
}

function mainMenuOn(submenuId)
{
	hideAllHierMenus();
	show(submenuId);
	menuOn = true;
}

function mainMenuOff()
{
	menuOn = false;
	window.setTimeout('hideHierMenus()', menuTimeOut);
}

function menuTabOn()
{
	menuOn = true;
}

function menuTabOff()
{
	menuOn = false;
	window.setTimeout('hideHierMenus()', menuTimeOut);
}

function menuLineOn(submenuId, tabId)
{
	hideHierMenusExcept(tabId);
	menuOn = true;
	show(submenuId);
}

function menuLineOff()
{
	menuOn = false;
	window.setTimeout('hideHierMenus()', menuTimeOut);
}

function hideMenus()
{
	if(!menuOn)
	{
		i = 1;
		menuTab = true;

		while(menuTab)
		{
			tabId = tabBaseName+i;
			menuTab = getEleId(tabId);
			if(menuTab)
			{
				hide(tabId);
			}
			++i;
		}
	}
}

function hideHierMenus()
{
	if(!menuOn)
	{
		allDivs = document.getElementsByTagName('div');
		for(x = 0; x < allDivs.length; ++x)
		{
			eleId = allDivs.item(x).id

			if(eleId && (eleId.substring(0, tabBaseName.length) == tabBaseName))setEleProp(eleId, 'style.display', 'none');
		}
	}
}

function hideHierMenusExcept(exceptMenu)
{
	allDivs = document.getElementsByTagName('div');
	for(x = 0; x < allDivs.length; ++x)
	{
		eleId = allDivs.item(x).id
		//kdyz je to menu
		if(eleId && (eleId.substring(0, tabBaseName.length) == tabBaseName))
		{
			//a neni ve stromu
			if(eleId && (exceptMenu.search(eleId) != 0))setEleProp(eleId, 'style.display', 'none');
		}
	}

}

function hideAllMenus()
{
	menuOn = false;
	hideMenus();
}

function hideAllHierMenus()
{
	menuOn = false;
	hideHierMenus();
}