Lead #719

Company
Prosper Chiropractic Clinic
Website
https://prosperchiropractic.neptune.practicehub.io
Best Contact
Email
()

Override

Captured Pages

View text
jQuery(document).ready(function($) { setTimeout(function() { $('.main-content-wrapper').addClass('loaded'); }, 0); }); * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } body { background-color: #FCFCFD; margin: 0; min-height: 100vh; } /* Sticky header styles */ .sticky-header { position: fixed; top: 0; left: 0; right: 0; background-color: #000; padding: 18px; text-align: center; z-index: 1000; } .sticky-header a { color: #fff; text-decoration: none; font-size: 14px; font-weight: 500; display: flex; align-items: center; justify-content: center; gap: 8px; } .sticky-header a:hover { text-decoration: underline; } .form-label { display: block; margin-bottom: 6px; color: #344054; font-size: 14px; font-weight: 500; } .form-control { width: 100%; height: 52px; padding: 0 14px; border: 1px solid #E5E7EB; border-radius: 8px; font-size: 16px; /* Increased for mobile */ color: #000; transition: all 0.15s; margin-bottom: 16px; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); background-color: #fff; } .form-control:focus { outline: none; border-color: #000; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 0 0 4px rgba(0, 0, 0, 0.08); } .form-control::placeholder { color: #98A2B3; } .checkbox-wrapper { display: flex; align-items: center; justify-content: center; margin-bottom: 24px; } .checkbox-label { display: flex; align-items: center; gap: 8px; color: #344054; font-size: 14px; cursor: pointer; } .forgot-link { color: #000; font-size: 14px; font-weight: 500; text-decoration: none; } .forgot-link:hover { text-decoration: underline; } .btn { width: 100%; height: 52px; border: none; border-radius: 8px; font-size: 16px; font-weight: 500; cursor: pointer; transition: all 0.15s; display: flex; align-items: center; justify-content: center; gap: 8px; } .btn-primary { background-color: #000; color: white; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); margin-bottom: 16px; } .btn-primary:hover { background-color: #1a1a1a; } #auth-layout { /* Enable smooth scrolling */ scroll-behavior: smooth; /* Hide scrollbar by default but allow scrolling */ overflow-y: auto; /* For Firefox */ scrollbar-width: auto; scrollbar-color: rgba(0, 0, 0, 0.2) transparent; position: fixed; top: 62px; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; padding: 24px; padding-top: 0; /* 54px for header + 20px spacing */ } .auth-column-content { width: 100%; max-width: 400px; margin: 0 auto; } .logo-type { text-align: center; margin-bottom: 32px; } .company-name { font-size: 24px; color: #101828; font-weight: 600; margin-bottom: 8px; } .subtitle { color: #475467; font-size: 14px; } /* Two-factor authentication styles */ .two-step-auth-wrapper { display: none; margin-top: 32px; } .auth-title { color: #101828; font-size: 18px; font-weight: 500; margin-bottom: 8px; } .auth-description { color: #475467; font-size: 14px; margin-bottom: 24px; } .mm-number-input-container { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin: 32px 0; } .mm-number-input-item input { width: 100%; height: 56px; text-align: center; font-size: 20px; font-weight: 500; border: 1px solid #E5E7EB; border-radius: 8px; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); transition: all 0.15s; -webkit-appearance: none; appearance: none; } /* Mobile optimizations */ @media (max-width: 480px) { #auth-layout { padding: 16px; } .mm-number-input-container { gap: 6px; } .mm-number-input-item input { height: 48px; font-size: 18px; } .form-control { font-size: 16px; } .btn { height: 48px; } } /* Resend code section */ .resend-container { text-align: center; margin-top: 24px; } .resend-code-btn { background: none; border: none; color: #000; font-size: 14px; font-weight: 500; cursor: pointer; padding: 0; } .countdown-timer { color: #475467; font-size: 14px; } .content-footer { text-align: center; color: #475467; font-size: 14px; margin-top: 32px; line-height: 24px; } .content-footer a { color: #000; text-decoration: none; font-weight: 500; } .content-footer a:hover { text-decoration: underline; } .btn-google { background-color: #fff; border: 1px solid #E5E7EB; color: #344054; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); } .btn-google:hover { background-color: #F9FAFB; } /* Password reset styles */ .password-reset-success { padding: 12px 16px; border-radius: 8px; background-color: #fbf4f0; color: #b46e18; margin: 16px 0; align-items: center; font-size: 14px; line-height: 22px; } /* Error message styles */ .error-messages { display: none; padding: 12px 16px; border-radius: 8px; background-color: #FEF3F2; color: #B42318; margin: 16px 0; align-items: center; font-size: 14px; line-height: 22px; } .verification-processing { font-size: 14px; line-height: 20px; text-align: center; margin-top: 16px; color: #475467; } /* Ensure animations work properly */ .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.shake { -webkit-animation-duration: 0.8s; animation-duration: 0.8s; } /* For Webkit browsers (Chrome, Safari) */ #auth-layout::-webkit-scrollbar { width: 8px; } #auth-layout::-webkit-scrollbar-track { background: transparent; } #auth-layout::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.2); border-radius: 4px; border: 2px solid transparent; } /* Only show scrollbar when hovering */ #auth-layout::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.3); } /* Hide scrollbar when not needed */ #auth-layout.no-scroll { overflow: hidden; } .badge_status-wrapper { background-color: #12b76a; border-radius: 50%; width: .4375rem; height: .4375rem; margin-left: .125rem; margin-right: .125rem; position: relative; } .badge-modern { grid-column-gap: .375rem; border: 1px solid #d5d7da; background-color: white; color: #414651; white-space: nowrap; border-radius: .375rem; align-items: center; padding: .125rem .5rem; font-size: .875rem; font-weight: 600; transition: background-color .3s; display: flex; box-shadow: 0 1px 2px #0a0d120d; } .button-row { grid-column-gap: .75rem; grid-row-gap: .75rem; flex-wrap: wrap; align-items: center; display: flex; } .badge_status-inner { background-color: var(--success500\<deleted\|variable-fd5af5b9\>); opacity: .3; border-radius: 50%; position: absolute; inset: 0%; } /* Add these styles */ .modern-checkbox { display: flex; align-items: center; gap: 8px; position: relative; cursor: pointer; user-select: none; color: #344054; font-size: 14px; } .modern-checkbox input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .checkmark { height: 16px; width: 16px; background-color: #fff; border: 1px solid #E5E7EB; border-radius: 4px; transition: all 0.2s ease; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05); } .modern-checkbox:hover .checkmark { border-color: #D1D5DB; } .modern-checkbox input:checked ~ .checkmark { background-color: #000; border-color: #000; } .checkmark:after { content: ""; position: absolute; display: none; left: 5px; top: 2px; width: 5px; height: 9px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); } .modern-checkbox input:checked ~ .checkmark:after { display: block; } .modern-checkbox input:focus ~ .checkmark { box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 0 0 4px rgba(0, 0, 0, 0.08); } .modern-checkbox .label-text { color: #344054; font-weight: 500; } .trust-device-wrapper { margin: 24px 0; } Prosper Chiropractic Welcome back! Please enter your details. Email Password Forgot password Sign In By logging in to PracticeHub, you agree to our Terms & Conditions. One extra step to protect your account! We've sent a verification code to your email address. Please enter the code from your Google Authenticator app. Didn't receive a code? Resend in 20s Resend code Resending Trust this browser for 30 days jQuery(document).ready(function($) { let authType = ''; let countdownInterval; let isProcessing = false; function setProcessingState(processing) { isProcessing = processing; $('.mm-number-input-item input').prop('disabled', processing); if (processing) { // Add processing indicator if (!$('.verification-processing').length) { $('.mm-number').after('<div class="verification-processing" style="text-align: center; margin-top: 16px; color: #475467;"><i class="fa fa-circle-o-notch fa-spin fa-fw"> Verifying code...'); } } else { // Remove processing indicator $('.verification-processing').remove(); } } function validateCode(number) { if (isProcessing) return; // Prevent multiple submissions if (!authType) { console.warn('authType not set, defaulting to email verification'); authType = 'email'; } setProcessingState(true); var email_address = $('#email-address').val(); var password = $('#password').val(); const trustDevice = $('#trust-device').is(':checked'); $.ajax({ url: '/config/scripts/users/login.php', type: 'POST', dataType: 'json', data: { code: number, email: email_address, password: password, step: authType === 'google' ? 'two_step_auth' : 'verify_email_code', trust_device: trustDevice }, success: function(data) { if (data.step == 'enter') { $('.error-messages').html('').hide(); window.location.href = '/' + data.url; } else { setProcessingState(false); if (data.result == 'error') { $('.error-messages').html('<i class="fa fa-exclamation-triangle" aria-hidden="true" style="margin-right: 5px;">' + data.message).show(); } $('.mm-number-input-item input').addClass('shake'); setTimeout(function() { $('.mm-number-input-item input').removeClass('shake'); $('.mm-number-input-item input').val(''); $('.first-box').focus(); }, 500); } }, error: function() { setProcessingState(false); $('.mm-number-input-item input').addClass('shake'); setTimeout(function() { $('.mm-number-input-item input').removeClass('shake'); $('.mm-number-input-item input').val(''); $('.first-box').focus(); }, 500); } }); } // Handle paste event $('.mm-number-input-item input').on('paste', function(e) { if (isProcessing) { e.preventDefault(); return; } e.preventDefault(); const pastedData = (e.originalEvent.clipboardData || window.clipboardData).getData('text'); if (pastedData) { const numbers = pastedData.replace(/[^\d]/g, '').split(''); $('.mm-number-input-item input').each(function(index) { if (numbers[index]) { $(this).val(numbers[index]); if (index === 5 && numbers.length >= 6) { validateCode(numbers.slice(0, 6).join('')); } } }); } }); // Handle keydown for backspace/delete and number inputs $('.mm-number-input-item input').on('input', function(e) { if (isProcessing) return; var item = $(this); var id = item.data('id'); var value = item.val(); var count = $('.mm-number-input-item').length; // Handle input if (value) { // Ensure only numbers value = value.replace(/[^\d]/g, ''); item.val(value.slice(-1)); if (id < count) { $('.mm-number-input-item-' + (id + 1) + ' input').focus(); } var pass = []; $('.mm-number-input-item input').each(function() { pass.push($(this).val()); }); var completeNumber = pass.join(''); if (completeNumber.length === count) { validateCode(completeNumber); } } }); // Handle backspace $('.mm-number-input-item input').on('keydown', function(e) { if (isProcessing) return; var item = $(this); var id = item.data('id'); var value = item.val(); // Handle backspace (8) and delete (46) if ((e.keyCode === 8 || e.keyCode === 46)) { if (!value && id > 1) { e.preventDefault(); var prevInput = $('.mm-number-input-item-' + (id - 1) + ' input'); prevInput.focus().val(''); } } }); // Initialize input items $('.mm-number-input-item').each(function(index) { var item = $(this); var id = index + 1; var input = item.children('input'); item.addClass('mm-number-input-item-' + id); input.data('id', id); }); var button_loader = function(variable, type) { if (type == 'click') { $(variable).prop('disabled', true); $(variable).addClass('loading-button-active'); $('.button-action-text').hide(); $('.button-loading-text').show(); } else if (type == 'finish') { $(variable).prop('disabled', false); $('.button-action-text').show(); $('.button-loading-text').hide(); $(variable).removeClass('loading-button-active'); } }; $('.button-processor').click(function(e) { button_loader(this, 'click'); }); function startResendCountdown() { let seconds = 20; $('.countdown-timer').show(); $('.resend-code-btn').hide(); $('.resending-text').hide(); $('.seconds').text(seconds); if (countdownInterval) { clearInterval(countdownInterval); } countdownInterval = setInterval(() => { seconds--; $('.seconds').text(seconds); if (seconds <= 0) { clearInterval(countdownInterval); $('.countdown-timer').hide(); $('.resend-code-btn').show(); } }, 1000); } $('.resend-code-btn').click(function(e) { e.preventDefault(); const email_address = $('#email-address').val(); const password = $('#password').val(); // Update UI to show "Resending..." $(this).hide(); $('.countdown-timer').hide(); $('.resending-text').show(); // Call the server to resend code $.ajax({ url: '/config/scripts/users/login.php', type: 'POST', dataType: 'json', data: { email: email_address, password: password, step: 'simple_auth', resend: true }, success: function(data) { $('.error-messages').html('').hide(); $('.resending-text').hide(); if (data.result === 'authenticated') { startResendCountdown(); } else if (data.result === 'error') { $('.error-messages').html('<i class="fa fa-exclamation-triangle" aria-hidden="true" style="margin-right: 5px;">' + data.message).show(); $('.resend-code-btn').show(); } }, error: function() { $('.resending-text').hide(); $('.resend-code-btn').show(); $('.error-messages').html('<i class="fa fa-exclamation-triangle" aria-hidden="true" style="margin-right: 5px;">Failed to resend code').show(); } }); }); // Modified login button handler $('#login-button').click(function(e) { e.preventDefault(); var email_address = $('#email-address').val(); var password = $('#password').val(); var csrf_token = $('#csrf-token').val(); $.ajax({ url: '/config/scripts/users/login.php', type: 'POST', dataType: 'json', context: this, data: { email: email_address, password: password, step: 'simple_auth', csrf_token: csrf_token }, success: function(data) { $('.error-messages').html('').hide(); if (data.step == 'show_two_step_auth') { $('#login-form').hide(); $('.subtitle').hide(); $('.two-step-auth-wrapper').show(); // Set auth type and show appropriate content authType = data.auth_type; if (authType === 'google') { $('.google-auth-content').show(); $('.email-auth-content').hide(); } else { $('.google-auth-content').hide(); $('.email-auth-content').show(); startResendCountdown(); } $('.first-box').focus(); } else if (data.step == 'enter') { window.location.href = '/' + data.url; } if (data.result == 'error') { $('#password').val(''); $('.error-messages').html('<i class="fa fa-exclamation-triangle" aria-hidden="true" style="margin-right: 5px;">' + data.message).show(); button_loader(this, 'finish'); } }, error: function(data) { var message = JSON.parse(data.responseText).message; $('#password').val(''); $('.error-messages').html('<i class="fa fa-exclamation-triangle" aria-hidden="true" style="margin-right: 5px;">' + message).show(); button_loader(this, 'finish'); } }); }); // Input handling for verification code jQuery('.mm-number-input-item').each(function(index) { var item = jQuery(this); var id = index + 1; var input = item.children('input'); item.addClass('mm-number-input-item-' + id); input.data('id', id); }); // Clean up interval when navigating away $(window).on('unload', function() { if (countdownInterval) { clearInterval(countdownInterval); } }); }); window.intercomSettings = { app_id: "h4lz7o1w" }; (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/h4lz7o1w';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})() // Set this flag when navigating normally sessionStorage.setItem('intentionalNavigation', 'false'); // Main reload handler - only reloads if it wasn't an intentional navigation function handleBackForward() { if (sessionStorage.getItem('intentionalNavigation') === 'false') { // Prevent further reloads sessionStorage.setItem('intentionalNavigation', 'true'); location.reload(); } } // Check for back/forward navigation window.addEventListener('pageshow', function(event) { if (event.persisted) { handleBackForward(); } }); // Additional check using Performance API window.addEventListener('load', function() { if (window.performance) { const navEntries = performance.getEntriesByType('navigation'); if (navEntries.length > 0 && navEntries[0].type === 'back_forward') { handleBackForward(); } } }); // Reset the flag when leaving the page window.addEventListener('beforeunload', function() { sessionStorage.setItem('intentionalNavigation', 'false'); });