$(function() {
    $('#contact_form').submit(function() {
        $('#contact_submit').attr('disabled', 'disabled');
        if (!$.trim($('#contact_comment').val())) {
            $('#contact_status')
                .hide()
                .removeClass('good')
                .addClass('bad')
                .fadeIn('normal')
                .text('Error: comment required');
            $('#contact_submit').removeAttr('disabled');
        } else {
            $.ajax({
                'type': 'POST',
                'url': '/contact.php',
                'data': {
                    'from': $.trim($('input[name=from]').val()),
                    'comment': $.trim($('textarea[name=comment]').val()),
                    'auth': $.trim($('input[name=auth]').val())
                },
                'success': function(response) {
                    if (response === 'ok') {
                        $('#contact_status')
                            .hide()
                            .addClass('good')
                            .removeClass('bad')
                            .fadeIn('normal')
                            .text('Message sent');
                    } else if (response === 'no') {
                        $('#contact_status')
                            .hide()
                            .removeClass('good')
                            .addClass('bad')
                            .fadeIn('normal')
                            .text('Error: check all fields');
                        $('#contact_submit').removeAttr('disabled');
                    } else {
                        $('#contact_status')
                            .hide()
                            .removeClass('good')
                            .addClass('bad')
                            .fadeIn('normal')
                            .text('Oops: something\'s gone wrong');
                        $('#contact_submit').removeAttr('disabled');
                    }
                }
            });
        }
        return false;
    });
});
