function CeskeCislo(cestina) {
    //alert(cestina + '---');
    return cestina.toLowerCase().replace(/ /g, '').replace(/\+/g, '1').replace(/ě/g, '2').replace(/š/g, '3').replace(/č/g, '4').replace(/ř/g, '5').replace(/ž/g, '6').replace(/ý/g, '7').replace(/á/g, '8').replace(/í/g, '9').replace(/é/g, '0');
}

function CeskeCisloEvent(event) {
    var cestina = event.target.value;
    //alert(cestina + '---');
    event.target.value = cestina.toLowerCase().replace(/ /g, '').replace(/\+/g, '1').replace(/ě/g, '2').replace(/š/g, '3').replace(/č/g, '4').replace(/ř/g, '5').replace(/ž/g, '6').replace(/ý/g, '7').replace(/á/g, '8').replace(/í/g, '9').replace(/é/g, '0');
}

function CeskeCisloDijit() {
    var cestina = dijit.byId(this.id).attr('value');
    //alert(cestina + '---');
    dijit.byId(this.id).attr('value', cestina.toLowerCase().replace(/ /g, '').replace(/\+/g, '1').replace(/ě/g, '2').replace(/š/g, '3').replace(/č/g, '4').replace(/ř/g, '5').replace(/ž/g, '6').replace(/ý/g, '7').replace(/á/g, '8').replace(/í/g, '9').replace(/é/g, '0'));
}


function upravDatum(datum, cas) {
    //prevod mesicu
    //$mesice = array('Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12');
    rozpad = datum.replace('  ', ' ').split(' ');
    if (rozpad.length < 3) {//divnej format
        return datum;
    } else {
        ret = rozpad[1] + '.' + rozpad[0] + '.' + rozpad[2];
        if (rozpad[1].length ==1)
            ret = '0' + ret;
        return ret.replace('AM', '').replace('PM', '').replace('Jan', '01').replace('Feb', '02').replace('Mar', '03').replace('Apr', '04').replace('May', '05').replace('Jun', '06').replace('Jul', '07').replace('Aug', '08').replace('Sep', '09').replace('Oct', '10').replace('Nov', '11').replace('Dec', '12');
    }
}


function MinutyNaCas(min) {
    //prebere cislo vyjadrujici pocet minut a crati retezec s casem ve formatu hh:mm
    //alert(min);
    var hodiny = Math.floor(Number(min)/60).toString(), minuty = (Number(min) % 60).toString();
    return '00'.concat(hodiny).substr(hodiny.length, 2) + ':' + ('00'.concat(minuty)).substr(minuty.length, 2);
}


function zobrazHelp(strana, prvek, uroven_firmy) {
    var ajax_running = dojo.byId('ajax-loader-obr');
    var help_dialog = dijit.byId('help-dialog');
    var help = dojo.byId('help-text');
    help.innerHTML = 'Načítám nápovědu...';
    ajax_running.style.display = 'inline';
    //samotny ajax
    dojo.xhrGet({
        url: "/admin/ajax/nacti/prikaz/ajax_help/parametry/" + strana + "---" + prvek + "---" + uroven_firmy,
        handleAs: "text",
        load: function(data,args){
            ret = data.toString();
            //console.dir(ret);
            help.innerHTML = ret;
            ajax_running.style.display = 'none';
            help_dialog.show();
        //dijit.byId('odvadeni-podrobnosti').show();
        },
        // if any error occurs, it goes here:
        error: function(error,args){
            console.warn("Chyba pri nacitani napovedy k prvku...",error);
            ajax_running.style.display = 'none';
        }
    });
}

function skryjHelp(){
    dojo.byId('help-dialog').style.display = 'none';
}

function InfoOsoba(kdo) {
    var ajax_running = dojo.byId('ajax-loader-obr');
    var dialog = dijit.byId('info-dialog');
    var text = dojo.byId('info-text');
    text.innerHTML = 'Loading...';
    ajax_running.style.display = 'inline';
    //samotny ajax
    dojo.xhrGet({
        url: "/admin/ajax/nacti/prikaz/ajax_osobainfo/parametry/" + kdo,
        handleAs: "text",
        load: function(data,args){
            ret = data.toString();
            //console.dir(ret);
            text.innerHTML = ret;
            ajax_running.style.display = 'none';
            dialog.show();
        },
        error: function(error,args){
            console.warn("Chyba pri nacitani informaci o osobe " + kdo + "...",error);
            ajax_running.style.display = 'none';
        }
    });
}

function ukazMail(id_mess) {
    var ajax_running = dojo.byId('ajax-loader-obr');
    var help_dialog = dijit.byId('help-dialog');
    var help = dojo.byId('help-text');
    help.innerHTML = 'Načítám obsah e-mailu...';
    ajax_running.style.display = 'inline';
    //samotny ajax
    dojo.xhrGet({
        url: "/admin/ajax/nacti/prikaz/ajax_ukaz_mail/parametry/" + id_mess,
        handleAs: "json",
        load: function(data,args){
            var vysl = '';
            vysl  = '<b>Od: </b>' + data.od + '<br/>';
            vysl += '<b>Komu: </b>' + data.komu + '<br/>';
            vysl += '<b>Kopie: </b>' + data.kopie + '<br/>';
            vysl += '<b>Předmět: </b>' + data.predmet + '<br/>';
            vysl += '<hr/>';
            vysl += data.telo;
            help.innerHTML = vysl;
            ajax_running.style.display = 'none';
            help_dialog.title = 'Náhled e-mailu';
            help_dialog.attr('title' , 'Náhled e-mailu');
            help_dialog.show();
        },
        // if any error occurs, it goes here:
        error: function(error,args){
            console.warn("Chyba pri nacitani informaci o mailu ID " + id_mess + "...",error);
            ajax_running.style.display = 'none';
        }
    });
}

function licence_onchange() {
    if (dojo.byId("projekt_zad") && uroven_firmy > 30) {
        var licence = dojo.byId("licence");
        var defa_etapa = dojo.byId('defa_etapa_zad');

        if(dojo.byID('vlastnik')) {
            
        }

        //samotny ajax
        dojo.xhrGet({
            url: "/admin/ajax/nacti/prikaz/ajax_defa_ukol_licence/parametry/" + licence.value,
            handleAs: "json",
            load: function(data,args){
                //console.dir(data);
                defa_etapa.value = data.defa_etapa;
                dojo.byId('projekt_zad').value = data.defa_id_ukolu;
                projektZmena();
            },
            // if any error occurs, it goes here:
            error: function(error,args){
                console.warn("Chyba pri nacitani defa projektu licence...",error);
                dojo.byId("projekt_zad").disabled = false;
                ajax_running.style.display = 'none';
            }
        });
    } else {
        return false;
    }
}

function zmenaPatche(e) {
    /*
	  Zpracovani udalosti, ktera ovlivnuje vysledny patch
	  Mozne zmeny:
	  	- obl_3: je potreba zmenit seznam patchu a seznam naslednych zmen
	  	- verze: je potreba zmenit seznam patchu a seznam naslednych zmen
	  	- patch:  je potreba zmenit seznam naslednych zmen
	*/
    var menit_zmeny = false, menit_patche = false;
    if (e.target.id == 'obl_3' || e.target.id == 'verze') {
        zobrazCombo('patch', '/admin/ajax/nacti/prikaz/ajax_data_patche/parametry/' + dojo.byId('obl_3').value + '---' + dojo.byId('verze').value, '', '', 'aktualizuj_zmeny();');
    }
    if (e.target.id == 'patch') {
        try {
            aktualizuj_zmeny();
        }
        catch (e) {
        }
    }
}


function toggleDialog(event) {
    //alert('cau');
    //console.debug(event.target.id);
    //parametr je event, a ten by mel mit v targetu node, ktery ma id b_[a id dialogu, ktery se ma "toglit"]
    var cil = event.target.id.substring(2);
    //alert(cil + '--' + cil.substring(cil.length - 6) + '--' + cil.substr(0, cil.length - 6));
    //v chrome se jeste odesle udalst z popisku, kterej konci _label :-(
    if (cil.substring(cil.length - 6) == '_label') {
        cil = cil.substr(0, cil.length - 6);
    }
    //alert(cil);
    dojo.query(".jsadddialog").forEach(
        function(inputElement) {
            if (inputElement.id == cil) {
                //alert('---'+inputElement.id+'---');
                if (inputElement.style.display == 'none' || inputElement.style.display == '')
                    inputElement.style.display = 'block';
                else
                    inputElement.style.display = 'none';
            } else {
                inputElement.style.display = 'none';
            }
        }
        );
//dojo.stopEvent(event);
}

function sestavOdvadeni() {
    return true;
}


function zobrazCombo(idPrvku, url, defa) {
    /*
	Funkce naplni combo hodnotami, ziskanymi xhttp dotazem
	Parametry:
		idPrvku: id prvku typu select, kteremu maji byt aktualizovany options
		url: url na kterou bude poslan dotaz, ktery vrati JSON obsahujici pole items s dvojicemi hodnota, label a defa
		defa: defaultni hodnota, ktera ma byt v combu po nacteni naplnena
*/
    var skupiny = false, skupina = '', skPrvek = new Object, volba = new Object(), proved = '', uz_defa = false;
    if (zobrazCombo.arguments.length > 3) {
        skupina = zobrazCombo.arguments[3];
        if (skupina != '')
            skupiny = true;
    }
    if (zobrazCombo.arguments.length > 4) { // je uveden i kod pro vykonani po nacteni comba
        proved = zobrazCombo.arguments[4];
    }
    var prvek = dojo.byId(idPrvku);
    prvek.disabled = true;
    removeChildNodes(prvek);
    prvek.options.length = 0;
    prvek.options[0] = new Option('Načítám...', '', false, false);
    ajaxstart(idPrvku);
    dojo.xhrGet({
        url: url,
        handleAs: "json",
        load: function(data, args){
            //console.dir(data);
            prvek.options.length = 0;
            var pocet = data.items.length; //kvuli rychlosti
            if (!skupiny || skupina == '') { //to je jednodussi
                for(i = 0; i < pocet; i++) {
                    //console.debug(data.items[i].hodnota + ' -- ' + defa);
                    if (data.items[i].defa === '1' || data.items[i].hodnota === defa)
                        prvek.options[i] = new Option(data.items[i].label.replace('***',' '), data.items[i].hodnota, true, true);
                    else
                        prvek.options[i] = new Option(data.items[i].label.replace('***',' '), data.items[i].hodnota, false, false);
                }
            } else { //musim to vytvorit se skupinama
                skupina = 'xxx';
                for(i = 0; i < pocet; i++) {
                    //console.debug(data.items[i].skupina);
                    if (skupina != data.items[i].skupina) {
                        if (skupina != 'xxx')
                            prvek.appendChild(skPrvek);
                        skupina = data.items[i].skupina;
                        skPrvek = document.createElement('optgroup');
                        skPrvek.label = skupina;
                    }
                    volba = document.createElement('option');
                    volba.value = data.items[i].hodnota;
                    volba.innerHTML = data.items[i].label.replace('***',' ');
                    if ((data.items[i].defa === '1' || data.items[i].hodnota === defa) && !uz_defa) {
                        volba.selected = true;
                        uz_defa = true;
                    }
                    skPrvek.appendChild(volba);
                }
                if (i > 0) { //jeste musim pridat posledni skupinu///
                    prvek.appendChild(skPrvek);
                }
            }
            prvek.disabled = false;
            if (proved != '') { // je uveden i kod pro vykonani po nacteni comba
                try {
                    eval(proved);
                } catch (e) {
                    var ahoj = '';
                }
            }
            ajaxkonec(idPrvku);
        },
        error: function(error,args){
            console.warn('Chyba pri nacitani comba ID ' + idPrvku + '...', error);
            prvek.disabled = false;
        }
    });
}

function sestavCombo(idPrvku, data, defa) {
    var skupiny = false, skupina = '', skPrvek = new Object, volba = new Object(), proved = '', uz_defa = false;
    if (sestavCombo.arguments.length > 3) {
        skupina = sestavCombo.arguments[3];
        if (skupina != '')
            skupiny = true;
    }
    if (sestavCombo.arguments.length > 4) { // je uveden i kod pro vykonani po nacteni comba
        proved = sestavCombo.arguments[4];
    }
    var prvek = dojo.byId(idPrvku);
    prvek.disabled = true;
    removeChildNodes(prvek);
    prvek.options.length = 0;
   // prvek.options[0] = new Option('Načítám...', '', false, false);

   // prvek.options.length = 0;
    var pocet = data.items.length; //kvuli rychlosti
    if (!skupiny || skupina == '') { //to je jednodussi
        for(i = 0; i < pocet; i++) {
            //console.debug(data.items[i].hodnota + ' -- ' + defa);
            if (data.items[i].defa === '1' || data.items[i].hodnota === defa)
                prvek.options[i] = new Option(data.items[i].label, data.items[i].hodnota, true, true);
            else
                prvek.options[i] = new Option(data.items[i].label, data.items[i].hodnota, false, false);
        }
    } else { //musim to vytvorit se skupinama
        skupina = 'xxx';
        for(i = 0; i < pocet; i++) {
            //console.debug(data.items[i].skupina);
            if (skupina != data.items[i].skupina) {
                if (skupina != 'xxx')
                    prvek.appendChild(skPrvek);
                skupina = data.items[i].skupina;
                skPrvek = document.createElement('optgroup');
                skPrvek.label = skupina;
            }
            volba = document.createElement('option');
            volba.value = data.items[i].hodnota;
            volba.innerHTML = data.items[i].label;
            if ((data.items[i].defa === '1' || data.items[i].hodnota === defa) && !uz_defa) {
                volba.selected = true;
                uz_defa = true;
            }
            skPrvek.appendChild(volba);
        }
        if (i > 0) { //jeste musim pridat posledni skupinu///
            prvek.appendChild(skPrvek);
        }
    }
    prvek.disabled = false;
    
}

function removeChildNodes(ctrl) {
    while (ctrl.childNodes[0])
    {
        ctrl.removeChild(ctrl.childNodes[0]);
    }
}

function ajaxstart(id) {
    var stav = dojo.byId('ajaxstav'), volno = dojo.byId('ajaxvolno'), index = 5000;
    if (stav && volno) {
        while (volno.value == '0' && index > 0) {
            index--;
        }
        if (volno.value == '1') {
            volno.value = '0';
            stav.value += '-' + id + '-';
            volno.value = '1';
        }
    }
}

function ajaxkonec(id) {
    var stav = dojo.byId('ajaxstav'), volno = dojo.byId('ajaxvolno'), index = 5000;
    if (stav && volno) {
        while (volno.value == '0' && index > 0) {
            index--;
        }
        if (volno.value == '1' || true) {
            volno.value = '0';
            var hledej = new RegExp('-' + id + '-');
            stav.value = stav.value.replace(hledej, '');
            volno.value = '1';
        }
    }
}



dojo.addOnLoad(function(){
    //pozadovane knihovny
    //xxdojo.require("dijit.Dialog");
    //xxdojo.require("dijit.ProgressBar");

    if (odvadeni_global) { // sestavit odvadeci dialog
    //alert('odvadi se');
    //sestavOdvadeni();
    }

    ////xxdojo.require("dijit.Dialog");
    //vytvoreni dialogu pro help
    new dijit.Dialog({
        id: 'help-dialog',
        title: 'Kontextová nápověda',
        style: 'overflow:auto;height:90%;width:60%;'
    }, dojo.byId('help-dialog'))

    //vytvoreni dialogu pro informace
    new dijit.Dialog({
        id: 'info-dialog',
        title: 'Informace',
        style: 'overflow:auto;height:50%;width:50%;'
    }, dojo.byId('info-dialog'))

    //vytvoreni progressbaru s nacitanim ajaxu
    new dijit.ProgressBar({
        style: 'width: 300px',
        id: 'jsProgress',
        indeterminate: true
    }, dojo.byId('ajax-loader-obr-in'));


    //xxdojo.require('dijit.Tooltip', true);
    //poskladani tooltipu
    var pocet_tt = 0;
    if(tooltipy) {
        pocet_tt = tooltipy.length;
    }
    //var tt = new Array(pocet_tt);
    for(i = 0; i < pocet_tt; i++){
        //tt[i] = new dijit.ToolTip({'connectId': tooltipy[i][0], 'label': tooltipy[i][0]});
        new dijit.Tooltip({
            connectId: [tooltipy[i][0]],
            label: tooltipy[i][1]
        });
    }
});
