CINXE.COM
<!-- Script to prevent displaying the create-account html fragment when not accessed by ajax, redirects to opening the modal instead --> <script> if (typeof(person) === "undefined") { location.href="/?register=true"; } </script> <div id="signup-modal" class="modal-legacy signup-modal"> <article> <section class="register-form split-form"> <h1>Join Letterboxd</h1> <form method="get" novalidate='novalidate' autocorrect='off' autocapitalize='off'><input type="hidden" name="__csrf" value="5af56354ee87451f4201" /> <input type="hidden" name="token" value="" /> <fieldset> <section class="account-info"> <div class="form-row"> <label>Email address</label> <input type="email" name="emailAddress" class="field -reversed field-email" inputmode='email' value="" /> </div> <div class="form-row"> <label>Username</label> <input type="text" name="username" class="field -reversed -medium field-medium" maxlength="15" value="" /> <div class="check-container" data-check-url="/s/checkusername"></div> </div> <div class="form-row"> <label>Password</label> <input type="password" name="password" class="field -reversed -medium field-medium" autocomplete='new-password' value="" /> </div> <div class="form-row"> <label class="option-label -checkbox -default -reversed"> <input type="checkbox" name="termsAndAge" class="checkbox" value="true" /><i class="substitute"></i> I鈥檓 at least 16 years old and accept the <a href="/legal/terms-of-use/" target="_blank" rel="noopener noreferrer">Terms of Use</a>. </label> </div> <div class="form-row"> <label class="option-label -checkbox -default -reversed"> <input type="checkbox" name="acceptPrivacyPolicy" class="checkbox" value="true" /><i class="substitute"></i> I accept the <a href="/legal/privacy-policy/" target="_blank" rel="noopener noreferrer">Privacy Policy</a> and consent to the processing of my personal information in accordance with it. </label> </div> <div class="clear"></div> <div class="js-recaptcha" style="margin-bottom: 20px; min-height: 78px;"></div> <div class="form-row buttons"> <div class="button-container"> <input type="submit" class="signup-button button -action button-action" value="Sign up" /><i></i> </div> </div> </section> </fieldset> </form> </section> </article> </div> <style> #signup-modal article { display: none; } #signup-modal input[name='username'] { display: inline-block; } .mobile #signup-modal input.field-medium { width: 130px; } </style> <script> $(function() { const $modal = $('.signup-modal') const $form = $modal.find('form') function initRegistration() { const $node = $form.closest('article') const r1 = Math.floor(Math.random() * 20); const r2 = 20 - r1; for (let i = 0; i < r1; i++) { $modal.prepend($node.clone()) } for (let i = 0; i < r2; i++) { $modal.append($node.clone()) } $node.show() bxd.layout($node) bxd.initUsernameChecker($form.find("input[name='username']"), $form.find('.check-container')) const $recaptcha = $form.find('.js-recaptcha') $recaptcha.data('key', 'f74f85da-8202-441f-8465-11f2ebc7ef04') bxd.renderHCaptcha($recaptcha, function() { $('.create-account-menu a, a.create-account-link').colorbox.resize() }) } $form.on("submit", function(e) { e.preventDefault(); const $registerForm = $(this); const $spinnerContainer = $form.find(".button-container") if (!$registerForm.hasClass("ajax-processing")) { $registerForm.addClass('ajax-processing'); $spinnerContainer.lbSpinner({ size: 14, fallback: globals.spinners.spinner_14_20272f }) bxd.submitRegistration({ url: '/user/register.do', type: 'POST', timeout: 30000, success: function(html, textStatus, jqxhr) { $("#modal").empty().prepend(html) }, error: function(jqxhr, status){ bxd.showMessages("error", "The server failed to respond within 30 seconds. If you are not signed in on <a href='" + baseURL + "/welcome/?register=true'>this page</a>, please try again.", {sticky: true}); }, complete: function(jqxhr, status){ $registerForm.removeClass("ajax-processing"); $spinnerContainer.lbSpinner("stop"); } }, $registerForm) } return false; }); initRegistration(); }); </script>