{"id":337,"date":"2024-10-03T07:00:39","date_gmt":"2024-10-03T12:00:39","guid":{"rendered":"https:\/\/www.exactdata.com\/info\/lp\/?page_id=337"},"modified":"2025-10-30T23:01:52","modified_gmt":"2025-10-31T04:01:52","slug":"quote","status":"publish","type":"page","link":"https:\/\/www.exactdata.com\/info\/lp\/quote\/","title":{"rendered":"Exact Data &#8211; Quote Page"},"content":{"rendered":"[vc_section css=&#8221;.vc_custom_1727953181104{padding-top: 75px !important;padding-bottom: 140px !important;background-image: url(https:\/\/www.dataaxleusa.com\/lp\/wp-content\/uploads\/sites\/2\/2021\/08\/ED-GRANDIENT.jpg?id=3341) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221; el_id=&#8221;topFormSection&#8221;][vc_row css=&#8221;.vc_custom_1628544538337{padding-bottom: 30px !important;}&#8221;][vc_column][vc_column_text el_class=&#8221;whitetext&#8221; css=&#8221;.vc_custom_1726217815457{margin-bottom: 0px !important;}&#8221;]\r\n<h3 style=\"text-align: center;\">Reach your ideal audience with<\/h3>\r\n[\/vc_column_text][vc_column_text el_class=&#8221;whitetext hero2&#8243; css=&#8221;.vc_custom_1720639780467{margin-bottom: 1px !important;}&#8221;]\r\n<h1 style=\"text-align: center;\"><span class=\"query-string-parameter\">Targeted Marketing Lists<\/span><script type=\"text\/javascript\">let dynamic_param=getParameterByName('headline');if(dynamic_param){let dynamic_copy_span=jQuery('span.query-string-parameter');let dynamic_copy_span_text=dynamic_copy_span.text();if(dynamic_param!=dynamic_copy_span_text){dynamic_copy_span.text(dynamic_param)}}<\/script><\/h1>\r\n[\/vc_column_text][vc_column_text el_class=&#8221;event_when&#8221; css=&#8221;.vc_custom_1726231662884{margin-bottom: 5px !important;}&#8221;]\r\n<p style=\"text-align: center;\">Save time and money by connecting with the right people, the first time.<\/p>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1725975927748{padding-top: 20px !important;}&#8221;][vc_column width=&#8221;1\/2&#8243; css=&#8221;.vc_custom_1726800344602{padding-top: 50px !important;}&#8221; el_class=&#8221;calendly-column&#8221;][vc_column_text el_class=&#8221;whitetext&#8221; css=&#8221;.vc_custom_1721241279985{margin-bottom: 0px !important;}&#8221;]\r\n<h3 style=\"text-align: center;\"><strong>15% OFF ENDS IN<\/strong><\/h3>\r\n[\/vc_column_text][vc_column_text el_class=&#8221;whitetext&#8221; css=&#8221;.vc_custom_1721241238212{margin-top: -50px !important;}&#8221;]\n            <div \n                class=\"elfsight-widget-countdown-timer elfsight-widget\" \n                data-elfsight-countdown-timer-options=\"%7B%22type%22%3A%22remaining%22%2C%22startTime%22%3A1721231717571%2C%22endTime%22%3A1721663717572%2C%22setTimeZone%22%3Afalse%2C%22timeZone%22%3A%22Etc%5C%2FGMT%2B0%22%2C%22startNumber%22%3A1%2C%22endNumber%22%3A100%2C%22numberFrequency%22%3A%22auto%22%2C%22numberFrequencyValue%22%3A10%2C%22timeValue%22%3A151.3%2C%22timeUnit%22%3A%22hours%22%2C%22remainingRestartEnabled%22%3Atrue%2C%22remainingRestartValue%22%3A1%2C%22remainingRestartUnit%22%3A%22seconds%22%2C%22position%22%3A%22custom%22%2C%22messageBeforeTimer%22%3A%22%22%2C%22elements%22%3A%5B%22days%22%2C%22hours%22%2C%22minutes%22%2C%22seconds%22%5D%2C%22daysLabel%22%3A%22Days%22%2C%22hoursLabel%22%3A%22Hours%22%2C%22minutesLabel%22%3A%22Minutes%22%2C%22secondsLabel%22%3A%22Seconds%22%2C%22timerStopAction%22%3A%22hide%22%2C%22timerStopMessage%22%3A%22The%20countdown%20is%20finished%22%2C%22timerStopCountersVisible%22%3Atrue%2C%22timerStopButtonVisible%22%3Atrue%2C%22timerStopButtonLink%22%3A%22%22%2C%22timerStopButtonText%22%3A%22%22%2C%22timerStopRedirect%22%3A%22%22%2C%22align%22%3A%22center%22%2C%22buttonVisible%22%3Afalse%2C%22buttonLink%22%3A%22https%3A%5C%2F%5C%2Felfsight.com%22%2C%22buttonText%22%3A%22Shop%20now%22%2C%22buttonLinkTargetBlank%22%3Atrue%2C%22areaClickable%22%3Atrue%2C%22style%22%3A%22combined-blocks%22%2C%22theme%22%3A%22default%22%2C%22timerColor%22%3A%22rgb%28255%2C%20255%2C%20255%29%22%2C%22labelsColor%22%3A%22rgb%28255%2C%20255%2C%20255%29%22%2C%22messageColor%22%3A%22rgb%28255%2C%20255%2C%20255%29%22%2C%22buttonColor%22%3A%22rgb%280%2C%200%2C%200%29%22%2C%22backgroundColor%22%3A%22%22%2C%22messageFontSize%22%3A25%2C%22timerSize%22%3A60%2C%22buttonSize%22%3A16%2C%22animation%22%3A%22none%22%2C%22widgetId%22%3A%222%22%7D\" \n                data-elfsight-countdown-timer-version=\"1.4.0\"\n                data-elfsight-widget-id=\"elfsight-countdown-timer-2\">\n            <\/div>\n            [\/vc_column_text][vc_column_text css=&#8221;.vc_custom_1721241327144{margin-top: -30px !important;margin-bottom: 10px !important;}&#8221; el_class=&#8221;whitetext&#8221;]\r\n<h3 style=\"text-align: center;\"><strong>LOCK IN YOUR PRICING NOW<\/strong><\/h3>\r\n[\/vc_column_text][vc_column_text el_class=&#8221;disclaimer whitetext&#8221;]\r\n<p style=\"text-align: center;\">Zero commitment, 15% off ends soon. Certain exclusions may apply.<\/p>\r\n[\/vc_column_text][vc_row_inner el_class=&#8221;hubspotmodal-row&#8221;][vc_column_inner width=&#8221;1\/6&#8243;][\/vc_column_inner][vc_column_inner el_class=&#8221;hubspotmodal-col&#8221; width=&#8221;2\/3&#8243;]<div class=\"f6-reveal reveal default-size \" id=\"Hubspotmodal\" data-reveal data-overlay=\"true\" data-animation-in=\"none\" data-animation-out=\"none\">\r\n<div id=\"Scheduleform\" class=\"meetings-iframe-container\" data-src=\"https:\/\/hub.exactdata.com\/meetings\/set-up-\/exact-data-quote?embed=true\"><\/div>\r\n<script type=\"text\/javascript\" src=\"https:\/\/static.hsappstatic.net\/MeetingsEmbed\/ex\/MeetingsEmbedCode.js\"><\/script><button class=\"close-button\" data-close aria-label=\"Close modal\" type=\"button\"><span aria-hidden=\"true\">&times;<\/span><\/button><\/div><button class=\"button hubspotschedulecall\" data-open=\"Hubspotmodal\">SCHEDULE A CALL<\/button>[\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][\/vc_column_inner][\/vc_row_inner][\/vc_column][vc_column width=&#8221;1\/12&#8243; el_class=&#8221;calendly-container&#8221; css=&#8221;.vc_custom_1725976207409{border-left-width: 2px !important;border-left-color: #ffffff !important;border-left-style: solid !important;}&#8221;][vc_empty_space height=&#8221;475px&#8221; el_class=&#8221;show-for-large&#8221;][\/vc_column][vc_column width=&#8221;1\/3&#8243; css=&#8221;.vc_custom_1725447592384{margin-top: -30px !important;padding-top: 35px !important;padding-bottom: 35px !important;background-color: #ffffff !important;border-radius: 2px !important;}&#8221; el_class=&#8221;border-column top-quote-form ins_free_quote&#8221;][vc_column_text css=&#8221;.vc_custom_1725450291094{margin-bottom: 25px !important;}&#8221; el_class=&#8221;pre-auth&#8221;]\r\n<h4 style=\"text-align: center; font-size: 22px; text-transform: uppercase; color: #3b3b3b; font-family: Open Sans, Arial, sans-serif; font-weight: 700!important; line-height: 1.3;\">INSTANT FREE QUOTE<\/h4>\r\n[\/vc_column_text]    <div class=\"hs_inline_form\">\r\n        <script>\r\n            var device = \"\";\r\n            device += detectMob() ? \"Mobile\" : \"Desktop\"; device += \", \" + getBrowserName();\r\n            if (detectMob()) {\r\n                device += \", \" + getMobileOperatingSystem();\r\n            } else {\r\n                device += \", \" + getOperatingSystem();\r\n            }\r\n            var browserName = navigator.userAgent;\r\n            var commentsValue = '';\r\n            window.phone_status = \"Unknown\";\r\n            window.line_type = \"Unknown\";\r\n\r\n            var randomStringId = Math.random().toString(36).substr(2, 9);\r\n\r\n            var badWords = [\r\n                \"arse\",\"ass\",\"asshole\",\"bastard\",\"bitch\",\"bollocks\",\"brotherfucker\",\"bugger\",\r\n                \"bullshit\",\"child-fucker\",\"Christ on a bike\",\"Christ on a cracker\",\"crap\",\r\n                \"cunt\",\"damn\",\"effing\",\"fatherfucker\",\"frigger\",\"fuck\",\"goddamn\",\"godsdamn\",\r\n                \"hell\",\"holy shit\",\"horseshit\",\"Jesus Christ\",\"Jesus fuck\",\"Jesus H. Christ\",\r\n                \"Jesus Harold Christ\",\"Jesus wept\",\"Jesus, Mary and Joseph\",\"Judas Priest\",\r\n                \"motherfucker\",\"nigga\",\"prick\",\"shit\",\"shit ass\",\"shitass\",\"sisterfucker\",\r\n                \"slut\",\"son of a bitch\",\"son of a whore\",\"sweet Jesus\",\"twat\",\"suck\",\"sucker\",\r\n                \"fucker\"\r\n            ];\r\n            hbspt.forms.create({\r\n                region: \"na1\",\r\n                portalId: \"5267700\",\r\n                formId: \"2dc8bbe9-dc14-4cd9-8c30-37cdb9a53589\",\r\n                cssClass: \"ds_on_page_custom_class\",\r\n                formInstanceId: `ds_on_page_${randomStringId}`,\r\n                translations: {\r\n                    en: {\r\n                        required: \"This field is required.\",\r\n                        submissionErrors:{\r\n                            MISSING_REQUIRED_FIELDS: \" \"\r\n                        },\r\n                    }\r\n                },\r\n                css:'',\r\n                onFormReady: function($form) {\r\n                    $form.find(\"input[type=submit]\").css(\"width\", \"100%\");\r\n                    $form.find(\"input[name=device]\").val();\r\n                    $form.find(\"input[name=bas_phone]\").val();\r\n                    $form.find(\"input[name=google_analytics_campaign]\").val(Cookies.get(\"campaignid\") || \"Not Present\");\r\n                    $form.find(\"input[name=sfcid]\").val(Cookies.get(\"sfcid\") || \"701Pa000007r0KSIAY\");\r\n                    $form.find(\"input[name=media_code]\").val(Cookies.get(\"media_code\") || \"EXDCMSW00100\");\r\n                    $form.find(\"input[name=gclid]\").val(Cookies.get(\"gclid\") || \"Not Present\");\r\n                    $form.find(\"input[name=ms_click_id]\").val(Cookies.get(\"msclkid\") || \"Not Present\");\r\n                    $form.find(\"input[name=facebook_cookie_fbc]\").val(Cookies.get(\"_fbc\") || \"Not Present\");\r\n                    $form.find(\"input[name=facebook_cookie_fbp]\").val(Cookies.get(\"_fbp\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_campaign]\").val(Cookies.get(\"utm_campaign\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_content]\").val(Cookies.get(\"utm_content\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_medium]\").val(Cookies.get(\"utm_medium\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_source]\").val(Cookies.get(\"utm_source\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_term]\").val(Cookies.get(\"utm_term\") || \"Not Present\");\r\n                    $form.find(\"input[name=adgroup_id]\").val(Cookies.get(\"adgroupid\") || \"Not Present\");\r\n                    $form.find(\"input[name=extension_id]\").val(Cookies.get(\"extensionid\") || \"Not Present\");\r\n                    $form.find(\"input[name=matchtype]\").val(Cookies.get(\"matchtype\") || \"Not Present\");\r\n                    $form.find(\"input[name=network]\").val(Cookies.get(\"network\") || \"Not Present\");\r\n                    $form.find(\"input[name=bp_line_type]\").val(Cookies.get(\"bp_line_type\") || \"Unknown\");\r\n                    $form.find(\"input[name=bp_phone_status]\").val(Cookies.get(\"bp_phone_status\") || \"Unknown\");\r\n                    $form.find(\"input[name=fbclid]\").val(Cookies.get(\"fbclid\") || \"Not Present\");\r\n                    $form.find(\"input[name=leadsource]\").val(Cookies.get(\"leadsource\") || \"Not Present\");\r\n                    $form.find(\"input[name=ip]\").val(connectingIP);\r\n                    $form.find(\"input[name=browser_user_agent]\").val(browserName);\r\n                    $form.find(\"input[name=page_url__long_text_]\").val(currentPageURL);\r\n                    var phoneField = $form.find(\"input[name=phone]\");\r\n\r\n                    jQuery('input[name=\"phone\"]').each(function() {\r\n                        var phoneField = jQuery(this);\r\n                        phoneField.attr('autocomplete', 'off');\r\n                        \r\n                        \/\/ Only insert #plus if it doesn't exist\r\n                        if (phoneField.length > 0 && !phoneField.prev('#plus').length) {\r\n                            phoneField.before('<span id=\"plus\" style=\"position:absolute;top:50%;left:10px;color:#757171;font-size:13px;transform:translateY(-50%);display:none;\">+1<\/span>');\r\n                        }\r\n\r\n                        \/\/ Show the #plus element when the field gets focus and it's empty\r\n                        phoneField.on('focus', function() {\r\n                            var value = phoneField.val().replace(\/\\D\/g, '');\r\n                            if (value === \"\") {\r\n                                phoneField.prev('#plus').show();\r\n                            }\r\n\r\n                            \/\/ Apply the input mask only if it's not already applied\r\n                            if (!phoneField.hasClass('masked')) {\r\n                                phoneField.inputmask({\r\n                                    mask: \"    (999)999-9999\",\r\n                                    showMaskOnFocus: 1,\r\n                                    showMaskOnHover: !1,\r\n                                    autoUnmask: !1,\r\n                                    clearMaskOnLostFocus: 1\r\n                                }).addClass('masked');\r\n                            }\r\n                        });\r\n\r\n                        \/\/ Hide the #plus element and apply input mask on blur\r\n                        phoneField.on('blur', function() {\r\n                            var value = phoneField.val().replace(\/\\D\/g, '');\r\n                            if (value === \"\") {\r\n                                phoneField.prev('#plus').hide();\r\n                            }\r\n                        });\r\n                        \r\n                    });\r\n\r\n                    \r\n                    let radioBtnValue = \"\";\r\n                    const formEl = $form.get(0);\r\n                    const radioButtons = formEl.querySelectorAll('[name=\"check_which_option_best_suits_you\"]');\r\n                    const audienceTextareaContainer = formEl.querySelector(\".hs_who_is_your_ideal_audience_\");\r\n                    const radioButtonsContainer = formEl.querySelector(\".hs_check_which_option_best_suits_you\");\r\n                    const convertParamValue = new URLSearchParams(window.location.search).get(\"ed_cs\");\r\n                    const edCsInput = formEl.querySelector('[name=\"ed_cs\"]');\r\n\r\n                    if (convertParamValue) {\r\n                        const csParamval = convertParamValue.trim().toLowerCase();\r\n                        if (audienceTextareaContainer && radioButtonsContainer) {\r\n                            if (csParamval === \"true\" || csParamval === \"false\") {\r\n                                audienceTextareaContainer.classList.add('hidden');\r\n                                audienceTextareaContainer.classList.remove('shown');\r\n                                radioButtonsContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('shown');\r\n                            } else if (csParamval === \"aud\") {\r\n                                audienceTextareaContainer.classList.add('shown');\r\n                                audienceTextareaContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('hidden');\r\n                                radioButtonsContainer.classList.remove('shown');\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (audienceTextareaContainer && radioButtonsContainer) {\r\n                                audienceTextareaContainer.classList.add('hidden');\r\n                                audienceTextareaContainer.classList.remove('shown');\r\n                                radioButtonsContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('shown');\r\n                        }\r\n                    }\r\n\r\n                \r\n                    if (edCsInput) {\r\n                        edCsInput.value = \"\";\r\n                    }\r\n                    \r\n                    radioButtons.forEach((radioButton) => {\r\n                        radioButton.addEventListener(\"change\", (event) => {\r\n                            if (event.target.checked) {\r\n                                radioBtnValue = event.target.value;\r\n                                if (radioBtnValue === \"Do it yourself and build unlimited lists\") {\r\n                                    if (convertParamValue && convertParamValue.trim().toLowerCase() === \"true\") {\r\n                                        if (edCsInput) {\r\n                                            edCsInput.value = convertParamValue;\r\n                                        } \r\n                                    }\r\n                                } else {\r\n                                    if (edCsInput) {\r\n                                        edCsInput.value = \"\";\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    });\r\n\r\n\r\n                    if ($form.closest(\".top-quote-form\").length > 0) {\r\n                        $form.find(\"input[name=hubspot_form_title]\").val(\"Instant Free Quote\");\r\n                        $form.find(\"input[type=submit]\").val(\"Get Started Now \u279c\");\r\n                    } else if ($form.closest(\".bottom-quote-form\").length > 0) {\r\n                        $form.find(\"input[name=hubspot_form_title]\").val(\"Create a Free Account\");\r\n                        $form.find(\"input[type=submit]\").val(\"Get Started Now \u279c\");\r\n                    }\r\n\r\n                    \/*Floating Labels*\/\r\n                    var $input = $(\".hs-input\");\r\n                    $input\r\n                        .on(\"focus\", function() {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .addClass(\"active\");\r\n                        })\r\n                        .blur();\r\n\r\n                    \/\/ move label if input is empty or not\r\n                    $input.focusout(function() {\r\n                        if (!$(this).val()) {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .removeClass(\"active\");\r\n                        } else {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .addClass(\"active\");\r\n                        }\r\n                    }).focusout();\r\n\r\n                                            $form.find(\"input[name=keyword]\").val(Cookies.get(\"keyword\") || \"Not Present\");\r\n                    \r\n                    var domain = window.location.hostname;\r\n                    var baseUrls = {\r\n                        \"www.exactdata.com\": {\r\n                            terms: \"https:\/\/www.exactdata.com\/info\/terms-of-use\/\",\r\n                            privacy: \"https:\/\/www.exactdata.com\/info\/privacy-policy\/\"\r\n                        },\r\n                        \"qa.exactdata.com\": {\r\n                            terms: \"https:\/\/qa.exactdata.com\/info\/terms-of-use\/\",\r\n                            privacy: \"https:\/\/qa.exactdata.com\/info\/privacy-policy\/\"\r\n                        }\r\n                    };\r\n                    var urls = baseUrls[domain];\r\n                    var disclaimer = document.createElement(\"div\");\r\n                    disclaimer.innerHTML = `<p class=\"verbiage\">By submitting this form you are agreeing to Exact Data\\'s <a target=\"_blank\" href=\"${urls.terms}\">Terms & Conditions<\/a>, <a target=\"_blank\" href=\"${urls.privacy}\">Privacy Policy<\/a>, and consent to our <span class=\"contact-policy-hover\">Contact Policy<span class=\"contact-policy-tooltip\">I consent to Data Axle and its subsidiaries and affiliates using my email and phone number for marketing and analytical purposes, including to contact me regarding Data Axle products.<\/span><\/span>. No credit card required.<\/p>`;\r\n                    var style = document.createElement(\"style\");\r\n                    style.textContent = `\r\n                    .hs-form .hs_error_rollup {\r\n                        dsplay: none;\r\n                    }\r\n                    .hs-form .hs-form-required {\r\n                        display: none !important;\r\n                    }\r\n                    input.hs-input.error{\r\n                        border-color: #ff3300!important;\r\n                    }\r\n                    .hs-input {\r\n                        display: inline-block;\r\n                        width: 90%;\r\n                        max-width: 500px;\r\n                        height: 40px;\r\n                        padding: 9px 10px;\r\n                        font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n                        font-size: 16px;\r\n                        font-weight: normal;\r\n                        line-height: 22px;\r\n                        color: #33475b;\r\n                        border: 1px solid #cbd6e2;\r\n                        box-sizing: border-box;\r\n                        -webkit-border-radius: 3px;\r\n                        -moz-border-radius: 3px;\r\n                        -ms-border-radius: 3px;\r\n                        border-radius: 3px;\r\n                    }\r\n                    .hs-form-field label:not(.hs-error-msg) {\r\n                        font-family: helvetica;\r\n                        font-size: 13px;\r\n                    }\r\n                    .hs-form .hs-form-field input::placeholder, .hs-form .hs-form-field textarea::placeholder {\r\n                        font-size: 13px;\r\n                    }\r\n                    .hs-form .hs-form-field textarea {\r\n                        height:74px;\r\n                    }\r\n                    .field {\r\n                        margin-bottom: 18px;\r\n                    }\r\n                    .hs-form * {\r\n                        box-sizing: border-box;\r\n                    }\r\n                    .hs-input:not([type=file]) {\r\n                        background-color: #f5f8fa;\r\n                    }\r\n                    .hs-button {\r\n                        background: #FA6B07;\r\n                        border-color: #FA6B07;\r\n                        color: #ffffff;\r\n                        line-height: 12px;\r\n                        font-family: helvetica;\r\n                        white-space: pre-wrap;\r\n                        width: 100%;\r\n                        -webkit-appearance: none;\r\n                        -moz-appearance: none;\r\n                        margin: 0;\r\n                        cursor: pointer;\r\n                        display: inline-block;\r\n                        position: relative;\r\n                        text-align: center;\r\n                        transition: all .15s linear;\r\n                        border-radius: 3px;\r\n                        border-style: solid;\r\n                        border-width: 1px;\r\n                        padding: 12px 24px;\r\n                        font-size: 18px;\r\n                        font-weight: bold;\r\n                        font-family: Open Sans, Arial, sans-serif;\r\n                        text-transform: uppercase;\r\n                    }\r\n                    fieldset.form-columns-1 .hs-input, fieldset.form-columns-2 .hs-input {\r\n                        width: 100%!important;\r\n                    }\r\n                    ul.hs-error-msgs{\r\n                        margin-left: 0px;\r\n                        margin-bottom: 0px;\r\n                    }\r\n                    ul.hs-error-msgs li{\r\n                        list-style: none;\r\n                        line-height: 1;\r\n                    }\r\n                    .hs-error-msgs label {\r\n                        color: #f2545b;\r\n                        font-size: 13px;\r\n                        line-height: 0;\r\n                    }\r\n                    .verbiage {\r\n                        font-size: 12px;\r\n                        margin: 0;\r\n                        padding: 0;\r\n                        line-height: 15px;\r\n                        text-shadow: none;\r\n                        color: rgba(59, 59, 59, 0.5);\r\n                        text-align: left;\r\n                        margin-top: 15px;\r\n                    }\r\n                    .verbiage a {\r\n                        text-decoration: underline;\r\n                        color: #039fff !important;\r\n                    }\r\n                    .contact-policy-hover {\r\n                        position: relative;\r\n                        cursor: pointer;\r\n                        text-decoration: underline;\r\n                        color: #039fff;\r\n                    }\r\n                    .contact-policy-tooltip {\r\n                        display: none;\r\n                        border-radius: 5px;\r\n                        background-color: #221f20;\r\n                        font-size: .6875rem;\r\n                        width: 200px;\r\n                        padding: 10px;\r\n                        position: absolute;\r\n                        color: #fff;\r\n                        z-index: 99999999999;\r\n                    }\r\n                    .contact-policy-tooltip.visible {\r\n                        display: block;\r\n                        inset: auto 0px 100% auto;\r\n                    }\r\n                    `;\r\n\r\n                    disclaimer.appendChild(style);\r\n                    document.body.appendChild(disclaimer);\r\n\r\n                    var $submitButton = $form.find(\"input[type=submit]\");\r\n                    var originalSubmitText = $submitButton.val();\r\n\r\n                    var emailField = $form[0].querySelector(\"input[name='email']\");\r\n                    var phoneField = $form[0].querySelector(\"input[name='phone']\");\r\n                    var firstnameField = $form[0].querySelector(\"input[name='firstname']\");\r\n                    var lastnameField = $form[0].querySelector(\"input[name='lastname']\");\r\n                    var companyField = $form[0].querySelector(\"input[name='company']\");\r\n\r\n                    var $emailError = $('<div class=\"mktoCustomError\">Must be a valid email.<\/div>').insertAfter(emailField);\r\n                    var $phoneError = $('<div class=\"mktoCustomError\">Must be a valid phone number.<\/div>').insertAfter(phoneField);\r\n                    var $fnameError = $('<div class=\"mktoCustomError\">This field is required.<\/div>').insertAfter(firstnameField);\r\n                    var $lnameError = $('<div class=\"mktoCustomError\">This field is required.<\/div>').insertAfter(lastnameField);\r\n\r\n                    $emailError.hide();\r\n                    $phoneError.hide();\r\n                    $fnameError.hide();\r\n                    $lnameError.hide();\r\n\r\n                    function showSpinner() {\r\n                        $submitButton.prop('disabled', true);\r\n                        $submitButton.val('PROCESSING...');\r\n                    }\r\n\r\n                    function hideSpinner() {\r\n                        $submitButton.prop('disabled', false);\r\n                        $submitButton.val(originalSubmitText);\r\n                    }\r\n\r\n                    $form.on(\"mouseenter\", \".contact-policy-hover\", function(event) {\r\n                        event.stopPropagation();\r\n                        event.preventDefault();\r\n                        var tooltip = $(this).find(\".contact-policy-tooltip\");\r\n                        tooltip.addClass(\"visible\");\r\n\r\n                        \/\/ Calculate the tooltip position\r\n                        var tooltipRect = tooltip[0].getBoundingClientRect();\r\n                        \/\/ var hoverRect = $(this)[0].getBoundingClientRect();\r\n                        var viewportWidth = window.innerWidth;\r\n                        var viewportHeight = window.innerHeight;\r\n\r\n                        \/\/ Reset any custom positioning\r\n                        tooltip.css({\r\n                            \"left\": \"\",\r\n                            \"right\": \"\",\r\n                            \"top\": \"\",\r\n                            \"bottom\": \"\",\r\n                            \"transform\": \"\",\r\n                            \"inset\": \"\"\r\n                        });\r\n\r\n                        \/\/ Adjust position based on available space\r\n                        if (tooltipRect.width > viewportWidth) {\r\n                            tooltip.css({\r\n                                \"width\": \"90vw\",\r\n                                \"left\": \"5vw\",\r\n                                \"right\": \"auto\",\r\n                                \"transform\": \"none\"\r\n                            });\r\n                        } else if (tooltipRect.right > viewportWidth) {\r\n                            tooltip.css({\r\n                                \"left\": \"auto\",\r\n                                \"right\": \"0\",\r\n                            });\r\n                        } else if (tooltipRect.right < viewportWidth) {\r\n                            tooltip.css({\r\n                                \"left\": \"auto\",\r\n                                \"right\": \"auto\",\r\n                            });\r\n                        } else if (tooltipRect.left < 0) {\r\n                            tooltip.css({\r\n                                \"left\": \"0\",\r\n                                \"right\": \"auto\"\r\n                            });\r\n                        } else if (tooltipRect.left > 0) {\r\n                            tooltip.css({\r\n                                \"left\": \"0\",\r\n                                \"right\": \"auto\"\r\n                            });\r\n                        } else {\r\n                            tooltip.css({\r\n                                \"left\": \"50%\",\r\n                                \"right\": \"auto\",\r\n                                \"transform\": \"translateX(-50%)\"\r\n                            });\r\n                        }\r\n\r\n                        if (tooltipRect.height > viewportHeight) {\r\n                            tooltip.css({\r\n                                \"height\": \"90vh\",\r\n                                \"top\": \"5vh\",\r\n                                \"bottom\": \"auto\"\r\n                            });\r\n                        } else if (tooltipRect.bottom > viewportHeight) {\r\n                            tooltip.css({\r\n                                \"top\": \"auto\",\r\n                                \"bottom\": \"100%\"\r\n                            });\r\n                        } else if (tooltipRect.top < 0) {\r\n                            tooltip.css({\r\n                                \"top\": \"100%\",\r\n                                \"bottom\": \"auto\"\r\n                            });\r\n                        } else {\r\n                            tooltip.css({\r\n                                \"top\": \"auto\",\r\n                                \"bottom\": \"100%\"\r\n                            });\r\n                        }\r\n                    });\r\n\r\n                    $form.on(\"mouseleave\", \".contact-policy-hover\", function(event) {\r\n                        event.stopPropagation();\r\n                        event.preventDefault();\r\n                        var tooltip = $(this).find(\".contact-policy-tooltip\");\r\n                        tooltip.removeClass(\"visible\");\r\n                    });\r\n\r\n                    var submitButton = $form[0].querySelector(\"input[type=submit]\");\r\n                    if (submitButton) {\r\n                        submitButton.parentNode.insertBefore(disclaimer, submitButton.nextSibling);\r\n                    } else {\r\n                        console.error(\"Submit button not found.\");\r\n                    }\r\n\r\n                    $(firstnameField).on('input', function() {\r\n                        $fnameError.hide();\r\n                        firstnameField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(lastnameField).on('input', function() {\r\n                        $lnameError.hide();\r\n                        lastnameField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(emailField).on('input', function() {\r\n                        $emailError.hide();\r\n                        emailField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(phoneField).on('input', function() {\r\n                        $phoneError.hide();\r\n                        phoneField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $form.on('click', '.hs-button', async function (e) {\r\n                        e.preventDefault(); \/\/ Prevent form submission until validation is done\r\n\r\n                        showSpinner();\r\n\r\n                        var unmaskedValue = $form.find(\"input[name=phone]\").first().inputmask('unmaskedvalue');\r\n                        var emailValue = emailField.value;\r\n                        var phoneValue = phoneField.value;\r\n                        var firstValue = firstnameField.value;\r\n                        var lnameValue = lastnameField.value;\r\n                        var companyValue = (companyField && companyField.value.trim() !== \"\")\r\n                            ? companyField.value.trim()\r\n                            : (firstValue + \" \" + lnameValue);\r\n\r\n                        \/\/ set hbEntry cookie using js-cookie (same library used elsewhere)\r\n                        var hbEntry = {\r\n                            email: emailValue,\r\n                            phone: phoneValue,\r\n                            firstname: firstValue,\r\n                            lastname: lnameValue,\r\n                            company: companyValue\r\n                        };\r\n\r\n                        \/\/ 30 days expiry, domain exactdata.com, secure only on https\r\n                        Cookies.set('hbEntry', JSON.stringify(hbEntry), {\r\n                            domain: \"exactdata.com\",\r\n                            path: \"\/\",\r\n                            secure: (window.location.protocol === 'https:')\r\n                        });\r\n\r\n\r\n                        \/\/ console.log(emailValue,phoneValue);\r\n                        \/\/ console.log(phone_status,line_type);\r\n\r\n\r\n                        try {\r\n                            \/\/ var unmaskedValue = $form.find(\"input[name=phone]\").first().inputmask('unmaskedvalue');\r\n                            const hsidVal      = await processHeapData();\r\n                            const isEmailValid = (emailValue.length > 0) ? await validateEmail(emailValue,emailField,$emailError) : false;\r\n                            const isPhoneValid = (unmaskedValue.length > 0) ? await validatePhone(phoneValue, unmaskedValue, phoneField, $phoneError) : false;\r\n                            const getRegistrationFlow = (isEmailValid && isPhoneValid) ? await validateGetRegistrationFlow(emailValue, unmaskedValue) : false;\r\n                            const isSalesGenieUser = (isEmailValid) ? await validateSalesGenieUser(emailValue) : false;\r\n                            if (getRegistrationFlow) {\r\n                                    $form.find(\"input[name=user_registration_flow]\").val(getRegistrationFlow);\r\n                                    \/\/ console.log('Set registration_flow field value to', getRegistrationFlow);\r\n                                } else {\r\n                                    $form.find(\"input[name=user_registration_flow]\").val('');\r\n                                    \/\/ console.log('Set registration_flow field value to \" \"');\r\n                                }\r\n\r\n                                if (getRegistrationFlow !== 'ED') {\r\n                                    \/\/ Set SalesGenie user status hidden field value\r\n                                    if (isSalesGenieUser) {\r\n                                        $form.find(\"input[name=existing_user_flag]\").val('true');\r\n                                        \/\/ console.log('Set existing_user field value to \"true\"');\r\n                                    } else {\r\n                                        $form.find(\"input[name=existing_user_flag]\").val('false');\r\n                                        \/\/ console.log('Set existing_user field value to \"false\"');\r\n                                    }\r\n                                } \r\n                            \/\/ const salesforceToken = (!isSalesGenieUser) ? await getSalesforceAccessToken() : null;\r\n                            const getSalesforceData = (!isSalesGenieUser && isEmailValid) ? await validateSalesforceData(emailValue) : false;\r\n                            const isSendToSF   = (isEmailValid && isPhoneValid) ? await sendHsDataToSf($form,hsidVal) : false;\r\n                            const isFnameValid = (firstValue.length > 0) ? await validateName(firstnameField,$fnameError) : false;\r\n                            const isLnameValid = (lnameValue.length > 0) ? await validateName(lastnameField,$lnameError) : false;\r\n                            \/\/ console.log(isEmailValid , isPhoneValid, isSendToSF );\r\n                            \/\/ console.log('isSalesGenieUser:', isSalesGenieUser);\r\n\r\n                            if (isFnameValid && isLnameValid && isEmailValid && isPhoneValid) {\r\n                                \/\/ Both validations passed, proceed to submit the form\r\n                                console.log('Both email and phone are valid. Submitting the form...');\r\n                                \/\/ hideSpinner();\r\n\r\n                                $form.find(\"input[name=bp_phone_status]\").val(phone_status);\r\n                                $form.find(\"input[name=bp_line_type]\").val(line_type);\r\n                                \/\/Heap Value update\r\n                                $form.find(\"input[name=heap_session_id]\").val(hsidVal);\r\n\r\n                                $emailError.hide();\r\n                                emailField.classList.remove('invalid', 'error');\r\n\r\n                                $phoneError.hide();\r\n                                phoneField.classList.remove('invalid', 'error');\r\n\r\n                                \/\/ const isSendToSF = await sendHsDataToSf($form);\r\n                                \/\/ console.log(isSendToSF);\r\n                                \/\/Generate JWT\r\n                                \/\/FName,LName,Emailid,Phoneno\r\n                                await getJwtData(firstValue,lnameValue,emailValue,phoneValue);\r\n                                $submitButton.val(originalSubmitText);\r\n                                $form.submit(); \/\/ Submit the form programmatically\r\n                            } else {\r\n                                \/\/ Handle validation failure\r\n                                if (!isEmailValid) {\r\n                                    emailField.classList.add('invalid', 'error');\r\n                                    $emailError.show();\r\n                                }\r\n\r\n                                if (!isPhoneValid) {\r\n                                    phoneField.classList.add('invalid', 'error');\r\n                                    $phoneError.show();\r\n                                    $('#plus').css('top', '36%');\r\n                                }\r\n\r\n                                if (!isFnameValid) {\r\n                                    firstnameField.classList.add('invalid', 'error');\r\n                                    $fnameError.show();\r\n                                }\r\n\r\n                                if (!isLnameValid) {\r\n                                    lastnameField.classList.add('invalid', 'error');\r\n                                    $lnameError.show();\r\n                                }\r\n\r\n                                \/\/ Hide loader or re-enable the submit button\r\n                                \/\/$('.quoteloader').css('display', 'none');\r\n                                hideSpinner();\r\n                            }\r\n                        } catch (error) {\r\n                            console.error('Error during validation:', error);\r\n                            \/\/ Handle any unexpected errors during validation\r\n                            \/\/$('.quoteloader').css('display', 'none');\r\n                            hideSpinner();\r\n                        }\r\n\r\n                    });\r\n                },\r\n                \/\/ onFormSubmitted: async function ($form, data){\r\n                \/\/     let sfdub = await sendHsDataToSf($form);\r\n                \/\/     console.log(sfdub);\r\n                \/\/ },\r\n\r\n            });\r\n\r\n            async function validateGetRegistrationFlow(email, phone) {\r\n                try {\r\n                    const response = await fetch(edinfo.ajaxurl, {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                    body: new URLSearchParams({\r\n                        action: 'get_registration_flow', \/\/ \ud83d\udc48 WordPress AJAX action\r\n                        email: email,\r\n                        phone: phone\r\n                    }),\r\n                    });\r\n\r\n                    const result = await response.json();\r\n\r\n                    if (result.success) {\r\n                    \/\/ console.log('Registration Flow Data:', result.data);\r\n                    return result.data.UserFlowType || false;\r\n                    } else {\r\n                    console.error('Error:', result.data?.message || 'Unknown error');\r\n                    return false;\r\n                    }\r\n\r\n                } catch (error) {\r\n                    console.error('AJAX error:', error);\r\n                    return false;\r\n                }\r\n            }\r\n\r\n\r\n\r\n            async function validateSalesGenieUser(email) {\r\n                try {\r\n                    let apiUrl=\"\";\r\n                    if (iusaEnvironment == \"TEST\") {\r\n                        apiUrl = `https:\/\/test-auth.salesgenie.com\/api\/v1\/Source\/GetProductListOfUser?username=${encodeURIComponent(email)}`;\r\n                    } else if (iusaEnvironment == \"PROD\") {\r\n                        apiUrl = `https:\/\/auth.salesgenie.com\/api\/v1\/Source\/GetProductListOfUser?username=${encodeURIComponent(email)}`;\r\n                    }\r\n\r\n                    const response = await fetch(apiUrl, {\r\n                        method: 'GET',\r\n                        headers: {\r\n                            'Content-Type': 'application\/json'\r\n                        }\r\n                    });\r\n\r\n                    if (!response.ok) return false;\r\n\r\n                    const data = await response.json();\r\n\r\n                    \/\/ If API returns false directly\r\n                    if (data === false) return false;\r\n\r\n                    \/\/ Check if it contains \"Salesgenie\": \"Salesgenie\"\r\n                    \/\/ return data.Salesgenie === \"Salesgenie\" || data.Exactdata === \"ExactData\";\r\n                    return data.Salesgenie === \"Salesgenie\";\r\n\r\n                } catch (error) {\r\n                    console.error('SalesGenie API error:', error);\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            async function validateSalesforceData(email) {\r\n                try {\r\n                    const response = await fetch(edinfo.ajaxurl, {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                    body: new URLSearchParams({\r\n                        action: 'get_salesforce_data',\r\n                        email: email\r\n                    }),\r\n                    });\r\n\r\n                    const result = await response.json();\r\n\r\n                    if (result.success) {\r\n                    \/\/ console.log('Salesforce Data:', result.data);\r\n                    return result.data.success && result.data.isContactExist;\r\n\r\n                    \/\/ return result.data;\r\n                    } else {\r\n                    console.error('Error:', result.data?.message || 'Unknown error');\r\n                    return null;\r\n                    }\r\n                } catch (error) {\r\n                    console.error('AJAX error:', error);\r\n                    return null;\r\n                }\r\n            }\r\n\r\n            \/\/ Helper functions to make API requests\r\n            async function validateEmail(email,emailField,$emailError) {\r\n                \/\/Set user email cookie\r\n                Cookies.set(\"userEmailAddress\", email, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                emailField.dispatchEvent(new Event('input', { bubbles: true }));\r\n\r\n                const hasInvalidClass = emailField.classList.contains('invalid');\r\n                const hasErrorClass = emailField.classList.contains('error');\r\n                if(hasInvalidClass || hasErrorClass){\r\n                    return false;\r\n                }\r\n\r\n                \/\/ Check for badwords\r\n                if (containsBadWords(email)) {\r\n                    emailField.classList.add('invalid', 'error');\r\n                    $emailError.show();\r\n                    return false;\r\n                }\r\n\r\n                \/\/ No badwords \u2192 valid\r\n                        $emailError.hide();\r\n                        emailField.classList.remove('invalid', 'error');\r\n                        return true;\r\n            }\r\n\r\n            async function validatePhone(phone,unmaskedPhone,phoneField,$phoneError) {\r\n                \/\/ console.log(phone.length,'<---phone');\r\n                \/\/ console.log(unmaskedPhone.length,'<---unmaskedPhone');\r\n                \/\/ console.log(unmaskedPhone);\r\n                \/\/ console.log(`${phone}_phone_status`);\r\n                \/\/ console.log(`${phone}_line_type`);\r\n                \/\/(192)847-8090 Found\r\n                \/\/(192)847-4090 \"The phone number must be in the format (192)847-4090.\"\r\n                \/\/ First, check if the phone number is in the cookie\r\n                phone_status = Cookies.get(`${phone}_phone_status`);\r\n                line_type = Cookies.get(`${phone}_line_type`);\r\n\r\n                var trimmedPhone = phone.replace(\/^\\+[0-9]\/, '').replace(\/\\s+\/g, '');\r\n\r\n                console.log(phone_status,line_type,'<----');\r\n\r\n                const hasInvalidClassPhone = phoneField.classList.contains('invalid');\r\n                const hasErrorClassPhone = phoneField.classList.contains('error');\r\n                if(hasInvalidClassPhone || hasErrorClassPhone){\r\n                    return false;\r\n                }\r\n\r\n                \/\/const phoneFromCookie = Cookies.get(`${phone}_phone_status`);\r\n                \/\/ if (phoneFromCookie) {\r\n                \/\/     return true; \/\/ Skip validation if phone exists in the cookie\r\n                \/\/ }\r\n\r\n                if(typeof phone_status == 'undefined' || phone_status === 'Unknown'){\r\n                    \/\/ If not in the cookie, hit another DB API (assuming we have a custom API for this)\r\n                    const dbPhoneValidationResult = await checkPhoneInDatabase(phone,unmaskedPhone,trimmedPhone,$phoneError);\r\n                    if (dbPhoneValidationResult) {\r\n                        $phoneError.hide();\r\n                        return true; \/\/ Phone is valid if found in the DB\r\n                    }\r\n                    else{\r\n                        \/\/ If not in DB, check using the phone-validator API\r\n                        const url = `https:\/\/api.phone-validator.net\/api\/v2\/verify?PhoneNumber=${encodeURIComponent(phone)}&CountryCode=us&APIKey=pv-432c2ebbc71ef1f6bf017eeff8818eda`;\r\n                        try {\r\n                            $phoneError.hide();\r\n\r\n                            const response = await fetch(url);\r\n                            const dataByte = await response.json();\r\n                            \/\/ console.log(dataByte,'apiii');\r\n                            if(dataByte.status === \"VALID_CONFIRMED\" || dataByte.status === \"VALID_UNCONFIRMED\"){\r\n                                phone_status = \"Valid\";\r\n                            }\r\n                            else if(dataByte.status === \"INVALID\"){\r\n                                phone_status = \"Invalid\";\r\n                            }\r\n                            line_type = (dataByte.linetype) ? dataByte.linetype : \"Unknown\";\r\n                            Cookies.set(`${phone}_phone_status`, phone_status , { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                            Cookies.set(`${phone}_line_type`, line_type, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n\r\n                            let saveDbResponse = await saveBytePlantDataToDB(trimmedPhone,dataByte);\r\n                            \/\/ console.log(saveDbResponse,'API data saved in DB');\r\n\r\n                            \/\/ if(phoneStatusResponse.status === 'VALID_CONFIRMED' || phoneStatusResponse.status === 'VALID_UNCONFIRMED'){\r\n                            \/\/     return true;\r\n                            \/\/ }\r\n                            \/\/ else{\r\n                            \/\/     return false;\r\n                            \/\/ }\r\n                            \/\/ return true;\r\n                            \/\/ return true only if API determined it as Valid\r\n                            if (phone_status === \"Valid\") {\r\n                                $phoneError.hide();\r\n                                phoneField.classList.remove('invalid','error');\r\n                            return true;\r\n                            } else {\r\n                                phoneField.classList.add('invalid', 'error');\r\n                                $phoneError.show();\r\n                                return false;\r\n                            }\r\n\r\n                        } catch (error) {\r\n                            phoneField.classList.add('invalid', 'error');\r\n                            $phoneError.show();\r\n                            console.error('Error validating phone:', error);\r\n                            return false;\r\n                        }\r\n                    }\r\n\r\n                }\r\n                else if(phone_status){\r\n                    \/\/HIT COUNT API HERE\r\n                    $.ajax({\r\n                        type: 'POST',\r\n                        data: {\r\n                            phone: trimmedPhone,\r\n                        },\r\n                        url: `${edinfo.ed_api}\/hubspot-form-byte_count`,\r\n                        success: function(res) {\r\n                            console.log(res,'Hit Count');\r\n                            return res;\r\n                        },\r\n                        error: function(xhr, status, error) {\r\n                            console.log(error);\r\n                            $phoneError.show();\r\n                            return error;\r\n                        }\r\n                    });\r\n                    \/\/ return true; \/\/ Skip validation if phone exists in the cookie\r\n                    \/\/ use cached cookie value to decide validity\r\n                    if (phone_status === \"Valid\") {\r\n                        $phoneError.hide();\r\n                        phoneField.classList.remove('invalid','error');\r\n                        return true;\r\n                    } else {\r\n                        phoneField.classList.add('invalid','error');\r\n                        $phoneError.show();\r\n                        return false;\r\n                    }\r\n                }\r\n\r\n            }\r\n\r\n            async function saveBytePlantDataToDB(phonenum,apidata){\r\n                const dbentyres = await $.ajax({\r\n                    type: 'POST',\r\n                    data: {\r\n                        phone: phonenum,\r\n                        response: JSON.stringify(apidata),\r\n                        count: 1\r\n                    },\r\n                    url: `${edinfo.ed_api}\/hubspot-form-byte`,\r\n                    success: function(res) {\r\n                        return res;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.log(error);\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                \/\/ console.log(dbentyres,'DB Entry');\r\n                if(dbentyres){\r\n                    return true;\r\n                }\r\n                else {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            \/\/ Example function to simulate checking the phone number in a DB\r\n            async function checkPhoneInDatabase(phone,unmaskedPhone,trimmedPhone,$phoneError) {\r\n\r\n                \/\/ console.log(trimmedPhone);\r\n\r\n                const res = await jQuery.ajax({\r\n                    url: `${edinfo.ed_api}\/hubspot-form-byte-1`,\r\n                    type: \"POST\",\r\n                    data: {\r\n                        phone:trimmedPhone\r\n                    },\r\n                    success: function(result) {\r\n                        $phoneError.hide();\r\n                        return result;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.error(\"AJAX Error:\" + error);\r\n                        $phoneError.show();\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                if (res.data) {\r\n                    \/\/ console.log(JSON.parse(res.data.response));\r\n                    var phoneStatusResponse = JSON.parse(res.data.response);\r\n                    if(phoneStatusResponse.status === \"VALID_CONFIRMED\" || phoneStatusResponse.status === \"VALID_UNCONFIRMED\"){\r\n                        phone_status = \"Valid\";\r\n                    }\r\n                    else if(phoneStatusResponse.status === \"INVALID\"){\r\n                        phone_status = \"Invalid\";\r\n                    }\r\n\r\n                    line_type = (phoneStatusResponse.linetype) ? phoneStatusResponse.linetype : \"Unknown\";\r\n                    Cookies.set(`${phone}_phone_status`, phone_status , { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                    Cookies.set(`${phone}_line_type`, line_type, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n\r\n                    \/\/Enable if you want to block Invalid number form submission saved in DB\r\n                    \/\/ if(phoneStatusResponse.status === 'VALID_CONFIRMED' || phoneStatusResponse.status === 'VALID_UNCONFIRMED'){\r\n                    \/\/     return true;\r\n                    \/\/ }\r\n                    \/\/ else{\r\n                    \/\/     return false;\r\n                    \/\/ }\r\n\r\n                    \/\/ return true;\r\n                    \/\/ Return true only when DB says Valid\r\n                    return (phone_status === \"Valid\");\r\n\r\n                } else {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            \/\/Send HubSpot Data to SalesForce\r\n            async function sendHsDataToSf($form,hsidVal){\r\n                \/\/ console.log(hsidVal,'<===hsidVal');\r\n                \/\/Convert Experiment, show Hide Text area and Radio options\r\n                let who_is_your_ideal_audience = $form[0].querySelector(\"textarea[name='who_is_your_ideal_audience_']\");\r\n                let which_option_best_suits_you = $form[0].querySelector(\"input[name='check_which_option_best_suits_you']:checked\");\r\n                \/\/ console.log(\"which_option_best_suits_you\", which_option_best_suits_you);\r\n                \/\/ console.log(who_is_your_ideal_audience);\r\n\r\n                var radio_button_div = document.querySelector('.hs-fieldtype-radio');\r\n                var textarea_div=document.querySelector('.hs-fieldtype-textarea');\r\n                var computedStyle_radio = window.getComputedStyle(radio_button_div);\r\n                var computedStyle_textarea = window.getComputedStyle(textarea_div);\r\n\r\n                if (which_option_best_suits_you && (computedStyle_radio.display !== 'none')) {\r\n                    commentsValue = which_option_best_suits_you.value;\r\n                } else if (who_is_your_ideal_audience && (computedStyle_textarea !== 'none')) {\r\n                    commentsValue = who_is_your_ideal_audience.value;\r\n                }\r\n\r\n                \/\/Send Data to SalesForce start\r\n                let qparams = window.location.search.replace(\"?\",\"\").split(\"&\").reduce(function(p,e){\r\n                    var a = e.split(\"=\");\r\n                    p[ decodeURIComponent(a[0])] = decodeURIComponent(a[1]);\r\n                    return p;\r\n                },{});\r\n\r\n                let flag = Object.keys(qparams);\r\n                if(flag[0] !== \"\") {\r\n                    Cookies.set(\"_tracking_params\", JSON.stringify(qparams), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                }\r\n\r\n                let formData = $form.serializeArray().reduce(function(obj, item) {\r\n                    obj[item.name] = item.value;\r\n                    return obj;\r\n                }, {});\r\n\r\n                \/\/Common Value if it is radio or textarea input\r\n                if(commentsValue){\r\n                    formData['commentsValue'] = commentsValue;\r\n                }else {\r\n                    formData['commentsValue'] = \"Not Found\";\r\n                }\r\n\r\n                const convertParamValue = new URLSearchParams(window.location.search).get(\"ed_cs\")?.trim().toLowerCase();\r\n                const optionValue = which_option_best_suits_you?.value;\r\n\r\n                if (convertParamValue === \"aud\") {\r\n                    formData['RoutingFlagValue'] = \"\";\r\n                } else if (convertParamValue === \"true\") {\r\n                    if (optionValue === \"Do it yourself and build unlimited lists\") {\r\n                    formData['RoutingFlagValue'] = \"ED-SG\";\r\n                    } else if (optionValue === \"Do it for me - Work with an expert to build your list\") {\r\n                        formData['RoutingFlagValue'] = \"ED-Expert\";\r\n                    }\r\n                } else {\r\n                    if (optionValue === \"Do it yourself and build unlimited lists\") {\r\n                        formData['RoutingFlagValue'] = \"ED-DIY\";\r\n                    } else if (optionValue === \"Do it for me - Work with an expert to build your list\") {\r\n                        formData['RoutingFlagValue'] = \"ED-Expert\";\r\n                    }\r\n                }\r\n\r\n\r\n                \/\/Assign Heap SID\r\n                formData['heapsessionid'] = hsidVal;\r\n\r\n                const sf_response = jQuery.ajax({\r\n                    url: edinfo.ajaxurl,\r\n                    type: \"POST\",\r\n                    data: {\r\n                        action: \"w2c_to_middleware_hb\",\r\n                        data: formData\r\n                    },\r\n                    xhr: function () {\r\n                        let xhr = new window.XMLHttpRequest();\r\n\r\n                        \/\/ Track when request is successfully sent\r\n                        xhr.upload.onloadstart = function () {\r\n                            console.log(\"sent...\");\r\n                        };\r\n\r\n                        \/\/return true;\r\n                        return xhr;\r\n                    },\r\n                    success: function(result) {\r\n                        return result;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.error(\"AJAX Error:\" + error);\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                \/\/ console.log(sf_response);\r\n\r\n                if(sf_response.sf_success){\r\n                    return true;\r\n                } else {\r\n                    return false;\r\n                }\r\n\r\n            }\r\n\r\n            \/\/Create Info\r\n            async function getJwtData(FName,LName,Emailid,Phoneno){\r\n                \/\/ console.log(edinfo.ed_api+'\/api\/pi');\r\n                jQuery.ajax({\r\n                    url: edinfo.ed_api+'\/api\/pi',\r\n                    data: {first_name: FName, last_name: LName, email:Emailid, phone: Phoneno},\r\n                    type: 'post',\r\n                    success: function (data) {\r\n                        jwt = data;\r\n                        \/\/ console.log(data);\r\n                        \/\/ console.log(\"JWT=\"+data);\r\n\r\n                        \/\/jQuery.cookie('form_jwt', JSON.stringify(data), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                        \/\/Cookies.set('form_jwt', JSON.stringify(data), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                        \/\/$(BtnName).trigger('click', ['run']);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/**\r\n             * Heap SID Processor\r\n             * @returns {Promise<*|string>}\r\n             *\/\r\n            async function processHeapData() {\r\n                if (typeof window !== 'undefined' && typeof window.heap === 'object') {\r\n                    if (window.heap.loaded && typeof window.heap.getSessionId === 'function') {\r\n                        return window.heap.getSessionId();\r\n                    } else {\r\n                        return 'not available';\r\n                    }\r\n                } else {\r\n                    return 'Heap Undefined';\r\n                }\r\n            }\r\n\r\n            function containsBadWords(text) {\r\n                if (!text) return false;\r\n                const lower = text.toLowerCase();\r\n\r\n                return badWords.some(word => lower.includes(word.toLowerCase()));\r\n            }\r\n\r\n            async function validateName(field, $errorBox) {\r\n                const name = field.value.trim();\r\n\r\n                \/\/ Bad word check\r\n                if (containsBadWords(name)) {\r\n                    field.classList.add('invalid', 'error');\r\n                    $errorBox.text(\"Must be a valid name.\");\r\n                    $errorBox.show();\r\n                    return false;\r\n                }\r\n\r\n                \/\/ Valid\r\n                field.classList.remove('invalid', 'error');\r\n                $errorBox.hide();\r\n                return true;\r\n            }\r\n\r\n\r\n\r\n        <\/script>\r\n    <\/div>\r\n    [\/vc_column][vc_column width=&#8221;1\/12&#8243;][\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1725983832119{margin-top: -130px !important;padding-bottom: 130px !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221; el_class=&#8221;let-us-earn&#8221;][vc_row][vc_column css=&#8221;.vc_custom_1725970920519{padding-top: 5px !important;}&#8221;][vc_single_image image=&#8221;326&#8243; img_size=&#8221;full&#8221; alignment=&#8221;right&#8221; css=&#8221;.vc_custom_1726799270183{margin-right: 79px !important;margin-bottom: 13px !important;}&#8221; el_class=&#8221;bbb-seal&#8221;][vc_column_text css=&#8221;.vc_custom_1726242089566{margin-bottom: 0px !important;}&#8221; el_class=&#8221;learn-more&#8221;]\r\n<p style=\"text-align: center;\">Let us earn your business, learn more<\/p>\r\n[\/vc_column_text][vc_single_image image=&#8221;285&#8243; img_size=&#8221;60&#215;60&#8243; alignment=&#8221;center&#8221;][vc_column_text css=&#8221;.vc_custom_1725984478029{margin-bottom: 20px !important;}&#8221;]\r\n<h4 style=\"text-align: center; font-family: 'Open Sans', Arial, sans-serif; font-weight: bold; line-height: 1.3; color: #5c5c5c; font-size: 30px; margin-bottom: 1rem;\">Easily Build Lists<\/h4>\r\n<p style=\"text-align: center;\">Interested in new business leads? Fill out the form above to create an account and view lists like the one below.<\/p>\r\n[\/vc_column_text][\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1628604750154{padding-top: 50px !important;background-color: #efefef !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221;][vc_row el_class=&#8221;table-row&#8221;][vc_column][vc_single_image image=&#8221;342&#8243; img_size=&#8221;full&#8221; css=&#8221;.vc_custom_1727959116191{margin-top: -178px !important;margin-bottom: 15px !important;}&#8221;][\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1720639545608{padding-top: 50px !important;padding-bottom: 50px !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221;][vc_row el_id=&#8221;trustPilotSection&#8221;][vc_column css=&#8221;.vc_custom_1625067818704{padding-top: 5px !important;}&#8221;][vc_column_text]\r\n<h1 style=\"text-align: center;\">The Best-Reviewed Targeted Lead Company<\/h1>\r\n[\/vc_column_text]<div class=\"trustpilot-widget\" data-locale=\"en-US\" data-template-id=\"53aa8912dec7e10d38f59f36\" data-businessunit-id=\"5cd550d3478699000150e05b\" data-style-height=\"140px\" data-style-width=\"100%\" data-theme=\"light\" data-stars=\"4,5\" data-review-languages=\"en\" data-font-family=\"Open Sans\" data-text-color=\"\"><a href=\"https:\/\/www.trustpilot.com\/review\/exactdata.com\" target=\"_blank\" rel=\"noopener\">Trustpilot<\/a><\/div>[\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1628608151145{padding-top: 50px !important;padding-bottom: 10px !important;background-color: #f2f2f2 !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221;][vc_row css=&#8221;.vc_custom_1727954720270{padding-bottom: 10px !important;}&#8221; el_id=&#8221;chartSection&#8221;][vc_column css=&#8221;.vc_custom_1625067818704{padding-top: 5px !important;}&#8221;][vc_column_text css=&#8221;.vc_custom_1628609207834{margin-bottom: 20px !important;}&#8221;]\r\n<h2>Save time and money by connecting with the right people, the first time.<\/h2>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1625067718162{padding-bottom: 10px !important;}&#8221;][vc_column width=&#8221;5\/12&#8243; css=&#8221;.vc_custom_1624377206490{padding-bottom: 20px !important;}&#8221;][vc_single_image image=&#8221;276&#8243; img_size=&#8221;full&#8221;][\/vc_column][vc_column width=&#8221;7\/12&#8243; css=&#8221;.vc_custom_1624377217313{padding-bottom: 20px !important;}&#8221;][vc_column_text css=&#8221;.vc_custom_1628608479248{margin-bottom: 15px !important;}&#8221;]Looking to buy an email list? You\u2019ve come to the right place! Our top-quality, 100% CAN-SPAM compliant, custom targeted lists are guaranteed to provide you with the best value. We pride ourselves in making your marketing efforts easy and effective.[\/vc_column_text]\r\n<ul class=\"igIconList\" style=\"font-size:16px;list-style:none;\">\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fa fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">100% customizable to fit your campaign<\/span><\/li>\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fa fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">\u00a0 Improve response rates, increase sales, and grow ad ROI<\/span><\/li>\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fa fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">\u00a0Over 75,000 combinations to build your ideal audience<\/span><\/li>\r\n<\/ul>\r\n[vc_column_text css=&#8221;.vc_custom_1628630851942{margin-bottom: 15px !important;}&#8221;]Submit the form above to get instant access to lead lists.[\/vc_column_text][\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1628609488501{padding-top: 50px !important;padding-bottom: 10px !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221;][vc_row css=&#8221;.vc_custom_1727955006936{padding-bottom: 10px !important;}&#8221; el_class=&#8221;socialSection&#8221;][vc_column css=&#8221;.vc_custom_1625067818704{padding-top: 5px !important;}&#8221;][vc_column_text]\r\n<h2 style=\"text-align: center;\">230 Million Consumer Contacts and 69 Million Businesses Available.<\/h2>\r\n<p style=\"text-align: center;\">Enhance the quality of your data with ease. Make your marketing profitable with an engaged email list.<\/p>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1727955106662{padding-bottom: 50px !important;}&#8221; el_class=&#8221;equalHeights iconRow1 socialSection&#8221;][vc_column width=&#8221;1\/3&#8243; css=&#8221;.vc_custom_1624377206490{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:70px;\"><i style=\"color:#038cfe;font-size:70px;\" class=\"igIcon fa fa-envelope-o\"><\/i><\/span>[vc_empty_space height=&#8221;20px&#8221;][vc_column_text]\r\n<h5 style=\"text-align: center;\">CAN-SPAM COMPLIANT AND DELIVERABLE EMAIL ADDRESSES<\/h5>\r\n<p style=\"text-align: center;\">Build a fresh, 100% CAN-SPAM Compliant email list from our database of 230 million B2C and 69 million B2B contacts. All lists are validated prior to list turnover. We also deploy email campaigns from our whitelisted servers.<\/p>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243; css=&#8221;.vc_custom_1624377217313{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:70px;\"><i style=\"color:#038cfe;font-size:70px;\" class=\"igIcon fa fa-paper-plane-o\"><\/i><\/span>[vc_empty_space height=&#8221;20px&#8221;][vc_column_text]\r\n<h5 style=\"text-align: center;\">USPS-VERIFIED POSTAL MAILING RECORDS<\/h5>\r\n<p style=\"text-align: center;\">Our entire postal database is kept up-to-date through constant verification against the NCOA (National Change of Address) and USPS (United States Postal Service) registries.<\/p>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/3&#8243; css=&#8221;.vc_custom_1624377225104{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:70px;\"><i style=\"color:#038cfe;font-size:70px;\" class=\"igIcon fa fa-comments-o\"><\/i><\/span>[vc_empty_space height=&#8221;20px&#8221;][vc_column_text]\r\n<h5 style=\"text-align: center;\">DNC-COMPLIANT TELEMARKETING NUMBERS<\/h5>\r\n<p style=\"text-align: center;\">Get more leads and sales opportunities through our telemarketing phone lists. Connect with top-level business contacts or residential consumers through their home, office, or cell phone numbers.<\/p>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1727955360500{padding-bottom: 10px !important;}&#8221; el_class=&#8221;edDataSection&#8221;][vc_column css=&#8221;.vc_custom_1625067818704{padding-top: 5px !important;}&#8221;][vc_column_text]\r\n<h2 style=\"text-align: center;\">The Exact Data Difference<\/h2>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1727955464953{padding-bottom: 10px !important;}&#8221; el_class=&#8221;equalHeights iconRow2 edDataSection&#8221;][vc_column width=&#8221;1\/12&#8243; css=&#8221;.vc_custom_1624377206490{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-bullseye\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243; css=&#8221;.vc_custom_1624377217313{padding-bottom: 20px !important;}&#8221;][vc_column_text]\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">HIGHLY TARGETED AUDIENCES<\/h5>\r\nCut marketing costs by getting your messages in front of the right people.\r\n\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/12&#8243; css=&#8221;.vc_custom_1624377225104{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-usd\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243;][vc_column_text]\r\n<div class=\"text\">\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">COMPETITIVE PRICING<\/h5>\r\nWe will match any major competitor&#8217;s price with discounts available based on order volume.\r\n\r\n<\/div>\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/12&#8243;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-cogs\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243;][vc_column_text]\r\n<div class=\"text\">\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">SUPERIOR DATA HYGIENE<\/h5>\r\nOur postal, telephone, and email contacts routinely go through a rigorous data hygiene process to ensure our data is accurate and up-to-date.\r\n\r\n<\/div>\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1727955656139{padding-bottom: 10px !important;}&#8221; el_class=&#8221;equalHeights iconRow2 edDataSection&#8221;][vc_column width=&#8221;1\/12&#8243; css=&#8221;.vc_custom_1624377206490{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-cloud-download\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243; css=&#8221;.vc_custom_1624377217313{padding-bottom: 20px !important;}&#8221;][vc_column_text]\r\n<div class=\"text\">\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">QUICK AND EASY FILE DELIVERY<\/h5>\r\nOur secure client portal gives you access to your files anytime, anywhere.\r\n\r\n<\/div>\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/12&#8243; css=&#8221;.vc_custom_1624377225104{padding-bottom: 20px !important;}&#8221;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-line-chart\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243;][vc_column_text]\r\n<div class=\"text\">\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">SATISFACTION GUARANTEE<\/h5>\r\nWe will refund your money for any portion of your list that shows undeliverable, out-of-date, or disconnected.\r\n\r\n<\/div>\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][vc_column width=&#8221;1\/12&#8243;]<span style=\"margin-left:auto;margin-right:auto;display:block;width:32px;\"><i style=\"color:#038cfe;font-size:32px;\" class=\"igIcon fa fa-mobile\"><\/i><\/span>[\/vc_column][vc_column width=&#8221;3\/12&#8243;][vc_column_text]\r\n<div class=\"text\">\r\n<div class=\"text\">\r\n<h5 class=\"features-title\">24\/7 CUSTOMER SUPPORT<\/h5>\r\nWe&#8217;re always available to answer any questions you have via phone, email, or live chat.\r\n\r\n<\/div>\r\n<\/div>\r\n[\/vc_column_text][\/vc_column][\/vc_row][\/vc_section][vc_section css=&#8221;.vc_custom_1727955743988{padding-top: 50px !important;padding-bottom: 50px !important;background-color: #2f2f2f !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221; el_id=&#8221;form&#8221; el_class=&#8221;formSection&#8221;][vc_row el_class=&#8221;whitetext&#8221;][vc_column][vc_column_text]\r\n<h2 style=\"text-align: center;\">Create a Free Account<\/h2>\r\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row el_class=&#8221;formSection&#8221;][vc_column width=&#8221;1\/3&#8243; css=&#8221;.vc_custom_1725447974065{padding-top: 35px !important;padding-bottom: 35px !important;background-color: #ffffff !important;}&#8221; el_class=&#8221;bottom-quote-form&#8221;]    <div class=\"hs_inline_form\">\r\n        <script>\r\n            var device = \"\";\r\n            device += detectMob() ? \"Mobile\" : \"Desktop\"; device += \", \" + getBrowserName();\r\n            if (detectMob()) {\r\n                device += \", \" + getMobileOperatingSystem();\r\n            } else {\r\n                device += \", \" + getOperatingSystem();\r\n            }\r\n            var browserName = navigator.userAgent;\r\n            var commentsValue = '';\r\n            window.phone_status = \"Unknown\";\r\n            window.line_type = \"Unknown\";\r\n\r\n            var randomStringId = Math.random().toString(36).substr(2, 9);\r\n\r\n            var badWords = [\r\n                \"arse\",\"ass\",\"asshole\",\"bastard\",\"bitch\",\"bollocks\",\"brotherfucker\",\"bugger\",\r\n                \"bullshit\",\"child-fucker\",\"Christ on a bike\",\"Christ on a cracker\",\"crap\",\r\n                \"cunt\",\"damn\",\"effing\",\"fatherfucker\",\"frigger\",\"fuck\",\"goddamn\",\"godsdamn\",\r\n                \"hell\",\"holy shit\",\"horseshit\",\"Jesus Christ\",\"Jesus fuck\",\"Jesus H. Christ\",\r\n                \"Jesus Harold Christ\",\"Jesus wept\",\"Jesus, Mary and Joseph\",\"Judas Priest\",\r\n                \"motherfucker\",\"nigga\",\"prick\",\"shit\",\"shit ass\",\"shitass\",\"sisterfucker\",\r\n                \"slut\",\"son of a bitch\",\"son of a whore\",\"sweet Jesus\",\"twat\",\"suck\",\"sucker\",\r\n                \"fucker\"\r\n            ];\r\n            hbspt.forms.create({\r\n                region: \"na1\",\r\n                portalId: \"5267700\",\r\n                formId: \"2dc8bbe9-dc14-4cd9-8c30-37cdb9a53589\",\r\n                cssClass: \"ds_on_page_custom_class\",\r\n                formInstanceId: `ds_on_page_${randomStringId}`,\r\n                translations: {\r\n                    en: {\r\n                        required: \"This field is required.\",\r\n                        submissionErrors:{\r\n                            MISSING_REQUIRED_FIELDS: \" \"\r\n                        },\r\n                    }\r\n                },\r\n                css:'',\r\n                onFormReady: function($form) {\r\n                    $form.find(\"input[type=submit]\").css(\"width\", \"100%\");\r\n                    $form.find(\"input[name=device]\").val();\r\n                    $form.find(\"input[name=bas_phone]\").val();\r\n                    $form.find(\"input[name=google_analytics_campaign]\").val(Cookies.get(\"campaignid\") || \"Not Present\");\r\n                    $form.find(\"input[name=sfcid]\").val(Cookies.get(\"sfcid\") || \"701Pa000007r0KSIAY\");\r\n                    $form.find(\"input[name=media_code]\").val(Cookies.get(\"media_code\") || \"EXDCMSW00100\");\r\n                    $form.find(\"input[name=gclid]\").val(Cookies.get(\"gclid\") || \"Not Present\");\r\n                    $form.find(\"input[name=ms_click_id]\").val(Cookies.get(\"msclkid\") || \"Not Present\");\r\n                    $form.find(\"input[name=facebook_cookie_fbc]\").val(Cookies.get(\"_fbc\") || \"Not Present\");\r\n                    $form.find(\"input[name=facebook_cookie_fbp]\").val(Cookies.get(\"_fbp\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_campaign]\").val(Cookies.get(\"utm_campaign\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_content]\").val(Cookies.get(\"utm_content\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_medium]\").val(Cookies.get(\"utm_medium\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_source]\").val(Cookies.get(\"utm_source\") || \"Not Present\");\r\n                    $form.find(\"input[name=utm_term]\").val(Cookies.get(\"utm_term\") || \"Not Present\");\r\n                    $form.find(\"input[name=adgroup_id]\").val(Cookies.get(\"adgroupid\") || \"Not Present\");\r\n                    $form.find(\"input[name=extension_id]\").val(Cookies.get(\"extensionid\") || \"Not Present\");\r\n                    $form.find(\"input[name=matchtype]\").val(Cookies.get(\"matchtype\") || \"Not Present\");\r\n                    $form.find(\"input[name=network]\").val(Cookies.get(\"network\") || \"Not Present\");\r\n                    $form.find(\"input[name=bp_line_type]\").val(Cookies.get(\"bp_line_type\") || \"Unknown\");\r\n                    $form.find(\"input[name=bp_phone_status]\").val(Cookies.get(\"bp_phone_status\") || \"Unknown\");\r\n                    $form.find(\"input[name=fbclid]\").val(Cookies.get(\"fbclid\") || \"Not Present\");\r\n                    $form.find(\"input[name=leadsource]\").val(Cookies.get(\"leadsource\") || \"Not Present\");\r\n                    $form.find(\"input[name=ip]\").val(connectingIP);\r\n                    $form.find(\"input[name=browser_user_agent]\").val(browserName);\r\n                    $form.find(\"input[name=page_url__long_text_]\").val(currentPageURL);\r\n                    var phoneField = $form.find(\"input[name=phone]\");\r\n\r\n                    jQuery('input[name=\"phone\"]').each(function() {\r\n                        var phoneField = jQuery(this);\r\n                        phoneField.attr('autocomplete', 'off');\r\n                        \r\n                        \/\/ Only insert #plus if it doesn't exist\r\n                        if (phoneField.length > 0 && !phoneField.prev('#plus').length) {\r\n                            phoneField.before('<span id=\"plus\" style=\"position:absolute;top:50%;left:10px;color:#757171;font-size:13px;transform:translateY(-50%);display:none;\">+1<\/span>');\r\n                        }\r\n\r\n                        \/\/ Show the #plus element when the field gets focus and it's empty\r\n                        phoneField.on('focus', function() {\r\n                            var value = phoneField.val().replace(\/\\D\/g, '');\r\n                            if (value === \"\") {\r\n                                phoneField.prev('#plus').show();\r\n                            }\r\n\r\n                            \/\/ Apply the input mask only if it's not already applied\r\n                            if (!phoneField.hasClass('masked')) {\r\n                                phoneField.inputmask({\r\n                                    mask: \"    (999)999-9999\",\r\n                                    showMaskOnFocus: 1,\r\n                                    showMaskOnHover: !1,\r\n                                    autoUnmask: !1,\r\n                                    clearMaskOnLostFocus: 1\r\n                                }).addClass('masked');\r\n                            }\r\n                        });\r\n\r\n                        \/\/ Hide the #plus element and apply input mask on blur\r\n                        phoneField.on('blur', function() {\r\n                            var value = phoneField.val().replace(\/\\D\/g, '');\r\n                            if (value === \"\") {\r\n                                phoneField.prev('#plus').hide();\r\n                            }\r\n                        });\r\n                        \r\n                    });\r\n\r\n                    \r\n                    let radioBtnValue = \"\";\r\n                    const formEl = $form.get(0);\r\n                    const radioButtons = formEl.querySelectorAll('[name=\"check_which_option_best_suits_you\"]');\r\n                    const audienceTextareaContainer = formEl.querySelector(\".hs_who_is_your_ideal_audience_\");\r\n                    const radioButtonsContainer = formEl.querySelector(\".hs_check_which_option_best_suits_you\");\r\n                    const convertParamValue = new URLSearchParams(window.location.search).get(\"ed_cs\");\r\n                    const edCsInput = formEl.querySelector('[name=\"ed_cs\"]');\r\n\r\n                    if (convertParamValue) {\r\n                        const csParamval = convertParamValue.trim().toLowerCase();\r\n                        if (audienceTextareaContainer && radioButtonsContainer) {\r\n                            if (csParamval === \"true\" || csParamval === \"false\") {\r\n                                audienceTextareaContainer.classList.add('hidden');\r\n                                audienceTextareaContainer.classList.remove('shown');\r\n                                radioButtonsContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('shown');\r\n                            } else if (csParamval === \"aud\") {\r\n                                audienceTextareaContainer.classList.add('shown');\r\n                                audienceTextareaContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('hidden');\r\n                                radioButtonsContainer.classList.remove('shown');\r\n                            }\r\n                        }\r\n                    } else {\r\n                        if (audienceTextareaContainer && radioButtonsContainer) {\r\n                                audienceTextareaContainer.classList.add('hidden');\r\n                                audienceTextareaContainer.classList.remove('shown');\r\n                                radioButtonsContainer.classList.remove('hidden');\r\n                                radioButtonsContainer.classList.add('shown');\r\n                        }\r\n                    }\r\n\r\n                \r\n                    if (edCsInput) {\r\n                        edCsInput.value = \"\";\r\n                    }\r\n                    \r\n                    radioButtons.forEach((radioButton) => {\r\n                        radioButton.addEventListener(\"change\", (event) => {\r\n                            if (event.target.checked) {\r\n                                radioBtnValue = event.target.value;\r\n                                if (radioBtnValue === \"Do it yourself and build unlimited lists\") {\r\n                                    if (convertParamValue && convertParamValue.trim().toLowerCase() === \"true\") {\r\n                                        if (edCsInput) {\r\n                                            edCsInput.value = convertParamValue;\r\n                                        } \r\n                                    }\r\n                                } else {\r\n                                    if (edCsInput) {\r\n                                        edCsInput.value = \"\";\r\n                                    }\r\n                                }\r\n                            }\r\n                        });\r\n                    });\r\n\r\n\r\n                    if ($form.closest(\".top-quote-form\").length > 0) {\r\n                        $form.find(\"input[name=hubspot_form_title]\").val(\"Instant Free Quote\");\r\n                        $form.find(\"input[type=submit]\").val(\"Get Started Now \u279c\");\r\n                    } else if ($form.closest(\".bottom-quote-form\").length > 0) {\r\n                        $form.find(\"input[name=hubspot_form_title]\").val(\"Create a Free Account\");\r\n                        $form.find(\"input[type=submit]\").val(\"Get Started Now \u279c\");\r\n                    }\r\n\r\n                    \/*Floating Labels*\/\r\n                    var $input = $(\".hs-input\");\r\n                    $input\r\n                        .on(\"focus\", function() {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .addClass(\"active\");\r\n                        })\r\n                        .blur();\r\n\r\n                    \/\/ move label if input is empty or not\r\n                    $input.focusout(function() {\r\n                        if (!$(this).val()) {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .removeClass(\"active\");\r\n                        } else {\r\n                            $(this)\r\n                                .parent()\r\n                                .parent()\r\n                                .addClass(\"active\");\r\n                        }\r\n                    }).focusout();\r\n\r\n                                            $form.find(\"input[name=keyword]\").val(Cookies.get(\"keyword\") || \"Not Present\");\r\n                    \r\n                    var domain = window.location.hostname;\r\n                    var baseUrls = {\r\n                        \"www.exactdata.com\": {\r\n                            terms: \"https:\/\/www.exactdata.com\/info\/terms-of-use\/\",\r\n                            privacy: \"https:\/\/www.exactdata.com\/info\/privacy-policy\/\"\r\n                        },\r\n                        \"qa.exactdata.com\": {\r\n                            terms: \"https:\/\/qa.exactdata.com\/info\/terms-of-use\/\",\r\n                            privacy: \"https:\/\/qa.exactdata.com\/info\/privacy-policy\/\"\r\n                        }\r\n                    };\r\n                    var urls = baseUrls[domain];\r\n                    var disclaimer = document.createElement(\"div\");\r\n                    disclaimer.innerHTML = `<p class=\"verbiage\">By submitting this form you are agreeing to Exact Data\\'s <a target=\"_blank\" href=\"${urls.terms}\">Terms & Conditions<\/a>, <a target=\"_blank\" href=\"${urls.privacy}\">Privacy Policy<\/a>, and consent to our <span class=\"contact-policy-hover\">Contact Policy<span class=\"contact-policy-tooltip\">I consent to Data Axle and its subsidiaries and affiliates using my email and phone number for marketing and analytical purposes, including to contact me regarding Data Axle products.<\/span><\/span>. No credit card required.<\/p>`;\r\n                    var style = document.createElement(\"style\");\r\n                    style.textContent = `\r\n                    .hs-form .hs_error_rollup {\r\n                        dsplay: none;\r\n                    }\r\n                    .hs-form .hs-form-required {\r\n                        display: none !important;\r\n                    }\r\n                    input.hs-input.error{\r\n                        border-color: #ff3300!important;\r\n                    }\r\n                    .hs-input {\r\n                        display: inline-block;\r\n                        width: 90%;\r\n                        max-width: 500px;\r\n                        height: 40px;\r\n                        padding: 9px 10px;\r\n                        font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n                        font-size: 16px;\r\n                        font-weight: normal;\r\n                        line-height: 22px;\r\n                        color: #33475b;\r\n                        border: 1px solid #cbd6e2;\r\n                        box-sizing: border-box;\r\n                        -webkit-border-radius: 3px;\r\n                        -moz-border-radius: 3px;\r\n                        -ms-border-radius: 3px;\r\n                        border-radius: 3px;\r\n                    }\r\n                    .hs-form-field label:not(.hs-error-msg) {\r\n                        font-family: helvetica;\r\n                        font-size: 13px;\r\n                    }\r\n                    .hs-form .hs-form-field input::placeholder, .hs-form .hs-form-field textarea::placeholder {\r\n                        font-size: 13px;\r\n                    }\r\n                    .hs-form .hs-form-field textarea {\r\n                        height:74px;\r\n                    }\r\n                    .field {\r\n                        margin-bottom: 18px;\r\n                    }\r\n                    .hs-form * {\r\n                        box-sizing: border-box;\r\n                    }\r\n                    .hs-input:not([type=file]) {\r\n                        background-color: #f5f8fa;\r\n                    }\r\n                    .hs-button {\r\n                        background: #FA6B07;\r\n                        border-color: #FA6B07;\r\n                        color: #ffffff;\r\n                        line-height: 12px;\r\n                        font-family: helvetica;\r\n                        white-space: pre-wrap;\r\n                        width: 100%;\r\n                        -webkit-appearance: none;\r\n                        -moz-appearance: none;\r\n                        margin: 0;\r\n                        cursor: pointer;\r\n                        display: inline-block;\r\n                        position: relative;\r\n                        text-align: center;\r\n                        transition: all .15s linear;\r\n                        border-radius: 3px;\r\n                        border-style: solid;\r\n                        border-width: 1px;\r\n                        padding: 12px 24px;\r\n                        font-size: 18px;\r\n                        font-weight: bold;\r\n                        font-family: Open Sans, Arial, sans-serif;\r\n                        text-transform: uppercase;\r\n                    }\r\n                    fieldset.form-columns-1 .hs-input, fieldset.form-columns-2 .hs-input {\r\n                        width: 100%!important;\r\n                    }\r\n                    ul.hs-error-msgs{\r\n                        margin-left: 0px;\r\n                        margin-bottom: 0px;\r\n                    }\r\n                    ul.hs-error-msgs li{\r\n                        list-style: none;\r\n                        line-height: 1;\r\n                    }\r\n                    .hs-error-msgs label {\r\n                        color: #f2545b;\r\n                        font-size: 13px;\r\n                        line-height: 0;\r\n                    }\r\n                    .verbiage {\r\n                        font-size: 12px;\r\n                        margin: 0;\r\n                        padding: 0;\r\n                        line-height: 15px;\r\n                        text-shadow: none;\r\n                        color: rgba(59, 59, 59, 0.5);\r\n                        text-align: left;\r\n                        margin-top: 15px;\r\n                    }\r\n                    .verbiage a {\r\n                        text-decoration: underline;\r\n                        color: #039fff !important;\r\n                    }\r\n                    .contact-policy-hover {\r\n                        position: relative;\r\n                        cursor: pointer;\r\n                        text-decoration: underline;\r\n                        color: #039fff;\r\n                    }\r\n                    .contact-policy-tooltip {\r\n                        display: none;\r\n                        border-radius: 5px;\r\n                        background-color: #221f20;\r\n                        font-size: .6875rem;\r\n                        width: 200px;\r\n                        padding: 10px;\r\n                        position: absolute;\r\n                        color: #fff;\r\n                        z-index: 99999999999;\r\n                    }\r\n                    .contact-policy-tooltip.visible {\r\n                        display: block;\r\n                        inset: auto 0px 100% auto;\r\n                    }\r\n                    `;\r\n\r\n                    disclaimer.appendChild(style);\r\n                    document.body.appendChild(disclaimer);\r\n\r\n                    var $submitButton = $form.find(\"input[type=submit]\");\r\n                    var originalSubmitText = $submitButton.val();\r\n\r\n                    var emailField = $form[0].querySelector(\"input[name='email']\");\r\n                    var phoneField = $form[0].querySelector(\"input[name='phone']\");\r\n                    var firstnameField = $form[0].querySelector(\"input[name='firstname']\");\r\n                    var lastnameField = $form[0].querySelector(\"input[name='lastname']\");\r\n                    var companyField = $form[0].querySelector(\"input[name='company']\");\r\n\r\n                    var $emailError = $('<div class=\"mktoCustomError\">Must be a valid email.<\/div>').insertAfter(emailField);\r\n                    var $phoneError = $('<div class=\"mktoCustomError\">Must be a valid phone number.<\/div>').insertAfter(phoneField);\r\n                    var $fnameError = $('<div class=\"mktoCustomError\">This field is required.<\/div>').insertAfter(firstnameField);\r\n                    var $lnameError = $('<div class=\"mktoCustomError\">This field is required.<\/div>').insertAfter(lastnameField);\r\n\r\n                    $emailError.hide();\r\n                    $phoneError.hide();\r\n                    $fnameError.hide();\r\n                    $lnameError.hide();\r\n\r\n                    function showSpinner() {\r\n                        $submitButton.prop('disabled', true);\r\n                        $submitButton.val('PROCESSING...');\r\n                    }\r\n\r\n                    function hideSpinner() {\r\n                        $submitButton.prop('disabled', false);\r\n                        $submitButton.val(originalSubmitText);\r\n                    }\r\n\r\n                    $form.on(\"mouseenter\", \".contact-policy-hover\", function(event) {\r\n                        event.stopPropagation();\r\n                        event.preventDefault();\r\n                        var tooltip = $(this).find(\".contact-policy-tooltip\");\r\n                        tooltip.addClass(\"visible\");\r\n\r\n                        \/\/ Calculate the tooltip position\r\n                        var tooltipRect = tooltip[0].getBoundingClientRect();\r\n                        \/\/ var hoverRect = $(this)[0].getBoundingClientRect();\r\n                        var viewportWidth = window.innerWidth;\r\n                        var viewportHeight = window.innerHeight;\r\n\r\n                        \/\/ Reset any custom positioning\r\n                        tooltip.css({\r\n                            \"left\": \"\",\r\n                            \"right\": \"\",\r\n                            \"top\": \"\",\r\n                            \"bottom\": \"\",\r\n                            \"transform\": \"\",\r\n                            \"inset\": \"\"\r\n                        });\r\n\r\n                        \/\/ Adjust position based on available space\r\n                        if (tooltipRect.width > viewportWidth) {\r\n                            tooltip.css({\r\n                                \"width\": \"90vw\",\r\n                                \"left\": \"5vw\",\r\n                                \"right\": \"auto\",\r\n                                \"transform\": \"none\"\r\n                            });\r\n                        } else if (tooltipRect.right > viewportWidth) {\r\n                            tooltip.css({\r\n                                \"left\": \"auto\",\r\n                                \"right\": \"0\",\r\n                            });\r\n                        } else if (tooltipRect.right < viewportWidth) {\r\n                            tooltip.css({\r\n                                \"left\": \"auto\",\r\n                                \"right\": \"auto\",\r\n                            });\r\n                        } else if (tooltipRect.left < 0) {\r\n                            tooltip.css({\r\n                                \"left\": \"0\",\r\n                                \"right\": \"auto\"\r\n                            });\r\n                        } else if (tooltipRect.left > 0) {\r\n                            tooltip.css({\r\n                                \"left\": \"0\",\r\n                                \"right\": \"auto\"\r\n                            });\r\n                        } else {\r\n                            tooltip.css({\r\n                                \"left\": \"50%\",\r\n                                \"right\": \"auto\",\r\n                                \"transform\": \"translateX(-50%)\"\r\n                            });\r\n                        }\r\n\r\n                        if (tooltipRect.height > viewportHeight) {\r\n                            tooltip.css({\r\n                                \"height\": \"90vh\",\r\n                                \"top\": \"5vh\",\r\n                                \"bottom\": \"auto\"\r\n                            });\r\n                        } else if (tooltipRect.bottom > viewportHeight) {\r\n                            tooltip.css({\r\n                                \"top\": \"auto\",\r\n                                \"bottom\": \"100%\"\r\n                            });\r\n                        } else if (tooltipRect.top < 0) {\r\n                            tooltip.css({\r\n                                \"top\": \"100%\",\r\n                                \"bottom\": \"auto\"\r\n                            });\r\n                        } else {\r\n                            tooltip.css({\r\n                                \"top\": \"auto\",\r\n                                \"bottom\": \"100%\"\r\n                            });\r\n                        }\r\n                    });\r\n\r\n                    $form.on(\"mouseleave\", \".contact-policy-hover\", function(event) {\r\n                        event.stopPropagation();\r\n                        event.preventDefault();\r\n                        var tooltip = $(this).find(\".contact-policy-tooltip\");\r\n                        tooltip.removeClass(\"visible\");\r\n                    });\r\n\r\n                    var submitButton = $form[0].querySelector(\"input[type=submit]\");\r\n                    if (submitButton) {\r\n                        submitButton.parentNode.insertBefore(disclaimer, submitButton.nextSibling);\r\n                    } else {\r\n                        console.error(\"Submit button not found.\");\r\n                    }\r\n\r\n                    $(firstnameField).on('input', function() {\r\n                        $fnameError.hide();\r\n                        firstnameField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(lastnameField).on('input', function() {\r\n                        $lnameError.hide();\r\n                        lastnameField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(emailField).on('input', function() {\r\n                        $emailError.hide();\r\n                        emailField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $(phoneField).on('input', function() {\r\n                        $phoneError.hide();\r\n                        phoneField.classList.remove('invalid', 'error');\r\n                    });\r\n\r\n                    $form.on('click', '.hs-button', async function (e) {\r\n                        e.preventDefault(); \/\/ Prevent form submission until validation is done\r\n\r\n                        showSpinner();\r\n\r\n                        var unmaskedValue = $form.find(\"input[name=phone]\").first().inputmask('unmaskedvalue');\r\n                        var emailValue = emailField.value;\r\n                        var phoneValue = phoneField.value;\r\n                        var firstValue = firstnameField.value;\r\n                        var lnameValue = lastnameField.value;\r\n                        var companyValue = (companyField && companyField.value.trim() !== \"\")\r\n                            ? companyField.value.trim()\r\n                            : (firstValue + \" \" + lnameValue);\r\n\r\n                        \/\/ set hbEntry cookie using js-cookie (same library used elsewhere)\r\n                        var hbEntry = {\r\n                            email: emailValue,\r\n                            phone: phoneValue,\r\n                            firstname: firstValue,\r\n                            lastname: lnameValue,\r\n                            company: companyValue\r\n                        };\r\n\r\n                        \/\/ 30 days expiry, domain exactdata.com, secure only on https\r\n                        Cookies.set('hbEntry', JSON.stringify(hbEntry), {\r\n                            domain: \"exactdata.com\",\r\n                            path: \"\/\",\r\n                            secure: (window.location.protocol === 'https:')\r\n                        });\r\n\r\n\r\n                        \/\/ console.log(emailValue,phoneValue);\r\n                        \/\/ console.log(phone_status,line_type);\r\n\r\n\r\n                        try {\r\n                            \/\/ var unmaskedValue = $form.find(\"input[name=phone]\").first().inputmask('unmaskedvalue');\r\n                            const hsidVal      = await processHeapData();\r\n                            const isEmailValid = (emailValue.length > 0) ? await validateEmail(emailValue,emailField,$emailError) : false;\r\n                            const isPhoneValid = (unmaskedValue.length > 0) ? await validatePhone(phoneValue, unmaskedValue, phoneField, $phoneError) : false;\r\n                            const getRegistrationFlow = (isEmailValid && isPhoneValid) ? await validateGetRegistrationFlow(emailValue, unmaskedValue) : false;\r\n                            const isSalesGenieUser = (isEmailValid) ? await validateSalesGenieUser(emailValue) : false;\r\n                            if (getRegistrationFlow) {\r\n                                    $form.find(\"input[name=user_registration_flow]\").val(getRegistrationFlow);\r\n                                    \/\/ console.log('Set registration_flow field value to', getRegistrationFlow);\r\n                                } else {\r\n                                    $form.find(\"input[name=user_registration_flow]\").val('');\r\n                                    \/\/ console.log('Set registration_flow field value to \" \"');\r\n                                }\r\n\r\n                                if (getRegistrationFlow !== 'ED') {\r\n                                    \/\/ Set SalesGenie user status hidden field value\r\n                                    if (isSalesGenieUser) {\r\n                                        $form.find(\"input[name=existing_user_flag]\").val('true');\r\n                                        \/\/ console.log('Set existing_user field value to \"true\"');\r\n                                    } else {\r\n                                        $form.find(\"input[name=existing_user_flag]\").val('false');\r\n                                        \/\/ console.log('Set existing_user field value to \"false\"');\r\n                                    }\r\n                                } \r\n                            \/\/ const salesforceToken = (!isSalesGenieUser) ? await getSalesforceAccessToken() : null;\r\n                            const getSalesforceData = (!isSalesGenieUser && isEmailValid) ? await validateSalesforceData(emailValue) : false;\r\n                            const isSendToSF   = (isEmailValid && isPhoneValid) ? await sendHsDataToSf($form,hsidVal) : false;\r\n                            const isFnameValid = (firstValue.length > 0) ? await validateName(firstnameField,$fnameError) : false;\r\n                            const isLnameValid = (lnameValue.length > 0) ? await validateName(lastnameField,$lnameError) : false;\r\n                            \/\/ console.log(isEmailValid , isPhoneValid, isSendToSF );\r\n                            \/\/ console.log('isSalesGenieUser:', isSalesGenieUser);\r\n\r\n                            if (isFnameValid && isLnameValid && isEmailValid && isPhoneValid) {\r\n                                \/\/ Both validations passed, proceed to submit the form\r\n                                console.log('Both email and phone are valid. Submitting the form...');\r\n                                \/\/ hideSpinner();\r\n\r\n                                $form.find(\"input[name=bp_phone_status]\").val(phone_status);\r\n                                $form.find(\"input[name=bp_line_type]\").val(line_type);\r\n                                \/\/Heap Value update\r\n                                $form.find(\"input[name=heap_session_id]\").val(hsidVal);\r\n\r\n                                $emailError.hide();\r\n                                emailField.classList.remove('invalid', 'error');\r\n\r\n                                $phoneError.hide();\r\n                                phoneField.classList.remove('invalid', 'error');\r\n\r\n                                \/\/ const isSendToSF = await sendHsDataToSf($form);\r\n                                \/\/ console.log(isSendToSF);\r\n                                \/\/Generate JWT\r\n                                \/\/FName,LName,Emailid,Phoneno\r\n                                await getJwtData(firstValue,lnameValue,emailValue,phoneValue);\r\n                                $submitButton.val(originalSubmitText);\r\n                                $form.submit(); \/\/ Submit the form programmatically\r\n                            } else {\r\n                                \/\/ Handle validation failure\r\n                                if (!isEmailValid) {\r\n                                    emailField.classList.add('invalid', 'error');\r\n                                    $emailError.show();\r\n                                }\r\n\r\n                                if (!isPhoneValid) {\r\n                                    phoneField.classList.add('invalid', 'error');\r\n                                    $phoneError.show();\r\n                                    $('#plus').css('top', '36%');\r\n                                }\r\n\r\n                                if (!isFnameValid) {\r\n                                    firstnameField.classList.add('invalid', 'error');\r\n                                    $fnameError.show();\r\n                                }\r\n\r\n                                if (!isLnameValid) {\r\n                                    lastnameField.classList.add('invalid', 'error');\r\n                                    $lnameError.show();\r\n                                }\r\n\r\n                                \/\/ Hide loader or re-enable the submit button\r\n                                \/\/$('.quoteloader').css('display', 'none');\r\n                                hideSpinner();\r\n                            }\r\n                        } catch (error) {\r\n                            console.error('Error during validation:', error);\r\n                            \/\/ Handle any unexpected errors during validation\r\n                            \/\/$('.quoteloader').css('display', 'none');\r\n                            hideSpinner();\r\n                        }\r\n\r\n                    });\r\n                },\r\n                \/\/ onFormSubmitted: async function ($form, data){\r\n                \/\/     let sfdub = await sendHsDataToSf($form);\r\n                \/\/     console.log(sfdub);\r\n                \/\/ },\r\n\r\n            });\r\n\r\n            async function validateGetRegistrationFlow(email, phone) {\r\n                try {\r\n                    const response = await fetch(edinfo.ajaxurl, {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                    body: new URLSearchParams({\r\n                        action: 'get_registration_flow', \/\/ \ud83d\udc48 WordPress AJAX action\r\n                        email: email,\r\n                        phone: phone\r\n                    }),\r\n                    });\r\n\r\n                    const result = await response.json();\r\n\r\n                    if (result.success) {\r\n                    \/\/ console.log('Registration Flow Data:', result.data);\r\n                    return result.data.UserFlowType || false;\r\n                    } else {\r\n                    console.error('Error:', result.data?.message || 'Unknown error');\r\n                    return false;\r\n                    }\r\n\r\n                } catch (error) {\r\n                    console.error('AJAX error:', error);\r\n                    return false;\r\n                }\r\n            }\r\n\r\n\r\n\r\n            async function validateSalesGenieUser(email) {\r\n                try {\r\n                    let apiUrl=\"\";\r\n                    if (iusaEnvironment == \"TEST\") {\r\n                        apiUrl = `https:\/\/test-auth.salesgenie.com\/api\/v1\/Source\/GetProductListOfUser?username=${encodeURIComponent(email)}`;\r\n                    } else if (iusaEnvironment == \"PROD\") {\r\n                        apiUrl = `https:\/\/auth.salesgenie.com\/api\/v1\/Source\/GetProductListOfUser?username=${encodeURIComponent(email)}`;\r\n                    }\r\n\r\n                    const response = await fetch(apiUrl, {\r\n                        method: 'GET',\r\n                        headers: {\r\n                            'Content-Type': 'application\/json'\r\n                        }\r\n                    });\r\n\r\n                    if (!response.ok) return false;\r\n\r\n                    const data = await response.json();\r\n\r\n                    \/\/ If API returns false directly\r\n                    if (data === false) return false;\r\n\r\n                    \/\/ Check if it contains \"Salesgenie\": \"Salesgenie\"\r\n                    \/\/ return data.Salesgenie === \"Salesgenie\" || data.Exactdata === \"ExactData\";\r\n                    return data.Salesgenie === \"Salesgenie\";\r\n\r\n                } catch (error) {\r\n                    console.error('SalesGenie API error:', error);\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            async function validateSalesforceData(email) {\r\n                try {\r\n                    const response = await fetch(edinfo.ajaxurl, {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n                    body: new URLSearchParams({\r\n                        action: 'get_salesforce_data',\r\n                        email: email\r\n                    }),\r\n                    });\r\n\r\n                    const result = await response.json();\r\n\r\n                    if (result.success) {\r\n                    \/\/ console.log('Salesforce Data:', result.data);\r\n                    return result.data.success && result.data.isContactExist;\r\n\r\n                    \/\/ return result.data;\r\n                    } else {\r\n                    console.error('Error:', result.data?.message || 'Unknown error');\r\n                    return null;\r\n                    }\r\n                } catch (error) {\r\n                    console.error('AJAX error:', error);\r\n                    return null;\r\n                }\r\n            }\r\n\r\n            \/\/ Helper functions to make API requests\r\n            async function validateEmail(email,emailField,$emailError) {\r\n                \/\/Set user email cookie\r\n                Cookies.set(\"userEmailAddress\", email, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                emailField.dispatchEvent(new Event('input', { bubbles: true }));\r\n\r\n                const hasInvalidClass = emailField.classList.contains('invalid');\r\n                const hasErrorClass = emailField.classList.contains('error');\r\n                if(hasInvalidClass || hasErrorClass){\r\n                    return false;\r\n                }\r\n\r\n                \/\/ Check for badwords\r\n                if (containsBadWords(email)) {\r\n                    emailField.classList.add('invalid', 'error');\r\n                    $emailError.show();\r\n                    return false;\r\n                }\r\n\r\n                \/\/ No badwords \u2192 valid\r\n                        $emailError.hide();\r\n                        emailField.classList.remove('invalid', 'error');\r\n                        return true;\r\n            }\r\n\r\n            async function validatePhone(phone,unmaskedPhone,phoneField,$phoneError) {\r\n                \/\/ console.log(phone.length,'<---phone');\r\n                \/\/ console.log(unmaskedPhone.length,'<---unmaskedPhone');\r\n                \/\/ console.log(unmaskedPhone);\r\n                \/\/ console.log(`${phone}_phone_status`);\r\n                \/\/ console.log(`${phone}_line_type`);\r\n                \/\/(192)847-8090 Found\r\n                \/\/(192)847-4090 \"The phone number must be in the format (192)847-4090.\"\r\n                \/\/ First, check if the phone number is in the cookie\r\n                phone_status = Cookies.get(`${phone}_phone_status`);\r\n                line_type = Cookies.get(`${phone}_line_type`);\r\n\r\n                var trimmedPhone = phone.replace(\/^\\+[0-9]\/, '').replace(\/\\s+\/g, '');\r\n\r\n                console.log(phone_status,line_type,'<----');\r\n\r\n                const hasInvalidClassPhone = phoneField.classList.contains('invalid');\r\n                const hasErrorClassPhone = phoneField.classList.contains('error');\r\n                if(hasInvalidClassPhone || hasErrorClassPhone){\r\n                    return false;\r\n                }\r\n\r\n                \/\/const phoneFromCookie = Cookies.get(`${phone}_phone_status`);\r\n                \/\/ if (phoneFromCookie) {\r\n                \/\/     return true; \/\/ Skip validation if phone exists in the cookie\r\n                \/\/ }\r\n\r\n                if(typeof phone_status == 'undefined' || phone_status === 'Unknown'){\r\n                    \/\/ If not in the cookie, hit another DB API (assuming we have a custom API for this)\r\n                    const dbPhoneValidationResult = await checkPhoneInDatabase(phone,unmaskedPhone,trimmedPhone,$phoneError);\r\n                    if (dbPhoneValidationResult) {\r\n                        $phoneError.hide();\r\n                        return true; \/\/ Phone is valid if found in the DB\r\n                    }\r\n                    else{\r\n                        \/\/ If not in DB, check using the phone-validator API\r\n                        const url = `https:\/\/api.phone-validator.net\/api\/v2\/verify?PhoneNumber=${encodeURIComponent(phone)}&CountryCode=us&APIKey=pv-432c2ebbc71ef1f6bf017eeff8818eda`;\r\n                        try {\r\n                            $phoneError.hide();\r\n\r\n                            const response = await fetch(url);\r\n                            const dataByte = await response.json();\r\n                            \/\/ console.log(dataByte,'apiii');\r\n                            if(dataByte.status === \"VALID_CONFIRMED\" || dataByte.status === \"VALID_UNCONFIRMED\"){\r\n                                phone_status = \"Valid\";\r\n                            }\r\n                            else if(dataByte.status === \"INVALID\"){\r\n                                phone_status = \"Invalid\";\r\n                            }\r\n                            line_type = (dataByte.linetype) ? dataByte.linetype : \"Unknown\";\r\n                            Cookies.set(`${phone}_phone_status`, phone_status , { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                            Cookies.set(`${phone}_line_type`, line_type, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n\r\n                            let saveDbResponse = await saveBytePlantDataToDB(trimmedPhone,dataByte);\r\n                            \/\/ console.log(saveDbResponse,'API data saved in DB');\r\n\r\n                            \/\/ if(phoneStatusResponse.status === 'VALID_CONFIRMED' || phoneStatusResponse.status === 'VALID_UNCONFIRMED'){\r\n                            \/\/     return true;\r\n                            \/\/ }\r\n                            \/\/ else{\r\n                            \/\/     return false;\r\n                            \/\/ }\r\n                            \/\/ return true;\r\n                            \/\/ return true only if API determined it as Valid\r\n                            if (phone_status === \"Valid\") {\r\n                                $phoneError.hide();\r\n                                phoneField.classList.remove('invalid','error');\r\n                            return true;\r\n                            } else {\r\n                                phoneField.classList.add('invalid', 'error');\r\n                                $phoneError.show();\r\n                                return false;\r\n                            }\r\n\r\n                        } catch (error) {\r\n                            phoneField.classList.add('invalid', 'error');\r\n                            $phoneError.show();\r\n                            console.error('Error validating phone:', error);\r\n                            return false;\r\n                        }\r\n                    }\r\n\r\n                }\r\n                else if(phone_status){\r\n                    \/\/HIT COUNT API HERE\r\n                    $.ajax({\r\n                        type: 'POST',\r\n                        data: {\r\n                            phone: trimmedPhone,\r\n                        },\r\n                        url: `${edinfo.ed_api}\/hubspot-form-byte_count`,\r\n                        success: function(res) {\r\n                            console.log(res,'Hit Count');\r\n                            return res;\r\n                        },\r\n                        error: function(xhr, status, error) {\r\n                            console.log(error);\r\n                            $phoneError.show();\r\n                            return error;\r\n                        }\r\n                    });\r\n                    \/\/ return true; \/\/ Skip validation if phone exists in the cookie\r\n                    \/\/ use cached cookie value to decide validity\r\n                    if (phone_status === \"Valid\") {\r\n                        $phoneError.hide();\r\n                        phoneField.classList.remove('invalid','error');\r\n                        return true;\r\n                    } else {\r\n                        phoneField.classList.add('invalid','error');\r\n                        $phoneError.show();\r\n                        return false;\r\n                    }\r\n                }\r\n\r\n            }\r\n\r\n            async function saveBytePlantDataToDB(phonenum,apidata){\r\n                const dbentyres = await $.ajax({\r\n                    type: 'POST',\r\n                    data: {\r\n                        phone: phonenum,\r\n                        response: JSON.stringify(apidata),\r\n                        count: 1\r\n                    },\r\n                    url: `${edinfo.ed_api}\/hubspot-form-byte`,\r\n                    success: function(res) {\r\n                        return res;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.log(error);\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                \/\/ console.log(dbentyres,'DB Entry');\r\n                if(dbentyres){\r\n                    return true;\r\n                }\r\n                else {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            \/\/ Example function to simulate checking the phone number in a DB\r\n            async function checkPhoneInDatabase(phone,unmaskedPhone,trimmedPhone,$phoneError) {\r\n\r\n                \/\/ console.log(trimmedPhone);\r\n\r\n                const res = await jQuery.ajax({\r\n                    url: `${edinfo.ed_api}\/hubspot-form-byte-1`,\r\n                    type: \"POST\",\r\n                    data: {\r\n                        phone:trimmedPhone\r\n                    },\r\n                    success: function(result) {\r\n                        $phoneError.hide();\r\n                        return result;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.error(\"AJAX Error:\" + error);\r\n                        $phoneError.show();\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                if (res.data) {\r\n                    \/\/ console.log(JSON.parse(res.data.response));\r\n                    var phoneStatusResponse = JSON.parse(res.data.response);\r\n                    if(phoneStatusResponse.status === \"VALID_CONFIRMED\" || phoneStatusResponse.status === \"VALID_UNCONFIRMED\"){\r\n                        phone_status = \"Valid\";\r\n                    }\r\n                    else if(phoneStatusResponse.status === \"INVALID\"){\r\n                        phone_status = \"Invalid\";\r\n                    }\r\n\r\n                    line_type = (phoneStatusResponse.linetype) ? phoneStatusResponse.linetype : \"Unknown\";\r\n                    Cookies.set(`${phone}_phone_status`, phone_status , { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                    Cookies.set(`${phone}_line_type`, line_type, { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n\r\n                    \/\/Enable if you want to block Invalid number form submission saved in DB\r\n                    \/\/ if(phoneStatusResponse.status === 'VALID_CONFIRMED' || phoneStatusResponse.status === 'VALID_UNCONFIRMED'){\r\n                    \/\/     return true;\r\n                    \/\/ }\r\n                    \/\/ else{\r\n                    \/\/     return false;\r\n                    \/\/ }\r\n\r\n                    \/\/ return true;\r\n                    \/\/ Return true only when DB says Valid\r\n                    return (phone_status === \"Valid\");\r\n\r\n                } else {\r\n                    return false;\r\n                }\r\n            }\r\n\r\n            \/\/Send HubSpot Data to SalesForce\r\n            async function sendHsDataToSf($form,hsidVal){\r\n                \/\/ console.log(hsidVal,'<===hsidVal');\r\n                \/\/Convert Experiment, show Hide Text area and Radio options\r\n                let who_is_your_ideal_audience = $form[0].querySelector(\"textarea[name='who_is_your_ideal_audience_']\");\r\n                let which_option_best_suits_you = $form[0].querySelector(\"input[name='check_which_option_best_suits_you']:checked\");\r\n                \/\/ console.log(\"which_option_best_suits_you\", which_option_best_suits_you);\r\n                \/\/ console.log(who_is_your_ideal_audience);\r\n\r\n                var radio_button_div = document.querySelector('.hs-fieldtype-radio');\r\n                var textarea_div=document.querySelector('.hs-fieldtype-textarea');\r\n                var computedStyle_radio = window.getComputedStyle(radio_button_div);\r\n                var computedStyle_textarea = window.getComputedStyle(textarea_div);\r\n\r\n                if (which_option_best_suits_you && (computedStyle_radio.display !== 'none')) {\r\n                    commentsValue = which_option_best_suits_you.value;\r\n                } else if (who_is_your_ideal_audience && (computedStyle_textarea !== 'none')) {\r\n                    commentsValue = who_is_your_ideal_audience.value;\r\n                }\r\n\r\n                \/\/Send Data to SalesForce start\r\n                let qparams = window.location.search.replace(\"?\",\"\").split(\"&\").reduce(function(p,e){\r\n                    var a = e.split(\"=\");\r\n                    p[ decodeURIComponent(a[0])] = decodeURIComponent(a[1]);\r\n                    return p;\r\n                },{});\r\n\r\n                let flag = Object.keys(qparams);\r\n                if(flag[0] !== \"\") {\r\n                    Cookies.set(\"_tracking_params\", JSON.stringify(qparams), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                }\r\n\r\n                let formData = $form.serializeArray().reduce(function(obj, item) {\r\n                    obj[item.name] = item.value;\r\n                    return obj;\r\n                }, {});\r\n\r\n                \/\/Common Value if it is radio or textarea input\r\n                if(commentsValue){\r\n                    formData['commentsValue'] = commentsValue;\r\n                }else {\r\n                    formData['commentsValue'] = \"Not Found\";\r\n                }\r\n\r\n                const convertParamValue = new URLSearchParams(window.location.search).get(\"ed_cs\")?.trim().toLowerCase();\r\n                const optionValue = which_option_best_suits_you?.value;\r\n\r\n                if (convertParamValue === \"aud\") {\r\n                    formData['RoutingFlagValue'] = \"\";\r\n                } else if (convertParamValue === \"true\") {\r\n                    if (optionValue === \"Do it yourself and build unlimited lists\") {\r\n                    formData['RoutingFlagValue'] = \"ED-SG\";\r\n                    } else if (optionValue === \"Do it for me - Work with an expert to build your list\") {\r\n                        formData['RoutingFlagValue'] = \"ED-Expert\";\r\n                    }\r\n                } else {\r\n                    if (optionValue === \"Do it yourself and build unlimited lists\") {\r\n                        formData['RoutingFlagValue'] = \"ED-DIY\";\r\n                    } else if (optionValue === \"Do it for me - Work with an expert to build your list\") {\r\n                        formData['RoutingFlagValue'] = \"ED-Expert\";\r\n                    }\r\n                }\r\n\r\n\r\n                \/\/Assign Heap SID\r\n                formData['heapsessionid'] = hsidVal;\r\n\r\n                const sf_response = jQuery.ajax({\r\n                    url: edinfo.ajaxurl,\r\n                    type: \"POST\",\r\n                    data: {\r\n                        action: \"w2c_to_middleware_hb\",\r\n                        data: formData\r\n                    },\r\n                    xhr: function () {\r\n                        let xhr = new window.XMLHttpRequest();\r\n\r\n                        \/\/ Track when request is successfully sent\r\n                        xhr.upload.onloadstart = function () {\r\n                            console.log(\"sent...\");\r\n                        };\r\n\r\n                        \/\/return true;\r\n                        return xhr;\r\n                    },\r\n                    success: function(result) {\r\n                        return result;\r\n                    },\r\n                    error: function(xhr, status, error) {\r\n                        console.error(\"AJAX Error:\" + error);\r\n                        return error;\r\n                    }\r\n                });\r\n\r\n                \/\/ console.log(sf_response);\r\n\r\n                if(sf_response.sf_success){\r\n                    return true;\r\n                } else {\r\n                    return false;\r\n                }\r\n\r\n            }\r\n\r\n            \/\/Create Info\r\n            async function getJwtData(FName,LName,Emailid,Phoneno){\r\n                \/\/ console.log(edinfo.ed_api+'\/api\/pi');\r\n                jQuery.ajax({\r\n                    url: edinfo.ed_api+'\/api\/pi',\r\n                    data: {first_name: FName, last_name: LName, email:Emailid, phone: Phoneno},\r\n                    type: 'post',\r\n                    success: function (data) {\r\n                        jwt = data;\r\n                        \/\/ console.log(data);\r\n                        \/\/ console.log(\"JWT=\"+data);\r\n\r\n                        \/\/jQuery.cookie('form_jwt', JSON.stringify(data), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                        \/\/Cookies.set('form_jwt', JSON.stringify(data), { domain: \"exactdata.com\", expires: 30, path: \"\/\" });\r\n                        \/\/$(BtnName).trigger('click', ['run']);\r\n                    }\r\n                });\r\n            }\r\n\r\n            \/**\r\n             * Heap SID Processor\r\n             * @returns {Promise<*|string>}\r\n             *\/\r\n            async function processHeapData() {\r\n                if (typeof window !== 'undefined' && typeof window.heap === 'object') {\r\n                    if (window.heap.loaded && typeof window.heap.getSessionId === 'function') {\r\n                        return window.heap.getSessionId();\r\n                    } else {\r\n                        return 'not available';\r\n                    }\r\n                } else {\r\n                    return 'Heap Undefined';\r\n                }\r\n            }\r\n\r\n            function containsBadWords(text) {\r\n                if (!text) return false;\r\n                const lower = text.toLowerCase();\r\n\r\n                return badWords.some(word => lower.includes(word.toLowerCase()));\r\n            }\r\n\r\n            async function validateName(field, $errorBox) {\r\n                const name = field.value.trim();\r\n\r\n                \/\/ Bad word check\r\n                if (containsBadWords(name)) {\r\n                    field.classList.add('invalid', 'error');\r\n                    $errorBox.text(\"Must be a valid name.\");\r\n                    $errorBox.show();\r\n                    return false;\r\n                }\r\n\r\n                \/\/ Valid\r\n                field.classList.remove('invalid', 'error');\r\n                $errorBox.hide();\r\n                return true;\r\n            }\r\n\r\n\r\n\r\n        <\/script>\r\n    <\/div>\r\n    [\/vc_column][vc_column width=&#8221;1\/12&#8243;][\/vc_column][vc_column width=&#8221;7\/12&#8243; el_class=&#8221;whitetext&#8221;][vc_column_text css=&#8221;.vc_custom_1628614237928{margin-bottom: 15px !important;}&#8221;]\r\n<h3>With a free account you can:<\/h3>\r\n[\/vc_column_text]\r\n<ul class=\"igIconList\" style=\"font-size:16px;list-style:none;\">\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fas fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">Run real-time searches on 230 million consumers and 69 million businesses to see how many records are available<\/span><\/li>\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fas fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">Save your searches and purchase lists<\/span><\/li>\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fas fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">Get help from our experts via live chat, phone, or email<\/span><\/li>\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fas fa-check\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">and do much more!<\/span><\/li>\r\n<\/ul>\r\n[vc_column_text css=&#8221;.vc_custom_1727956234166{margin-bottom: 15px !important;}&#8221;]\r\n<h3>Contact Us!<\/h3>\r\n[\/vc_column_text]\r\n<ul class=\"igIconList\" style=\"font-size:16px;list-style:none;\">\r\n \t<li class=\"clearfix\"><span style=\"margin-right:6px;width:16;\" class=\"float-left\"><i style=\"color:#038cfe\" class=\"igIconListItem fas fa-map-marker-alt\"><\/i><\/span><span style=\"width:calc(100% - 22px)\" class=\"igIconListItemContent float-left\">1001 Fort Crook Rd N Ste 150L<\/span><\/li>\r\n \t<li style=\"list-style: none; margin-left: 18px;\">Bellevue, NE 68005-4226<\/span><\/li>\r\n<\/ul>\r\n[vc_column_text][\/vc_column_text][vc_single_image image=&#8221;500&#8243; img_size=&#8221;full&#8221;][\/vc_column][\/vc_row][\/vc_section][vc_row][vc_column][vc_raw_js]JTNDc2NyaXB0JTIwdHlwZSUzRCUyMnRleHQlMkZqYXZhc2NyaXB0JTIyJTNFalF1ZXJ5JTI4d2luZG93JTI5LnNjcm9sbCUyOGZ1bmN0aW9uJTI4JTI5JTdCalF1ZXJ5JTI4JTIyLmJsdWUtZXhhY3RkYXRhLWhlYWRlciUyMiUyOSU1QjAlNUQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0JTI4JTI5LmJvdHRvbS0xMDAlM0MwJTNGalF1ZXJ5JTI4JTIyLndoaXRlLWV4YWN0ZGF0YS1oZWFkZXIlMjIlMjkuc2hvdyUyOCUyOSUzQWpRdWVyeSUyOCUyMi5ibHVlLWV4YWN0ZGF0YS1oZWFkZXIlMjIlMjklNUIwJTVELmdldEJvdW5kaW5nQ2xpZW50UmVjdCUyOCUyOS50b3AtMTAwJTNDMCUyNiUyNmpRdWVyeSUyOCUyMi53aGl0ZS1leGFjdGRhdGEtaGVhZGVyJTIyJTI5LmhpZGUlMjglMjklN0QlMjklM0IlM0MlMkZzY3JpcHQlM0UlMEElMEElMEElM0MlMjEtLSUzQ3NjcmlwdCUyMHNyYyUzRCUyMmh0dHBzJTNBJTJGJTJGY2RuLmpzZGVsaXZyLm5ldCUyRm5wbSUyRmZvdW5kYXRpb24tc2l0ZXMlNDA2LjcuNSUyRmRpc3QlMkZqcyUyRmZvdW5kYXRpb24ubWluLmpzJTIyJTNFJTNDJTJGc2NyaXB0JTNFLS0lM0UlMEElMEElM0NzY3JpcHQlM0UlMEElMjQlMjhmdW5jdGlvbiUyOCUyOSUyMCU3QiUwQSUyMCUyMCUyMCUyMHZhciUyMHRvb2x0aXBJbWFnZSUyMCUzRCUyMGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IlMjglMjcuYmJiLXNlYWwlMjBpbWclMjclMjklM0IlMEElMjAlMjAlMjAlMjB0b29sdGlwSW1hZ2Uuc2V0QXR0cmlidXRlJTI4JTI3ZGF0YS10b29sdGlwJTI3JTJDJTIwJTI3JTI3JTI5JTNCJTBBJTIwJTIwJTIwJTIwdG9vbHRpcEltYWdlLnNldEF0dHJpYnV0ZSUyOCUyN2FyaWEtaGFzcG9wdXAlMjclMkMlMjAlMjd0cnVlJTI3JTI5JTNCJTBBJTIwJTIwJTIwJTIwdG9vbHRpcEltYWdlLnNldEF0dHJpYnV0ZSUyOCUyN2RhdGEtcG9zaXRpb24lMjclMkMlMjAlMjdsZWZ0JTI3JTI5JTNCJTBBJTIwJTIwJTIwJTIwdG9vbHRpcEltYWdlLnNldEF0dHJpYnV0ZSUyOCUyN2RhdGEtYWxpZ25tZW50JTI3JTJDJTIwJTI3Y2VudGVyJTI3JTI5JTNCJTBBJTIwJTIwJTIwJTIwdG9vbHRpcEltYWdlLnNldEF0dHJpYnV0ZSUyOCUyN3RpdGxlJTI3JTJDJTIwJTI3QSUyQiUyMHJhdGluZyUyQyUyMEJCQiUyMGFjY3JlZGl0ZWQlMjBidXNpbmVzcyUyMHNpbmNlJTIwMjAxNC4lMjclMjklM0IlMEElMjAlMjAlMjAlMjB0b29sdGlwSW1hZ2UuY2xhc3NMaXN0LmFkZCUyOCUyN2xlZnQlMjclMjklM0IlMEElMjAlMjAlMjAlMjAlMjQlMjhkb2N1bWVudCUyOS5mb3VuZGF0aW9uJTI4JTI5JTNCJTBBJTdEJTI5JTNCJTBBJTNDJTJGc2NyaXB0JTNF[\/vc_raw_js][\/vc_column][\/vc_row]","protected":false},"excerpt":{"rendered":"[vc_section css=&#8221;.vc_custom_1727953181104{padding-top: 75px !important;padding-bottom: 140px !important;background-image: url(https:\/\/www.dataaxleusa.com\/lp\/wp-content\/uploads\/sites\/2\/2021\/08\/ED-GRANDIENT.jpg?id=3341) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: cover !important;}&#8221; el_id=&#8221;topFormSection&#8221;][vc_row css=&#8221;.vc_custom_1628544538337{padding-bottom: 30px !important;}&#8221;][vc_column][vc_column_text el_class=&#8221;whitetext&#8221; css=&#8221;.vc_custom_1726217815457{margin-bottom: 0px !important;}&#8221;] Reach your ideal audience with [\/vc_column_text][vc_column_text el_class=&#8221;whitetext hero2&#8243; css=&#8221;.vc_custom_1720639780467{margin-bottom: 1px !important;}&#8221;] [\/vc_column_text][vc_column_text el_class=&#8221;event_when&#8221; css=&#8221;.vc_custom_1726231662884{margin-bottom: 5px !important;}&#8221;] Save time and money by connecting with the right people, the first time. [\/vc_column_text][\/vc_column][\/vc_row][vc_row css=&#8221;.vc_custom_1725975927748{padding-top: 20px !important;}&#8221;][vc_column<a class=\"moretag\" href=\"https:\/\/www.exactdata.com\/info\/lp\/quote\/\">&#8230;Read More<\/a>","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.8 (Yoast SEO v21.8.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Exact Data Lists for Business or Consumer Leads<\/title>\n<meta name=\"description\" content=\"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exact Data - Quote Page\" \/>\n<meta property=\"og:description\" content=\"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.exactdata.com\/info\/lp\/quote\/\" \/>\n<meta property=\"og:site_name\" content=\"Exact Data Landing Pages\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-31T04:01:52+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.exactdata.com\/info\/lp\/quote\/\",\"url\":\"https:\/\/www.exactdata.com\/info\/lp\/quote\/\",\"name\":\"Exact Data Lists for Business or Consumer Leads\",\"isPartOf\":{\"@id\":\"https:\/\/www.exactdata.com\/info\/lp\/#website\"},\"datePublished\":\"2024-10-03T12:00:39+00:00\",\"dateModified\":\"2025-10-31T04:01:52+00:00\",\"description\":\"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.exactdata.com\/info\/lp\/quote\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.exactdata.com\/info\/lp\/quote\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.exactdata.com\/info\/lp\/quote\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.exactdata.com\/info\/lp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exact Data &#8211; Quote Page\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.exactdata.com\/info\/lp\/#website\",\"url\":\"https:\/\/www.exactdata.com\/info\/lp\/\",\"name\":\"Exact Data Landing Pages\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.exactdata.com\/info\/lp\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Exact Data Lists for Business or Consumer Leads","description":"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Exact Data - Quote Page","og_description":"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.","og_url":"https:\/\/www.exactdata.com\/info\/lp\/quote\/","og_site_name":"Exact Data Landing Pages","article_modified_time":"2025-10-31T04:01:52+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.exactdata.com\/info\/lp\/quote\/","url":"https:\/\/www.exactdata.com\/info\/lp\/quote\/","name":"Exact Data Lists for Business or Consumer Leads","isPartOf":{"@id":"https:\/\/www.exactdata.com\/info\/lp\/#website"},"datePublished":"2024-10-03T12:00:39+00:00","dateModified":"2025-10-31T04:01:52+00:00","description":"Get mailing lists, email lists, and phone numbers from Exact Data to generate targeted business and consumer leads.","breadcrumb":{"@id":"https:\/\/www.exactdata.com\/info\/lp\/quote\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.exactdata.com\/info\/lp\/quote\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.exactdata.com\/info\/lp\/quote\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.exactdata.com\/info\/lp\/"},{"@type":"ListItem","position":2,"name":"Exact Data &#8211; Quote Page"}]},{"@type":"WebSite","@id":"https:\/\/www.exactdata.com\/info\/lp\/#website","url":"https:\/\/www.exactdata.com\/info\/lp\/","name":"Exact Data Landing Pages","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.exactdata.com\/info\/lp\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/pages\/337"}],"collection":[{"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":15,"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/pages\/337\/revisions"}],"predecessor-version":[{"id":513,"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/pages\/337\/revisions\/513"}],"wp:attachment":[{"href":"https:\/\/www.exactdata.com\/info\/lp\/wp-json\/wp\/v2\/media?parent=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}