// obecne funkce
function kp(e, value) {
	if (! document.all) return;				//pouze pro IE
	if (e.keyCode == 13) {
		e.keyCode = 0; 
		if (value != e.srcElement.value) __doPostBack(e.srcElement.id, '');
	}
}

function ProcessCommand(commandName) {
	if (commandName == null) return;
	var txtProcessCommand = document.getElementById('txtProcessCommand');
	txtProcessCommand.value = commandName;
	__doPostBack('cmdProcessCommand', commandName);
}

function MenuOver(source) {
    if (typeof(apptype) == 'undefined' || apptype != 2) {
        source.style.backgroundColor = '#FFFFFF';        
    }
    else{
        source.style.backgroundColor = '#F0F8FC';
    }	
	source.style.border = '1px solid #8AB6CC';
}

function MenuOut(source) {
    if (typeof(apptype) == 'undefined' || apptype != 2) {
        source.style.backgroundColor = '#E0F0F9';
        source.style.border = '1px solid #E0F0F9';
    }
    else {
        source.style.backgroundColor = '#FFFFFF';
        source.style.border = '1px solid #FFFFFF';
    }
}

// stisk klavesy - vyber polozky z menu
document.onkeypress = DocKeyPress;
			
function DocKeyPress(e) {
	var key = Helper.UI.getKey(e);
	if ((49 > key) || (key > 57)) {return true;}
	return !MenuClick(key - 49);
}

// pomocna promenna indikujici, zda se ma provest smazani menu
var execClearMenu = true;
var constResetMenuItem = '____________________';

// smazani polozek menu po ztrate aktivity u prvku, ktery zpusobil zobrazeni menu
function ClearMenuOnBlur() {
	if (navigator.userAgent.toLowerCase().indexOf('opera') != -1) {return;}
	if (execClearMenu) {ClearMenu();} else {execClearMenu = true;}
}

// smazani polozek menu
function ClearMenu() {
	for(var count = 0; count < 9; count++) {
		var oPosition = document.getElementById('Pos' + count);
		MenuOut(oPosition);
		oPosition.style.visibility = 'hidden';
		oPosition.style.cursor = '';
		oPosition.innerHTML = '&nbsp;';
	}
	var oPosition9 = document.getElementById('Pos9');
	oPosition9.style.visibility = 'hidden';
	oPosition9.style.cursor = '';
	selType = null;
	return true;
}

// zobrazeni menu
function ShowMenu(sID, sType) {
	ClearMenu();
	lastLevel = sID;
	selType = sType;
	
	var oMenuTable = document.getElementById('MenuTable');
	oMenuTable.style.visibility = 'visible';
	var allItemsEmpty = true;
	
	for(var count = 0; count < 9; count++) {
		var s = selType
		if (sID != 0) s += sID;
		var menuItem = GetMenuItem(selType, s, count);
		var oPosition = document.getElementById('Pos' + count);
		if (menuItem != null) {	
			if (menuItem[2] != '') {
				if (document.all) oPosition.style.cursor = 'hand'; else oPosition.style.cursor = 'pointer';
				oPosition.innerHTML = '&nbsp;' + (count + 1) + '. ' + menuItem[2];
				oPosition.style.visibility = 'visible';
				allItemsEmpty = false;
			}
		}
	}
	
	var oPosition9 = document.getElementById('Pos9');
	if ((sType == 'Reduc' || sType == 'Surcharge') && allItemsEmpty == false) {
		var oCmd;
		if (sType == 'Reduc') {oCmd = document.getElementById('cmdNTReducType');}
		if (sType == 'Surcharge') {oCmd = document.getElementById('cmdChangeSurcharge');}
		if (oCmd.innerHTML != constResetMenuItem && oCmd.innerHTML != '') {
			oPosition9.style.visibility = 'visible';
			if (document.all) oPosition9.style.cursor = 'hand'; else oPosition9.style.cursor = 'pointer';
		}
	}
	return true;
}

// vynulovani polozky menu
function ResetMenuItem() {
	var oMenuSelectedID = document.getElementById('MenuSelectedID');
	oMenuSelectedID.value = 0; 
	if (selType == 'Reduc') {__doPostBack('lnkNTReduc', '');}
	if (selType == 'Surcharge') {__doPostBack('lnkNTSurcharge', '');}
}

// vyber polozky z menu
function MenuClick(ID) {
	if (!selType) {return false;}
	if (selType == 'Suggester') {return MenuClickSugg(ID);} else {return MenuClickLink(ID);}
}

// vyber polozky z menu
function MenuClickLink(ID) {
	if (selType == 'Suggester') {return false;}
	var s = selType;
	if (lastLevel != 0) s += lastLevel;
	var menuItem = GetMenuItem(selType, s, ID);
	if (menuItem != null) {
		MenuOut(document.getElementById('Pos' + ID));
		if (menuItem[0] != 0) {
			ShowMenu(menuItem[0], selType)
			return true;
		} else {
			if (menuItem[1] != 0) {
				var oHidden = document.getElementById('MenuSelectedID');
				oHidden.value = menuItem[1];
				__doPostBack('lnkNT' + selType, '');
				return true;
			}
		}
	}
	return false;
}

function GetMenuItem(sTypeRoot, sType, ID) {
	var menu = eval(sTypeRoot);
	if (menu == null) return null;
	var menuItem = eval(sType + "[" + ID + "]");
	return menuItem;
}

// vyber polozky z naseptavace
function MenuClickSugg(ID) {
	execClearMenu = false;
	if (selType != 'Suggester') {return false;}
	if (!SuggesterInfo.activeItem || !SuggesterInfo.activeItem.items) {return false;}
	if (ID >= SuggesterInfo.activeItem.items.length) {return false;}
	SuggesterInfo.activeItem.ignoreDataLoad = true;
	if (formName == 'NTVia') {
		SetNTViaStationID(SuggesterInfo.activeItem, SuggesterInfo.activeItem.items[ID]);
	} else {
		SetStationID(SuggesterInfo.activeItem, SuggesterInfo.activeItem.items[ID]);
	}
	return true;
}

// zobrazeni naseptavace (zobrazeni menu s polozkami)
function ShowMenuSuggester(sugg) {
	ClearMenu();
	selType = 'Suggester';
	if (!SuggesterInfo.activeItem) {SuggesterInfo.activeItem = sugg;}	// IE bug (Ctrl + F5 nespusti udalost onfocus)
	if (!SuggesterInfo.activeItem || SuggesterInfo.activeItem.id != sugg.id) {return;}
	if (!sugg.items) {return;}
	
	var oMenuTable = document.getElementById('MenuTable');
	oMenuTable.style.visibility = 'visible';
	
	for (var i = 0; i < 9; i++) {
		var oPosition = document.getElementById('Pos' + i);
		if (i < sugg.items.length) {
			oPosition.style.visibility = 'visible';
			if (document.all) oPosition.style.cursor = 'hand'; else oPosition.style.cursor = 'pointer';
			oPosition.innerHTML = '&nbsp;' + (i + 1) + '. ' + sugg.items[i].value;
		} else {
			oPosition.style.visibility = 'hidden';
			oPosition.style.cursor = '';
			oPosition.innerHTML = '&nbsp;';
		}
	}	
}

// NT.aspx, IT.aspx
// pomocna promenna indikujici odeslani formulare
var formSubmitted = false;

// vyber polozky stanice z naseptavace
function SetStationID(sugg, selectedItem) {
	if (formSubmitted) {return;} else {formSubmitted = true;}
	var txtSetStationControl = document.getElementById('txtSetStationControl');
	var txtSetStationValue = document.getElementById('txtSetStationValue');
	txtSetStationControl.value = sugg.textBox.id;
	txtSetStationValue.value = selectedItem.id;
	__doPostBack('cmdSetStationID', '');
}

// nastaveni masky stanice (stiskem enter nebo ztratou aktivity prvku)
function SetStationMask(sugg, textBoxValue) {
	if (formSubmitted) {return;} else {formSubmitted = true;}
	var txtSetStationControl = document.getElementById('txtSetStationControl');
	var txtSetStationValue = document.getElementById('txtSetStationValue');
	txtSetStationControl.value = sugg.textBox.id;
	txtSetStationValue.value = textBoxValue;
	__doPostBack('cmdSetStationMask', '');
}

// NTVia.aspx
// vyber polozky stanice z naseptavace
function SetNTViaStationID(sugg, selectedItem) {
	sugg.textBox.value = selectedItem.value;
	var textBoxName = sugg.textBox.id.replace(/txtVia/i, 'txtViaStationID');
	var txtViaStationID = document.getElementById(textBoxName);
	txtViaStationID.value = selectedItem.id;
	textBoxName = sugg.textBox.id.replace(/txtVia/i, 'txtViaLastVal');
	var txtViaLastVal = document.getElementById(textBoxName);
	txtViaLastVal.value = selectedItem.value;
	ClearMenu();
}

// propojeni s aplikaci PortalPARIS
function OpenParisWindow(width, height, target, url, baseURL, resizable, addSession) {
	var top = (window.screen.height - height) / 2;
	var left = (window.screen.width - width) / 2;
	var winUrl = baseURL + url;	
	if (window.parent && addSession) {
		winUrl = CheckTicketURL(window.parent.location.href, url, baseURL);
	}
	var options = 'width=' + width + ',height=' + height + ',top=' + top + ',left=' + left + ',location=no,menubar=no,status=no,toolbar=no,scrollbars=yes,resizable=' + resizable;
	window.open(winUrl, target, options, true);
}

function CheckTicketURL(currURL, url, baseURL) {
	var index = currURL.toLowerCase().indexOf(baseURL.toLowerCase());
	if (index != 0) {return baseURL + url;}
	var slashIndex = currURL.indexOf('/', baseURL.length);
	baseURL = currURL.substr(0, slashIndex + 1);
	return baseURL + url;
}

// otevre okno s napovedou
function HelpPopup(event, Anchor) {
    var w = 800;
    var h = 700;
    var left = (window.screen.width - (w + 60)) / 2;
    var top = (window.screen.height - (h + 80)) / 2;
    var oWin = window.open(Anchor.href, "Help", "height=" + h + ",width=" + w + ",left=" + left + ",top=" + top + ", location=no,menubar=no,status=no,toolbar=no,scrollbars=yes,resizable=yes");
    oWin.focus();
    return stopEvent(event);
}

// Zastavi sireni udalosti
function stopEvent(event) {
    if (typeof (event.cancelBubble) != 'undefined') { event.cancelBubble = true; return false; }
    if (typeof (event.stopPropagation) != 'undefined') { event.stopPropagation(); event.preventDefault(); return false; }
}

/*
Popup region - start
*/

/* onload popup okna */
function LoadPopupPage() {
    document.onkeypress = PopupKeyPress;
}

/* stisk klavesy */
function PopupKeyPress(e) {
    var keyCode;
    keyCode = GetKeyCodeBase(e);
    if (keyCode == 27) {
        // zavreni okna
        WClose();
        return false;
    }
    return;
}

/* zavre okno */
function WClose() {
    window.close();
}

/* vrati kod klavesy bez kontrol */
function GetKeyCodeBase(e) {
    try {
        var keyCode = -1;
        if (window.event) {
            if (window.event.keyCode > -1 && !window.event.ctrlKey && !window.event.altKey) return window.event.keyCode;
        }
        keyCode = -1;
        if (e && keyCode <= 0) {
            keyCode = e.charCode;
            if (keyCode <= 0) {
                keyCode = e.keyCode;
            }
            if (keyCode > -1 && !e.ctrlKey && !e.altKey) return keyCode;
        }
        return -1;
    } catch (err) {
    }
}

/*
Popup region - end
*/