﻿
/* nastavi focus na sEl */
function FocusElement(sEl){
    oEl = document.getElementById(sEl);
    if (oEl) oEl.focus();
}

/* casovy klic */
function pageUnload(sender, args)
{
    Sys.Net.WebRequestManager.remove_invokingRequest(onInvoke);
}

/* pokud nedoslo k registraci onInvoke, tak ji zavola */
function Add_Invoke(){
    if (!bInvoke){        
        Sys.Net.WebRequestManager.add_invokingRequest(onInvoke);
        bInvoke = true;
    }
}

function onInvoke(sender, args)
{    
    args.get_webRequest().get_headers()['idoskey'] = sIDOSKey;
}

/* smaze hodnotu value prvku sId */
function DeleteValue(sId){
    oEl = $get(sId);
    if (oEl) oEl.value = "";
}

/* kontrola casu posledniho vyhledani, pokud je vetsi nez 2 sekundy vrati true  */
function CheckSearchTime(){
    return (dtLastSearch == undefined || ((new Date() - dtLastSearch).valueOf() > 2 * 1000));
}

/* kontrola, zda uz nedoslo ke stisku nebo kliknuti */
function IsEnableClick(){    
    if (bDisableClick){
        return false;
    }
    else{
        bDisableClick = true;                
        return true;
    }
}
/* kontrola, zda uz doslo ke stisku nebo kliknuti */
function IsDisableClick(){
    return !IsEnableClick();
}

/*
Datum, cas, kalendar - start
*/

var current_time_fieald_id = "";

/* handle sipek pro datum */
function onDtKeydown(event)
{
    try {
        var ikeyCode;
        /* get keyCode */
        ikeyCode = 0;
        if (event.which) {
            ikeyCode = event.which;
        }
        else if (event.keyCode){
            ikeyCode = event.keyCode;
        }
        /* akce */
	    if (ikeyCode === 38){
            JourneyDateFore(current_time_fieald_id);
            document.getElementById(current_time_fieald_id).select();
		    event.returnValue=false;
		    event.cancel = true;
		    return false;
	    } else if(ikeyCode === 40) {
            JourneyDateBack(current_time_fieald_id);
            document.getElementById(current_time_fieald_id).select();
		    event.returnValue=false;
		    event.cancel = true;
            return false;
	    }
	    else {
		    return true;
	    }
    } catch(e) { }
}


/* handle sipek pro cas */
function onTimeKeydown(event)
{
    try {
        var ikeyCode;
        /* get keyCode */
        ikeyCode = 0;
        if (event.which) {
            ikeyCode = event.which;
        }
        else if (event.keyCode){
            ikeyCode = event.keyCode;
        }
        /* akce */
         oEl = document.getElementById(current_time_fieald_id);
	    if (ikeyCode === 38){
            GetTime("+",current_time_fieald_id);
            oEl.select();
		    event.returnValue=false;
		    event.cancel = true;
		    return false;
	    } else if(ikeyCode === 40) {
            GetTime("-",current_time_fieald_id);
            oEl.select();
		    event.returnValue=false;
		    event.cancel = true;
            return false;
	    }
	    else {
		    return true;
	    }
    } catch(e) { }

}

/* handle sipek pro cas */
function onPocetKeydown(event)
{
    try {
        var ikeyCode;
        /* get keyCode */
        ikeyCode = 0;
        if (event.which) {
            ikeyCode = event.which;
        }
        else if (event.keyCode){
            ikeyCode = event.keyCode;
        }
        /* akce */
         oEl = document.getElementById(current_time_fieald_id);
	    if (ikeyCode === 38){
            GetPocet("+",current_time_fieald_id);
            oEl.select();
		    event.returnValue=false;
		    event.cancel = true;
		    return false;
	    } else if(ikeyCode === 40) {
            GetPocet("-",current_time_fieald_id);
            oEl.select();
		    event.returnValue=false;
		    event.cancel = true;
            return false;
	    }
	    else {
		    return true;
	    }
    } catch(e) { }

}

/* podle operatoru zvysi nebo snizi datum */
function GetCalDate(sOperation,id){
    if (sOperation == "-"){
        JourneyDateBack(id);
    }
    else{
        JourneyDateFore(id);
    }
}

/* podle operatoru zvysi nebo snizi cas o hodinu */
function GetTime(sOperation,id){
    var sTime = "";
    oEl = document.getElementById(id);
    if(oEl != null){
        sTime = TimeParse(oEl.value);
        sDefTime = ChangeTime(sTime,sOperation);
        if(sDefTime=="24:00"){sDefTime="00:00";}
        oEl.value = sDefTime;
    }
}

/* podle operatoru zvysi nebo snizi pocet o 1 */
function GetPocet(sOperation,id){
    var sPocet = "";
    oEl = document.getElementById(id);
    if(oEl != null){
        sPocet = PocetParse(oEl.value);
        sPocet = ChangePocet(sPocet,sOperation);
        //if(sDefTime=="24:00"){sDefTime="00:00";}
        oEl.value = sPocet;
        oEl.focus();
        oEl.blur();
        oEl.select();
        
    }
}

// rozparsruje datum, pokud je ok, tak jej vrati jinak vezme datum ulozene v Time, coz je datum posledniho ulozeneho pozadavku
function TimeParse(sTime){
    var iLen = sTime.length;
    var bNum = true;
    var asTime = [];
    asTime = sTime.split(":");
    if (iLen >=3 && iLen <= 5 && asTime.length === 2){
        // pokud sedi delka a je rozdlene na dve casti
        for(i = 0; i < asTime.length; i++){
            for(j = 0; j < asTime[i].length; j++){
                if (!(asTime[i].charCodeAt(j) >=48 && asTime[i].charCodeAt(j) <= 57 )) {
                    // nejedna se o cislo
                    bNum = false;
                }
            }
        }
    }
    else{
        bNum = false;
    }
    if(bNum){
         if (eval (asTime[0]) < 0 || eval(asTime[0]) > 24){
            bNum = false;
         }
    }
    if (bNum){
        // zadany cas je ok
        return sTime;
    }
    else{
        // zadany cas neni ok, vrati se posledni OK cas
        return sDefTime;
    }
}

// rozparsruje input type ks, procent, kc atd

function getPocet(val)
{
	asPocet = val.split(" ");
	var pocet = eval(asPocet[0]);
	
	return pocet;
}

function PocetParse(val){
    var iLen = val.length;
    var bNum = true;
    asPocet = val.split(" ");

        // pokud sedi delka a je rozdlene na dve casti

            for(j = 0; j < asPocet[0].length; j++){
                if (!((asPocet[0].charCodeAt(j) >=48 && asPocet[0].charCodeAt(j) <= 57 ) || asPocet[0].charCodeAt(j)==46)) {
                    // nejedna se o cislo
                    bNum = false;
                }
            }
			
    

    
    if(bNum){
         if (eval (asPocet[0]) < 0){
            bNum = false;
         }
    }
    if (bNum){
        // zadany cas je ok
        return val;
    }
    else{
        // zadany cas neni ok, vrati se posledni OK cas
        var default_value = "0 " + asPocet[1];
        return default_value;
    }
}

// nastavi hodnotu casu podle sOperation
// bere zretel zda je nastaven odjezd nebo prijezd
function ChangeTime(sTime,sOperation){
    var iFrom;
    var iTo;
    var asTime = [];
    asTime = sTime.split(":");
    var iHours = eval(asTime[0]);
    
    
    if (oEl != null){
        // je vybran prijezd
        iFrom = 1;
        iTo = 24;
        if ( iHours === 0) {
            iHours = iTo;
        }
    }
    else{
        // iFrom a iTo je nastaveno pro odjezd
        iFrom = 0;
        iTo = 23;
        if ( iHours === 24) {
            iHours = iFrom;
        }
    }
    var iNum;
    if (sOperation === "+"){
        iHours += 1;
    }
    else{
        if (asTime[1] == "00" || asTime[1] == "0") iHours -= 1;
    }
    if (iHours < iFrom){
        iHours = iTo;
    }
    if (iHours > iTo){
        iHours = iFrom;
    }
    asTime[0] = iHours;
    asTime[1] = "00";
    return asTime[0] + ":" + asTime[1];
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function ChangePocet(sPocet,sOperation){

	var asPocet = sPocet.split(" ");
	
	var pocet = eval(asPocet[0]);  
	var pocet = roundNumber(pocet,2);
    var jednotka = asPocet[1];   
	
	if(!jednotka)
	{
		jednotka = "";
	} 
	else if(jednotka!="Ks" && jednotka!="ks" && jednotka!=currency && jednotka!="%")
	{
		jednotka = "";
	}
	else
	{
		jednotka = " "+jednotka;
	}
    
    if (sOperation === "+"){
        pocet += 1;
    }
    else{
        pocet -= 1;
    }
    
    if(pocet<0)
    {
		pocet = 0;
	}
    return pocet + jednotka;
}
/*
Datum, cas, kalendar - end
*/


