var RecaptchaOptions = {
    custom_translations : {
    	instructions_visual : "Opiš výše uvedená slova:",
    	instructions_audio : "Napište co slyšíte:",
    	play_again : "Přehrát znovu",
    	cant_hear_this : "Stáhnout ve formátu MP3",
    	visual_challenge : "Textové ověření",
    	audio_challenge : "Zvukové ověření",
    	refresh_btn : "Získat nová slova",
    	help_btn : "Nápověda",
    	incorrect_try_again : "Nesprávné zadání. Opakujte, prosím."
   	},
    lang  : 'cs',
    theme : 'red'
};

$(function() {

    $('input.datepicker').datepicker(
        {
            dateFormat: 'dd.mm.yy', 
            changeMonth: true,
            firstDay:   1, 
            changeYear: true, 
            yearRange:  '1930:' + new Date().getFullYear()
        }
    );


    /*
    Registrace uživatele - první krok
    */

    var arrParam = getUrlVars();
    
    if($('#formular-registrace-uzivatele').length == 1 && !arrParam["vysledek"]) {
        $('#formular-registrace-uzivatele').css({'display': 'none'});
        $('#registraceKontrolaEmailu').submit(function(){
            var email = $('#registraceKontrolaEmailu input[name=e_mail_uzivatel]').val();
            var resEmail = $.ajax({
                url: '/services/over-email.php?typ=registrace&email=' + email,
                async: false,
                dataType: 'text'
            }).responseText;

            if(resEmail != 'Ok') {
                if(resEmail == "SpatnyFormat") {
                    var zprava = 'Zadal jsi špatný e-mail. Zkus to znovu, prosím';
                } else if(resEmail == "Existuje") {
                    var zprava = 'E-mail už byl v systému použit. Nelze použít již registrovaný e-mail. V případě kdy jsi zapoměl heslo, použij odkaz <a href="/muj-profil/#zapomenute-heslo" style="color: white;">zapomenuté heslo</a>';
                } else {
                    var zprava = 'Nastala chyba při ověřování e-mailu. Kontaktuj prosím administrátora.';
                }
                $('#registraceKontrolaEmailu p.error').html(zprava).animate({backgroundColor: '#c91d04'},1000);
            } else {
                $('#e_mail_uzivatel').val(email);
                $('#registraceKontrolaEmailu').hide('slow');
                $('#formular-registrace-uzivatele').show('slow');
                $('#as-input').val('praha');
                $('#as-li').hide();
            }

            return false;
        });
    } else {
        $('#registraceKontrolaEmailu').css({'display': 'none'});
    }

    /*
    REGISTRACE/EDITACE UŽIVATELE - ODESLÁNÍ FORMULÁŘE
    */
    $('#btnRegistraceUzivatele').click(function(){
        $(this).data('text',$(this).text());
        var ok = true;
        $(this).attr('disabled','disabled');
        
        $(this).text('Kontroluji platnost položek');
        ok = overFormularUzivatele('registrace',false);

        if(ok) {
            $(this).text('Kontroluji adresu');
            ok = overAdresuUzivatele();
        }
        
        $(this).attr('disabled',false);
        $(this).text($(this).data('text'))
        
        if(ok) {
            odesliFormular('formular-registrace-uzivatele');
        }
        return false;
    });

    $('#btnEditaceUzivatele').click(function(){
        $(this).data('text',$(this).text());
        var ok = true;
        $(this).attr('disabled','disabled');

        $(this).text('Kontroluji platnost položek');
        ok = overFormularUzivatele('editace',false);

        if(ok) {
            $(this).text('Kontroluji adresu');
            ok = overAdresuUzivatele();
        }

        $(this).attr('disabled',false);
        $(this).text($(this).data('text'))

        if(ok) {
            //alert('odesílám');
            odesliFormular('formular-editace-uzivatele');
        } else {
            //alert('nastala chyba');
        }
        return false;
    });


    /*
    FUNKCE PRO OVĚŘENÍ POLOŽEK
    */
    function overFormularUzivatele(typ, polozka)
    {
        //alert('začínám validaci');
        var ok = true;
        var zprava = "";
        
        // Jméno
        if(polozka == 'jmeno_uzivatel' || polozka == false) {
            //alert('validace: jmeno_uzivatel');
            
            $('#jmeno_uzivatel').css({'background': 'transparent'});
            if(!($('#jmeno_uzivatel').val().length >= 2)) {
                //alert('chyba');
                ok = false;
                zprava += "<li>položka křestní jméno je povinná</li>";
                $('#jmeno_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // Příjmení
        if(polozka == 'prijmeni_uzivatel' || polozka == false) {
            //alert('validace: prijmeni_uzivatel');

            $('#prijmeni_uzivatel').css({'background': 'transparent'});
            if(!($('#prijmeni_uzivatel').val().length >= 2)) {
                //alert('chyba');
                ok = false;
                zprava += "<li>položka příjmení je povinná</li>";
                $('#prijmeni_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // Login
        if(polozka == 'login_uzivatel' || polozka == false) {
            //alert('validace: login_uzivatel');

            $('#login_uzivatel').css({'background': 'transparent'});
            if(typ == 'registrace') {
                var resLogin = $.ajax({
                    url: '/services/over-login.php?login=' + $('#login_uzivatel').val(),
                    async: false,
                    dataType: 'text'
                }).responseText;

                if(resLogin != 'Ok') {
                    if(resLogin == "SpatnyFormat")
                        zprava += '<li>Uživatelské jméno obsahuje neplatné znaky. Oprav zadání, prosím.</li>';
                    else if(resLogin == "Existuje")
                        zprava += '<li>Uživatelské jméno již existuje. Vymysli si jiné, prosím.</li>';
                    else
                        zprava += '<li>Nastala chyba při ověřování uživatelského jména. Kontaktuj prosím administrátora.</li>';

                    ok = false;
                    //alert('chyba');
                    $('#login_uzivatel').animate({backgroundColor: '#f34'}, 500);
                }
            }
        }

        // Heslo
        if(polozka == 'heslo_uzivatel' || polozka == false) {
            //alert('validace: heslo_uzivatel');

            $('#heslo_uzivatel').css({'background': 'transparent'});
            if(
                (!$('#heslo_uzivatel').val().match(/(?=^.{6,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Za-z]).*$/g)
                && typ == 'registrace')
                || (typ == 'editace'
                    && $('#heslo_uzivatel').val().length > 0
                    && !$('#heslo_uzivatel').val().match(/(?=^.{6,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Za-z]).*$/g))
            ) {
                ok = false;
                zprava += '<li>Heslo není bezpečné. Vymysli si nějaké bezpečnější :) Heslo by mělo obsahovat písmena a číslice. Heslo musí být delší nebo rovno, než 6 znaků.</li>';
                //alert('chyba');
                $('#heslo_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // Heslo 2
        if(polozka == 'heslo2_uzivatel' || polozka == false) {
            //alert('validace: heslo2_uzivatel');

            $('#heslo2_uzivatel').css({'background': 'transparent'});
            if($('#heslo_uzivatel').val() != $('#heslo2_uzivatel').val()) {
                //alert('chyba');
                ok = false;
                zprava += '<li>Zadaná hesla se neshodují.</li>';
                $('#heslo2_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // Datum narození
        if(polozka == 'datum_narozeni_uzivatel' || polozka == false) {
            //alert('validace: datum_narozeni_uzivatel');

            $('#datum_narozeni_uzivatel').css({'background': 'transparent'});
            var regexp = $('#datum_narozeni_uzivatel').val().match(/^(\d{1,2}).\s*(\d{1,2}).\s*(\d{4})$/);
            if(!regexp || ((regexp[3]*1) > (new Date()).getFullYear()-3)) {
                //alert('chyba');
                ok = false;
                zprava += '<li>Datum narození není dobře zadané, zadej ho prosím ve formátu den. měsíc. rok, např. 19. 6. 1995</li>';
                $('#datum_narozeni_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // E-mail
        if(polozka == 'e_mail_uzivatel' || polozka == false) {
            //alert('validace: e_mail_uzivatel');

            $('#e_mail_uzivatel').css({'background': 'transparent'});
            var resEmail = $.ajax({
                url: '/services/over-email.php?typ=' + typ + '&email=' + $('#e_mail_uzivatel').val(),
                async: false,
                dataType: 'text'
            }).responseText;

            if(resEmail != 'Ok') {
                if(resEmail == "SpatnyFormat") {
                    zprava += '<li>Zadal jsi špatný e-mail. Zkus to znovu, prosím</li>';
                } else if(resEmail == "Existuje") {
                    zprava += '<li>E-mail už byl v systému použit.</li>';
                } else {
                    zprava += '<li>Nastala chyba při ověřování e-mailu. Kontaktuj prosím administrátora.</li>';
                }
                //alert('chyba');
                ok = false;
                $('#e_mail_uzivatel').animate({backgroundColor: '#f34'}, 500);
            }
        }

        // Telefon
        if(polozka == 'telefon_uzivatel' || polozka == false) {
            //alert('validace: telefon_uzivatel');

            $('#telefon_uzivatel').css({'background': 'transparent'});
            //if($('#telefon_uzivatel').val().length > 0) {
                var resTelefon = $.ajax({
                    url: '/services/over-telefon.php?typ=' + typ + '&telefon=' + encodeURIComponent($('#telefon_uzivatel').val()),
                    async: false,
                    dataType: 'text'
                }).responseText;
                if(resTelefon != 'Ok') {
                    if(resTelefon == "SpatnyFormat") {
                        zprava += '<li>Zadal jsi špatně telefon, zadej číslo ve formátu např. 608 609 610</li>';
                    } else if(resTelefon == "Existuje") {
                        zprava += '<li>Tvůj telefon již někdo použil, nemůže být zaregistrován dvakrát.</li>';
                    } else {
                        zprava += '<li>Zadal jsi špatně telefon, zadej číslo ve formátu např. 608 609 610</li>';
                    }
                    //alert('chyba');
                    ok = false;
                    $('#telefon_uzivatel').animate({backgroundColor: '#f34'}, 500);
                }
            //}
        }
        
        // souhlas s pravidly
        if(typ == 'registrace' && (polozka == 'jeSouhlas' || polozka == false)) {
            //alert('validace: jeSouhlas');

            if($('#jeSouhlas:checked').val() != '1') {
                //alert('chyba');
                ok = false;
                zprava += '<li>Musíte souhlasit s pravidly.</li>';
            }
        }

        if(ok) {
            $('#frmChybaFormulare').html('&nbsp;');
            //alert('ok');
        } else {
            $('#frmChybaFormulare').attr('title','Některé položky máš špatně vyplněné').html('<ul>' + zprava + '</ul>');
            
            //alert('dialog');
            $('#frmChybaFormulare').dialog({
                modal: true,
                hide: 'scale',
                width: 380
            });
        }

        return ok;
    }
    
    function overAdresuUzivatele()
    {
        var ulice = $('#ulice_adresa_uzivatel').val();
        var cislo = $('#cislo_adresa_uzivatel').val();
        var obec = $('#obec_adresa_uzivatel').val();
        var cast_obce = $('#cast_obce_adresa_uzivatel').val();
        var psc = $('#psc_adresa_uzivatel').val();
        var kod_objektu = $('#kod_objektu_adresa_uzivatel').val();

        var zprava = '';
        var chyba = false;
        
        if(ulice.length > 0 || cislo.length > 0 || obec.length > 0 || cast_obce.length > 0 || psc > 0) {
            var XMLAdresaUIRADR = $.UIRADR.overAdresu(ulice, cislo, obec, cast_obce, psc, kod_objektu);
            if(XMLAdresaUIRADR && XMLAdresaUIRADR.getElementsByTagName('zaznam').length == 0) {
                XMLAdresaUIRADR = $.UIRADR.overAdresu(ulice, cislo, obec, cast_obce, psc, null);
            }

            if(XMLAdresaUIRADR) {
                var pocetAdres = XMLAdresaUIRADR.getElementsByTagName('zaznam').length;
                if(pocetAdres == 0) {
                    zprava = $('uir_odpovedi odpoved shoda text',XMLAdresaUIRADR).text();
                    chyba = true;
                } else if(pocetAdres == 1) {
                    zadejAdresuUzivatele(0, XMLAdresaUIRADR);
                    return true;
                } else if(pocetAdres > 1) {
                    dialogVyberAdresuUzivatele(XMLAdresaUIRADR);
                    chyba = true;
                } else {
                    zprava = 'Nastala chyba při ověřování adresy. Zkontroluj prosím, zda máš zadanou správnou adresu.';
                    chyba = true;
                }
            } else {
                zprava = 'Nastala chyba při ověřování adresy. Zkontroluj prosím, zda máš zadanou správnou adresu.';
                chyba = true;
            }
        } else {
            return true;
        }
        
        if(zprava.length > 0) {
            $('#frmChybaFormulare').html('<p>' + zprava + '</p>');
            $('#frmChybaFormulare').attr('title','Nastala chyba při ověřování adresy').dialog({
                    modal: true,
                    hide: 'scale',
                    width: 380
            });
        }
        return false;
    }

    function zadejAdresuUzivatele(index, XMLAdresaUIRADR)
    {
        if(XMLAdresaUIRADR) {
            var souradnice_x_adresa_uzivatel = $('zaznam:eq(' + index + ') x',XMLAdresaUIRADR).text();
            var souradnice_y_adresa_uzivatel = $('zaznam:eq(' + index + ') y',XMLAdresaUIRADR).text();
            var ulice_adresa_uzivatel = $('zaznam:eq(' + index + ') nazev_ulice',XMLAdresaUIRADR).text();
            var cislo_domovni_adresa_uzivatel = $('zaznam:eq(' + index + ') cislo_domovni',XMLAdresaUIRADR).text();
            var cislo_orientacni_adresa_uzivatel = $('zaznam:eq(' + index + ') cislo_orientacni',XMLAdresaUIRADR).text();
            var cislo_adresa_uzivatel = cislo_domovni_adresa_uzivatel + (cislo_orientacni_adresa_uzivatel ? '/' + cislo_orientacni_adresa_uzivatel : '');
            var obec_adresa_uzivatel = $('zaznam:eq(' + index + ') nazev_obce',XMLAdresaUIRADR).text();
            var cast_obce_adresa_uzivatel = $('zaznam:eq(' + index + ') nazev_casti_obce',XMLAdresaUIRADR).text();
            var psc_adresa_uzivatel = $('zaznam:eq(' + index + ') psc',XMLAdresaUIRADR).text();
            var kod_kraj_adresa_uzivatel = $('zaznam:eq(' + index + ') kod_kraje',XMLAdresaUIRADR).text();
            var kod_objektu_adresa_uzivatel = $('zaznam:eq(' + index + ') kod_objektu',XMLAdresaUIRADR).text();

            $('#souradnice_x_adresa_uzivatel').val(souradnice_x_adresa_uzivatel);
            $('#souradnice_y_adresa_uzivatel').val(souradnice_y_adresa_uzivatel);
            $('#ulice_adresa_uzivatel').val(ulice_adresa_uzivatel);
            $('#cislo_adresa_uzivatel').val(cislo_adresa_uzivatel);
            $('#obec_adresa_uzivatel').val(obec_adresa_uzivatel);
            $('#cast_obce_adresa_uzivatel').val(cast_obce_adresa_uzivatel);
            $('#psc_adresa_uzivatel').val(psc_adresa_uzivatel);
            $('#kod_kraj_adresa_uzivatel').val(kod_kraj_adresa_uzivatel);
            $('#kod_objektu_adresa_uzivatel').val(kod_objektu_adresa_uzivatel);

            $('#diagVyberAdresu').dialog('close');
        }
    }
    
    function dialogVyberAdresuUzivatele(XMLAdresaUIRADR)
    {
        if(XMLAdresaUIRADR) {
            if($('#diagVyberAdresu').length == 0) {
                $('body').append('<div id="diagVyberAdresu" title="Nalezli jsme několik adres. Vyber prosím svou adresu.">');
                $('#diagVyberAdresu').append('<ul>');
            }

            $('zaznam',XMLAdresaUIRADR).each(function(index, value){
                var adresa = $('dorucovaci_adresa',value).text().replace(/\n/gi,'<br />');
                $('#diagVyberAdresu ul').append('<li><a href="#">' + adresa + '</a></li>');
                $('#diagVyberAdresu ul li:last a').data('index',index).click(function(){
                    zadejAdresuUzivatele($(this).data('index'),XMLAdresaUIRADR);
                    return false;
                });
            });

            $('#diagVyberAdresu').dialog({
                modal: true,
                width: 450,
                height: 300,
                close: function(event, ui) {$('#diagVyberAdresu').remove();}
            });
        }
    }
});

