function show_hide(elementId) {
	var el = document.getElementById(elementId);

	var i = el.className.indexOf('invisible');
	if (i >= 0)
		el.className = el.className.substring(0, i)
			+ 'visible'
			+ el.className.substring(i + 9);
	else {
		i = el.className.indexOf('visible');
		if (i >= 0) {
			el.className = el.className.substring(0, i)
				+ 'invisible'
				+ el.className.substring(i + 7);
		}
		else
			el.className += (el.className == '' ? '' : ' ') + 'invisible';
	}
}

function plus_minus(elId)
{
	var el = document.getElementById(elId);
	var i, j, k, tag, curVal, newVal;
	for (i = 0, j = 0; i < el.childNodes.length; i++) {
		if (el.childNodes.item(i).nodeName != 'TD')
			continue;
		if (j == 0) {
			for (k = 0; k < el.childNodes.item(i).childNodes.length; k++) {
				tag = el.childNodes.item(i).childNodes.item(k);
				if (tag.nodeName == 'A') {
					curVal = tag.innerHTML;
					tag.innerHTML = newVal = (curVal == '-') ? '+' : '-';
					break;
				}
			}
		}
	}
	for (i = 0; i < el.parentNode.childNodes.length; i++) {
		if (el.parentNode.childNodes.item(i) == el) {
			for (j = i + 1; j < el.parentNode.childNodes.length; j++) {
				tag = el.parentNode.childNodes.item(j);
				if (tag.nodeName == 'TR') {
					tag.className = tag.className == 'tr-invisible' ? 'tr-visible' : 'tr-invisible';
					return;
				}
			}
		}
	}
}

function replace_class(element, from_class, to_class)
{
	if (typeof(element) == 'string') {
		element = document.getElementById(element);
	}
	var new_class = element.className;
	if (new_class == undefined || new_class == ''
			|| new_class == from_class || new_class == to_class) {
		new_class = to_class;
	} else {
		new_class = new_class.replace(from_class, to_class);
	}
	element.className = new_class;
}

function calendar_show_event(elementId)
{
	var i;
	var ch, el = document.getElementById(elementId);
	if (el) {
		for (i = 0; i < el.parentNode.childNodes.length; i++) {
			ch = el.parentNode.childNodes.item(i);
			if (ch != el && ch.className != undefined
					&& ch.className.indexOf("calendar-detail") != -1)
				hide(ch);
		}
		show(elementId);
	}
}

function input_clean(elId)
{
	var el = document.getElementById(elId);
	var i;
	if (typeof(modifiedInputs) == 'undefined') {
		modifiedInputs = [];
		modifiedInputValues = [];
	}
	for (i = 0; i < modifiedInputs.length; i++)
		if (modifiedInputs[i] == elId)
			break;
	if (modifiedInputValues[i] == undefined || el.value == modifiedInputValues[i]) {
		modifiedInputs[i] = elId;
		modifiedInputValues[i] = el.value;
		el.value = '';
	}
}

function input_revert(elId)
{
	var el = document.getElementById(elId);
	if (el.value == '' && typeof(modifiedInputs) != 'undefined') { var i;
		for (i = 0; i < modifiedInputs.length; i++)
			if (modifiedInputs[i] == elId)
				break;
		if (i < modifiedInputs.length)
			el.value = modifiedInputValues[i];
	}
}

function rel_external()
{
	var el = arguments[0];
	if (typeof(el) == 'undefined')
		el = document.body;
	if (el.getAttribute != undefined)
		if (el.getAttribute('rel') == 'external')
			el.setAttribute('target', '_blank');
	var i;
	if (el.childNodes)
		for (i = 0; i < el.childNodes.length; i++)
			rel_external(el.childNodes.item(i));
}

function getWindowHeight()
{
	return window.innerHeight != undefined
		? window.innerHeight : document.body.clientHeight;
}

function getWindowWidth()
{
	return window.innerWidth != undefined
		? window.innerWidth : document.body.clientWidth;
}

function show_lightbox(element, width, height)
{
	var body = document.getElementsByTagName('body')[0];
	var overlay;
	if ((overlay = document.getElementById('overlay')) == null) {
		overlay = document.createElement('div');
		overlay.setAttribute(
			'style',
			'position: fixed; top: 0; left: 0; '
			+ 'width: ' + getWindowWidth() + 'px; '
			+ 'height: ' + getWindowHeight() + 'px; '
			+ 'z-index: 10; background: #092966; opacity: 0.8'
		);
		overlay.setAttribute('id', 'overlay');
		body.appendChild(overlay);
	}
	replace_class(overlay, 'invisible', 'visible');
	var lightbox = typeof(element) == 'string'
		? document.getElementById(element) : element;
	replace_class(lightbox, 'invisible', 'visible');
	var topIndent = (getWindowHeight() - height) / 2;
	topIndent = topIndent > 0 ? topIndent : 0;
	var leftIndent = (getWindowWidth() - width) / 2;
	leftIndent = leftIndent > 0 ? leftIndent : 0;
	lightbox.setAttribute(
		'style',
		'position: fixed; '
		+ 'top: ' + topIndent + 'px; '
		+ 'left: ' + ((getWindowWidth() - width) / 2) + 'px; '
		+ 'z-index: 11;'
	);
}

function show_flash_maximized()
{
	if (navigator.appName == 'Microsoft Internet Explorer') {
		return true;
	}
	var width = 800, height = 677;
	var padding_x = 90, padding_y = 10;
	var margin_x = 20, margin_y = 20;
	var ratio_x = (getWindowWidth() - padding_x - margin_x) / width;
	var ratio_y = (getWindowHeight() - padding_y - margin_x) / height;
	var ratio = ratio_x < ratio_y ? ratio_x : ratio_y;
	var new_width = width * ratio;
	var new_height = height * ratio;
	var element = document.getElementById('vanocni_flash');
	setAttributeRecursive(element, 'width', new_width);
	setAttributeRecursive(element, 'height', new_height);
	element.style.width = new_width + padding_x;
	element.style.height = new_height + padding_y;
	show_lightbox(element, new_width + padding_x, new_height + padding_y);
  return false;
}

function setAttributeRecursive(element, attribute, value)
{
	if (element.getAttribute != undefined
			&& element.getAttribute(attribute) != undefined) {
		element.setAttribute(attribute, value);
	}
	if (element.childNodes) {
		for (var i = 0; i < element.childNodes.length; i++) {
			setAttributeRecursive(element.childNodes[i], attribute, value);
		}
	}
}

function hide_lightbox(element_id)
{
	var overlay = document.getElementById('overlay');
	replace_class(overlay, 'visible', 'invisible');
	var lightbox = document.getElementById(element_id);
	replace_class(lightbox, 'visible', 'invisible');
}

