function submitMessage() {
    var params = Form.serialize('contact-form');
    new Ajax.Request('ajax/contact.php', {
        method: 'post',
        parameters: params,
        postBody: params,
        onComplete: resetContactForm
    });

    return false;
}

function resetContactForm(transport, json) {
    if (json.status == 'ok') {    
        Form.reset('contact-form');
        $('contact-form').hide();
        $('tooltip').innerHTML = json.message;
        Effect.Appear('tooltip');
    } else {
        $('captcha').showError($('captcha'), json.message);
    }
}

function initFormValidation() {
    contact_form = new FormValidator('contact-form', {submitCallback: submitMessage});
    contact_form.addRule('name', {required: true});
    contact_form.addRule('email', {callback: validateEmail, required: true});
    contact_form.addRule('message', {required: true});
    contact_form.addRule('captcha', {required: true});
}

Event.observe(window, 'load', initFormValidation, false);
