1(function() { 2 (function() { 3 var $, EMAIL_REGEXP, initializeMailingLists; 4 $ = this.jQuery; 5 EMAIL_REGEXP = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63}$/i; 6 initializeMailingLists = (function(_this) { 7 return function() { 8 return $('.format-mailing-list').each(function(domIndex, domElement) { 9 var $errorMessage, $form, $input, $mailingList, $submitButton, $successMessage, buttonStyle, buttonText, formHasBeenSubmitted, placeholder, submitForm, successMessageText, validateForm; 10 $mailingList = $(domElement); 11 $form = $mailingList.find('.format-mailing-list__form'); 12 $input = $mailingList.find('.format-mailing-list__email-input'); 13 $submitButton = $mailingList.find('.format-mailing-list__submit-button'); 14 $successMessage = $mailingList.find('.format-mailing-list__success-message').hide(); 15 $errorMessage = $mailingList.find('.format-mailing-list__error-message').hide(); 16 formHasBeenSubmitted = false; 17 $form.on("submit", function($event) { 18 var formIsValid; 19 $event.preventDefault(); 20 formHasBeenSubmitted = true; 21 formIsValid = validateForm(); 22 if (formIsValid) { 23 return submitForm(); 24 } 25 }); 26 $input.on("keyup", function($event) { 27 return validateForm(); 28 }); 29 placeholder = $.trim($mailingList.find('.format-mailing-list__email-input-placeholder-text').text()); 30 $input.attr({ 31 placeholder: placeholder 32 }); 33 successMessageText = $.trim($mailingList.find('.format-mailing-list__success-message-text').text()); 34 $successMessage.text(successMessageText); 35 buttonText = $.trim($mailingList.find('.format-mailing-list__submit-button-text').html()); 36 $submitButton.html(buttonText); 37 buttonStyle = window.getComputedStyle($mailingList[0]).getPropertyValue('--button-style'); 38 $submitButton.addClass("format-mailing-list__submit-button--" + ($.trim(buttonStyle))); 39 validateForm = function() { 40 var email, message; 41 email = $input.val(); 42 if (!email || !email.match(EMAIL_REGEXP)) { 43 message = "Please enter a valid email"; 44 } 45 if (message && formHasBeenSubmitted) { 46 $errorMessage.text(message).show(); 47 } else { 48 $errorMessage.hide(); 49 } 50 return !message; 51 }; 52 return submitForm = function() { 53 $submitButton.attr("disabled", true); 54 $submitButton.text("Sending..."); 55 return $.ajax({ 56 url: $form.attr("action"), 57 data: $form.serialize(), 58 type: "POST" 59 }).done(function() { 60 $form.hide(); 61 $errorMessage.hide(); 62 return $successMessage.show(); 63 }).fail(function() { 64 $errorMessage.text("Something went wrong. Please try again."); 65 return $errorMessage.show(); 66 }).always(function() { 67 $submitButton.attr("disabled", false); 68 return $submitButton.html(buttonText); 69 }); 70 }; 71 }); 72 }; 73 })(this); 74 return $(initializeMailingLists); 75 }).call(_4ORMAT); 76 77}).call(this);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.