function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [ curleft, curtop ];
}

function set_focus() {
	if (focused_item) {
		var _item = document.getElementById(focused_item);
		if (_item) {
			_item.focus();
			document.body.scrollTop = findPos(_item)[1] - focused_delta;
		}
	}
}

function set_visible(item_id) {
	var _item = document.getElementById('div_' + item_id);
	if (_item) {
		_item.style.overflow = 'visible';
		_item.style.width = 'auto';
		_item.style.height = 'auto';
	}
	var _item = document.getElementById(item_id);
	if (_item) {
		_item.style.position = 'static';
		_item.style.visibility = '';
		_item.style.width = 'auto';
		_item.style.height = 'auto';
	}
}

function set_hidden(item_id) {
	var _item = document.getElementById(item_id);
	if (_item) {
		_item.style.visibility = 'hidden';
		_item.style.position = 'absolute';
		_item.style.width = '0px';
		_item.style.height = '0px';
	}
	var _item = document.getElementById('div_' + item_id);
	if (_item) {
		_item.style.overflow = 'hidden';
		_item.style.width = '0px';
		_item.style.height = '0px';
	}
}

function addRow(table, attribs, index) {
	var _table = document.getElementById(table);
	if (_table) {
		if (index < 0)
			index = _table.rows.length + 1 + index;
		var _row = _table.insertRow(index);
		if (attribs['class']) {
			if ((table_row_counter[table] & 1 == 1)) {
				attribs['class'] = attribs['class'].replace(/____evenodd____/,
						'_odd');
			} else {
				attribs['class'] = attribs['class'].replace(/____evenodd____/,
						'_even');
			}
		}
		_row.className = attribs['class'];
		for ( var _attrib_name in attribs)
			_row.setAttribute(_attrib_name, attribs[_attrib_name]);
		return _row;
	}
	return null;
}
function addCell(row, attribs, text, data_counter, counters) {
	var _cell = row.insertCell(-1);
	for ( var _attrib_name in attribs) {
		if (_attrib_name == 'colspan') {
			_cell.colSpan = attribs[_attrib_name];
		} else if (_attrib_name == 'rowspan') {
			_cell.rowSpan = attribs[_attrib_name];
		} else
			_cell.setAttribute(_attrib_name, attribs[_attrib_name]);
	}
	text = text.replace(/____data_counter____/g, data_counter);
	for (_counter_name in counters) {
		_regexp = new RegExp(_counter_name, 'g');
		text = text.replace(_regexp, counters[_counter_name]);
	}
	_cell.innerHTML = text;
}

function increaseCounters(counters) {
	for (_counter_name in counters) {
		counters[_counter_name]++;
	}

	return counters;
}

var table_row_counter = new Array();
var table_counters = new Array();

var sActualBrowserItemId = null;

function najdiSoubor(sItemId, sType, sDirectory) {
	sActualBrowserItemId = sItemId;
	if (sType)
		sType = '&Type=' + sType;
	else
		sType = '';

	window
			.open(
					'thirdparty/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=../../connectors/php/connector.php'
							+ sType + '&CurrentFolder=' + sDirectory,
					'FileBrowseWindow', 'width=800,height=600');
}

function SetUrl(url, width, height, alt) {
	var item = document.getElementById(sActualBrowserItemId);
	if (item)
		item.value = url;
	sActualBrowserItemId = null;
}

var events = new Array();

function array_keys(pole) {
	var _res = new Array();
	for ( var _key in pole)
		_res[_res.length] = _key;
	return _res;
}

function array_indexOf(pole, hodnota) {
	var _res = -1;
	var _i = 0;
	for ( var _key in pole) {
		if (pole[_key] == hodnota) {
			_res = _i;
			break;
		}
		_i++;
	}
	return _res;
}

function tabsheetEventFunction(parameter) {
	if (parameter && this.sheets) {
		if (parameter == '__next__') {
			var _values = array_keys(this.sheets);
			var i = array_indexOf(_values, this.current_value);
			parameter = i + 1 < _values.length ? _values[i + 1] : _values[0];
		}

		_current_sheet = document
				.getElementById(this.sheets[this.current_value]);
		_new_sheet = document.getElementById(this.sheets[parameter]);

		if (_current_sheet && _new_sheet) {
			set_hidden(this.sheets[this.current_value]);
			set_visible(this.sheets[parameter]);
			this.current_value = parameter;
		}
	}
}

function tabsheetEvent(sheets, current_value) {
	this.sheets = sheets;
	this.current_value = current_value;
	this.run = tabsheetEventFunction
}

function add_event(event_name, event) {
	if (events[event_name]) {
		alert('Event "' + event_name + '" is already defined.');
	} else {
		events[event_name] = event;
	}
}

function trigger_event(event_name, parameters) {
	if (events[event_name]) {
		var _event = events[event_name];
		if (_event.run) {
			_event.run(parameters);
		}
	}
}

function submit_form(form_id) {
	_form = document.getElementById(form_id);
	if (_form) {
		_form.submit();
	}
}

function click_link(link_id) {
	_link = document.getElementById(link_id);
	if (_link) {
		_link.click();
	}
}

function setError(item_id, error_text, item_class) {
	// najdeme input prvek a zmenime mu class na errorovou
	var _item = document.getElementById(item_id);
	if (_item) {
		// nastavime class
		_item.className = item_class + '_error';
	}
	// najdeme span pro text chyby a nastavime mu vnitrni text
	var _item_error = document.getElementById(item_id + '_error');
	if (_item_error) {
		// nastavime chybu a zobrazime
		_item_error.innerHTML = error_text + '<br/>';
		_item_error.style.display = '';
	}
}

function unsetError(item_id, item_class) {
	// najdeme input prvek a zmenime mu class na errorovou
	var _item = document.getElementById(item_id);
	if (_item) {
		// nastavime class
		_item.className = item_class;
	}
	// najdeme span pro text chyby a nastavime vymazeme vnitrni text
	var _item_error = document.getElementById(item_id + '_error');
	if (_item_error) {
		// zrusime chybu a schovame
		_item_error.innerHTML = '';
		_item_error.style.display = 'none';
	}
}

function updateDOM(inputField) {
	// if the inputField ID string has been passed in, get the inputField object
	if (typeof inputField == "string") {
		inputField = document.getElementById(inputField);
	}

	if (inputField.type == "select-one") {
		for ( var i = 0; i < inputField.options.length; i++) {
			if (i == inputField.selectedIndex) {
				inputField.options[inputField.selectedIndex].setAttribute(
						"selected", "selected");
			}
		}
	} else if (inputField.type == "select-multiple") {
		for ( var i = 0; i < inputField.options.length; i++) {
			if (inputField.options[i].selected) {
				inputField.options[i].setAttribute("selected", "selected");
			} else {
				inputField.options[i].removeAttribute("selected");
			}
		}
	} else if (inputField.type == "text") {
		inputField.setAttribute("value", inputField.value);
	} else if (inputField.type == "textarea") {
		inputField.setAttribute("value", inputField.value);
		inputField.innerHTML = inputField.value;
	} else if (inputField.type == "checkbox") {
		if (inputField.checked) {
			inputField.setAttribute("checked", "checked");
		} else {
			inputField.removeAttribute("checked");
		}
	} else if (inputField.type == "radio") {
		var radioNames = document.getElementsByName(inputField.name);
		for ( var i = 0; i < radioNames.length; i++) {
			if (radioNames[i].checked) {
				radioNames[i].setAttribute("checked", "checked");
			} else {
				radioNames[i].removeAttribute("checked");
			}
		}
	}
}

function checkAll(element){
	// zkontrolujeme jestli mame checkbox
	if (element.type=='checkbox')
	{
		element.checked = true;
	}
	else if (element.elements)
	{
		// projdeme vsechny podelementy
		for (var i=0;i<element.elements.length;i++)
		{
			checkAll (element.elements[i]);			
		}
	}	
}

function showOverLayInTheMiddle (overlay)
{

	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

}
