function validateInput(input) {
    var form = input.parents('form');
    $.post(form.attr('action') + 'validate/?field=' + input.attr('id').replace('id_', ''),
        form.formToArray(),
        function (data) {
            showErrors(input, data.errors);
        },
        'json'
    );
}

function relatedErrorList(input) {
    var errorlist = input.siblings('ul.errorlist');
    if (errorlist.length > 0) {
        return errorlist;
    }
    var errorlist = $('<ul class="errorlist"></ul>').insertAfter(input);
    return errorlist;
}

function showErrors(input, errors) {
    var errorlist = relatedErrorList(input);
    errorlist.empty();
    if (errors) {
        $.each(errors, function (i, error) {
            errorlist.append('<li>' + error + '</li>');
        });
    }
}

$(function () {
    $('#contact-form :input').blur(function () {
        validateInput($(this));
    });
});

