/* Author:

*/

$(document).ready(function () {


    // E-mail submission form on Customer Center

    $("div.validateMe .submit").click(function (e) {
        e.preventDefault();
        var form = $(this).parents(".validateMe");
        run_form_validation(form);
    });



    function run_form_validation(form) {
        $(".has-error").removeClass("has-error");

        // Get fields
        var required = $(".required", form),
			error = false;

        // Check required values
        $.each(required, function (index, element) {
            if ($(element).val() == null || $(element).val() == "") {
                $(element).addClass("has-error");
                error = true;
            }
        });

        if (error) {
            $(form).addClass("has-error");
            $(".form-message", form).addClass("has-error").html($('#requiredFieldsErrorMessage').html());
            return;
        }

        // Check for valid email
        var email = $('#newsletterEmail');
        if (!email.val().match(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/)) {
            $(form).addClass("has-error");
            email.addClass("has-error");
            $(".form-message", form).addClass("has-error").html($('#invalidEmailErrorMessage').html());
            return;
        }

        var json = JSON.stringify({
            FirstName: $('#newsletterFirstName').val(),
            LastName: $('#newsletterLastName').val(),
            Email: $('#newsletterEmail').val()
        });

        $.ajax({
            url: '/Www/CustomerCenter/Services/NewsletterSignup.svc/Submit',
            data: json,
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            success: function (data, status, xhr) {
                $(".form-message", form).addClass("success").html(data);
            },
            error: function (xhr, status, error) {
                $(form).addClass("has-error");
                $(".form-message", form).addClass("has-error").html(error);
            }
        });
    }

});
