function ShowTooltip(text, event) {
	if (!event) {
		event = window.event;
	}

	m_tooltip = document.getElementById('tooltip');
	m_tooltip.innerHTML = text;
	x = event.clientX + document.documentElement.scrollLeft;
	y = event.clientY + getScrollY() + 10;

	m_tooltip.style.left = x + 'px';
	m_tooltip.style.top = y + 'px';
	m_tooltip.style.display = "block";
}

function getXPosition(event){
	return event.clientX + document.documentElement.scrollLeft;;
}

function getYPosition(event){
	return event.clientY + getScrollY() + 10;
}


function HideTooltip() {
	m_tooltip = document.getElementById('tooltip');
	m_tooltip.style.display = "none";
}

/**
 * Nastavi inputhidden urcujuci, podla coho sa bude robit sortovanie
 */
function setSortBy(idSortBy, invoker) {
	var formElement = getFormOfElement(invoker);
	getElementForForm('searchCriteria.sortBy', formElement).value=idSortBy;
}

/**
 * Nastavá aktualnu stranku paginatora
 */
function setPaginatorPage(pageId, invoker) {
	var formElement = getFormOfElement(invoker);
	getElementForForm('paginator.actual_page', formElement).value=pageId.substring(15); ;
}

function getElementForForm(elementName, formElement){
	try{
		var inputs = formElement.getElements(formElement);
		for(i=0;i<inputs.length;i++){
			if(inputs[i] != null && inputs[i].id==elementName){
				return inputs[i];
			}
		}
	}
	catch(e){
		//ie6 - form nepodporuje metódu getElements
		return document.getElementById(elementName);
	}
}

/**
 * Nastaví do inputhiddenu id záznamu, ktoré sa bude upravovať
 */
function setRowToEdit(rowId) {
	var rowToEditInputHidden = document.getElementById('rowToEdit');
	rowToEditInputHidden.value = rowId;
}

/**
 * Submitne formulár po zmene rowsOnPage
 */
function changeRowsOnPage(formToSubmit) {
	setPaginatorPage('paginator_page_0', formToSubmit);
	observeAjaxRequestWithButtonId(formToSubmit, '_eventId_set_datatable');
	createButtonAndSubmit('_eventId_set_datatable', formToSubmit);
}

function addLinkToTinyMCE(link, popiska) {
	var buttonText = '<a href="' + link + '">' + popiska + '<a/>';
	addTextToTinyMCE(buttonText);
}

/**
 * Vloží link z insertLink okna do tinyMCE editora.
 */
function insertSluzbaLinkIntoPage() {
	addLinkToTinyMCE(
			'/sluzby/' + document.getElementById('insert_link_sluzba').value,
			document.getElementById('insert_link_popiska').value);
	document.getElementById('closeImage' + insertSluzbaLinkDivId).onclick();

	document.getElementById('dhtml_goodies_id' + insertSluzbaLinkDivId).innerHTML = '';
	return false;
}

/**
 * Vloží link z insertLink okna do tinyMCE editora.
 */
function insertSkupinaSluziebLinkIntoPage() {
	var select = document.getElementById('insert_link_skupina_sluzieb');
	var label = select.options[select.selectedIndex].innerHTML;

	addLinkToTinyMCE('/skupiny_sluzieb/' + document
			.getElementById('insert_link_skupina_sluzieb').value, label);
	document.getElementById('closeImage' + insertTimLinkDivId).onclick();

	document.getElementById('dhtml_goodies_id' + insertTimLinkDivId).innerHTML = '';
	return false;
}

/**
 * Vloží link na vlastnú stránku z insertCustomPageLink okna do tinyMCE editora.
 */
function insertCustomPageLinkIntoPage() {
	addLinkToTinyMCE('/pages/' + document
			.getElementById('insert_custom_page_link').value, document
			.getElementById('insert_custom_page_link').options[document
			.getElementById('insert_custom_page_link').selectedIndex].innerHTML);
	document.getElementById('closeImage' + insertCustomPageLinkDivId).onclick();

	document.getElementById('dhtml_goodies_id' + insertCustomPageLinkDivId).innerHTML = '';
	return false;
}

function initMenu() {
	var menuOtvorenaPolozkaInputHidden = document
			.getElementById('otvorenaPolozkaMenu');
	if (menuOtvorenaPolozkaInputHidden.value != '') {
		openSubMenuWithoutSave(menuOtvorenaPolozkaInputHidden.value);
	}
}

function openSubMenuWithoutSave(polozkaMenuId) {
	if(polozkaMenuId.lastIndexOf('.')!=-1){
		openSubMenuWithoutSave(polozkaMenuId.substring(0, polozkaMenuId.lastIndexOf('.')));
	}
	
	var polozkaMenu = document.getElementById(polozkaMenuId);
	if (polozkaMenu != null) {
		polozkaMenu.className = "menu_skupina_opened";
		var divSubMenu = document.getElementById(polozkaMenuId + "_submenu");
		divSubMenu.style.display = "block";

		polozkaMenu.onclick = function(polozkaMenu) {
			return closeSubMenu(polozkaMenuId);
		}
	}
}

/**
 * Zatvorí danú položku menu
 */
function openSubMenu(polozkaMenuId) {
	if (polozkaMenuId != null) {
		openSubMenuWithoutSave(polozkaMenuId);
	}
	
	var polozkaMenu = document.getElementById(polozkaMenuId);
	
	var menuOtvorenaPolozkaInputHidden = document
			.getElementById('otvorenaPolozkaMenu');
	menuOtvorenaPolozkaInputHidden.value = polozkaMenuId;
	
	var formElement = getFormOfElement(menuOtvorenaPolozkaInputHidden);
	if(formElement == null){
		return false;
	}

	observeAjaxRequest(menuOtvorenaPolozkaInputHidden);
	menuOtvorenaPolozkaInputHidden.click();
	ajaxRequestStopped();
	return false;
}

/**
 * Otvorí danú položku menu
 */
function closeSubMenu(polozkaMenuId) {
	var polozkaMenu = document.getElementById(polozkaMenuId);
	polozkaMenu.className = "menu_skupina_closed";
	var divSubMenu = document.getElementById(polozkaMenuId + "_submenu");
	divSubMenu.style.display = "none";

	polozkaMenu.onclick = function(polozkaMenu) {
		return openSubMenu(polozkaMenuId);
	}

	var menuOtvorenaPolozkaInputHidden = document
			.getElementById('otvorenaPolozkaMenu');
	menuOtvorenaPolozkaInputHidden.value = '';

	var formElement = getFormOfElement(menuOtvorenaPolozkaInputHidden);
	if(formElement == null){
		return false;
	}
	
	observeAjaxRequest(menuOtvorenaPolozkaInputHidden);
	menuOtvorenaPolozkaInputHidden.click();
	ajaxRequestStopped();

	return false;
}

function wait(timeToWait) {
	var date = new Date();

	while ((new Date()) - date < timeToWait) {
		;
	}
}

/*
 * Funkcia sa používa v komponente s dvomi listami, v ktorej prehadzujem z
 * jedného listu do druhého. list1 - pridane_sluzby list2 - nepridane_sluzby
 * addOneItem - addOneSluzbaToList
 */
function moveFromOneListToAnother(list1, list2, addOneItem) {
	var pridane = document.getElementById(list1);
	if (pridane != null && pridane.options != null) {
		for (i = 0; i < pridane.options.length; i++) {
			pridane.options[i].selected = false;
		}
	}

	var selectedCount = 0;
	var selected = 0;
	var nepridane = document.getElementById(list2);
	for (i = 0; i < nepridane.options.length; i++) {
		if (nepridane.options[i].selected) {
			selectedCount++;
			selected = nepridane.options[i].value;
		}
	}
	if (selectedCount == 1) {
		addOneItemToList = document.getElementById(addOneItem);
		addOneItemToList.value = selected;
	}

	refreshPageWithAjax(nepridane);
}


/**
 * Vykoná udalosť po stlačení klávesi.
 * Odkazuje na ňu funkcia spustiHotkey.
 */
function handleKeyPressed(e) {
	if (e.keyCode == 13) { // enter
		var searchHref = document.getElementById("_eventId_search");
		observeAjaxRequest(searchHref); 
		createButtonAndSubmit('_eventId_search', searchHref);
		return false;
	}
}

function validateHourValue(input){
	var toValidate = input.value;
	var toReturn = '';
	for(i=0;i<toValidate.length;i++){
		if(toValidate.charAt(i) >= '0' && toValidate.charAt(i) <= '9'){
			toReturn+=toValidate.charAt(i);
		}
	}

	if(toReturn == ''){
		toReturn = 0;
	}
	
	toReturn = parseInt(toReturn);
	if(toReturn>23 || toReturn < 0){
		toReturn = 0;
	}
	
	input.value=toReturn; 
}

function validateMinuteValue(input){
	var toValidate = input.value;
	var toReturn = '';
	for(i=0;i<toValidate.length;i++){
		if(toValidate.charAt(i) >= '0' && toValidate.charAt(i) <= '9'){
			toReturn+=toValidate.charAt(i);
		}
	}

	if(toReturn == ''){
		toReturn = 0;
	}
	
	toReturn = parseInt(toReturn);
	if(toReturn>59 || toReturn < 0){
		toReturn = 0;
	}
	
	input.value=toReturn; 
}

String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "")
};
