jQuery(document).ready(function () { function setCookie2(cname, cvalue, exdays) { const d = new Date(); d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000); let expires = 'expires=' + d.toUTCString(); document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/'; } var consultationFormError = false; var scheduleCallURL = 'https://talkto.jhavtech.com.au/meetings/bookwithus/now'; function validateEmail(email) { var emailReg = /[^@\s]+@[^@\s]+\.[^@\s]+/; return emailReg.test(email); } // Description validation. var descriptionInputBlurred = false; $('.consultation-form textarea[name="description"]').blur(function () { descriptionInputBlurred = true; if ($('.consultation-form textarea[name="description"]').val().length < 1) { $('.consultation-form-description-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form textarea[name="description"]').val().length > 5000) { $('.consultation-form-description-error-text').show().text('Description exceeds the 5000 character limit'); consultationFormError = true; } else { $('.consultation-form-description-error-text').hide().text(''); } }); $('.consultation-form textarea[name="description"]').keyup(function () { if (!descriptionInputBlurred) { return false; } if ($('.consultation-form textarea[name="description"]').val().length < 1) { $('.consultation-form-description-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form textarea[name="description"]').val().length > 5000) { $('.consultation-form-description-error-text').show().text('Description exceeds the 5000 character limit'); consultationFormError = true; } else { $('.consultation-form-description-error-text').hide().text(''); } }); // Phone number validation var phoneInputBlurred = false; $('.consultation-form input[name="mobnum"]').blur(function () { phoneInputBlurred = true; if ($('.consultation-form input[name="mobnum"]').val().length < 1) { $('.consultation-form-phone-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form input[name="mobnum"]').val().length > 100) { $('.consultation-form-phone-error-text').show().text('Phone number exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-phone-error-text').hide().text(''); } }); $('.consultation-form input[name="mobnum"]').keyup(function () { if (!phoneInputBlurred) { return false; } if ($('.consultation-form input[name="mobnum"]').val().length < 1) { $('.consultation-form-phone-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form input[name="mobnum"]').val().length > 100) { $('.consultation-form-phone-error-text').show().text('Phone number exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-phone-error-text').hide().text(''); } }); // Email validation var emailInputBlurred = false; $('.consultation-form input[name="email"]').blur(function () { emailInputBlurred = true; var emailEntered = $('.consultation-form input[name="email"]').val(); if (emailEntered.length < 1) { $('.consultation-form-email-error-text').show().text('Please fill in this field'); consultationFormError = true; } else { if (!validateEmail(emailEntered)) { $('.consultation-form-email-error-text').show().text('Invalid email'); } else if (emailEntered.length > 100) { $('.consultation-form-email-error-text').show().text('Email exceeds the 100 character limit'); } else { $('.consultation-form-email-error-text').hide().text(''); } } }); $('.consultation-form input[name="email"]').keyup(function () { if (!emailInputBlurred) { return false; } var emailEntered = $('.consultation-form input[name="email"]').val(); if (emailEntered.length < 1) { $('.consultation-form-email-error-text').show().text('Please fill in this field'); consultationFormError = true; } else { if (!validateEmail(emailEntered)) { $('.consultation-form-email-error-text').show().text('Invalid email'); } else if (emailEntered.length > 100) { $('.consultation-form-email-error-text').show().text('Email exceeds the 100 character limit'); } else { $('.consultation-form-email-error-text').hide().text(''); } } }); // First name validation. var firstNameInputBlurred = false; $('.consultation-form input[name="first-name"]').blur(function () { firstNameInputBlurred = true; if ($('.consultation-form input[name="first-name"]').val().length < 1) { $('.consultation-form-first-name-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form input[name="first-name"]').val().length > 100) { $('.consultation-form-first-name-error-text').show().text('First name exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-first-name-error-text').hide().text(''); } }); $('.consultation-form input[name="first-name"]').keyup(function () { if (!firstNameInputBlurred) { return false; } if ($('.consultation-form input[name="first-name"]').val().length < 1) { $('.consultation-form-first-name-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form input[name="first-name"]').val().length > 100) { $('.consultation-form-first-name-error-text').show().text('First name exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-first-name-error-text').hide().text(''); } }); // Last name validation. var lastNameInputBlurred = false; $('.consultation-form input[name="last-name"]').blur(function () { lastNameInputBlurred = true; if ($('.consultation-form input[name="last-name"]').val().length > 100) { $('.consultation-form-last-name-error-text').show().text('Last name exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-last-name-error-text').hide().text(''); } }); $('.consultation-form input[name="last-name"]').keyup(function () { if (!lastNameInputBlurred) { return false; } if ($('.consultation-form input[name="last-name"]').val().length > 100) { $('.consultation-form-last-name-error-text').show().text('Last name exceeds the 100 character limit'); consultationFormError = true; } else { $('.consultation-form-last-name-error-text').hide().text(''); } }); $('#wf-form-Consultation-Form').submit(function (e) { e.preventDefault(); consultationFormError = false; var sourceURL = window.location.href; var sourceMedium = $("#wf-form-Consultation-Form").attr('data-source_medium'); if (!sourceMedium || sourceMedium.length < 1) { sourceMedium = ''; } // Hidden phone input for HubSpot tracking. $('#wf-form-Consultation-Form').find('input[name="phone"]').val($('#wf-form-Consultation-Form').find('input[name="mobnum-full"]').val()).attr('value', $('#wf-form-Consultation-Form').find('input[name="mobnum-full"]').val()); // Google reCAPTHCA var reCAPTCHAToken = ''; grecaptcha.ready(function () { grecaptcha.execute('6LdCbcMZAAAAAKXkD4ax_gncd7aWhEllrc8LdvSZ', { action: 'contactform' }).then(function (token) { reCAPTCHAToken = token; $('.consultation-form-error-text').hide(); var consultationFormId = '4981'; if ($('#wf-form-Consultation-Form').attr('data-preferredtimefield') === 'true'){ consultationFormId = '5060'; } if ($('#wf-form-Consultation-Form').attr('data-formid') && $('#wf-form-Consultation-Form').attr('data-formid').length > 0) { consultationFormId = $('#wf-form-Consultation-Form').attr('data-formid'); } var consultationFormAPIEndpoint = 'https://jhavtechstudio.wpenginepowered.com/wp-json/contact-form-7/v1/contact-forms/'+consultationFormId+'/feedback'; // Service validation if ($('.consultation-form input[name="service"]:checked').length < 1) { $('.consultation-form-service-error-text').show(); $('.consultation-form-block').scrollTop(0); consultationFormError = true; } // Description validation if ($('.consultation-form textarea[name="description"]').val().length < 1) { $('.consultation-form-description-error-text').text('Please fill in this field').show(); $('.consultation-form-block').scrollTop(0); consultationFormError = true; } if ($('.consultation-form textarea[name="description"]').val().length > 5000) { $('.consultation-form-description-error-text').text('Description exceeds the 5000 character limit').show(); $('.consultation-form-block').scrollTop(0); consultationFormError = true; } // Phone number validation if ($('.consultation-form input[name="mobnum"]').val().length < 1) { $('.consultation-form-phone-error-text').show().text('Please fill in this field'); consultationFormError = true; } else if ($('.consultation-form input[name="mobnum"]').val().length > 100) { $('.consultation-form-phone-error-text').show().text('Phone number exceeds the 100 character limit'); consultationFormError = true; } // Email validation var emailEntered = $('.consultation-form input[name="email"]').val(); if (emailEntered.length < 1) { $('.consultation-form-email-error-text').show().text('Please fill in this field'); consultationFormError = true; } else { if (!validateEmail(emailEntered)) { $('.consultation-form-email-error-text').show().text('Invalid email'); consultationFormError = true; } else if (emailEntered.length > 100) { $('.consultation-form-email-error-text').show().text('Email exceeds the 100 character limit'); consultationFormError = true; } } // First name validation if ($('.consultation-form input[name="first-name"]').val().length < 1) { $('.consultation-form-first-name-error-text').text('Please fill in this field').show(); consultationFormError = true; } if ($('.consultation-form input[name="first-name"]').val().length > 100) { $('.consultation-form-first-name-error-text').text('First name exceeds the 100 character limit').show(); consultationFormError = true; } // Last name validation if ($('.consultation-form input[name="last-name"]').val().length > 100) { $('.consultation-form-last-name-error-text').text('Last name exceeds the 100 character limit').show(); consultationFormError = true; } // Preferred time. var preferredTime = ''; if ($('.consultation-form').find('input[name="preferred-time"]:checked').val()) { preferredTime = $('.consultation-form').find('input[name="preferred-time"]:checked').val(); } if (consultationFormError) { return false; } var consultationFormData = { _wpcf7_recaptcha_response: reCAPTCHAToken, 'your-service': $('.consultation-form input[name="service"]:checked').val(), 'your-description': $('.consultation-form textarea[name="description"]').val(), 'your-sms': $('.consultation-form input[name="mobnum-full"]').val(), 'your-email': $('.consultation-form input[name="email"]').val(), 'your-firstname': $('.consultation-form input[name="first-name"]').val(), 'your-lastname': $('.consultation-form input[name="last-name"]').val(), 'your-preferred-time': preferredTime, 'your-source-url': sourceURL, 'your-source-medium': sourceMedium }; // Scroll to top of the form. $('.consultation-form-block').scrollTop(0); // Body overflow fix $('body').css('overflow-y', 'hidden'); // Show Skeleton Loader $('.consultation-form-popup').css({ display: 'none', opacity: '0' }); $('.consultation-form-submitted-popup-skeleton').css({ display: 'flex' }); $.ajax({ url: consultationFormAPIEndpoint, type: 'POST', data: consultationFormData, success: function (resp) { var response = resp; if (response.status === 'mail_sent') { $('.consultation-form-submitted-popup-skeleton').css({ display: 'none' }); $('.consultation-form-submitted-popup').css({ display: 'flex', opacity: '1' }); $('.consultation-form-error-text').hide(); // Set Cookie setCookie2('consultationFormSubmitted', 'true', 30); // For new design $('.consultation-form-submitted-popup-v2').css({ display: 'flex', opacity: '1' }); var scheduleCallQueryString = '?firstName=' + $('.consultation-form input[name="first-name"]').val() + '&lastName=' + $('.consultation-form input[name="last-name"]').val() + '&email=' + $('.consultation-form input[name="email"]').val() + '&phone=' + $('.consultation-form input[name="mobnum-full"]').val(); var finalScheduleCallURL = scheduleCallURL + scheduleCallQueryString; $('.consultation-form-submitted-v2-schedule-box-button').attr('href', finalScheduleCallURL); document.getElementById('wf-form-Consultation-Form').reset(); if ($('#wf-form-Consultation-Form').attr('data-skipserviceselect') === 'true') { $('input[name="service"][value="app-development"]').prop('checked', true); } } else if (response.status === 'validation_failed' && response.invalid_fields && response.invalid_fields.length > 0 && response.invalid_fields[0].field == 'your-email') { $('.consultation-form-email-error-text').show().text('Please use a different email'); $('.consultation-form-popup').css({ display: 'flex', opacity: '1' }); $('.consultation-form-submitted-popup-skeleton').css({ display: 'none' }); } else { $('body').css('overflow-y', 'auto'); $('.consultation-form-popup').css({ display: 'flex', opacity: '1' }); $('.consultation-form-submitted-popup-skeleton').css({ display: 'none' }); $('.consultation-form-error-text').hide(); alert('Error: ' + response.status + '\nMessage: ' + response.message); } }, error: function (jqXHR, textStatus, errorThrown) { $('body').css('overflow-y', 'auto'); $('.consultation-form-popup').css({ display: 'flex', opacity: '1' }); $('.consultation-form-submitted-popup-skeleton').css({ display: 'none' }); $('.consultation-form-error-text').hide(); alert('Something went wrong. Please try again later.'); console.log(jqXHR); }, }); }); }); }); });