$(function(){


    function CheckLengthMy(o,n,min,max) {

        if ( o.val().length > max || o.val().length < min ) {
            o.addClass('ui-state-error');
            //updateTips("Length of " + n + " must be between "+min+" and "+max+".");
            return false;
        } else {
            return true;
        }
    }
    function CheckRegexpMy(o,regexp,n) {

        if ( !( regexp.test( o.val() ) ) ) {
            o.addClass('ui-state-error');
            //updateTips(n);
            return false;
        } else {
            return true;
        }
    }

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
    // Accordion
    $("#accordion").accordion({
        header: "h3"});

    $("#accordion2").accordion({
        header: "h3"});

    // Tabs
    $('#tabs').tabs();


    // Dialog
    $('#dialog').dialog({
            autoOpen: false,
            width: 600,
            buttons: {
                    "Ok": function() {
                            $(this).dialog("close");
                    },
                    "Cancel": function() {
                            $(this).dialog("close");
                    }
            }
    });

    // Dialog
    $('#cart_dialog').dialog({
            autoOpen: false,
            width: 600,
            buttons: {
                    "Ok": function() {
                            $(this).dialog("close");
                    }
            }
    });
    $('#info_dialog').dialog({
            autoOpen: false,
            modal: true,
            //width: 600,
            buttons: {
                    "Ok": function() {
                            $(this).dialog("close");
                    }
            }
    });

    $("#cart_dialog2").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true,
        buttons: {
            "Pokračovat": function() {
                    $(this).dialog("close");
            },
            "Přejít k zaplacení": function() {
                    window.location = "./?page=20";
                    $(this).dialog("close");
            }

        }
    });
    var email2 = $("#send_login_email"),
    allFields = $([]).add(email2),
    tips2 = $("#send_login_valTips");

    $("#send_login_dialog").dialog({
        //bgiframe: true,
        autoOpen: false,
        modal: true,
        width: 400,
        buttons: {
            "Zavřít": function() {
                    $(this).dialog("close");
            },
            "Odeslat": function() {
                var bValid = true;
                var minLen = 6;
                var maxLen = 80;

                if (CheckRegexpMy(email2,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. ui@jquery.com") == false) {
                    bValid = false;
                    tips2.text("Špatný formát e-mailové adresy. Příklad emailové adresy: muj@email.cz").effect("highlight",{},500);
                }
                if (CheckLengthMy(email2,"send_login_email", minLen, maxLen) == false) {
                    bValid = false;
                    tips2.text("Délka e-mailové adresy musí být mezi "+minLen+" a "+maxLen).effect("highlight",{},500);
                }
                if (bValid) {
                    $.post('./ajax_php/ap_user_send_login.php', {email: email2.val()},
                        function(data) {
                            if (data.success) {
                                $("#send_login_dialog").dialog('close');
                                $("#info_dialog").html('Během několika minut Vám na Váš e-mail <b>' + email2.val() + '</b> přijde Vaše uživatelské jméno a heslo.');
                                $("#info_dialog").dialog('open');
                            } else {
                                tips2.text('Vámi zadaný e-mail '+ email2.val() + ' nebyl nalezen v seznamu zaregistrovaných zákazníků. Vyplňte prosím e-mail znovu.').effect("highlight",{},500);
                            }
                        }, 'json');
                }
            }
        }
    });

    // Dialog Link
    $('#dialog_link').click(function(){
            $('#dialog').dialog('open');
            return false;
    });

    // Datepicker
    $('#datepicker').datepicker({
            inline: true
    });

    // Slider
    $('#slider').slider({
            range: true,
            values: [17, 67]
    });

    // Progressbar
    $("#progressbar").progressbar({
            value: 20
    });

    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    //hover states on the static widgets
    
    $('#dialog_link, .dialog_link2, ul#icons li').hover(


            function() {
                    //$('#dialog').dialog('open');
                    //$(this).addClass('ui-state-hover');
                    },
            function() {
                    //$('#dialog').dialog('close');
                    //$(this).removeClass('ui-state-hover');
                    }
    );
    
    var firstname = $("#firstname"),
        surname = $("#surname"),
        phone = $("#phone"),
        street = $("#street"),
        city = $("#city"),
        post_code = $("#post_code"),
        email = $("#email"),
        login = $("#login"),
        password = $("#password"),
        password2 = $("#password2"),
        //allFields = $([]).add(firstname).add(surname).add(email).add(password),
        tips = $("#validateTips");


    ////////////////////////////////////////////////////////////////////////////////
    //registace uzivatele
    $("#dialog_user").dialog({
        bgiframe: true,
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        buttons: {
            'Další krok': function() {
                var bValid = true;
                //allFields.removeClass('ui-state-error');
                firstname.removeClass('ui-state-error');
                surname.removeClass('ui-state-error');
                phone.removeClass('ui-state-error');
                email.removeClass('ui-state-error');

                bValid = bValid && checkLength(firstname,"jména",3,30);
                bValid = bValid && checkLength(surname,"příjmení",3,30);
                bValid = bValid && checkPhone(phone,/^([0-9])+$/,/^\+([0-9])+$/, 9, 13);
                bValid = bValid && checkLength(email,"email",6,50);

                // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
                bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"Vámi zadaný email není platný.");

                if (bValid) {
                    $(this).dialog('close');
                    $('#dialog_user_step_2').dialog('open');
                }
            },
            'Zavřít': function() {
                $(this).dialog('close');
            }
        },
        close: function() {
            allFields.val('').removeClass('ui-state-error');
        }
    });

    $('#dialog_user_step_2').dialog({
        bgiframe: true,
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        buttons: {
            'Další krok': function() {
                var bValid = true;
                //allFields.removeClass('ui-state-error');
                street.removeClass('ui-state-error');
                city.removeClass('ui-state-error');
                post_code.removeClass('ui-state-error');

                bValid = bValid && checkLengthTips(street,"ulice",3,50,$("#validateTips2"));
                bValid = bValid && checkLengthTips(city,"město",1,50,$("#validateTips2"));
                bValid = bValid && checkLengthTips(post_code,"PSČ",1,10,$("#validateTips2"));

                if (bValid) {
                    $(this).dialog('close');
                    $('#dialog_user_step_3').dialog('open');
                }

            },
            'Zpět': function() {
                $(this).dialog('close');
                $('#dialog_user').dialog('open');
            },
            'Zavřít': function() {
                $(this).dialog('close');
            }
        },
        close: function() {
            allFields.val('').removeClass('ui-state-error');
        }
    });
    $('#dialog_user_step_3').dialog({
        bgiframe: true,
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        buttons: {
            'Dokončit regitraci': function() {
                var bValid = true;
                $("#validateTips3").text("");
                login.removeClass('ui-state-error');
                password.removeClass('ui-state-error');
                password2.removeClass('ui-state-error');

                //bValid = bValid && checkRegexp(login,/^[a-z]([0-9a-z])+$/i,"Username may consist of a-z, 0-9, underscores, begin with a letter.");
                bValid = bValid && checkRegexpLengthTips(login,/^([0-9a-zA-Z_.@])+$/i,"Přihlašovací jméno může obsahovat následující znaky: a-z, A-Z, 0-9, @, tečku, podtržítko.", $("#validateTips3"), 5, 50, "přihlašovacího jména");
                if (password.val() != password2.val()) {
                    bValid = false;
                    updateTips2("Zadaná hesla musí být stejná.",$("#validateTips3"));
                    password.addClass('ui-state-error');
                    password2.addClass('ui-state-error');
                    //tips.text(t).effect("highlight",{},1500);
                }

                if (bValid) {
                    $(this).dialog('close');
                    $.post('./ajax_php/ap_user_new_login.php', {email: email.val(),
                                                            login: login.val(),
                                                            password: password.val(),
                                                            password2: password2.val(),
                                                            firstname: firstname.val(),
                                                            surname: surname.val(),
                                                            phone: phone.val(),
                                                            street: street.val(),
                                                            city: city.val(),
                                                            new_login: "new_login",
                                                            post_code: post_code.val()},
                        function(data) {
                            switch (data.success) {
                                case -1:
                                    $("#dialog_user_step_3").dialog('open');
                                    //kontrola emailu - email jiz existuje. Umoznit zaslat prihlasovaci udaje na email
                                    //$("#email_error_dialog").html('Vámi zadaný e-mail je již zaregistrovaný. Kliknutím na tlačítko "Odeslat údaje" se na zadaný e-mail odešlou přihlašovací udaje.');
                                    $("#email_error_dialog").html(data.infoText);
                                    $("#email_error_dialog").dialog('open');
                                    
                                    break;
                                case -2:
                                    //kontrola loginu - jiz existuje. Uzivatel musi zadat jiny login
                                    //$("#info_dialog").html('Chyba loginu');
                                    $("#dialog_user_step_3").dialog('open');
                                    $("#info_dialog").html(data.infoText);
                                    $("#info_dialog").dialog('open');
                                    break;
                                case -3:
                                    //kontrola hesla - hesla musi byt stejna
                                    $("#dialog_user_step_3").dialog('open');
                                    $("#info_dialog").html(data.infoText);
                                    $("#info_dialog").dialog('open');
                                    break;
                                case 1:
                                    //uzivatel zaregistrovan
                                    //$("#info_dialog").html('Vaše registrace proběhla v pořádku. Nyní se můžete přihlásit.');
                                    //$(this).dialog('close');
                                    $("#info_dialog").html(data.infoText);
                                    $("#info_dialog").dialog('open');

                                    break;
                                default:
                                    //neocekavana chyba
                                    $("#dialog_user_step_3").dialog('open');
                                    $("#info_dialog").html('Chyba aplikace. Omlouváme se za potíže. Zkuste se prosím zaregistrovat ještě jednou.');
                                    $("#info_dialog").dialog('open');
                                    break;
                            }
                        }, 'json');

                    return false;


                }
                /*
                else {
                                    $("#info_dialog").html('Nejaka chyba :-(');
                                    $("#info_dialog").dialog('open');
                }
                                        */
                   
                    //DOIT - tady by se melo zobrazit potvrzeni prijeti registrace

            },
            'Zpět': function() {
                $(this).dialog('close');
                $('#dialog_user_step_2').dialog('open');
            },
            'Zavřít': function() {
                $(this).dialog('close');
            }
        },
        close: function() {
            allFields.val('').removeClass('ui-state-error');
        }
    });
    $('#email_error_dialog').dialog({
        bgiframe: true,
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        buttons: {
            'Odeslat údaje': function() {
                $(this).dialog('close');
                                    //$("#info_dialog").html('Chyba loginu' + email.val());
                                    //$("#info_dialog").dialog('open');
                $.post('./ajax_php/ap_user_send_login.php', {email: email.val()},
                        function(data) {
                            if (data.success) {
                                //$("#send_login_dialog").dialog('close');
                                $("#info_dialog").html('Během několika minut Vám na Váš e-mail <b>' + email.val() + '</b> přijde Vaše uživatelské jméno a heslo.');
                                $("#info_dialog").dialog('open');
                            } else {
                                //tips2.text('Vámi zadaný e-mail '+ email.val() + ' nebyl nalezen v seznamu zaregistrovaných zákazníků. Vyplňte prosím e-mail znovu.').effect("highlight",{},500);
                            }
                        }, 'json');
            },

            'Zavřít': function() {
                $(this).dialog('close');
            }
        }
    });

    $('.item_availibility').click(function() {
        //var xxx = $(this).attr("title")
        $('#question_availibility_item_name').html($(this).attr("title"));

        availibility_span_title = $(this).attr("title");
        availibility_span_name = $(this).attr("name");
        //alert($(this).attr("name"));
        $('#question_availibility').dialog('open');
        return false;
    });
    $('#question_availibility').dialog({
        bgiframe: true,
        autoOpen: false,
        height: 450,
        width: 400,
        modal: true,
        buttons: {
            'Odeslat dotaz': function() {
                $(this).dialog('close');
                $.post('./ajax_php/ap_item_availibility.php', {user_email: $("#user_email").val(),
                                                               user_phone: $("#user_phone").val(),
                                                               user_name: $("#user_name").val(),
                                                               user_question: availibility_span_title + '<br />' + availibility_span_name},
                        function(data) {
                            if (data.success) {
                                //$("#send_login_dialog").dialog('close');
                                $("#info_dialog").html(data.text);
                                $("#info_dialog").dialog('open');
                            } else {
                                //tips2.text('Vámi zadaný e-mail '+ email.val() + ' nebyl nalezen v seznamu zaregistrovaných zákazníků. Vyplňte prosím e-mail znovu.').effect("highlight",{},500);
                                $('#question_availibility').dialog('open');
                                $("#info_dialog").html(data.text);
                                $("#info_dialog").dialog('open');
                            }
                        }, 'json');
            },

            'Zavřít': function() {
                $(this).dialog('close');
            }
        }
    });


    $('#create-user').click(function() {
        $('#dialog_user').dialog('open');
        return false;
    });
    $('#registrace').click(function() {
        $('#dialog_user').dialog('open');
        return false;
    });

    ////////////////////////////////////////////////////////////////////////////////



            //Add item to cart by AHREF
            $('.Add_Item_To_Cart').click(function() {
                //var item_no = $("#zbo_id");
                /*
                $('#users tbody').append('<tr>' +
                                '<td>' + item_no.val() + '</td>' +

                                '</tr>');
                    */
                var item_no = $('#zbo_id').val();
                $('#cart_dialog').append('asdasdasdasd'+ item_no);
                $('#cart_dialog').dialog('open');


            })

            //Add item to cart by FORM
            $("form.add_item_to_cart_form").each( function(){

                $(this).submit(function(){

                    $.post('ajax_php/ap_cart.php', {add_item_to_cart: 1, item_no: $(this).find("input[name=zbo_id]").val()},
                        function(data) {
                            $("#cart_view").html(data.success);
                            $("#cart_header_banner").html(data.successHB);
                            if (data.successMenu != '') {
                                $("#load_menu").html(data.successMenu);
                            }
                        }, 'json');

                    $("#cart_dialog2").dialog('open');

                    return false;
                });
            });

            //User login
            $("form.user_login_form").each( function(){

                $(this).submit(function(){
                    $.post('./ajax_php/ap_user_login.php', {page_id: $(this).find("input[name=page_id]").val(), user_name: $(this).find("input[name=user_name]").val(), user_password: $(this).find("input[name=user_password]").val()},
                        function(data) {
                            switch (data.success) {
                                case -1:
                                    //$("#info_dialog").html('Při přihlášení došlo k chybě v heslu nebo jménu. Zkuste se prosím přihlásit ještě jednou.');
                                    $("#info_dialog").html(data.text);
                                    $("#info_dialog").dialog('open');
                                    break;
                                case 1:
                                    //$("#info_dialog").html('Byli jste úspěšně přihlášeni.');
                                    $("#info_dialog").html(data.text);
                                    $("#info_dialog").dialog('open');
                                    //GetData("./ajax_php/ap_user_info_banner.php", "login_banner");
                                    $("#login_banner").html(data.banner);
                                    if (data.menu != '') {
                                        $("#load_menu").html(data.menu);
                                    }
                                    break;
                                default:
                                    //$("#info_dialog").html('Zkuste se prosím přihlásit ještě jednou.');
                                    $("#info_dialog").html(data.text);
                                    $("#info_dialog").dialog('open');
                                    break;
                            }

                        }, 'json');
                    return false;
                });
            });

            $(".form_potvrzeni_objednavky_klik").each(function(){
                $(this).click(function(){
                    $('#info_dialog_potvrzeni_objednavky').html('Nyní budete přesměrováni na stránky společnost Cetelem, kde si vybete nejvhodnější splátky pro Vás, vyplníte potřebné informace a po schválení splátek Vám ihned odešleme zboží.')
                    $('#info_dialog_potvrzeni_objednavky').dialog('open');
                    return false;
                });
            });

            $('#info_dialog_potvrzeni_objednavky').dialog({
                    autoOpen: false,
                    modal: true,
                    //width: 600,
                    buttons: {
                            "Ok": function() {
                                    $(this).dialog("close");
                                    $("form.form_potvrzeni_objednavky").submit();
                            }
                    }
            });

            $("form.cart_update").each( function(){
                $(this).submit(function(){
                    $('#cart_dialog').dialog('open');
                    return false;
                });
            });


                    //DATUM
                    $.datepicker.setDefaults(
                        {dateFormat: "yy-mm-dd"},
                        $.extend({showMonthAfterYear: false}, $.datepicker.regional['cs'])

                        );
                    $("#datepicker").datepicker();
            /*
                    $("#locale").change(function() {
                $('#datepicker').datepicker('option', $.extend({showMonthAfterYear: false},
                    $.datepicker.regional[$(this).val()]));
            });

                   $("#format").change(function() { $('#datepicker').datepicker('option', {dateFormat: $(this).val()}); }); */

    ////////////////////////////////////////////////////////////////////////////
    //funkce
    function updateTips(t) {
        tips.text(t).effect("highlight",{},1500);
    }

    function checkLength(o,n,min,max) {

        if ( o.val().length > max || o.val().length < min ) {
            o.addClass('ui-state-error');
            updateTips("Délka " + n + " musí být mezi "+min+" a "+max+".");
            return false;
        } else {
            return true;
        }
    }
    function updateTips2(t,tips2) {
        //tips2.text(t).effect("highlight",{},1500);
        tips2.append(t+"<br>").effect("highlight",{},1500);
    }

    function checkLengthTips(o,n,min,max,tips2) {

        if ( o.val().length > max || o.val().length < min ) {
            o.addClass('ui-state-error');
            updateTips2("Délka " + n + " musí být mezi "+min+" a "+max+".", tips2);
            return false;
        } else {
            return true;
        }
    }
    function checkPhone(o,regexp,regexp2,max,max2) {
        //var regexp = /^([0-9a-zA-Z])+$/;
        //kontrola na delku
        if ( o.val().length < max ) {
            o.addClass('ui-state-error');
            updateTips("Telefonní číslo můsí obsahovat ninimálně 9 číslic (například 111222333 nebo pro mezistátní formát +420111222333)");
            return false;

        } else if ( o.val().length == max ) {
            //pokud delka odpovida, tak se musi prekontrolovat, ze jde opravdu o cislo
            if ( !regexp.test( o.val()) ) {
                o.addClass('ui-state-error');
                updateTips("Telefonní číslo může obsahovat pouze číslice (například 111222333 nebo pro mezistátní formát +420111222333)");
                return false;
            } else {
                return true;
            }
        } else {
            if ( !regexp2.test( o.val()) ) {
                o.addClass('ui-state-error');
                updateTips("Telefonní číslo může obsahovat pouze číslice (například 111222333 nebo pro mezistátní formát +420111222333)");
                return false;
            } else {
                return true;
            }
        }

    }

    function checkRegexp(o,regexp,n) {
        if ( !( regexp.test( o.val() ) ) ) {
            o.addClass('ui-state-error');
            updateTips(n);
            return false;
        } else {
            return true;
        }
    }
    function checkRegexpLengthTips(o,regexp,n,tips,min,max,text) {
        if (checkLengthTips(o, text, min, max, tips) == true) {
            if ( !( regexp.test( o.val() ) ) ) {
                o.addClass('ui-state-error');
                updateTips2(n,tips);
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    }
    ////////////////////////////////////////////////////////////////////////////


    $('#send_login_href').click(function() {
        $('#send_login_dialog').dialog('open');
        return false;
    });
    
    $("#currency_widget").change(function() {
        $("#currency_widget_form").submit();
    });

});


