﻿String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
$(document).ready(function() {
    $('.confirmed,.failed').hide();
    $('input.sendButton, input.signUpButton').click(function() {
        var missingFields = "";
        $('.required').each(function(index, element) {
            $(element).val($(element).val().trim());
            if ($(element).val().trim() == "") {
                $(element).siblings("label").addClass('invalid');
                missingFields = missingFields + " " + $(element).attr('id');
            } else {
                $(element).siblings("label").removeClass('invalid');
            }
        });
        if (missingFields.trim() != "") {
            $('.failed').html('Please fill out all the required fields.');
        }
        $('.validateEmail').each(function(index, element) {
            if (!(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test($(this).val()))) {
                $(element).siblings("label").addClass('invalid');
                missingFields = missingFields + " " + $(element).attr('id');
                $('.failed').html('Please enter a valid email address.');
            }
        });

        if ($('#cemail').length > 0) {
            if ($('#cemail').val().trim() != $('#email').val().trim()) {
                $('#cemail').siblings('label').addClass('invalid');
                missingFields = missingFields + " cemail";
                $('.failed').html('Please verify that your email addresses match.');
            }
        }

        if ($('#privacy').length > 0 && $('#privacy:checked').length == 0) {
            missingFields = missingFields + " cemail";
            $('.failed').html('You must accept the terms and conditions of the privacy policy.');
        }

        if ($('.archnews').length > 0 && $('.archnews:checked,.memnews:checked').length == 0) {
            missingFields = missingFields + " archnews memnews";
            $('.failed').html('Please select at least 1 newsletter to subscribe to.');
        }

        if (missingFields.trim() != "") {
            $('.failed').show("blind");
            $.scrollTo('.failed', 800);
            return false;
        }

    });

    var hashTag = document.location.hash.substring(1, document.location.hash.length);
    if (hashTag == "completed") {
        $(".confirmed").show();
    }
});