var i18n = {
    ru: {
        'no_rooms_available': 'Нет свободных номеров',
        'booking_success': 'Ваша заявка принята. В ближайшее время с Вами свяжется наш менеджер.',
        'wrong_name_format': 'Неправильный формат "ФИО"',
        'name_is_not_set': 'Не заполнено поле "ФИО".',
        'wrong_email_format': 'Неправильный формат "E-mail"',
        'email_is_not_set': 'Не заполнено поле "E-mail"',
        'wrong_phone_format': 'Телефон должен быть в формате +78126050555',
        'phone_is_not_set': 'Не заполнено поле "Телефон"',
        'date_from_is_not_present': 'Дата заезда должна быть актуальной',
        'date_from_is_not_set': 'Не заполнено поле "Дата заезда"',
        'date_to_is_not_present': 'Дата выезда должна быть актуальной',
        'date_to_is_not_set': 'Не заполнено поле "Дата выезда"'
    },
    en: {

    }
};

function getLabel(key, lang) {
    return (i18n[lang][key]) ? i18n[lang][key] : key;
}

$(document).ready(function() {
    $.datepicker.setDefaults($.extend({
    	dateFormat: 'yy-mm-dd'
    }, $.datepicker.regional["ru"]));

    $("input.datePicker").datepicker();

    $('#select-category').bind('change', function() {
        var option = $(this).find('option:selected').text(),
            props = {};

        switch (option) {
            case 'Стандарт +':
            case 'Классический':
                props.people = 2;
                props.additional = false;
                break;
            case 'Улучшенный твин':
            case 'Улучшенный дабл':
                props.people = 2;
                props.additional = true;
                break;
            case 'Премиум':
            case 'Свадебный ':
                props.people = 4;
                props.additional = true;
        }

        var property = $('#input-additional');

        if (props.additional) {
            property.removeAttr('disabled');
        } else {
            property.attr('disabled', 'disabled');
        }

        var property = $('#select-people').empty();

        for (var i = 0; i < props.people; i++) {
            var option = $('<option/>').attr('value', i + 1).text(i + 1);

            property.append(option);
        }

        return false;
    });

    $('#select-payment').bind('change', function() {
        var value = $(this).val(),
            dialog = $('#dialog');

        $('#form-booking').find('.group').removeClass('active').find(':input').attr('disabled', 'disabled');
        $('#payment-' + value).addClass('active').find(':input').removeAttr('disabled');

        dialog.css('margin-top', - dialog.height() / 2);

        return false;
    });

    /*$('#bron').unbind().bind('click', function() {
        var overlay = $('#overlay-dialog'),
            stub = $('#stub');

        overlay.show();

        stub.fadeIn('fast');

        stub.find('.close').bind('click', function() {
            overlay.hide();
            stub.fadeOut('fast');

            return false;
        });


        return false;
    });*/


    $('#bron').unbind().bind('click', function() {
        var overlay = $('#overlay-dialog'),
            dialog = $('#dialog');

        overlay.show();

        dialog.css('margin-top', - dialog.height() / 2).fadeIn('fast');

        dialog.find('.close').bind('click', function() {
            overlay.hide();
            dialog.fadeOut('fast');

            return false;
        });

        dialog.find('.message').hide();
        dialog.find('form').show();

        dialog.find('.panel').removeClass('active');
        dialog.find('.panel').first().addClass('active');

        document.getElementById('form-booking').reset();

        $('#select-category').change();
        $('#select-payment').change();

        return false;
    });

    $('#back').bind('click', function() {
        var dialog = $('#dialog'),
            panel = $('#form-booking').find('.panel.active');

        if (panel.prev('.panel').size()) {
            $(this).hide();
            panel.removeClass('active');
            panel.prev('.panel').addClass('active');

            dialog.css('margin-top', - dialog.height() / 2);
        }

        return false;
    });

    $('#book').bind('click', function() {
        var form = $('#form-booking'),
            dialog = $('#dialog'),
            panel = form.find('.panel.active'),
            message = dialog.find('.message'),
            url = '/udata/hotels/book.json?json-callback=?',
            data = form.serialize();

        var fields = panel.find(':input').not(':disabled');

        for (var i = 0; i < fields.size(); i++) {
            var field = fields.eq(i);

            if (!field.val() && !field.is('[name=comment]')) {
                field.focus();

                console.log(field);

                alert('Заполните необходимые поля');

                return false;
            }
        }

        if (panel.next('.panel').size()) {
            panel.removeClass('active');
            panel.next('.panel').addClass('active');

            $('#back').show();

            dialog.css('margin-top', - dialog.height() / 2);
        } else {
            $.getJSON(url, data, function(json) {
                if (json.status == 'success') {
                    var html = 'Спасибо за заказ. В ближайшее время с Вами свяжется наш менеджер. Подробную информацию о заказе Вы можете посмотреть <a href="' + json.link + '" target="_blank">здесь</a>';

                    form.hide();
                    message.html(html).show();
                    dialog.css('margin-top', - dialog.height() / 2).fadeIn('fast');
                } else {
                    alert(getLabel(json.message, 'ru'));
                }
            });
        }

        return false;
    });
});
