// JavaScript Document

var galleryImageIdx = -1;
var galleryImages = null;
var galleryTitles = null;
var galleryControlsAlpha = 0;
var galleryControlsCurrentAlpha = 0;
var galleryZoomed = false;

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
function showGallery()
{
	var gallery = objGet2(document, 'gallery');
	if (gallery) gallery.innerHTML = '<div id="galleryPrior"></div><div id="galleryNext"></div><div id="galleryTitle"></div><div id="galleryClose" onclick="closeGallery();">Zavřít</div><div id="galleryContainer"><img id="galleryImage" border="0" style="display:none; cursor: default;" /></div>';
	var docparts = new Array(objGet2(document, 'topmenu'), objGet2(document, 'content'), objGet2(document, 'infoColumn'), objGet2(document, 'bottomLinks'), objGet2(document, 'bottomBar'));
	var galleryImage = objGet2(document, 'galleryImage');
	var galleryTitle = objGet2(document, 'galleryTitle');
	if (docparts[0] && docparts[1] && docparts[2] && docparts[3] && docparts[4] && gallery && galleryImage && arguments.length >= 2)
	{
		for (var i = 0; i < docparts.length; i++) docparts[i].style.display = 'none';
		gallery.style.display = 'block';
		document.body.onresize = galleryResized;
		document.body.style.overflow = 'hidden';
		
		var cnt = Math.floor(arguments.length / 2);
		galleryImages = new Array(cnt);
		galleryTitles = new Array(cnt);
		for (var i  = 0; i < cnt; i++) {
			if (document.images)
			{
				galleryImages[i] = new Image();
				galleryImages[i].src = arguments[i * 2 + 1];
			}
			else
				galleryImages[i] = arguments[i * 2 + 1];
			galleryTitles[i] = arguments[i * 2];
		}
		galleryImageIdx = 0;
		galleryControlsAlpha = 0;
		galleryControlsCurrentAlpha = 10;
		galleryImage.onload = galleryImageLoaded;
		galleryImage.onmouseover = galleryShowControls;
		galleryImage.onmouseout = galleryHideControls;
		if (obj = objGet2(document, 'galleryPrior')) { obj.onmouseover = galleryShowControls; obj.onmouseout = galleryHideControls; obj.onclick = galleryPrior; }
		if (obj = objGet2(document, 'galleryNext')) { obj.onmouseover = galleryShowControls; obj.onmouseout = galleryHideControls; obj.onclick = galleryNext; }
		galleryImage.src = (galleryImages[galleryImageIdx].src ? galleryImages[galleryImageIdx].src : galleryImages[galleryImageIdx]);
		if (galleryTitle) galleryTitle.innerHTML = galleryTitles[galleryImageIdx];
		galleryResized();
	}
}
function closeGallery()
{
	var docparts = new Array(objGet2(document, 'topmenu'), objGet2(document, 'content'), objGet2(document, 'infoColumn'), objGet2(document, 'bottomLinks'), objGet2(document, 'bottomBar'));
	var gallery = objGet2(document, 'gallery');
	if (docparts[0] && docparts[1] && docparts[2] && docparts[3] && docparts[4] && gallery)
	{
		for (var i = 0; i < docparts.length; i++) docparts[i].style.display = '';
		gallery.style.display = 'none';
		gallery.innerHTML = '';
		galleryImageIdx = -1;
		galleryImages = null;
		galleryTitles = null;
		document.body.onresize = null;
		document.body.style.overflow = 'auto';
	}
}
function galleryResized()
{
	var gallery = objGet2(document, 'gallery');
	if (!gallery || gallery.innerHTML == '') return;
	var galleryPrior = objGet2(document, 'galleryPrior');
	var galleryNext = objGet2(document, 'galleryNext');
	var galleryContainer = objGet2(document, 'galleryContainer');
	var galleryImage = objGet2(document, 'galleryImage');
	var galleryTitle = objGet2(document, 'galleryTitle');
	var galleryClose = objGet2(document, 'galleryClose');
	
	var w = gallery.clientWidth;
	var h = gallery.clientHeight;
	var bWidth = 32;
	var bHeight = 108;
	var lMargin = rMargin = 40; var tMargin = 40; var bMargin = 8;
	var minW = Math.round(210 * 1.5);
	var minH = Math.round(297 * 1.5);
	// natural picture size
	var nWidth = Math.max(minW, w - lMargin - rMargin);
	var nHeight = Math.max(minH, h - tMargin - bMargin);
	if (galleryImages && galleryImageIdx >= 0 && galleryImageIdx < galleryImages.length && galleryImages[galleryImageIdx].width && galleryImages[galleryImageIdx].height)
	{
		nWidth = galleryImages[galleryImageIdx].width;
		nHeight = galleryImages[galleryImageIdx].height;
	}
	else if (galleryImage && galleryImage.style.display != 'none' && galleryImage.src)
	{
		if (galleryImage.naturalWidth && galleryImage.naturalHeight)
		{
			nWidth = galleryImage.naturalWidth;
			nHeight = galleryImage.naturalHeight;
		}
		else if (galleryImage.clientWidth && galleryImage.clientHeight)
		{
			nWidth = galleryImage.clientWidth;
			nHeight = galleryImage.clientHeight;
		}
	}
	var cX = Math.max(1, nWidth / (w > (lMargin + rMargin + minW) ? (w - (lMargin + rMargin)) : minW));
	var cY = galleryZoomed ? cX : Math.max(1, nHeight / (h > (tMargin + bMargin + minH) ? (h - (tMargin + bMargin)) : minH));
	var c = Math.max(1, Math.max(cX, cY));
	var iWidth = Math.round(nWidth / c);
	var iHeight = Math.round(nHeight / c);
	var maxH = Math.min(Math.max(h - tMargin - bMargin, bHeight), iHeight);
	cX = Math.round(lMargin + (w - lMargin - rMargin - iWidth) / 2);
	cY = Math.round(tMargin + Math.max(0, h - tMargin - bMargin - maxH) / 2);
	var canZoom = (c != 1) || (iHeight != maxH);
	
	if (gallery && galleryPrior)
	{
		galleryPrior.style.left = (cX - bWidth).toString() + "px";
		galleryPrior.style.top = Math.round(cY + (maxH - bHeight) / 2).toString() + "px";
		galleryPrior.style.display = galleryImageIdx > 0 ? '' : 'none';
		galleryPrior.style.backgroundPositionX = (-(10-galleryControlsCurrentAlpha) * 32).toString() + "px";
	}
	if (gallery && galleryNext)
	{
		galleryNext.style.left = (cX + iWidth).toString() + "px";
		galleryNext.style.top = Math.round(cY + (maxH - bHeight) / 2).toString() + "px";
		galleryNext.style.display = galleryImageIdx < (galleryImages ? galleryImages.length - 1 : 0) ? '' : 'none';
		galleryNext.style.backgroundPositionX = (-(10-galleryControlsCurrentAlpha) * 32).toString() + "px";
	}
	if (gallery && galleryClose)
	{
		galleryClose.style.left = (cX + iWidth - galleryClose.clientWidth).toString() + "px";
		galleryClose.style.top = (cY - 20).toString() + "px";
	}
	if (gallery && galleryTitle)
	{
		galleryTitle.style.left = cX.toString() + "px";
		galleryTitle.style.top = (cY - 20).toString() + "px";
	}
	if (gallery && galleryContainer)
	{
		galleryContainer.style.left = cX.toString() + "px";
		galleryContainer.style.top = cY.toString() + "px";
		galleryContainer.style.width = iWidth.toString() + "px";
		galleryContainer.style.height = Math.min(iHeight, maxH).toString() + "px";
		if (maxH < iHeight && iWidth)
		{
			c = iHeight / iWidth;
			iWidth = iWidth - 20;
			iHeight = iWidth * c;
		}
	}
	if (gallery && galleryImage)
	{
		galleryImage.style.width = iWidth.toString() + "px";
		galleryImage.style.height = iHeight.toString() + "px";
		var cursor = (canZoom ? (galleryZoomed ? 'url(images/zoom_out.cur)' : 'url(images/zoom_in.cur)') : 'default');
		if (galleryImage.style.cursor != cursor) galleryImage.style.cursor = cursor;
		if (canZoom && !galleryImage.onclick) galleryImage.onclick = galleryZoom;
		else if (!canZoom && galleryImage.onclick) galleryImage.onclick = null;
	}
	if (galleryControlsCurrentAlpha != galleryControlsAlpha)
	{
		if (galleryControlsCurrentAlpha < galleryControlsAlpha) galleryControlsCurrentAlpha++;
		if (galleryControlsCurrentAlpha > galleryControlsAlpha) galleryControlsCurrentAlpha--;
		window.setTimeout('galleryResized();', 10);
	}
}
function galleryImageLoaded()
{
	var galleryImage = objGet2(document, 'galleryImage');
	galleryImage.style.display = '';
	galleryResized();
}
function galleryShowControls()
{
	galleryControlsAlpha = 10;
	galleryResized();
}
function galleryHideControls()
{
	galleryControlsAlpha = 0;
	galleryResized();
}
function galleryPrior()
{
	var galleryImage = objGet2(document, 'galleryImage');
	var galleryTitle = objGet2(document, 'galleryTitle');
	if (galleryImage && galleryImages && galleryImageIdx > 0)
	{
		galleryImageIdx--;
		galleryImage.src = (galleryImages[galleryImageIdx].src ? galleryImages[galleryImageIdx].src : galleryImages[galleryImageIdx]);
		if (galleryTitle) galleryTitle.innerHTML = galleryTitles[galleryImageIdx];
		galleryResized();
	}
}
function galleryNext()
{
	var galleryImage = objGet2(document, 'galleryImage');
	var galleryTitle = objGet2(document, 'galleryTitle');
	if (galleryImage && galleryImages && galleryImageIdx < galleryImages.length - 1)
	{
		galleryImageIdx++;
		galleryImage.src = (galleryImages[galleryImageIdx].src ? galleryImages[galleryImageIdx].src : galleryImages[galleryImageIdx]);
		if (galleryTitle) galleryTitle.innerHTML = galleryTitles[galleryImageIdx];
		galleryResized();
	}
}
function galleryZoom()
{
	galleryZoomed = !galleryZoomed;
	galleryResized();
}
