banner

Dentist Blog

No Posts Found

We will be posting new content soon. Please feel free to browse our archive and check back here soon for more news and updates.

Schedule a visit today!
Contact Us
Submit

Thank You!

We appreciate you taking the time to visit our site. We'll review your message and be in touch with you soon.

Continue
Lake Zurich Dentist
'); var total_file_size = 0; $(current_form).find('input[type="file"]').each(function () { if ($(this).val().length > 0) { total_file_size += $(this).prop('files')[0].size; } }); $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); if ($(container).next('[data-container="file"]').length < 1) { file_field_counter++; var current_name = $(container).attr('data-name'); var next_container = $(container).clone(true).insertAfter(container); $(next_container).find('input').attr('name', current_name + '_' + file_field_counter); $(next_container).find('input').val(''); $(next_container).find('label .label_name').text(current_label); } if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { $(current_form).find('.max_size_container').addClass('too_large'); $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); $(current_form).find('[data-type="submit"]').addClass('disabled'); $(current_form).addClass('disabled'); } else { $(current_form).find('.max_size_container').removeClass('too_large'); $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); $(current_form).find('[data-type="submit"]').removeClass('disabled'); $(current_form).removeClass('disabled'); } $(container).find('.remove_file').click(function (e) { e.preventDefault(); $(container).remove(); total_file_size = 0; $(current_form).find('input[type="file"]').each(function () { if ($(this).val().length > 0) { total_file_size += $(this).prop('files')[0].size; } }); if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { $(current_form).find('.max_size_container').addClass('too_large'); $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); $(current_form).find('[data-type="submit"]').addClass('disabled'); $(current_form).addClass('disabled'); } else { $(current_form).find('.max_size_container').removeClass('too_large'); $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); $(current_form).find('[data-type="submit"]').removeClass('disabled'); $(current_form).removeClass('disabled'); } if ($('form.disabled').length > 0) { $('form [data-type="submit_multi"]').addClass('disabled'); } else { $('form [data-type="submit_multi"]').removeClass('disabled'); } $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); }); }); $('form *[data-required="true"], form *[data-required="1"]').each(function () { var placeholder = $(this).attr('placeholder'); $(this).attr('required', true); $(this).attr('placeholder', placeholder + ' *'); $(this).find('option[value=""]').text($(this).find('option[value=""]').text() + ' *'); }); $('form fieldset').each(function () { var field_name = $(this).attr('name'); var default_value = $(this).attr('value'); if (default_value !== '') { $(this).find('input[data-type="radio"][name="' + field_name + '"][value="' + default_value + '"]').attr('checked', true); $(this).find('input[data-type="radio"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); $(this).find('input[data-type="checkbox"][name="' + default_value + '"]').attr('checked', true); $(this).find('input[data-type="checkbox"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); } }); $('form *[data-readonly="true"], form *[data-readonly="1"]').each(function () { $(this).attr('readonly', true); }); $('form *[data-hidden="true"], form *[data-hidden="1"]').each(function () { $(this).css('display', 'none'); }); $('form[data-dynamic="true"]').on('submit', function (e) { console.time('Click 2 Submit') e.preventDefault(); var submitted_form = $(this); var recaptcha_site_key = $(this).attr('data-recaptcha-site-key'); var recaptcha_secret_key = $(this).attr('data-recaptcha-secret-key'); var recaptcha_processor = $(this).attr('data-recaptcha-processor'); if ( recaptcha_site_key !== '' && recaptcha_secret_key !== '' && recaptcha_processor !== '' ) { if (this.checkValidity()) { grecaptcha.ready(function () { grecaptcha.execute(recaptcha_site_key, { action: 'submit' }).then(function (token) { $.post(recaptcha_processor, { secret: recaptcha_secret_key, response: token }) .done(function (recaptcha) { prepare_submission(submitted_form, recaptcha).then((val) => { return submit_form(val.form_submit, val.recaptcha, val.form_data, val.db_only, val.recipients, val.recipients_add, val.ad_recipients, val.cc, val.cc_add, val.subject, val.category, val.is_hipaa, val.reply_to, val.pdf, val.ad_source, val.ad_campaign, val.ad_location, val.ad_source_key, val.ad_campaign_key, val.ad_location_key, val.submission_url); }).then((val) => { // Done track_submit(submitted_form); }); }) }); }); } } else { if (this.checkValidity()) { prepare_submission(submitted_form, null).then((val) => { return submit_form(val.form_submit, val.recaptcha, val.form_data, val.db_only, val.recipients, val.recipients_add, val.ad_recipients, val.cc, val.cc_add, val.subject, val.category, val.is_hipaa, val.reply_to, val.pdf, val.ad_source, val.ad_campaign, val.ad_location, val.ad_source_key, val.ad_campaign_key, val.ad_location_key, val.submission_url); }).then((val) => { // Done track_submit(submitted_form); }); } } }); $('form .button.submit[data-dynamic="true"]').click(function () { if (!form_button_lock && !click_lock) { click_lock = true; $(this).closest('form').find('input[type="submit"]')[0].click(); } setTimeout(function () { click_lock = false; }, 1000); }); $('form select[name="location"]').change(function (e) { $(this).closest('form').find('input[name="date"').val(''); if ($(this).find(':selected').data('datesDisabled')) { var $selectedOption = $(this).find(':selected').data('datesDisabled'); $selectedOption = atob($selectedOption); $(this).closest('form').find('input[data-toggle="datepicker"]').each(function () { var disabled = JSON.parse($selectedOption); $(this).datepicker('destroy'); $(this).datepicker({ 'autoHide': true, 'filter': function (date, view) { if (disabled['mon'] == true) { if (date.getDay() === 1 && view === 'day') { return false; } } if (disabled['tue'] == true) { if (date.getDay() === 2 && view === 'day') { return false; } } if (disabled['wed'] == true) { if (date.getDay() === 3 && view === 'day') { return false; } } if (disabled['thu'] == true) { if (date.getDay() === 4 && view === 'day') { return false; } } if (disabled['fri'] == true) { if (date.getDay() === 5 && view === 'day') { return false; } } if (disabled['sat'] == true) { if (date.getDay() === 6 && view === 'day') { return false; } } if (disabled['sun'] == true) { if (date.getDay() === 0 && view === 'day') { return false; } } } }); $(this).datepicker('update'); }); } }); } } function prepare_submission(form_submit, recaptcha) { return new Promise((resolve, reject) => { console.time('prepare_submission()'); form_button_lock = true; $(form_submit).find('.button.submit[data-dynamic="true"]').text('Sending...'); const appendLocation = $(form_submit).attr('data-append-location') === '1' ? true : false; const locationSelected = $(form_submit).find('select[name="location"] option:selected') ? $(form_submit).find('select[name="location"] option:selected').text() : null; var form_data = {}; var recipients_add = []; var cc_add = []; var db_only = $(form_submit).attr('data-db-only'); var recipients = $(form_submit).attr('data-recipients'); var ad_recipients = $(form_submit).attr('data-ad-recipients'); var cc = $(form_submit).attr('data-cc'); var subject = $(form_submit).attr('data-subject'); var category = $(form_submit).attr('data-category') + (appendLocation && locationSelected ? ` (${locationSelected})` : ''); var is_hipaa = $(form_submit).attr('data-hipaa'); var reply_to = $(form_submit).attr('data-reply-to'); var pdf = $(form_submit).attr('data-pdf'); var submission_url = $(form_submit).attr('data-submission-url'); var ad_source = $(form_submit).find('[data-ad-tracking="source"]').val(); var ad_campaign = $(form_submit).find('[data-ad-tracking="campaign"]').val(); var ad_location = $(form_submit).find('[data-ad-tracking="ad_location"]').val(); var ad_source_key = (get_cookie('source') ? get_cookie('source') : null); var ad_campaign_key = (get_cookie('campaign') ? get_cookie('campaign') : null); var ad_location_key = (get_cookie('location') ? get_cookie('location') : null); $(form_submit).find('input, textarea, select, fieldset').each(function () { if ( $(this).is('input:not([type="file"])') && $(this)[0].hasAttribute('name') && $(this)[0].hasAttribute('data-email-label') ) { value_obj = { 'label': $(this).attr('data-email-label'), 'name': $(this).attr('name'), 'value': $(this).val(), 'type': 'text' }; form_data[$(this).attr('name')] = value_obj; } if ( $(this).is('textarea') && $(this)[0].hasAttribute('name') && $(this)[0].hasAttribute('data-email-label') ) { value_obj = { 'label': $(this).attr('data-email-label'), 'name': $(this).attr('name'), 'value': $(this).val(), 'type': 'textarea' }; form_data[$(this).attr('name')] = value_obj; } if ( $(this).is('select') && $(this)[0].hasAttribute('name') && $(this)[0].hasAttribute('data-email-label') ) { value_obj = { 'label': $(this).attr('data-email-label'), 'name': $(this).attr('name'), 'value': $(this).val(), 'type': 'select' }; form_data[$(this).attr('name')] = value_obj; if ( $(this).find(':selected').length > 0 && $(this).find(':selected')[0].hasAttribute('data-recipients') && $(this).find(':selected').attr('data-recipients').length ) { recipients_add.push($(this).find(':selected').attr('data-recipients')); } if ( $(this).find(':selected').length > 0 && $(this).find(':selected')[0].hasAttribute('data-cc') && $(this).find(':selected').attr('data-cc').length ) { cc_add.push($(this).find(':selected').attr('data-cc')); } } if ( $(this).is('fieldset') && $(this)[0].hasAttribute('name') && $(this)[0].hasAttribute('data-email-label') ) { var val = []; var keys = []; $(this).find('input:checked').each(function () { val.push($(this).attr('value')); keys.push($(this).attr('name')); }); value_obj = { 'label': $(this).attr('data-email-label'), 'name': $(this).attr('name'), 'keys': keys.join('; '), 'value': val.join('; '), 'type': $(this).attr('type') }; form_data[$(this).attr('name')] = value_obj; } }); console.timeEnd('prepare_submission()'); console.time('submit_form()'); resolve({ "form_submit": form_submit, "recaptcha": recaptcha, "form_data": form_data, "db_only": db_only, "recipients": recipients, "recipients_add": recipients_add, "ad_recipients": ad_recipients, "cc": cc, "cc_add": cc_add, "subject": subject, "category": category, "is_hipaa": is_hipaa, "reply_to": reply_to, "pdf": pdf, "ad_source": ad_source, "ad_campaign": ad_campaign, "ad_location": ad_location, "ad_source_key": ad_source_key, "ad_campaign_key": ad_campaign_key, "ad_location_key": ad_location_key, "submission_url": submission_url }) }); } function submit_form(form_submit, recaptcha, form_data, db_only, recipients, recipients_add, ad_recipients, cc, cc_add, subject, category, is_hipaa, reply_to, pdf, ad_source, ad_campaign, ad_location, ad_source_key, ad_campaign_key, ad_location_key, submission_url) { return new Promise((resolve, reject) => { var email_list = []; var first_name = null; var last_name = null; var file_size_total = 0; var files_uploaded = []; var files_selected = 0; if ( form_submit[0].hasAttribute('data-google-conversion') && google_conversion ) { const conversion_code = $(form_submit[0]).attr('data-google-conversion'); if (conversion_code.length > 0) { google_tracking.gtag('event', 'conversion', { 'send_to': conversion_code }); } } if ( form_submit[0].hasAttribute('data-facebook-conversion') && facebook_conversion ) { const conversion_type = $(form_submit[0]).attr('data-facebook-conversion'); if (conversion_type.length > 0) { facebook_tracking.fbq('track', conversion_type); } } $(form_submit).find('input[type="file"]').each(function () { var file_selected = $(this).val(); if (file_selected.length > 0) { files_selected++; } }); $(form_submit).find('input[type="file"]').each(function () { var file_to_upload = $(this).val(); var submit_promise = new Promise((res, rej) => { if (file_to_upload.length > 0) { var xhr = new XMLHttpRequest(); var file = $(this).prop('files')[0]; var formData = new FormData(); formData.append('file', file); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { files_uploaded.push(xhr.responseText); res(xhr.responseText); } } xhr.open('POST', '/system/processors/file_upload/processor.php', true); xhr.send(formData); } else { res('') } }).then((file) => { if (file) { return file; } else { return ''; } }); files_uploaded.push(submit_promise); }); $(form_submit).find('input[type="email"]').each(function () { email_list.push($(this).val()); }); $(form_submit).find('input[type="text"][data-email-label="First Name"]').each(function () { first_name = $(this).val(); }); $(form_submit).find('input[type="text"][data-email-label="Last Name"]').each(function () { last_name = $(this).val(); }); if ((first_name === null || first_name === '') && (last_name === null || last_name === '')) { $(form_submit).find('input[type="text"][data-email-label="Full Name"], input[type="text"][data-email-label="Name"]').each(function () { const full_name = $(this).val(); first_name = full_name; }); } console.time('POST to processor.php') $.post('/system/processors/validation/processor.php', { type: 'date_time', val: null }) .done(function (validation) { console.timeEnd('POST to processor.php') console.time('Wait For Files') Promise.all(files_uploaded).then((value) => { console.timeEnd('Wait For Files') let uploaded_files = value.filter(file => file); console.log(JSON.stringify(uploaded_files)); console.log('Files Uploaded'); console.time('POST to submission_url') $.post(submission_url, { validation: validation, db_only: db_only, recipients: recipients, recipients_add: JSON.stringify(recipients_add), ad_recipients: ad_recipients, recaptcha: recaptcha, cc: cc, cc_add: JSON.stringify(cc_add), subject: subject, category: category, first_name: first_name, last_name: last_name, is_hipaa: is_hipaa, reply_to: reply_to, pdf: pdf, ad_source: ad_source, ad_campaign: ad_campaign, ad_location: ad_location, ad_source_key: ad_source_key, ad_campaign_key: ad_campaign_key, ad_location_key: ad_location_key, files: JSON.stringify(uploaded_files), data: JSON.stringify(form_data), email_list: JSON.stringify(email_list) }) .done(function (data) { console.timeEnd('POST to submission_url') form_button_lock = false; form_submit[0].reset(); $(form_submit).find('.remove_file').click(); $('form .button.submit[data-dynamic="true"]').each(function () { var placeholder = $(this).attr('placeholder'); $(this).text(placeholder); }); if ($(form_submit).attr('data-action') !== '') { var action = $(form_submit).attr('data-action'); if (action == 'close_lightbox') { close_lightbox(); } if (action == 'redirect') { var redirect = $(form_submit).attr('data-confirmation'); window.location.replace(redirect); } if (action == 'function') { var form_complete_function = $(form_submit).attr('data-confirmation'); window[form_complete_function](form_data); } if (action == 'none') { } } else { var confirmation = $(form_submit).children('section[data-type="system-lightbox-content"]'); $(confirmation).clone().appendTo('section[data-type="system-lightbox-container"]'); open_lightbox(); } resolve(false); }); }); }); }); } function get_viewport_size() { viewport_size = viewport(); $('body').attr('data-width', viewport_size.width); $('body').attr('data-height', viewport_size.height); } function viewport() { var e = window, a = 'inner'; if (!('innerWidth' in window)) { a = 'client'; e = document.documentElement || document.body; } return { width: e[a + 'Width'], height: e[a + 'Height'] }; } function set_tracking() { const url_parameters = new URLSearchParams(window.location.search); const source = url_parameters.get('source'); const campaign = url_parameters.get('campaign'); const location = url_parameters.get('location'); if (source) { set_cookie('source', source, 90, null); } if (campaign) { set_cookie('campaign', campaign, 90, null); } if (location) { set_cookie('location', location, 90, null); } } function load_functions() { javascript.load.forEach(function (v) { javascript.prototype[v](); }); } function load_fa() { /* $.getScript('https://kit.fontawesome.com/10cd9403cd.js'); */ } function load_default_subs() { $('video:not(.no_subs)').each(function () { var found_video = $(this); if ($(this).find('source').length) { var video_source = $(this).find('source').attr('src').split('/').pop(); } else { var video_source = $(this).attr('src').split('/').pop(); } $.get('/custom/content/subs/' + video_source + '.vtt', function (data) { if (data === 'Error') { $('') .attr('label', 'English') .attr('kind', 'subtitles') .attr('srclang', 'en') .attr('src', '/system/content/subs/no_audio.vtt') .appendTo(found_video); } else { $('') .attr('label', 'English') .attr('kind', 'subtitles') .attr('srclang', 'en') .attr('src', '/custom/content/subs/' + video_source + '.vtt') .appendTo(found_video); } }) .fail(function (data) { $('') .attr('label', 'English') .attr('kind', 'subtitles') .attr('srclang', 'en') .attr('src', '/system/content/subs/no_audio.vtt') .appendTo(found_video); }); }); } function stalling(ms) { return setTimeout(() => { }, ms); } function initialize() { window_width = $(window).width(); window_height = $(window).height(); get_viewport_size(); viewport_size = viewport(); update_deferred_images(); set_resize_listeners(); set_scroll_listeners(); set_accordion_listeners(); form_actions(); set_tracking(); load_functions(); load_fa(); load_default_subs(); track_load(); deferred_websocket(); lazy_load_deferred_images(); // Add Tracking to each button const selection = document.querySelectorAll('section[class^="section_"]') for (var i = 0; i < selection.length; i++) { var found_buttons = selection[i].querySelectorAll("a[href], [data-click-tracking]:not(a[href])"); found_buttons.forEach(element => { element.addEventListener('click', function (e) { var stall = false; if (this.tagName === 'A' && this.getAttribute('href') !== '#') { stall = stalling(500); } track_click(this).then(() => { if (stall !== false) { clearTimeout(stall); } }) }) }); } } $(document).ready(initialize);