PageSourceSearch

https://susanhollandrealtor.com/js/contactpopup.js?v=qa2k37--F_zWUIJqKRYg8gagEXTKlMAtKLobsUspWSU

js susanhollandrealtor.com collected 2026-10-05 22:58:26 UTC 30,296 bytes, 660 lines download raw bytes

1var _divcontactModal = null;
2var _websiteAgentId = 0;
3var _websitePartnerId = 0;
4var _lenderId = 0;
5var _isListHub = false;
6var _listingAgentFullName = "";
7var _listingAgentEmail = "";
8var _propertyFullAddress = "";
9var _listingKey = "";
10var _isHvlc = false;
11var contactPopup = {
12    getContactInfo: (info) => {
13        if (info != null) {
14            return info;
15        }
16        return {
17            streetAddress: null
18            , city: null
19            , state: null
20            , zip: null
21            , contactFormStatusTblId: 1
22            , contactFormTypeTblId: 1
23        };
24    }
25};
26contactPopup.contactInfo = contactPopup.getContactInfo();
27
28
29
30$(document).ready(function () {
31    $("#btnMenuContact").click(contact_onclick);
32    $(".btnMenuContact").click(contact_onclick);
33    $("#btnAboutContact").click(contact_onclick);
34    $("#btnTestimonialContact").click(contact_onclick);
35    $("#btnPropDetailsContact").click(contact_onclick);
36    $("#btnInfo").click(contact_onclick);
37    $("#btnFooterContact").click(contact_onclick);
38    $(".btnFooterContact").click(contact_onclick);
39    $("#btnAgentContact").click(contact_onclick);
40    $("#btnAgentsContact").click(contact_onclick);
41    $("#btnLenderContact").click(contact_onclick);
42    $("#btnPartnerContact").click(contact_onclick);
43    $("#btnPartnersContact").click(contact_onclick);
44    $(".btnHvlcContact").click(function(e){
45        let txtStreetAddress = document.querySelector("#txtStreetAddress");
46        let txtCity = document.querySelector("#txtCityNormal");
47        let txtState = document.querySelector("#txtState");
48        let txtZip = document.querySelector("#txtZip");
49        contact_onclick.call(this,e, {
50            streetAddress: txtStreetAddress.value
51            , city: txtCity.value
52            , state: txtState.value
53            , zip: txtZip.value
54            , contactFormStatusTblId: 1
55            , contactFormTypeTblId: 2
56        });
57    });
58    $("#btnPropDetailsContact").click(contact_onclick);
59    $(".btnLandingPageContact").click(contact_onclick);
60    //for tooltips
61    var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
62    var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
63        return new bootstrap.Tooltip(tooltipTriggerEl)
64    })
65
66    //for contact modal
67    _divContactModal = new bootstrap.Modal(document.getElementById('divContactModal'), {
68        keyboard: false
69    })
70
71    //$("#ContactAgreementCheckBox").on("change", function () {
72    //    $("#btnSubmitContact").prop("disabled", !this.checked);
73    //});
74
75    function getPhoneNumbers(phoneNumbers) {
76        var temp = "";
77        for (var item in phoneNumbers) {
78            item = phoneNumbers[item];
79            if (item.phoneTypeId == 8) {
80                temp += "<li title='' class='mb-2'><a href='tel:" + item.phoneNumber + "' class='contactform-input-phone'>" + item.phoneNumber + "</a></li>";
81            }
82            else {
83                temp += "<li title='' class='mb-2'><a href='tel:" + item.phoneNumber + "' class='contactform-input-phone'><strong style='opacity: 0.7;'>" + item.phoneType + ":</strong> " + item.phoneNumber + "</a></li>";
84            }
85        }
86        return temp;
87    }
88
89    function getEmail(data) {
90        //console.log("data.brokerEmailPhoneTypeId", data.brokerEmailPhoneTypeId);
91        if (data.brokerEmailPhoneTypeId == 9) {
92            return "<strong style='opacity: 0.7;'>
92Email:</strong> " + data.email;
93        }
94        else {
95            return data.email;
96        }
97    }
98
99    //START - contact form
100    function contact_onclick(e, info = null) {
101        //console.log("Contact Popup Ready");
102        //grecaptcha.reset();
103        contactPopup.contactInfo = contactPopup.getContactInfo(info);
104        clearContactField("firstName");
105        clearContactField("lastName");
106        clearContactField("email");
107        clearContactField("message");
108
109        $("#ContactForm-firstName").val("");
110        $("#ContactForm-lastName").val("");
111        $("#ContactForm-email").val("");
112        $("#ContactForm-phone").val("");
113        $("#ContactForm-message").val("");
114
115        $("#ContactAgreementCheckBox").prop("checked", false);
116        //$("#btnSubmitContact").prop("disabled", true);
117
118        //FOR TESTING **********************************************************
119        //$("#ContactForm-name").val("Marc Tester");
120        //$("#ContactForm-email").val("[email protected]");
121        //$("#ContactForm-phone").val("949-555-1212");
122        //$("#ContactForm-message").val("Inquiring about this agent.");
123        //FOR TESTING **********************************************************
124
125        //var id = $(this).attr('id');
126        let contactType = $(this).data("contacttype");
127        //console.log("contactType", contactType);
128        if (contactType.toLowerCase() == "hvlc") {
129            _isHvlc = true;
130            let sa = $("#txtStreetAddress").val();
131            let city = "";
132            if ($("#txtCityNormal").css("display") == "block") {
133                city = $("#txtCityNormal").val();
134            }
135            else {
136                city = $("#txtCityMobile").val();
137            }
138            //console.log("display", $("#txtCityNormal").css("display"));
139            //console.log("city", city);
140            let state = $("#txtState").val();
141            let zip = $("#txtZip").val();
142            if (sa == "" || city == "" || state == "" || zip == "") {
143                Swal.fire("Need More Information", "All fields are required.", "error");
144                return;
145            }
146        }
147        let websiteId = $("#divWebsiteId").data("websiteid");
148
149        switch (contactType.toLowerCase()) {
150            case "main":
151            case "hvlc":
152                $.get("/api/website/brokerforcontactpopup/" + Number(websiteId), function (data) {
153                    console.log("brokerforcontactpopup", data);
154
155                    //$("#ContactAgreementName").html(data.contactName);
156                    $("#ContactFormOptInText").html(data.contactFormOptInText);
157
158                    if (data.hideContactFormAttributeCheckbox)
159                    {
160                        $("#ContactAgreementCheckBox").hide();
161                    }
162                    else
163                    {
164                        $("#ContactAgreementCheckBox").show();
165                    }
166
167                    _websiteAgentId = 0;
168                    _lenderId = 0;
169                    _websitePartnerId = 0;
170
171                    $("#ContactLicense").removeClass("d-none").addClass("d-none");
172
173                    $("#imgContact").attr("alt", "Company Logo");
174                    $("#imgContact").attr("src", data.image);
175
176                    $("#ContactName").html(data.contactName);
177                    $("#ContactFirstLastName").removeClass("d-none");
178                    $("#ContactFirstLastName").html(data.firstLastName);
179                    $("#ContactTitle").html(data.contactTitle);
180
181                    $("#ContactPhone").html(getPhoneNumbers(data.phoneNumbers));
182                    $("#ContactEmail").html(getEmail(data));
183                    $("#ContactEmail").attr("href", "mailto:" + data.email);
184                    //show social media
185                    $("#SocialMediaDiv").removeClass("d-none");
186
187                    if (contactType.toLowerCase() == "hvlc") {
188                        let sa = $("#txtStreetAddress").val();
189                        let city = "";
190                        if ($("#txtCityNormal").css("display") == "block") {
191                            city = $("#txtCityNormal").val();
192                        }
193                        else {
194                            city = $("#txtCityMobile").val();
195                        }
196                        let state = $("#txtState").val();
197                        let zip = $("#txtZip").val();
198                        let fullAddress = "";
199                        fullAddress = sa + ", " + city + ", " + state 
199+ " " + zip;
200                        $("#ContactForm-message").val("Please estimate the value of my home at " + fullAddress);
201                        $("#divContactModal-ThankYou-Text").html("<h3>Thank you, we will be in touch very soon with your estimate!</h3>");
202                    }
203                    else {
204                        $("#divContactModal-ThankYou-Text").html("<h1>Thank you for contacting us.</h1>");
205                    }
206
207                });
208                break;
209            case "propdetails":
210            case "info":
211                let listingId = $("#divListingId").data("listingid");
212                $.get("/api/website/propertydetailforcontactpopup/" + Number(websiteId) + "/" + Number(listingId), function (data) {
213                    console.log("propertydetailforcontactpopup", data);
214
215                    if (data.isListHub) {
216                        _isListHub = true;
217                    }
218                    console.log("data.isListHub", data.isListHub);
219
220                    $("#ContactFormOptInText").html(data.contactFormOptInText);
221
222                    if (data.hideContactFormAttributeCheckbox) {
223                        $("#ContactAgreementCheckBox").hide();
224                    }
225                    else {
226                        $("#ContactAgreementCheckBox").show();
227                    }
228
229                    _websiteAgentId = 0;
230                    _lenderId = 0;
231                    _websitePartnerId = 0;
232
233                    //$("#divContactModal-Heading").html("Got a question about this property? We are available …");
234                    $("#divContactModal-ThankYou-Text").html("<h1>Thank you for contacting us.</h1>");
235                    $("#ContactLicense").removeClass("d-none").addClass("d-none");
236                    //$("#ContactAddressInfo").removeClass("d-none");
237                    //$("#ContactStreetAddress").html(data.streetAddress);
238                    //$("#ContactCityStateZip").html(data.cityStateZip);
239                    //$("#ContactBrokerLicense").html(data.license);
240                    $("#imgContact").attr("alt", "Company Logo");
241                    $("#imgContact").attr("src", data.image);
242                    if (_isListHub) {
243                        $("#ContactName").html(data.listingAgentFullName);
244                        _listingAgentFullName = data.listingAgentFullName;
245                        _listingKey = data.listingKey;
246                    }
247                    else {
248                        $("#ContactName").html(data.contactName);
249                    }
250                    if (!_isListHub) {
251                        $("#ContactFirstLastName").removeClass("d-none");
252                        $("#ContactFirstLastName").html(data.firstLastName);
253                        $("#ContactTitle").html(data.contactTitle);
254                    }
255                    if (_isListHub) {
256                        $("#ContactPhone").html(data.listingAgentPhone);
257                    }
258                    else {
259                        $("#ContactPhone").html(getPhoneNumbers(data.phoneNumbers));
260                    }
261
262                    $("#imgContact").attr("src", data.image);
263
264                    if (_isListHub) {
265                        $("#ContactEmail").html(data.listingAgentEmail);
266                        $("#ContactEmail").attr("href", "mailto:" + data.listingAgentEmail);
267                        _listingAgentEmail = data.listingAgentEmail;
268                    }
269                    else {
270                        $("#ContactEmail").html(data.email);
271                        $("#ContactEmail").attr("href", "mailto:" + data.email);
272                    }
273
274                    _propertyFullAddress = data.listingFullAddress;
275
276                    if (contactType.toLowerCase() == "info") {
277                        if (data.showStreetAddressLine) {
278                            if (_isListHub) {
279                                $("#ContactForm-message").val("I would like to schedule a showing at " + data.listingFullAddress + " that I found on DreamHomeList.com");
280                            }
281                            else {
282                                $("#ContactForm-message").val("I would like to schedule a showing at " + data.listingFullAddress);
283                            }
284                        }
285                        else {
286                            if (_isListHub) {
287                                $("#ContactForm-message").val("I would like to schedule a showing at this property in " + data.listingCityStateZip + " that I found on DreamHomeList.com");
288                            }
289                            else {
290                                $("#ContactForm-message").val("I would like to schedule a showing at this property in " + data.listingCityStateZip);
291                            }
292                        }
293                    }
294                    else //property details
295                    {
296                        if (data.showStreetAddressLine) {
297                            if (_isListHub) {
298                                console.log("_isListHub", _isListHub);
299                                $("#ContactForm-message").val("Please provide more information regarding the property a " + data.listingFullAddress + " that I found on DreamHomeList.com");
300                            }
301                            else {
302                                $("#ContactForm-message").val("Please tell me more about the property at " + data.listingFullAddress);
303                            }
304                        }
305                        else {
306                            if (_isListHub) {
307                                $("#ContactForm-message").val("Please provide more information regarding the property a " + data.listingFullAddress + " that I found on DreamHomeList.com");
308                            }
309                            else {
310                                $("#ContactForm-message").val("Please tell me more about this property in " + data.listingCityStateZip);
311                            }
312                        }
313                    }
314                    //show social media
315                    $("#SocialMediaDiv").removeClass("d-none");
316
317                });
318                break;
319            case "agent":
320                _websiteAgentId = $("#ContactAgentId").data("websiteagentid");
321                _lenderId = 0;
322                _websitePartnerId = 0;
323                $.get("/api/website/agentforcontactpopup/" + Number(websiteId) + "/" + Number(_websiteAgentId), function (data) {
324                    console.log("agentforcontactpopup", data);
325                    //$("#ContactAgreementName").html(data.contactName);
326                    $("#ContactFormOptInText").html(data.contactFormOptInText);
327
328                    if (data.hideContactFormAttributeCheckbox) {
329                        $("#ContactAgreementCheckBox").hide();
330                    }
331                    else {
332                        $("#ContactAgreementCheckBox").show();
333                    }
334
335                    //$("#divContactModal-Heading").html("Got a question? I am available …");
336                    $("#divContactModal-ThankYou-Text").html("<h1>Thank you for contacting me.</h1>");
337                    $("#imgContact").attr("alt", "Agent Photo");
338                    $("#ContactLicense").removeClass("d-none");
339                    $("#ContactLicense").html(data.license);
340                    //$("#ContactAddressInfo").removeClass("d-none").addClass("d-none");
341
342                    $("#imgContact").attr("src", data.image);
343                    $("#ContactName").html(data.contactName);
344                    $("#ContactFirstLastName").removeClass("d-none").addClass("d-none");
345                    $("#ContactTitle").html(data.contactTitle);
346                    $("#ContactPhone").html(getPhoneNumbers(data.phoneNumbers));
347                    $("#ContactEmail").html(data.email);
348                    if (data.showEmail) {
349                        $("#ContactEmail").removeClass("d-none");
350                    }
351                    else {
352                        $("#ContactEmail").removeClass("d-none").addClass("d-none");
353                    }
354                    $("#ContactEmail").attr("href", "mailto:" + data.email);
355                    $("#ContactForm-message").val("Hi " + data.contactName + ", please contact me.");
356
357                    //hide social media
358                    $("#SocialMediaDiv").removeClass("d-none").addClass("d-none");
359                });
360
361                break;
362            case "partner":
363                _websitAgentId = 0;
364                _lenderId = 0;
365                _websitePartnerId = $("#ContactPartnerId").data("websitepartnerid");
366                $.get("/api/website/partnerforcontactpopup/" + Number(websiteId) + "/" + Number(_websitePartnerId), function (data) {
367                    console.log("partnerforcontactpopup", data);
368
369                    //$("#ContactAgreementName").html(data.contactName);
370                    $("#ContactFormOptInText").html(data.contactFormOptInText);
371
372                    if (data.hideContactFormAttributeCheckbox) {
373                        $("#ContactAgreementCheckBox").hide();
374                    }
375                    else {
376                        $("#ContactAgreementCheckBox").show();
377                    }
378
379                    //$("#divContactModal-Heading").html("Got a question? I am available …");
380                    $("#divContactModal-ThankYou-Text").html("<h1>Thank you for contacting me.</h1>");
381                    $("#imgContact").attr("alt", "Partner Photo");
382                    $("#ContactLicense").removeClass("d-none");
383                    $("#ContactLicense").html(data.license);
384                    //$("#ContactAddressInfo").removeClass("d-none").addClass("d-none");
385
386                    $("#imgContact").attr("src", data.image);
387                    $("#ContactName").html(data.contactName);
388                    $("#ContactFirstLastName").removeClass("d-none").addClass("d-none");
389                    $("#ContactTitle").html(data.contactTitle);
390                    $("#ContactPhone").html(getPhoneNumbers(data.phoneNumbers));
391                    $("#ContactEmail").html(data.email);
392                    $("#ContactEmail").attr("href", "mailto:" + data.email);
393
394                    //hide social media
395                    $("#SocialMediaDiv").removeClass("d-none").addClass("d-none");
396                });
397
398                break;
399            case "lender":
400                _websiteAgentId = 0;
401                _lenderId = $("#ContactLenderId").data("lenderid");
402                _websitePartnerId = 0;
403                $.get("/api/website/lenderforcontactpopup/" + Number(websiteId) + "/" + Number(_lenderId), function (data) {
404                    console.log("lenderforcontactpopup", data);
405
406                    //$("#ContactAgreementName").html(data.contactName);
407                    $("#ContactFormOptInText").html(data.contactFormOptInText);
408
409                    if (data.hideContactFormAttributeCheckbox) {
410                        $("#ContactAgreementCheckBox").hide();
411                    }
412                    else {
413                        $("#ContactAgreementCheckBox").show();
414                    }
415
416                    //$("#divContactModal-Heading").html("Got a question? I am available …");
417                    $("#divContactModal-ThankYou-Text").html("<h1>Thank you for contacting me.</h1>");
418                    $("#imgContact").attr("alt", "Agent Photo");
419                    $("#ContactLicense").removeClass("d-none");
420                    $("#ContactLicense").html(data.license);
421                    $("#ContactAddressInfo").removeClass("d-none").addClass("d-none");
422
423                    $("#imgContact").attr("src", data.image);
424                    $("#ContactName").html(data.contactName);
425                    $("#ContactFirstLastName").removeClass("d-none").addClass("d-none");
426                    $("#ContactTitle").html(data.contactTitle);
427                    $("#ContactPhone").html(getPhoneNumbers(data.phoneNumbers));
428                    $("#ContactEmail").html(data.email);
429                    $("#ContactEmail").attr("href", "mailto:" + data.email);
430
431                    //hide social media
432                    $("#SocialMediaDiv").removeClass("d-none").addClass("d-none");
433                });
434
435                break;
436        }
437
438        $.get("/api/website/socialmediaforcontactpopup/" + Number(websiteId), function (data) {
439            if (data.top_FacebookLink != "") {
440                $("#ContactFacebook").removeClass("d-none");
441                $("#ContactFacebook").attr("href", data.top_FacebookLink);
442            }
443            if (data.top_TwitterLink != "") {
444                $("#ContactTwitter").removeClass("d-none");
445                $("#ContactTwitter").attr("href", data.top_TwitterLink);
446            }
447            if (data.top_InstagramLink != "") {
448                $("#ContactInstagram").removeClass("d-none");
449                $("#ContactInstagram").attr("href", data.top_InstagramLink);
450            }
451            if (data.top_PInterestLink != "") {
452                $("#ContactPinterest").removeClass("d-none");
453                $("#ContactPinterest").attr("href", data.top_PInterestLink);
454            }
455            if (data.top_LinkedInLink != "") {
456                $("#ContactLinkedIn").removeClass("d-none");
457                $("#ContactLinkedIn").attr("href", data.top_LinkedInLink);
458            }
459            if (data.top_YelpLink != "") {
460                $("#ContactYelp").removeClass("d-none");
461                $("#ContactYelp").attr("href", data.top_YelpLink);
462            }
463            if (data.top_TikTokLink != "") {
464                $("#ContactTikTok").removeClass("d-none");
465                $("#ContactTikTok").attr("href", data.top_TikTokLink);
466            }
467            if (data.top_YouTubeLink != "") {
468                $("#ContactYouTube").removeClass("d-none");
469                $("#ContactYouTube").attr("href", data.top_YouTubeLink);
470            }
471            if (data.top_WhatsAppLink != "") {
472                $("#ContactWhatsApp").removeClass("d-none");
473                $("#ContactWhatsApp").attr("href", data.top_WhatsAppLink);
474            }
475
476        });
477
478        _divContactModal.show();
479        $("#divContactModal-ThankYou").delay(100).fadeOut();
480        $("#divContactModal-Form").delay(100).fadeIn();
481    }
482    $("#btnSubmitContact").click(function () {
483        //console.log("grecaptcha.getResponse()-1", grecaptcha.getResponse(jQuery("#Captcha").attr("data-widget-id")));
484        //if (grecaptcha.getResponse() == "") {
485        //    $("#g-recaptcha-error").html("Please make sure you are not a robot.");
486        //    //alert();
487        //    //OsiPopup("error", "#Captcha", "ATTENTION!", "Please make sure you are not a robot.");
488        //    return false;
489        //}
490
491        $("#g-recaptcha-error").html("");
492
493        //console.log("ContactAgreementCheckBox", $("#ContactAgreementCheckBox").prop("checked"));
494        //if ($("#ContactAgreementCheckBox").prop("checked") == false) {
495        //    //OsiPopup("error", "#ContactAgreementCheckBox", "ATTENTION!", "Error.");
496        //    $("#ContactAgreementCheckBoxError").removeClass("d-none");
497        //    return false;
498        //}
499
500        clearContactField("firstName");
501        clearContactField("lastName");
502        //clearContactField("name");
503        clearContactField("email");
504        clearContactField("message");
505
506        let isError = false;
507        if ($("#ContactForm-firstName").val() == "") {
508            errorContactField("firstName", "This field is required.");
509            isError = true;
510        }
511
512        if ($("#ContactForm-lastName").val() == "") {
513            errorContactField("lastName", "This field is required.");
514            isError = true;
515        }
516
517        if ($("#ContactForm-email").val() == "") {
518            errorContactField("email", "This field is required.");
519            isError = true;
520        }
521        else {
522            //check to see if the email is valid
523            $.get("/api/validation/email/" + $("#ContactForm-email").val(), function (data) {
524                //console.log("validation", data);
525                if (data.isValid) {
526                    clearContactField("email");
527                }
528                else {
529                    errorContactField("email", "Invalid email format..");
530                    isError = true;
531                }
532            });
533        }
534
535        if ($("#ContactForm-message").val() == "") {
536            errorContactField("message", "This field is required.");
537            isError = true;
538        }
539        if (isError) {
540            return false;
541        }
542        var apiName = "updatecontactformmodal";
543        var formData = new FormData();
544        formData.append('websiteId', $("#hiddenWebsiteId").val()); //from Footer.cshtml
545        formData.append('firstName', $("#ContactForm-firstName").val());
546        formData.append('lastName', $("#ContactForm-lastName").val());
547        formData.append('email', $("#ContactForm-email").val());
548        formData.append('phone', $("#ContactForm-phone").val());
549        formData.append('message', $("#ContactForm-message").val());
550        formData.append('contactFormTypeTblID', contactPopup.contactInfo.contactFormTypeTblId)
551        formData.append('websiteAgentId', _websiteAgentId);
552        formData.append('lenderId', _lenderId);
553        formData.append('websitePartnerId', _websitePartnerId);
554
555        // helper to check for neither null nor empty (after trimming whitespace)
556        const hasValue = v => v != null && String(v).trim() !== "";
557        let info = contactPopup.contactInfo;
558        // only append when the value is non-null and not just whitespace
559        if (hasValue(info.streetAddress)) {
560            formData.append('streetAddress', info.streetAddress);
561        }
562        if (hasValue(info.city)) {
563            formData.append('city', info.city);
564        }
565        if (hasValue(info.state)) {
566            formData.append('state', info.state);
567        }
568        if (hasValue(info.zip)) {
569            formData.append('zip', info.zip);
570        }
571        if (hasValue(info.contactFormStatusTblId)) {
572            formData.append('contactFormStatusTblID', info.contactFormStatusTblId);
573        }
574        if (hasValue(info.contactFormTypeTblId)) {
575            formData.append('contactFormTypeTblID', info.contactFormTypeTblId);
576        }
577
578        formData.append('grecaptcha', grecaptcha.getResponse(jQuery("#Captcha").attr("data-widget-id")));
579        //console.log("grecaptcha.getResponse()-2", grecaptcha.getResponse(jQuery("#Captcha").attr("data-widget-id")));
580        if (_isListHub) {
581            formData.append('listingAgentName', _listingAgentFullName);
582            formData.append('listingAgentEmail', _listingAgentEmail);
583            formData.append('propertyAddress', _propertyFullAddress);
584            apiName = "updatelisthubcontactformmodal";
585            //console.log("AGENT_EMAIL_SENT", _listingKey);
586            //lh('submit', 'AGENT_EMAIL_SENT', { lkey: '\'' + _listingKey + '\'' });
587            lh('submit', 'AGENT_EMAIL_SENT', { lkey: _listingKey });
588        }
589
590        $.ajax(
591            {
592                url: "/api/contactform/" + apiName,
593                data: formData,
594                type: "POST",
595                processData: false,
596                contentType: false,
597                success: function (json_data) {
598                    let data = JSON.parse(json_data);
599                    if (data.success == true) {
600                        grecaptcha.reset(jQuery("#Captcha").attr("data-widget-id"));
601                        if (_isHvlc) {
602                            $("#txtStreetAddress").val("");
603                            $("#txtCityNormal").val("");
604                            $("#txtCityMobile").val("");
605                            $("#txtState").val("");
606                            $("#txtZip").val("");
607                        }
608                        $("#divContactModal-Form").delay(500).fadeOut();
609                        $("#divContactModal-ThankYou").delay(500).fadeIn();
610                        const myTimeout = setTimeout(closeModal, 5000);
611                    }
612                    else {
613                        $("#g-recaptcha-error").html(data.message);
614                        //OsiPopup("error", "#btnSubmitContact", "ATTENTION!", data.message);
615                    }
616                }
617            });
618
619    });
620
621    function closeModal() {
622        _divContactModal.hide();
623    }
624
625    function captchaCallback() {
626        //alert("callback working");
627        $("#g-recaptcha-error").html("");
628    }
629
630    function captchaExpiredCallback() {
631        //alert("callback expired");
632        $("#g-recaptcha-error").html("");
633    }
634
635    function clearContactField(fieldName) {
636        $("#ContactForm-" + fieldName).removeClass("contactform-input-error").addClass("contactform-input");
637        $("#contactform-input-hr-div-" + fieldName).addClass("pe-1");
638        $("#contactform-input-hr-div-" + fieldName).addClass("me-1");
639        $("#contactform-input-hr-" + fieldName).css("color", "#5e5e5e");
640        $("#contactform-input-hr-" + fieldName).css("background-color", "#5e5e5e");
641        $("#contactform-input-hr-" + fieldName).css("margin-top", "8px");
642        $("#contactform-input-hr-" + fieldName).css("opacity", "1");
643        $("#contactform-input-hr-" + fieldName).css("height", "2px");
644        $("#contactform-input-hr-error-" + fieldName).removeClass("d-none").addClass("d-none");;
645    }
646
647    function errorContactField(fieldName, error) {
648        $("#contactform-input-hr-div-" + fieldName).removeClass("pe-1").addClass("pe-0");
649        $("#contactform-input-hr-div-" + fieldName).removeClass("me-1").addClass("me-0");
650        //$(".contactform-input-hr-errormsg").attr("style", "background-color:" + _primaryColor + " !important; width: 150px; margin-right: 5px;");
651        $("#contactform-input-hr-error-" + fieldName).removeClass("d-none");
652        $("#contactform-input-hr-error-" + fieldName).html(error);
653    }
654
655    $("#ContactAgreementCheckBox").click(function () {
656        $("#ContactAgreementCheckBoxError").removeClass("d-none");
657        $("#ContactAgreementCheckBoxError").addClass("d-none");
658    });
659
660});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.