var leftBooking = function()
{
    var options = {
        blockId  : 'left_booking',
        postUrl  : '/booking/left/',
        submitId : 'left_submit_button',
        msgsId   : 'left_errors'
    };
    
    var loading = false;
    
    var openned = false;
    
    function submit()
    {
        if (loading) {
            return false;
        }
        
        hideMsgs();
        
        loading = true;
        
        showLoading();
        
        var formData = $('#' + options.blockId).serializeArray();
        
        $.post(options.postUrl, formData, submitResult, 'json');
        
        return false;
    }
    
    function submitResult(data)
    {
        loading = false;
        
        hideLoading();
        
        if (data.result) {
            refreshCaptcha();
            showMessages(data.messages);
            leftBooking.reset();
        } else {
            refreshCaptcha();
            showErrors(data.errors);
        }
    }
    
    function showMessages(messages)
    {
        for (var i=0; i<messages.length; i++) {
            $('#' + options.msgsId).append('<li class="message">' + messages[i] + '</li>');
        }
        
        $('#' + options.msgsId).show();
    }
    
    function showErrors(errors)
    {
        for (var i=0; i<errors.length; i++) {
            $('#' + options.msgsId).append('<li class="error">' + errors[i] + '</li>');
        }
        
        $('#' + options.msgsId).show();
    }
    
    function hideMsgs()
    {
        $('#' + options.msgsId).empty().hide();
    }
    
    function showLoading()
    {
        $('#' + options.submitId).attr('src', '/templates/bezposrednika/images/loading.gif');
    }

    function hideLoading()
    {
        $('#' + options.submitId).attr('src', '/templates/bezposrednika/images/otparavit.jpg');
    }
    
    function refreshCaptcha()
    {
        $('#' + options.blockId + ' tr.captcha td.image img').attr('src', '/kcaptcha.php?r=' + Math.random());
    }
    
    return {
        next : function()
        {
            if (!openned) {
                $('#' + options.blockId + ' tr.captcha').show();
                $('#' + options.submitId).attr('src', '/templates/bezposrednika/images/otparavit.jpg');
                openned = true;
            } else {
                submit();
            }
        },
        
        reset : function()
        {
            $('#' + options.blockId).get(0).reset();
        }
    }
}();