if(typeof (m) == "undefined" || !m) {
    var m = {};
}

(function($) {
    var callbackForm = null;

    m.callback = {
        show : function() {
            if (null === callbackForm) {
                __setup();
            }

            __resetForm();
            callbackForm.dialog('open');
        }
    }

    function __sendRequest()
    {
        var form = $('form', callbackForm);
        $('#callback-send')
            .attr('value', 'Загрузка...')
            .attr('disabled', true);

        $.post(form.attr('action'), form.serialize(), function(data) {
            $('#callback-success').slideDown();

            $('#callback-send')
                .attr('value', 'Отправить')
                .attr('disabled', false);
        }, 'text');
    }

    function __resetForm()
    {
        $('#callback-success').hide();
        $('#callback_name, #callback_phone, #callback_text').val('');
    }

    function __setup()
    {
        callbackForm = $('#callback-form').dialog({
            width : 350,
            height : 280,
            modal : true
        });

        $('#callback-send').click(function(e) {
            e.preventDefault();

            if (__checkForm()) {
                __sendRequest();
            }
        });

        $('#callback-close').click(function(e) {
            e.preventDefault();

            callbackForm.dialog('close');
        });
    }

    function __checkForm()
    {
        if ($('#callback_name').val() == '') {
            alert('Пожалуйста, введите имя!');
            __focusField($('#callback_name').get(0));
            return false;
        }

        if ($('#callback_phone').val() == '') {
            alert('Пожалуйста, введите номер телефона!');
            __focusField($('#callback_phone').get(0));
            return false;
        }

        return true;
    }

    function __focusField(field)
    {
        if (typeof(field.focus) == 'function') {
            field.focus();
        }
    }
}) (jQuery);
