$(document).ready(function() {
    $('#consultations_form').submit(function(event) {
        $.post('/pages/consultations', $(this).serialize(), consultationForm.successRequest, 'json');
        event.preventDefault();
    });
    $('#free_laser_hair_removal_form').submit(function(event) {
        $.post('/pages/free_laser_hair_removal', $(this).serialize(), freeLaserHairRemovalForm.successRequest, 'json');
        event.preventDefault();
    });
    $('#refer_a_friend_form').submit(function(event) {
        $.post('/pages/refer_a_friend', $(this).serialize(), referAFriendForm.successRequest, 'json');
        event.preventDefault();
    });
});

var consultationForm = {
    successRequest: function(data) {
        $('label', '#consultations_form').removeClass('error');

        if (data.success == true) {
            $('input[type=text], select, textarea', '#consultations_form').val('');
            $('#consultations_success').show(0).delay(8000).fadeOut('slow');
        } else {
            $.each(data.fields, function(index, fieldname) {
                consultationForm.markFieldAsInvalid(fieldname);
            });
        }
    },
    markFieldAsInvalid: function(fieldName) {
        var camelized = fieldName.replace(/[-_]([a-z])/ig, function(all, letter) {
            return letter.toUpperCase();
        });
        var fieldId = 'ContactSubmission' + camelized.charAt(0).toUpperCase() + camelized.substr(1, camelized.length - 1);

        $('label[for=' + fieldId + ']', '#consultations_form').addClass('error');
    }
};
var freeLaserHairRemovalForm = {
    successRequest: function(data) {
        $('input', '#free_laser_hair_removal_form').removeClass('bg-error');

        if (data.success == true) {
            $('input[type=text]', '#free_laser_hair_removal_form').val('');
            $('#request_success').show(0).delay(8000).fadeOut('slow');
        } else {
            $.each(data.fields, function(index, fieldName) {
                freeLaserHairRemovalForm.markFieldAsInvalid(fieldName);
            });
        }
    },
    markFieldAsInvalid: function(fieldName) {
        var camelized = fieldName.replace(/[-_]([a-z])/ig, function(all, letter) {
            return letter.toUpperCase();
        });
        var fieldId = 'ContactSubmission' + camelized.charAt(0).toUpperCase() + camelized.substr(1, camelized.length - 1);

        $('#' + fieldId, '#free_laser_hair_removal_form').addClass('bg-error');
    }
};
var referAFriendForm = {
    successRequest: function(data) {
        $('input', '#refer_a_friend_form').removeClass('bg-error');

        if (data.success == true) {
            $('input[type=text]', '#refer_a_friend_form').val('');
            $('#request_success').show(0).delay(8000).fadeOut('slow');
        } else {
            $.each(data.fields, function(index, fieldName) {
                referAFriendForm.markFieldAsInvalid(fieldName);
            });
        }
    },
    markFieldAsInvalid: function(fieldName) {
        var camelized = fieldName.replace(/[-_]([a-z])/ig, function(all, letter) {
            return letter.toUpperCase();
        });
        var fieldId = 'ContactSubmission' + camelized.charAt(0).toUpperCase() + camelized.substr(1, camelized.length - 1);

        $('#' + fieldId, '#refer_a_friend_form').addClass('bg-error');
    }
};
