1!function(){var e={3389:function(e,t,o){"use strict";const r={isSubmitting:!1,isPhoneValid:!1,isZipValid:!1,areLeadTokenScriptsLoaded:!1,loadedScripts:[],optedIn:!1,inlineZip:!1,mutationObserverTarget:document.body,mutationObserverConfig:{attributes:!0},projexURL:null,redirectStart:null,zipEditControlCls:".zip-control__edit, .change-zip-control, .step__city-state, .form__city-state, .zip-control, .form-group__city-state",zipEditInput:'input[name="zip1"], input[name="inertZip"]',zipControlButton:document.querySelector(".zip-control__button"),retryZipValidation:!1,preventDuplicateSubmission:!1,getTime:(new Date).getTime(),radioButtonClickedByMouse:!1,includeDuplicateSubmissionExperience:!0,homeownerLeadConversionProps:{},oldUtilProviders:{}};o.d(t,["additionalOptions",0,r])},3408:function(e,t,o){"use strict";o.d(t,["V",0,function(e){switch(e){case"PC":return"zip";case"FN":return"firstName";case"LN":return"lastName";case"S1":return"address";case"SP":return"state";case"CN":return"country";case"EM":return"email";case"HP":return"homePhone";case"CentralHeatingInstallType":case"CentralHeatingRepairType":case"BoilerSystemInstallType":case"BoilerSystemRepairType":return"BoilerHeatingInstallRepairType";case"PortalServiceCode":return"service";case"BathwrapProjectType":return"BathProjectScope";default:return e}}])},8352:function(e,t,o){"use strict";o.d(t,{Vp:function(){return i.V},_t:function(){return n.additionalOptions},p7:function(){return r}});var r=o(7632),n=o(3389),i=o(3408)},7632:function(e,t,o){"use strict";o.r(t);const r={vertical:null,form:document.getElementById("form"),formId:"form",formLoadingCls:"form--loading",formSubmittingCls:"form--submitting",formSubmittedCls:"form--submit-done",formSubmitErrorCls:"form--submit-error",formInProgressCls:"form-in-progress",toggleFormInProgressClass:!1,stepsSelector:'[data-bind="step"]',stepActiveCls:"step--active",backButtons:document.querySelectorAll('.back-btn, .btn-back, [data-btn="back"]'),progressBar:document.querySelectorAll(".progress-bar"),modQuoteButtonWrapper:document.querySelectorAll(".form-btns"),isFormLoading:!1,formElemsSelectors:{},formElemsSelectorsDefaults:{tcpaCopy:"#tcpa-copy",maskedPhoneFields:'input[name="homePhone"]',maskedEinFields:'input[name="ein"]',numericsOnlyFields:'input[name="zip"], input[name="zip1"], input[name="companyZip"]',addressField:'input[name="address"]',stateField:'input[name="state"]',cityField:'input[name="city"]',zip1Field:'input[name="zip1"]',zipField:'input[name="zip"]',hvacSystemTypeField:'input[name="hvacSystemType"]',hvacFuelTypeBlock:"#hvac-fuel-type-block",utilityProviderWrapper:"#utility-provider-wrapper"},hvacSystemTypesWithFuel:["Central Heating","Boiler"],activeInputs:".step.swiper-slide-active input[type=text], .step.swiper-slide-active input[type=tel], .step.swiper-slide-active input[type=email], .step.swiper-slide-active textarea, .step.swiper-slide-active input[type=radio]",fieldErrorCls:"has-error",errorParentCls:"parent-error",gaTracker:"main",thankyouPage:"/thankyou/",landingPage:window.location.protocol+"//"+window.location.host+window.location.pathname+(window.location.search?window.location.search:""),hashStepTracking:!1,useModApi:!1,useQSApi:!1,useFormsServiceApi:!1,userObj:{},formSwiperInstance:"",prepopulateUserInfo:!1,useGetMotivationParam:!0,useAutofill:!1,useSmoothScrolling:!1,hasZipChange:!1,trackZip1ChangeDynamically:!1,trackZipChangeDynamically:!1,zipTrackingState:{},zipFormSelectorsToSync:[],useTooltips:!1,showSecureText:!1,secureTextStepsSelector:[".step--personalInfo",".step--contactInfo"],secureTextPosition:"below-cta",useEncryptedSecureText:!1,isLoaderLoaded:!1,isLoaderAssetsLoaded:!1,showLoadingOverlay:!1,showRedirectOverlay:!1,appendOverlayToElem:document.getElementById("form"),ignoreDuplicateSubmissionBlocker:!1,hvacVerticalName:"HVAC",extraQuestionBlockTriggers:[{name:"HVACProjectScope",value:"Repair"},{name:"NumberOfWindows",value:"1"}],extraQuestionBlock:document.querySelector(".step__extra"),extraQuestionInputs:document.querySelectorAll('.step__extra input[type="radio"]'),roofingPlanOptions:{Replace:"Completely replace roof",Install:"Install roof on new construction",Repair:"Repair existing roof"},addAccessibilityUpdates:!1,useGlobalInitCarousel:!1,isOrganicPreferredMatch:!1,widgetHashStepTracking:!1,formSubmittingCallback:null,beforeSubmitAsyncCallback:null,formSubmitSuccessCallback:null,formSubmitErrorCallback:null,stepChangingCallback:null,stepChangedCallback:null,zipCodeValidated:null,zip1FieldValidated:null,getConsentListingCallback:null,shouldSuppressConversionPixel:!1,suppressConversionPixelParam:"cnvrsnpxl=n",useStepNameHash:!1,delayQuadTransformation:!1,isFirePixelTrue:!1,firePixelParam:"firepxl=y",isSharedMatch:!1,eCommerceVendorKeys:{shared:{frontdoor:["35108310","35108410"]},exclusive:{airo:["31194410","35162110"],angi:["31816410","35181710"],cove:["33788010","34974510"],frontdoor:["35108310","35108410"],networx:["11968410","35161910"],yelp:["35620410"]}},eCommerceExclusiveLoaders:{frontdoor:[`${modUtils?modUtils.getModernizeDomain():"https://modernize.com"}/quote/resources/assets/images/logos/partners/american-home-shield.svg`,"Congrats! You’re eligible to see pricing from American Home Shield now.","#004B98","#ED1C24","#004B98","#F9F9F6"],angi:[`${modUtils?modUtils.getModernizeDomain():"https://modernize.com"}/quote/resources/assets/images/logos/partners/angi.svg`,"Transferring to Angi","#A03027","#FF6153","#A03027","#F9F9F6"],cove:[`${modUtils?modUtils.getModernizeDomain():"https://modernize.com"}/quote/resources/assets/images/logos/partners/cove.svg`,"Transferring to Cove","#002334","#3EBEB0","#002334","#F9F9F6"],networx:[`${modUtils?modUtils.getModernizeDomain():"https://modernize.com"}/quote/resources/assets/images/logos/partners/networx.svg`,"Transferring to Networx","#344054","#0088FF","#344054","#F9F9F6"],yelp:[`${modUtils?modUtils.getModernizeDomain():"https://modernize.com"}/quote/resources/assets/images/logos/partners/yelp.svg`,"Transferring to Yelp","#D71616","#000000","#D71616","#F9F9F6"]},vendorsNeedingInterstitialLoader:["angi","yelp"],sharedParam:"shared=",showExclusiveWidgetInStep:!1,isExclusiveMatch:!1,isBrandedExclusiveMatch:!1,exclusiveMatchResultsPage:"",exclusiveMatchVendor:"",resultsPageAdditionalParams:{},prefVendorKeys:[],prefVendorParam:"prefVendor=",landingPageSubdirectory:"",isCrossSellForm:!1,shouldUpdateTCPACompanyNameToModernize:!0,validateRecaptcha:!1,recaptchaContainer:null,recaptchaField:null,isRecaptchaScriptLoaded:!1,isDirectTraffic:!1,usingDefaultQuad:!1,showRecaptchaForDirectTraffic:!1,isVite:!1,scrollTopOnStepChange:!0,ignoreQueryParams:[],ignoreQueryParamsInSessionStorage:!1,autoRedirectToTyOrSorryPage:!0,phoneAssignmentC
1onfig:{showPhoneAssignmentNumber:!1,phoneNumberLinksSelector:"[class*=call-link],[class*=call-button]",phoneNumbersTextSelector:"[class*=call-number]",questQuadTagId:{staging:"",prod:""},matchVendors:[],response:null,formatNumberWithBracketsAndDash:!1,skipMatching:!1,getPhoneAssignmentDataCallback:null,customPhoneNumber:"",usedZipFromParams:!1,additionalParams:{}},fetchAndFormatConsentListings:!1,consentCaptureDetails:"",sendConsentCaptureTcpaToLead:!1,formatConsentCaptureVendors:!1,originalTcpa:"",consentRequestId:"",consentCaptureVendors:[],consentCaptureLabels:{wasPreChecked:!0,wasOfferedSelectAll:!1,wasPreSubmit:!0},rerunConsentSearchesOnInputChange:!1,consentCaptureInputChangeSelector:"input",serviceSpecificAttributes:{},optInAddRemoveWalls:!0,showBrandedResultPage:!1,useGlobalSkipSteps:!1,skipStepVertical:null,skipStepsConfig:{},useShowStepConditionally:!1,conditionalShowStepInputs:[],disableRecaptcha:!1,formSubmittingCallbackBeforeFormPost:null,isTfTokenStampedInHeap:!1,isServiceCodeStampedInHeap:!1,initialServiceCode:null,croTagHeapPayload:null,useFormsServiceProxyApi:!1,isPreloaded:!1,useSVGTooltipIcon:!1,includeTransferringToModernize:!1,isGutenbergWP:!1,defaultQuadLinkValues:null,defaultMediaChannel:null,isEligibleForHrc:!1,useTrestleApiForAddressLookup:!1,hasPageContextTrackedToGA4:!1};o.d(t,["opts",0,r])},1973:function(e,t,o){"use strict";function r(){const e=document.querySelectorAll(".zip-control-content"),t=document.querySelector(".zip-control"),o=document.querySelector(".show-zip-beside-field"),r=document.querySelector(".zip-control-content .form-input");modForm.zipControlButton.addEventListener("click",n=>{n.preventDefault(),e.forEach(e=>{e.style.display="block"}),t.style.display="none",r&&r.focus(),o&&o.classList.add("col-sm-8"),modForm.opts.formSwiperInstance&&modForm.opts.formSwiperInstance.params.autoHeight&&modForm.opts.formSwiperInstance.updateAutoHeight()})}o.d(t,{r:function(){return r}})},384:function(e,t,o){"use strict";function r(e){const t=window.currentLocationFromHSGeolookup||{};return e.HSGeolookupData=JSON.stringify(t),e}o.d(t,{i:function(){return r}})},5743:function(e,t,o){"use strict";function r(e,t){return e.data.providers.data.filter(function(e){return e.name===t})[0]||[]}o.d(t,{R:function(){return r}})},872:function(e,t,o){"use strict";function r(){const e={...modForm.opts.getVars};let t;return window.projectId?(t=modUtils.getModernizeDomain()+"/my/project-"+window.projectId,Object.keys(e).length&&e.hrcreferrer?e.referrer=e.hrcreferrer:e.referrer=window.location.protocol+"//"+window.location.host+window.location.pathname,e.zip=modForm.opts.zipCode,e.CLK||(e.clickuuid=modForm.opts.formData.trackingAttributes?.clk??""),Object.keys(e).length&&(t+="?"+new URLSearchParams(e).toString())):t="https://modernize.com/quote/unmatched",t}o.d(t,{E:function(){return r}})},732:function(e,t,o){"use strict";function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".swiper-slide-active .step-inner";const o=modForm.opts.form.querySelector(t),r=document.querySelectorAll(".form-btns, .form-bts, .controls, .findpros-form__btns"),n=document.querySelector(".form-tcpa"),i=modForm.opts.landingPage.includes("bestcompany")?"https://bestcompany.com/":"https://modernize.com/",s=window.location.search;let a=e.resultsPage?e.resultsPage:`${i}${s}`;a.indexOf(modForm.opts.suppressConversionPixelParam)<=-1&&(a+=(a.indexOf("?")<0?"?":"&")+modForm.opts.suppressConversionPixelParam),modForm.opts.form.classList.add(modForm.opts.formLoadingCls);modUtils.getCookie("duplicateSubmitFireCnvrsnPxl")||a.indexOf("ThankYou")>-1&&void 0!==window.dataLayer&&window.dataLayer.push({event:"Lead Conversion Failed Redirects"}),modUtils.setCookie("duplicateSubmitFireCnvrsnPxl",!0),modForm.preventDuplicateSubmission=!0,setTimeout(function(){modForm.opts.backButtons&&modForm.opts.backButtons.forEach(function(e){e.style.display="none"}),modForm.opts.progressBar&&modForm.opts.progressBar.forEach(function(e){e.style.display="none"}),r&&r.forEach(function(e){e.style.display="none"}),n&&(n.style.display="none"),modForm.opts.form.querySelector(".swiper-wrapper").style.alignItems="center",modForm.opts.form.classList.remove(modForm.opts.formLoadingCls);const e=modForm.opts.isLeadWidget?"_blank":"_self";o.innerHTML='<div class="duplicate-submission" style="background-color:#fff;display:flex; flex-direction:column;justify-content:center;align-items:center;min-height:390px;padding:40px 10px;text-align:center;"><h3 style="color:#545253;font-size:22px;font-weight:bold;margin:30px auto 0;">Welcome Back!</h3><p style="color:#545253;display:block;font-size:15px;font-weight:400;line-height:1.5;margin:20px auto 30px;">It looks like you just submitted your <br>information a moment ago.</p><a class="btn '+(modForm.opts.addAccessibilityUpdates?"btn--primary":"btn-primary")+'" id="double-submission-fallback-button" href="'+a+'" target="'+e+'" style="max-width:280px;line-height: normal;width:100%;display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 14px 0px 15px;margin:0 auto 30px;min-width:unset"><span class="btn__text" style="visibility:visible;font-size: 18px">See Your Matches</span></a></div>',Modalytics.heap("track",["Showing Duplicate Submission Experience - on Step One",{resultsPage:a}])},300)}o.d(t,{q:function(){return r}})},2845:function(e,t,o){"use strict";function r(){const e=modForm.opts.getVars,t=modForm.opts.vertical,o={title:function(e){const t=document.querySelector('[data-theme-template="title"]');document.title=e,t.innerText=e},subtitle:function(e){document.querySelector('[data-theme-template="subtitle"]').innerText=e},formtitle:function(e){document.querySelector('[data-theme-template="formtitle"]').innerText=e},companyname:function(e){const o=document.getElementById("company-name"),r="hvac"===t?"":" from";e=e.slice(0,1).toUpperCase()+e.slice(1),o.innerText=r+" "+e},dt:function(e){const t=document.getElementsByClassName("dynamic-text"),o=e.split("|");let r;for(let e=0;e<o.length;e++)r=o[e],r&&(t[e].innerText=r)},vp:function(e){const t=document.querySelectorAll('[data-theme-template="vp"]'),o=e.split("|");let r;for(let e=0;e<o.length;e++)r=o[e],r&&(t[e].innerText=r)}};
1Object.keys(o).forEach(t=>{"string"==typeof e[t]&&""!==e[t]&&o[t](e[t])})}o.d(t,{H:function(){return r}})},4006:function(e,t,o){"use strict";function r(){modForm.opts.formElemsSelectors={...modForm.opts.formElemsSelectorsDefaults,...modForm.opts.formElemsSelectors},Object.keys(modForm.opts.formElemsSelectors).forEach(e=>{modForm.opts[e]||(modForm.opts[e]=modForm.opts.form.querySelectorAll(modForm.opts.formElemsSelectors[e]))}),modForm.opts.useShowStepConditionally&&(modForm.opts.conditionalShowStepInputs=Array.from(modForm.opts.form.querySelectorAll('input[type="radio"][data-show-step], input[type="checkbox"][data-show-step]'))),modForm.opts.originalTcpa=modForm.opts.tcpaCopy&&modForm.opts.tcpaCopy.length?modForm.opts.tcpaCopy[0].innerHTML:""}o.d(t,{C:function(){return r}})},4017:function(e,t,o){"use strict";o.d(t,["h",0,function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{};if((modForm.opts.showLoadingOverlay||modForm.opts.showRedirectOverlay)&&!modForm.opts.isLoaderAssetsLoaded){let t=`${modUtils.getModernizeDomain()}/quote/resources/shared-resources/`;t.indexOf("modernize.local")>-1&&(t=t.replace("modernize.local","qa.modernize.com"),t=t.replace(/https?:/g,window.location.protocol));const o=document.createElement("script");o.src=`${t}scripts/loader/loader.min.js`,o.defer=!0,o.onload=function(t){e&&"function"==typeof e&&e(t)};const r=document.createElement("link");r.href=`${t}styles/components/loader/loader.min.css`,r.rel="stylesheet",document.body.appendChild(o),document.head.appendChild(r),modForm.opts.isLoaderAssetsLoaded=!0}}])},5895:function(e,t,o){"use strict";o.d(t,{initQSForm:function(){return n}});var r=o(5235);function n(){const e=modUtils.getModernizeDomain()+"/my/results/";modForm.opts.tagIDTest="203838617",modForm.opts.tagIDLive="204673056",modForm.opts.leadSubmitApi="hs/tyPage/matches.jsp",modForm.opts.trafficDetailsApi="api/TrafficDetails/get",modForm.opts.isWirelesssApi="api/isWireless",modForm.opts.websiteName=window.location.host,modForm.opts.resultsPage=modForm.opts.resultsPage?modForm.opts.resultsPage:e,modForm.opts.errorRedirectPath=modForm.opts.errorRedirectPath?modForm.opts.errorRedirectPath:e,modForm.opts.landingPage=window.location.hostname+window.location.pathname,modForm.opts.isPreloaded||(modForm.opts.qsParams=modForm.opts.qsParams?modForm.opts.qsParams:["CCID","CLK","QTR"],modForm.opts.quadLinkParams={},modForm.opts.quadLinkHasBeenTransformed=!1,modForm.opts.quadLinkData={WebSiteName:modForm.opts.websiteName,quadlink:"",defaultQuad:"",tagID:""}),modForm.opts.delayQuadTransformation||(0,r.QP)(!0),(0,r.QcI)(),(0,r.hv7)(),modUtils.getLandingPage().includes("bestcompany")&&(0,r.QpF)()}},1027:function(e,t,o){"use strict";function r(e){modForm.opts.userLocation=e.city+", "+e.state;const t=document.querySelectorAll(".user-location:not(.reviews-block .user-location)");t.length&&t.forEach(function(e){e&&(e.innerHTML=modForm.opts.userLocation)});const o=document.querySelectorAll(".user-city");o.length&&e?.city&&o.forEach(t=>{t.textContent=e.city});const r=document.querySelectorAll(".user-state");r.length&&e?.state&&r.forEach(t=>{t.textContent=modUtils.returnStateName(e.state)})}o.d(t,{y:function(){return r}})},6136:function(e,t,o){"use strict";o.d(t,["Q",0,function(){const e=document.querySelector(".loader");e&&e.remove()}])},6800:function(e,t,o){"use strict";function r(e){const t=e.data.providers.data.filter(function(e){return!e.isValid});let o=!1;return 1===t.length&&"optIn"===t.pop().name&&(o=!0),o}o.d(t,{Q:function(){return r}})},6824:function(e,t,o){"use strict";function r(){document.referrer.indexOf(window.location.host)<0&&!modUtils.getCookie(modForm.opts.referrerCookieName)&&modUtils.setCookie(modForm.opts.referrerCookieName,document.referrer,modForm.opts.referrerCookieExpiration)}o.d(t,{O:function(){return r}})},5422:function(e,t,o){"use strict";function r(){const e=setInterval(()=>{if(window.dataLayer){clearInterval(e);const t=document.querySelector('input[name="Match"]');[{vendorKey:t?t.value:null},{serviceCode:modForm.opts.vertical},{defaultQuad:modForm.getDefaultQuad()}
1].forEach(e=>window.dataLayer.push(e))}},100)}o.d(t,{Q:function(){return r}})},9612:function(e,t,o){"use strict";function r(){modForm.opts.form.querySelectorAll(".radio label").forEach(function(e){const t=e.querySelector("input");e.setAttribute("data-automated-testing",t.getAttribute("name")+" "+t.value)})}o.d(t,{_:function(){return r}})},3517:function(e,t,o){"use strict";function r(e){const t=["Control","Tab","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","Backspace","Enter","Delete"];if(!e.length)return!1;e.forEach(function(e){e.addEventListener("keydown",function(e){!Number.isNaN(parseInt(e.key))||t.includes(e.key)||e.metaKey||e.preventDefault()})})}o.d(t,{initNumericOnlyFields:function(){return r}})},5445:function(e,t,o){"use strict";function r(e){if(!e)return!1;const t=e.parentElement.closest("."+modForm.opts.errorParentCls);if(t){if(t.classList.add(modForm.opts.fieldErrorCls),modForm.opts.addAccessibilityUpdates)if("radio"===e.getAttribute("type")){const t=e.closest("fieldset").getAttribute("id"),o=e.closest("fieldset").querySelector('input[type="radio"]:first-child');o.setAttribute("aria-invalid","true"),o.setAttribute("aria-describedby","error--"+t),o.focus()}else{let t;t=e.hasAttribute("id")?e.getAttribute("id"):e.getAttribute("name"),e.setAttribute("aria-invalid","true"),e.setAttribute("aria-describedby","error--"+t)}}else e.parentElement.classList.add(modForm.opts.fieldErrorCls);modForm.opts.formSwiperInstance&&!0===modForm.opts.formSwiperInstance.params.autoHeight&&modForm.opts.formSwiperInstance.updateAutoHeight()}o.d(t,{x:function(){return r}})},4222:function(e,t,o){"use strict";function r(e){const t=["Control","Tab","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","Backspace","Enter"];if(!e.length)return!1;e.forEach(function(e){const o=/\D/g;e.addEventListener("keydown",function(o){10!==e.value.length||t.includes(o.key)||o.preventDefault()}),e.addEventListener("keyup",function(){let t=e.value;t=t.replace(o,"").substr(0,9),e.value=t.replace(/(\d{2})(\d+)/,"$1-$2")})})}o.d(t,{k:function(){return r}})},4822:function(e,t,o){"use strict";function r(e){const t=["Control","Tab","ArrowLeft","ArrowDown","ArrowRight","ArrowUp","Backspace","Enter"];if(!e.length)return!1;e.forEach(function(e){const o=/\D/g;let r=e.value;if(10===r.length){let t=/(\d{3})(\d{3})(\d{,4})?/,o="($1) $2-$3";e.value=r.replace(t,o)}e.addEventListener("keydown",function(o){14!==e.value.length||t.includes(o.key)||o.preventDefault()}),e.addEventListener("keyup",function(){let t=e.value,r=/(\d{1,3})/,n="($1";t=t.replace(o,"").substr(0,10);const i=t.length;i>3&&i<=6?(r=/(\d{3})(\d{,3})?/,n+=") $2"):i>6&&(r=/(\d{3})(\d{3})(\d{,4})?/,n+=") $2-$3"),e.value=t.replace(r,n)})})}o.d(t,{c:function(){return r}})},3029:function(e,t,o){"use strict";function r(e,t){const o=modForm.opts.form.querySelector('input[name="'+e+'"]');if(o)if("INPUT"===o.tagName&&"radio"===o.type&&o.value===t)o.setAttribute("checked",!0);else if("INPUT"===o.tagName&&"checkbox"===o.type)o.setAttribute("checked",!0);else if("SELECT"===o.tagName)o.querySelector('option[value="'+t+'"]').setAttribute("selected",!0);else if(o.value=t,"zip"===e){const e=modForm.opts.form.querySelector('input[name="zip1"]');e&&(e.value=t)}}o.d(t,{v:function(){return r}})},8903:function(e,t,o){"use strict";o.d(t,["S",0,function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=modUtils.getUrlParamsToObject();("yes"===(t.CT&&t.CT.toLowerCase())||e)&&(modForm.opts.phoneAssignmentConfig.showPhoneAssignmentNumber=!0)}])},7529:function(e,t,o){"use strict";function r(){const e=document.createElement("input"),t=modForm.opts.form.querySelector(':scope > input[type="hidden"]');e.type="hidden",e.id="vapi",e.name="vapi",e.value="true",modForm.opts.form.querySelector("input#vapi")||(t?modForm.opts.form.insertBefore(e,t):modForm.opts.form.appendChild(e))}function n(){if(document.querySelector(".grecaptcha-badge"))return;const e=document.createElement("div");e.classList.add("grecaptcha-badge"),document.body.appendChild(e)}function i(){const e=document.body,t=new MutationObserver(e=>{for(const t of e)if("childList"===t.type&&"addedNodes"in t){if(Array.from(t.addedNodes).some(e=>e instanceof HTMLElement&&"DIV"===e.tagName&&null!=e.querySelector("iframe[title*=recaptcha]"))){const e=document.querySelector('[title*="challenge"]');if(e){const t=e.parentElement?.parentElement;t&&(t.style.position="fixed",t.style.zIndex="100000")}}}});return t.observe(e,{attributes:!1,childList:!0,subtree:!0}),()=>t.disconnect()}function s(){if(!modForm.opts.isDirectTraffic&&!modForm.opts.usingDefaultQuad)return void n();const e=document.querySelector("[title*=challenge]");e&&e.parentElement?.parentElement?.remove(),i(),grecaptcha.ready(function(){modForm.opts.isRecaptchaScriptLoaded=!0,modForm.opts.recaptchaContainer?.children.length||grecaptcha.render("recaptcha-container",{sitekey:window.__recaptchaKey,callback:function(e){window.rcptToken=e,modForm.opts.recaptchaField&&(modForm.opts.recaptchaField.value=e,modForm.opts.recaptchaField.closest(".form-group")?.classList.remove("has-error"))},"error-callback":function(e){Modalytics.heap("track",["Token Error",{token:"reCaptcha",errorMessage:"Could not render: "+window.__recaptchaKey+", "+e}])},"expired-callback":function(){window.rcptToken="",modForm.opts.recaptchaField&&(modForm.opts.recaptchaField.value="")}})})}function a(){modForm.opts.recaptchaField=document.getElementById("recaptcha-field"),modForm.opts.recaptchaContainer=document.getElementById("recaptcha-container"),modForm.opts.isDirectTraffic||modForm.opts.usingDefaultQuad?modForm.opts.recaptchaField&&(modForm.opts.validateRecaptcha="local"!==modUtils.getEnv(),r(),modForm.opts.recaptchaField.dataset.required="nonempty",modForm.opts.isRecaptchaScriptLoaded||s()):n()}function c(e){a(),Modalytics.heap("track",["Using Default Quad (Initialize reCaptcha)",{initializedStep:e}])}o.d(t,{g:function(){return r},_s:function(){return a},wA:function(){return c},F4:function(){return s},Yb:function(){return n},n7:function(){return i}})}
1,5608:function(e,t,o){"use strict";function r(){let e;return modForm.opts.steps.forEach(function(t){t.classList.contains(modForm.opts.stepActiveCls)&&(e=t)}),e}o.d(t,{I:function(){return r}})},6813:function(e,t,o){"use strict";function r(e){const t=document.getElementById(e).nextElementSibling;if(t)return t.getAttribute("id")}o.d(t,{v:function(){return r}})},1913:function(e,t,o){"use strict";function r(e){const t=document.getElementById(e).previousElementSibling;if(t)return t.getAttribute("id")}o.d(t,{D:function(){return r}})},7343:function(e,t,o){"use strict";function r(){let e={};const{opts:t}=modForm,{skipStepVertical:o,vertical:r}=t,n={HVAC:{BoilerSystemInstallType:[{HVACInterest:["Central AC","Central Heating","Central Heating Heat Pump"]}],CentralHeatingInstallType:[{HVACInterest:["Central AC","Boiler/Radiator"]}],BoilerHeatingInstallRepairType:[{HVACInterest:["Central AC"]}]},CABINET_REFACING:{OptIn:[{ProductService:["CABINET_INSTALL","CABINET_REFACING","COUNTERTOP"]}],CountertopType:[{ProductService:["KITCHEN_REMODEL","CABINET_INSTALL","CABINET_REFACING"]}],CountertopProjectScope:[{ProductService:["KITCHEN_REMODEL","CABINET_INSTALL","CABINET_REFACING"]}],CommercialLocation:[{ProductService:["KITCHEN_REMODEL","CABINET_INSTALL","CABINET_REFACING"]}],BuyTimeframe:[{ProductService:["KITCHEN_REMODEL","CABINET_INSTALL","CABINET_REFACING"]}]},WINDOWS:{MultipleWindows:[{NumberOfWindows:["2","3-5","6-9"]}]},BATHROOM_REFACING:{OptIn1:[{ProductService:["BATHROOM_REFACING","WALK_IN_SHOWERS"]},{BathProjectScope:["Shower Conversion","Bathtub / Shower Updates","Bathtub Liner / Shower Enclosure","Walk-in Shower"]}]},PLUMBING:{PlumbingProjectScope:[{ServiceDetails:["DRAINS","WATER_HEATERS","WATER_TREATMENT","SEWER","WATER_MAIN"]}],DrainageIssue:[{ServiceDetails:["PLUMBING","WATER_HEATERS","WATER_TREATMENT","SEWER","WATER_MAIN"]}],ProjectScope:[{ServiceDetails:["PLUMBING","DRAINS","WATER_TREATMENT","SEWER","WATER_MAIN"]}],ServiceType:[{ServiceDetails:["PLUMBING","DRAINS","WATER_HEATERS","SEWER","WATER_MAIN"]}]},TREE_SERVICES:{TreeSize:[{JobType:["Arborist Report","Stump Removal","Land Clearing","Landscape Maintenance","Other"]}]},SOLAR:{UtilityProvider:[{UtilityProvider:["Other"]}]}};return o&&n[o]?e=n[o]:r&&n[r]&&(e=n[r]),e}o.d(t,{R:function(){return r}})},425:function(e,t,o){"use strict";function r(){modForm.opts.steps.forEach(function(e){e.classList.contains(modForm.opts.stepActiveCls)&&e.classList.remove(modForm.opts.stepActiveCls),modForm.opts.addAccessibilityUpdates&&!modForm.opts.useGlobalInitCarousel&&(e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex","-1"))})}o.d(t,{h:function(){return r}})},1974:function(e,t,o){"use strict";function r(){const e=function(){let e;modForm.opts.hvacSystemTypeField.length&&modForm.opts.hvacSystemTypeField.forEach(function(t){e="radio"===t.type?t.checked&&t.value.trim():t.value.trim()}),e&&(modForm.opts.hvacSystemTypesWithFuel.indexOf(e)>-1?modForm.opts.hvacFuelTypeBlock[0].style.display="block":modForm.opts.hvacFuelTypeBlock[0].style.display="hidden")};modForm.opts.hvacSystemTypeField.length&&modForm.opts.hvacFuelTypeBlock.length&&(modForm.opts.hvacSystemTypeField.forEach(function(t){t.addEventListener("change",function(){e()})}),e())}o.d(t,{o:function(){return r}})},9258:function(e,t,o){"use strict";function r(e){(modForm.opts.isFormLoading||modForm.opts.formSwiperInstance&&modForm.opts.formSwiperInstance.animating)&&e.preventDefault()}o.d(t,{I:function(){return r}})},9928:function(e,t,o){"use strict";function r(e,t){const o=modForm.opts.form.querySelector('[name="UtilityProvider"]'),r=o?.closest(modForm.opts.stepsSelector);if(JSON.stringify(t)===JSON.stringify(modForm.oldUtilProviders))return;o.innerHTML="",modForm.oldUtilProviders=t;const n=document.createElement("option");n.value="",n.textContent="Select an option",o.appendChild(n),r?.toggleAttribute("data-hide-step",e),t.forEach((t,r)=>{const n=t.name,i=document.createElement("option");i.textContent=n,0===r&&e&&i.setAttribute("selected","selected"),o.appendChild(i)})}o.d(t,{u:function(){return r}})},4623:function(e,t,o){"use strict";o.d(t,["B",0,function(){modForm.opts.steps&&modForm.opts.steps.length&&modForm.opts.steps.forEach(function(e){if(e){const t=e.querySelectorAll("input, select, textarea");t.length&&t.forEach(function(t){t&&(e.classList.contains(modForm.opts.stepActiveCls)?t.removeAttribute("tabindex"):t.setAttribute("tabindex","-1"))})}})}])},3313:function(e,t,o){"use strict";function r(e,t){const o=document.createElement("div");o.className="form-group__tooltip";const r=document.createElement("i");
1if(r.className="form-group__tooltip-icon "+(modForm.opts.useSVGTooltipIcon?"":"icon-fill-question"),r.setAttribute("data-bind","tooltip-icon"),r.setAttribute("tooltip-name",e),r.setAttribute("role","button"),r.setAttribute("tabindex","0"),r.setAttribute("aria-describedby",`tooltip-${e}`),modForm.opts.useSVGTooltipIcon){const e='<svg width="25" height="25" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0ZM10 14.375C9.30964 14.375 8.75 14.9346 8.75 15.625C8.75 16.3154 9.30964 16.875 10 16.875C10.6904 16.875 11.25 16.3154 11.25 15.625C11.25 14.9346 10.6904 14.375 10 14.375ZM11.4055 3.83267C8.95021 3.44378 7.09097 4.26344 6.18132 6.26538C5.89573 6.89389 6.17372 7.63492 6.80224 7.92051C7.43075 8.2061 8.17178 7.9281 8.45737 7.29959C8.86537 6.40166 9.5999 6.07785 11.0144 6.30189C11.7636 6.42054 12.2747 7.12403 12.156 7.87317C12.085 8.32165 11.7969 8.70604 11.3863 8.90003C9.78709 9.65563 8.76712 10.8987 8.76712 12.5C8.76712 13.1904 9.45176 13.75 10.1421 13.75C10.8325 13.75 11.2671 13.1904 11.2671 12.5C11.2671 11.9286 11.6827 11.525 12.4544 11.1604C13.6123 10.6132 14.4249 9.52915 14.6253 8.26426C14.9599 6.1514 13.5184 4.16731 11.4055 3.83267Z" fill="currentColor" /></svg>';r.insertAdjacentHTML("afterbegin",e)}const n=document.createElement("div");return n.classList.add("form-group__tooltip-message"),n.setAttribute("id",`tooltip-${e}`),n.setAttribute("role","tooltip"),n.innerHTML=t,o.appendChild(r),r.insertAdjacentElement("afterend",n),o}function n(){const e=modUtils.getLandingPage().indexOf("modernize")>0?modUtils.getModernizeDomain()+"/quote/resources":"",t=new XMLHttpRequest;let o={};t.open("GET",`${e}/data/tooltips.json`),t.send(),t.addEventListener("load",function(){if(this.response)if(o={...o,...JSON.parse(this.response)},4===this.readyState&&200===this.status){const e=modForm.opts.useQSApi,t=modForm.opts.vertical,n=o[t]?o[t]:o.default;let i;if(!o[t]){const o=window.location.pathname,r={ALERTS_MEDICAL:"medical alerts","/quote/bathandshowerremodel":"bath and shower remodel",hvac:"cooling and heating"};Object.keys(r).some(function(e){return o.indexOf(e)>-1?(i=r[e],!0):e===t?(i=r[t],!0):void 0}),void 0===i&&(i=e?modForm.opts.vertical.replace(/_/g," ").toLowerCase():t),Object.keys(n).forEach(function(e){n[e]=n[e].replace(/\${trade}/g,i)})}const s=Object.keys(n),a={FN:"firstName",LN:"lastName",HP:"homePhone",EM:"email",S1:"address",CT:"city",SP:"state",PC:"zip"};Array.from(document.querySelectorAll(".form-group")).filter(function(e){const t=e.querySelector('input:not([type="hidden"])')?.name;if(s.includes(t)||s.includes(a[t]))return e}).forEach(function(e){const t=e.querySelector('input:not([type="hidden"])');t.closest("div").classList.add("form-group--tooltip");const o=t.name,i=r(o,void 0!==n[o]?n[o]:n[a[o]]);t.insertAdjacentElement("afterend",i)})}else console.log("An error has occurred.")}),t.addEventListener("error",function(){console.error("Something went wrong")});const n=document.querySelectorAll('[data-bind="tooltip-icon"]');n.length&&n.forEach(function(e){e.addEventListener("mouseover",modUtils.debounce(function(e){const t=e.target,o=t.dataset.tooltipName;Modalytics.heap("track",[`${modForm.opts.landingPageNoQuery} | Tooltip Open ${o}`]),t.closest(".form-group__tooltip").classList.add("hovered")},75)),e.addEventListener("mouseout",modUtils.debounce(function(e){e.target.closest(".form-group__tooltip").classList.remove("hovered")},75))})}o.d(t,{L:function(){return r},D:function(){return n}})},5235:function(e,t,o){"use strict";function r(){document.querySelector("body").addEventListener("mouseleave",n)}o.r(t),o.d(t,{fLf:function(){return n},kpA:function(){return P},xeM:function(){return I},ibT:function(){return O.i},ga0:function(){return Te.g},QpF:function(){return ae.Q},_hf:function(){return ce._},ik5:function(){return me},vmJ:function(){return de},hv7:function(){return ue},NyN:function(){return co.N},S3y:function(){return Dt.S},eA1:function(){return mo.e},snI:function(){return no},BOl:function(){return le},WzO:function(){return Rt},fJ3:function(){return m},u2L:function(){return x},ZHe:function(){return Je.Z},RxA:function(){return Ee},uld:function(){return Ct.u},tRQ:function(){return Mt},sUt:function(){return Nt.s},fex:function(){return Tt.f},RT3:function(){return N.R}
1,fk9:function(){return Ht.f},_jl:function(){return Le},wJL:function(){return q},mq$:function(){return Ye.m},uDx:function(){return bt},LnV:function(){return Qe.L},Cg5:function(){return h.C},ZEO:function(){return uo.Z},IWy:function(){return fo},l8D:function(){return F},pZ:function(){return zt.p},IsU:function(){return Pe.I},xTD:function(){return Ut},S5W:function(){return jt},e$X:function(){return _t.e},uk5:function(){return y},tgI:function(){return D},zIm:function(){return xt.z},hry:function(){return Bt.h},d$Q:function(){return b.d},Vqk:function(){return It},mCz:function(){return Et.m},Xwf:function(){return qt.X},v5B:function(){return ze.v},lLi:function(){return R},QnV:function(){return S.getPhoneAssignmentData},A9b:function(){return v},DFK:function(){return Ue.D},EGm:function(){return M.E},RID:function(){return Vt},Epu:function(){return lo.E},JgO:function(){return L.J},O_H:function(){return Pt},RM0:function(){return $e.R},ioF:function(){return Ze.i},hY1:function(){return w},lLF:function(){return C},Yo2:function(){return c},q7I:function(){return $t},JxV:function(){return Gt},hL4:function(){return Ie.h},b4i:function(){return H},vHd:function(){return pe},vTO:function(){return i},Hpj:function(){return z},Wzn:function(){return fe},Aos:function(){return U},yfL:function(){return j},qQx:function(){return _.q},gHb:function(){return Oe},Hew:function(){return B.H},C2f:function(){return V.C},FYY:function(){return $},MAG:function(){return G},h78:function(){return ie.h},oGh:function(){return xe.o},PYM:function(){return Wt},u8y:function(){return s},xST:function(){return ge.initNumericOnlyFields},SRk:function(){return Ae.S},piO:function(){return W.initQSForm},QP:function(){return Qt.initQuadTransform},QcI:function(){return Kt},_su:function(){return Te._s},wAW:function(){return Te.wA},ePo:function(){return d},D4:function(){return ro.D},w1s:function(){return Q},E9y:function(){return Jt},Dcu:function(){return Qe.D},ayy:function(){return he},ROK:function(){return Fe},LA6:function(){return kt},XLJ:function(){return Yt},SI$:function(){return Xe.S},VNb:function(){return et.V},f91:function(){return tt},x5o:function(){return ye.x},kcK:function(){return Se.k},cYO:function(){return be.c},Rhu:function(){return ot.R},pfF:function(){return u},F4w:function(){return Te.F4},qEB:function(){return rt.q},Os9:function(){return K},vnX:function(){return ve.v},yWL:function(){return J.y},YBD:function(){return Y},I9K:function(){return ee},FJv:function(){return it.F},wDK:function(){return Z},sUC:function(){return nt},h4d:function(){return at},YbH:function(){return Te.Yb},IUI:function(){return Ne.I},QIE:function(){return ct},Qsh:function(){return dt},IYu:function(){return ut},L0f:function(){return mt},n7g:function(){return Te.n7},GUm:function(){return lt},QUQ:function(){return se.Q},mmk:function(){return we},QMH:function(){return te.Q},PUd:function(){return gt},rrF:function(){return Ot},Orn:function(){return oe.O},iWb:function(){return Lt.i},M7_:function(){return At.M},XjZ:function(){return st.X},wAF:function(){return re},lB1:function(){return qe},Pib:function(){return He},mfN:function(){return De},lwN:function(){return Be},kCm:function(){return Re},uPb:function(){return Ge.u},zV1:function(){return We},lyQ:function(){return je},Bpe:function(){return k},rMA:function(){return ne},GIv:function(){return A},SBi:function(){return Ke},G3W:function(){return pt},fNc:function(){return wt.f},AyO:function(){return St},Yte:function(){return vt},mEw:function(){return p},Jw2:function(){return go},$$Z:function(){return so},FJm:function(){return ao},Bsj:function(){return oo},ov6:function(){return Zt.o},GHi:function(){return io.G},dDO:function(){return Xt.d},K9G:function(){return eo.K},jtI:function(){return ho},Jbh:function(){return po.J},I7e:function(){return T},otf:function(){return yt},Eti:function(){return r},IDj:function(){return to},EBV:function(){return ke},TsY:function(){return f},IGB:function(){return ht},BoI:function(){return Ve.B},JBN:function(){return Ft},B3c:function(){return E},Cgh:function(){return Me},r2_:function(){return a.r},k1d:function(){return l}});const n=function(e){const t=e.clientY;if(modForm.isSubmitting||modForm.opts.form.classList.contains(modForm.opts.formSubmittedCls)||document.body.classList.contains("prevent-abandonment"))return document.body.removeEventListener("mouseleave",n),!1;if(t<50&&document.querySelector("#abandonment:empty")){document.body.classList.add("no-scroll");fetch("abandonment/index.html").then(e=>e.text()).then(function(e){const t=(0,rt.q)(e);document.querySelector("#abandonment").appendChild(t)}),document.body.removeEventListener("mouseleave",n)}};function i(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];modForm.opts.backButtons.length&&modForm.opts.backButtons.forEach(t=>{e?t.addEventListener("click",m):t.removeEventListener("click",m)})}function s(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const t=modForm.opts.form,o=t.querySelectorAll(".btn-primary, .btn--primary");if(!t)return!1;o.length&&o.forEach(function(t){if(!t)return!1;e?t.addEventListener("click",u):t.removeEventListener("click",u)}),t.querySelector('input[name="zip"]')&&(e?t.querySelector('input[name="zip"]').addEventListener("keydown",l):t.querySelector('input[name="zip"]').removeEventListener("keydown",l)),e?document.body.addEventListener("keydown",p):document.body.removeEventListener("keydown",p)}var a=o(1973);function c(){const e=(0,Pe.I)(),t=e.querySelector(".btn-primary"),o=e.dataset;if("infield"in o){const e=o.infield;"zip"===e&&modForm.isZipValid||"phone-email"===e&&modForm.isPhoneValid&&modForm.isEmailAddressValid||"email"===e&&modForm.isEmailAddressValid||"phone"===e&&modForm.isPhoneValid?t.removeAttribute("disabled"):t.setAttribute("disabled",!0)}else document.querySelector(".step.left")||document.querySelector(".step.right")||t.removeAttribute("disabled")}function d(){const e=modForm.opts.form.querySelector('[data-bind="resubmit"]'),t=modForm.opts.form.querySelector('select[name="primaryProjectClass"]');e.addEventListener("click",function(e){e.preventDefault(),modForm.opts.form.classList.remove(modForm.opts.formTyCls),t&&(t.value="");De(modForm.opts.steps[0].id)})}function m(e){e.stopImmediatePropagation(),modForm.opts.isFormLoading||modForm.opts.formSwiperInstance&&modForm.opts.formSwiperInstance.animating?e.preventDefault():(He(),modForm.opts.clickedFormBackButton=!0)}function u(e){e.stopPropagation(),(0,Ne.I)(e)}function l(e){"Enter"===e.key&&(0,Ne.I)(e)}function p(e){const t=modForm.opts.form;"Tab"===e.key&&(document.addEventListener("focus",function(e){t.contains(e.target)&&t.classList.add("disableAutofill"),e.stopPropagation()},!0),(0,Ne.I)(e))}function f(){if(modForm.opts.fetchAndFormatConsentListings||modForm.opts.sendConsentCaptureTcpaToLead){const e=modForm.opts.tcpaCopy&&modForm.opts.tcpaCopy.length?Array.from(modForm.opts.tcpaCopy).map(e=>(0,Ze.i)(e).trim().replace(/(<([^>]+)>)/gi,"").replace(/\n/g,"").replace(/[\u00A0]+/g,"")):"",t={tcpaText:e,HomePhoneConsentLanguage:e};
1Object.keys(t).forEach(e=>{le(e,t[e])})}}var g=o(9693),h=o(289);function F(e){modForm.opts.gettingLiveConsent=!0;const t=(0,Bt.h)()+"forms/consent-searches",o=D(),r={};let n=!1;const i=Object.fromEntries(Object.entries(modForm.opts.quadLinkParams).map(e=>{let[t,o]=e;return[t.toLowerCase(),o]})),s=modForm.opts.quadLinkData.quadlink?{quadLink:modForm.opts.quadLinkData.quadlink}:i,a=(0,Xe.S)(o),c=o.PartnerSourceID?{partnerSourceID:o.PartnerSourceID}:{};tt(a),window.activeCampaignData&&(r.testId=window.activeCampaignData["Test ID"],r.variationName=window.activeCampaignData["Variation Name"]);const d={zip:modForm.opts.getVars.zip?modForm.opts.getVars.zip:modForm.opts.zipCode,service:a,site:modForm.opts.quadLinkData.WebSiteName?.replace(/^www\./,"").replace(/^qa\./,""),...s,...c,serviceSpecificAttributes:{...modForm.opts.serviceSpecificAttributes},searchContext:{searchContext:"O&O Web Pre Submit",landingPageUrl:window.location.href.split("#")[0],...r}};if(modForm.opts.getVars.Match&&(d.matchingAttributes={matchVendors:[modForm.opts.getVars.Match]}),JSON.stringify(d)===modForm.opts.consentCaptureDetails)return;modForm.opts.consentCaptureDetails=JSON.stringify(d);let m={};const u=new XMLHttpRequest;u.open("POST",t),u.setRequestHeader("Content-Type","application/json"),u.send(JSON.stringify(d)),Modalytics.heap("track",["Consent Searches | Called"]),u.addEventListener("load",function(){if(this.response)if(m={...m,...JSON.parse(this.response)},4===this.readyState&&200===this.status){if(Modalytics.heap("track",["Consent Searches | Successful Response",{...m?.requestId&&{requestId:m.requestId}}]),m.requestId&&(modForm.opts.consentRequestId=m.requestId),JSON.stringify(m)){if(m.data&&2===m.data.length){const e=modForm.opts.eCommerceVendorKeys.exclusive,t=Object.values(e).flat(1/0),o=(modForm.opts.vendorsNeedingInterstitialLoader??[]).flatMap(t=>e[t]??[]);for(let e=0;e<2;e++)if(t.includes(String(m.data[e].vendorKey))){n=!0,modForm.showinterstitialLoader=o.includes(String(m.data[e].vendorKey));(0,ot.R)(m.data[e])&&(window.Footer?.initModalLinks('.tcpa a[data-bind="modal-page"]'),window.exclusiveTcpa=!0,modForm.opts.exclusiveVendorId=m.data[e].vendorKey)}}!n&&window.exclusiveTcpa&&(modForm.showinterstitialLoader=!1,window.exclusiveTcpa=!1,modForm.opts.exclusiveVendorId="",modForm.opts.tcpaCopy[0].innerHTML=modForm.opts.originalTcpa,Modalytics.heap("track",["Modified TCPA Back to Original"]),window.Footer?.initModalLinks('.tcpa a[data-bind="modal-page"]')),f(),e&&e(m)}}else{const e=`${this.status}: ${this.statusText}`,t=this.responseText;Modalytics.heap("track",["Consent Searches | Failed",{error:e,response:t}])}}),u.addEventListener("error",function(){console.error("Something went wrong!"),Modalytics.heap("track",["Consent Searches | Network Error"])})}const y=function(){const e=modUtils.getUrlParamsToObject(),{eddie:t}=e;if(!t)return!1;const o=`${"https://"+("production"===modUtils.getEnv()?"hs.leadpost.net/":"hsleadpost1.quinstage.com/")}api/get/hseddie?quid=${t}`,r=new Headers;fetch(o,{method:"POST",headers:r,redirect:"follow",mode:"cors"}).then(e=>e.json()).then(e=>ee(e)).catch(e=>console.log("Something went wrong!",e))};var b=o(430),S=o(8357);function v(e){let t="Wireless",o={};const r=new XMLHttpRequest,n=`${Vt()}${modForm.opts.isWirelesssApi}/${e}/get`;return r.open("GET",n),r.send(),r.addEventListener("load",function(){this.response&&(o={...o,...JSON.parse(this.response)},4===this.readyState&&200===this.status&&"Success"===o.status&&"false"===o.Result&&(t="NonWireless"))}),r.addEventListener("error",function(){console.error("Something went wrong")}),t}function w(e,t){St(!0);let o={};const r=new XMLHttpRequest;r.open("GET",modUtils.getApiDomain()+"/v1/lookups/utility-providers?filters[state]="+e),r.send(),r.addEventListener("load",function(){if(this.response){if(o={...o,...JSON.parse(this.response)},4===this.readyState&&200===this.status){let e;if(o.success=!0,o.success&&o.data.length>1)t(e,o.data);else if(!0===o.success&&o.data.length<=1){e=!0,t(e);const o=document.createElement("input");o.type="hidden",o.name="utilityProviderId",o.value="999999",o.setAttribute("data-required","nonempty"),modForm.opts.form.append(o)}St(!1)}}else"function"==typeof t&&t({})}),r.addEventListener("error",function(){console.error("Something went wrong")})}async function C(e,t){let o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];St(!0);let r={},n=!1;
1const i={data:[{utilityProviderId:999999,name:"Other"}]};return await new Promise(s=>{const a=new XMLHttpRequest;a.open("GET",modUtils.getApiDomain()+"/v1/lookups/utility-providers?filters[zip]="+e),a.send(),a.addEventListener("load",function(){if(this.response)if(r={...r,...JSON.parse(this.response)},4===this.readyState&&200===this.status){if(r.success=!0,!0===r.success&&r.data.length<=1){n=!0;const e=document.createElement("input");e.type="hidden",e.name="utilityProviderId",e.value="999999",e.setAttribute("data-required","nonempty"),modForm.opts.form.append(e)}}else n=!0,r=i}),a.addEventListener("error",function(){console.error("Something went wrong"),n=!0,r=i}),a.addEventListener("loadend",function(){o&&(0,Ge.u)(n,r.data),"function"==typeof t&&t(n,r.data),s(r.data),St(!1)})})}function k(e,t,o){const r=Array.from(modForm.opts.steps).indexOf((0,Pe.I)()),n=0===r?"POST":"PATCH";let i,s,a;if(0===r)i=modUtils.getApiDomain()+"/v1/contractors",s=!1;else{const e=modForm.opts.form.querySelector('[name="contractorId"]').value,t=modForm.opts.form.querySelector('[name="token"]').value;i=modUtils.getApiDomain()+"/v1/contractors/"+e,s="Bearer "+t,a=e}if(!1===modForm.isSubmitting){modForm.isSubmitting=!0;let e={};const c=new XMLHttpRequest;c.open(n,i),c.setRequestHeader("Authorization",s),c.setRequestHeader("Accept","application/json"),c.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),"production"!==modUtils.getEnv()&&(c.setRequestHeader("Access-Control-Allow-Origin",window.location.origin),c.setRequestHeader("Access-Control-Allow-Methods",n)),c.send(new URLSearchParams((0,it.F)(modForm.opts.submitData)).toString()),c.addEventListener("load",function(){const n=this;this.response?e={...e,...JSON.parse(this.response)}:e.data={contractorId:a},4===this.readyState&&this.status>=200&&this.status<=299?("function"==typeof t&&t(e),modForm.opts.submitData={},dt(e,r,n)):"function"==typeof o?o(n,this.status,e):"function"==typeof modForm.opts.formSubmitErrorCallback?modForm.opts.formSubmitErrorCallback(e):ct(e)}),c.addEventListener("loadend",function(){modForm.isSubmitting=!1,St(!1)}),c.addEventListener("error",function(){console.error("Something went wrong!")})}}function A(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0;(0,io.G)({inSubmitFormDataToFormsServiceApi:!0});let r=(0,Bt.h)()+"forms/inquiries";modForm.opts.useFormsServiceProxyApi&&(r="/inquiries"),(0,io.G)({formSubmitRequestURL:r}),e.UtilityProvider&&((0,io.G)({encodingUtilityProvider:!0}),e=modUtils.encodeValueInObject(e,"UtilityProvider")),e=I(e),e=pt(e),e=Ft(e),e&&Object.keys(e)&&Ot(e);let n={};if(n=ht(e),modForm.opts.formSubmittingCallbackBeforeFormPost&&"function"==typeof modForm.opts.formSubmittingCallbackBeforeFormPost&&(n=modForm.opts.formSubmittingCallbackBeforeFormPost(n),(0,io.G)({formSubmittingCallbackBeforeFormPostCalled:!0})),(0,g.aL)(n)){const e=[{name:"landingPageDomain",value:window.location.hostname},{name:"referrerDomain",value:(0,lo.E)()},{name:"browser",value:(0,uo.Z)().compact},{name:"timeOnPage",value:po.J.complete()}];n.trackingAttributes||(n.trackingAttributes={}),n.trackingAttributes.additionalAttributes||(n.trackingAttributes.additionalAttributes={});for(const t of e){const{name:e,value:o}=t;n.trackingAttributes.additionalAttributes[e]=o,(0,g.aL)(n)||delete n.trackingAttributes.additionalAttributes[e]}}if(modForm.opts.formData=n,!1===modForm.isSubmitting){modForm.isSubmitting=!0;let i={};(0,io.G)({formSubmitRequestStarted:!0});const s=new XMLHttpRequest;(0,io.G)({formSubmitRequestUnsent:!0}),s.open("POST",r),(0,io.G)({formSubmitRequestOpened:!0}),s.setRequestHeader("Content-Type","application/json");const a=!n||!Object.keys(n).length,c=(0,xt.z)();if(c&&a){const e=JSON.parse(c);Object.keys(e).length&&Object.entries(e).forEach(t=>{let[o,r]=t;e[o]=decodeURIComponent(r)});const t=at(e);n=ht(t),(0,io.G)({usedFormDataFromCookie:!0})}n=gt(n),s.send(JSON.stringify(n)),ao(n),(0,Nt.s)(),(0,io.G)({formSubmitRequestSent:!0}),s.addEventListener("progress",function(){(0,io.G)({formSubmitRequestLoading:!0})}),s.addEventListener("load",function(){const r=this;if(this.response)if(i={...i,...JSON.parse(this.response)},4===this.readyState&&200===this.status){if((0,io.G)({formSubmitRequestSuccessful:!0}),document.body.classList.add("prevent-abandonment"),"function"==typeof t&&t(i),i.commissionDetail
1s&&!0===i.commissionDetails.firePixel&&(modForm.opts.isFirePixelTrue=!0),i&&(e.PC&&(i.zip=e.PC),e.SP&&(i.state=e.SP),e.CT&&(i.city=e.CT)),i.dataCaptureKey){const s=i.dataCaptureKey;Modalytics.heap("addEventProperties",{project_id:s,form_path:modForm.opts.landingPage,DCK:s})}if(i.vendors&&i.vendors.length>0){const a=Object.values(modForm.opts.eCommerceVendorKeys.exclusive),c=i.vendors.find(e=>a.flat(1/0).includes(String(e.vendorKey))),d=c?.vendorKey,m=Object.values(modForm.opts.eCommerceVendorKeys.shared),u=i.vendors.filter(e=>m.flat(1/0).includes(String(e.vendorKey))),l=i?.publicLeadIdentifer,p=1===i.vendors.length&&i.vendors[0].wholeSale;if(i.vendors.length>1&&u.length>0){const f=u.map(e=>e.vendorKey).join(",");modForm.opts.sharedParam=`shared=${f}`,modForm.opts.isSharedMatch=u}else if(d){"production"===modUtils.getEnv()&&(0,ro.D)();const g="error",h=Object.keys(modForm.opts.eCommerceVendorKeys.exclusive).find(e=>modForm.opts.eCommerceVendorKeys.exclusive[e].includes(d));if(modForm.opts.exclusiveMatchVendor=h,1===i.vendors.length&&(c.vendorLeadDeliveryToken||modForm.opts.eCommerceVendorKeys.exclusive.cove.includes(d)||c.consentIntegrationData&&c.consentIntegrationData.redirectUrl)){if(modForm.opts.isExclusiveMatch=!0,c.vendorLeadDeliveryToken&&modForm.opts.eCommerceVendorKeys.exclusive.frontdoor.includes(d)){const F="https://shopping.ahs.com/plans/get-my-quote/select?leadData=",y="&utm_medium=affiliate&utm_source=modernize&utm_campaign=modernize_ecomm";if(modForm.opts.frontdoorLeadId=c.vendorLeadDeliveryToken?c.vendorLeadDeliveryToken:"",i.city&&i.state)modForm.opts.userCity=i.city,modForm.opts.userState=i.state;else if(modForm.opts.userLocation){const v=modForm.opts.userLocation.split(",");modForm.opts.userCity=v[0].trim(),modForm.opts.userState=v[1].trim()}const b=`;;${modForm.opts.userCity};${modForm.opts.userState};${i.zip};${n.address};;;;;;;${modForm.opts.frontdoorLeadId};`,S=btoa(b);modForm.opts.exclusiveMatchResultsPage=`${F}${S}${y}`}else modForm.opts.eCommerceVendorKeys.exclusive.cove.includes(d)?modForm.opts.exclusiveMatchResultsPage="https://www.covetrack.com/28KL6/2CTPL":c.consentIntegrationData.redirectUrl&&(modForm.opts.exclusiveMatchResultsPage=c.consentIntegrationData.redirectUrl);Modalytics.heap("track",["E-Commerce Flow",{companyName:c.vendorDisplayName,destinationLink:modForm.opts.exclusiveMatchResultsPage,matchCriteria:"Exclusive (Redirect)"}])}else if(c.consentIntegrationData&&(c.consentIntegrationData.widgetUrl||c.consentIntegrationData.additionalData)){if(!modForm.opts.showExclusiveWidgetInStep){const P=function(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"after";if("string"!=typeof e||!e.trim()||"string"!=typeof t||!t.trim())return;const r=document.querySelector(t);if(!r)return;const n="before"===o?"beforebegin":"afterend";r.insertAdjacentHTML(n,e)};P('<dialog class="modal modal--accessible modal--widget" tabindex="-1" role="dialog" aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button class="modal-header--close" data-close="dialog" aria-label="Close"><svg xmlns="http://www.w3.org/2000/svg" height="14" width="14" viewBox="0 64 384 384" fill="currentColor" aria-hidden="true"><path d="M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"/></svg></button></div><div class="modal-body"></div></div></div></dialog>',modForm.opts.isLeadWidget?".footer-container":"#footer-component","before")}modForm.opts.isExclusiveWidgetMatch=!0;let w="";const C=document.querySelector(".modal--widget"),k=C?C.querySelector(".modal-body"):null,A=document.createElement("li"),T=document.createElement("div"),E=modForm.opts.form.querySelectorAll(".secure-text");modForm.opts.showExclusiveWidgetInStep?(A.className="swiper-slide swiper-no-swiping step step--show-widget",A.setAttribute("aria-hidden","true"),A.setAttribute("tabindex","-1"),A.setAttribute("data-bind","step"),A.setAttribute("data-step-name","widget"),T.className="step-inner",A.appendChild(T),modForm.opts.form.querySelector(".swiper-wrapper").appendChild(A),A.setAttribute("id",`step${modForm.opts.form.querySelectorAll(modForm.opts.stepsSelector).length+1}`),modForm.opts.formSwiperInstance&&modForm.opts.formSwiperInstance.update(
1)):(T.className="modal-inner",k.appendChild(T));const L=document.querySelector(".loader__link");if(L&&(L.style.display="none"),c.consentIntegrationData.additionalData&&modForm.opts.eCommerceVendorKeys.exclusive.airo.includes(d)){if(w=JSON.stringify(c.consentIntegrationData.additionalData),c.consentIntegrationData.additionalData.trade&&c.consentIntegrationData.additionalData.campaignId){const I=document.createElement("div"),O=document.createElement("script");I.id="airo-anchor",T.appendChild(I),T.style.overflow="auto",window.airoBookingForm={zipCode:n.zip,trade:c.consentIntegrationData.additionalData.trade,firstName:n.firstName,lastName:n.lastName,address:n.address,email:n.email,phone:n.phone,campaignId:c.consentIntegrationData.additionalData.campaignId,apptScheduledCallback:function(){Modalytics.heap("track",["E-Commerce Flow | Summary Shown"]),so(l,d,{name:"E-Commerce Flow | Summary Shown"})},doneCallback:function(){Modalytics.heap("track",["E-Commerce Flow | Completed"]),so(l,d,{name:"E-Commerce Flow | Completed"},function(){history.pushState(null,null,`${modForm.opts.fullPageUrl}&refreshExp=true`),window.location=modForm.opts.resultsPage})}},O.src=`https://form.contractorappointments.com/js/embed-form.js?v=${(new Date).getTime()}`,document.body.appendChild(O)}}else if(w=c.consentIntegrationData.widgetUrl,modForm.opts.eCommerceVendorKeys.exclusive.angi.includes(d)||window.Sentry?.captureMessage("E-Commerce Widget | Not matched with Angi",g),modForm.opts.eCommerceVendorKeys.exclusive.angi.includes(d)){const x=document.createElement("div"),N=document.createElement("script"),q="https://request.angi.com/hcc/dropin-112a615a05e36545.js";x.className="dropin-container",T.appendChild(x),fetch(q).then(e=>{e.ok||(window.Sentry?.captureMessage(`E-Commerce Widget | Script Response Failed ${q} | ${w}`,g),Modalytics.heap("track",["E-Commerce Widget | Script Error",{error:`Response Error: ${e.status} ${e.statusText}`}]),so(l,d,{name:"E-Commerce Widget | Script Error"})),N.src=q,N.onload=function(){window.initializeDropIn?(window.initializeDropIn(w),Modalytics.heap("track",["E-Commerce Widget | Initialize Drop In Successful"]),so(l,d,{name:"E-Commerce Widget | Initialize Drop In Successful"})):window.Sentry?.captureMessage(`E-Commerce Widget | Undefined initializeDropIn | ${w}`,g)},document.body.appendChild(N)}).catch(e=>{window.Sentry?.captureMessage(`E-Commerce Widget | Script Error ${q} | ${w}`,g),Modalytics.heap("track",["E-Commerce Widget | Script Error",{error:`Fetch Error: ${e}`}]),so(l,d,{name:"E-Commerce Widget | Script Error"})})}else{const D=document.createElement("iframe");D.src=w,T.appendChild(D)}if(modForm.opts.autoRedirectToTyOrSorryPage=!1,St(!1),vt(!1),modForm.opts.showExclusiveWidgetInStep){modForm.opts.form.classList.add("widget-visible"),qe(),A.setAttribute("aria-hidden","false");[modForm.opts.backButtons,modForm.opts.progressBar,modForm.opts.modQuoteButtonWrapper,E].forEach(function(e){e&&e.forEach(function(e){e.style.display="none"})})}else{[(0,Pe.I)().querySelectorAll("button"),modForm.opts.backButtons].forEach(function(e){e&&e.forEach(function(e){e.setAttribute("disabled","disabled")})});const R=C.querySelector('[data-close="dialog"]');function M(){C.close(),C.setAttribute("aria-hidden","true"),document.body.classList.remove("no-scroll"),history.pushState(null,null,`${modForm.opts.fullPageUrl}&refreshExp=true`),window.location=modForm.opts.resultsPage}C.show(),C.setAttribute("aria-hidden","false"),C.focus(),document.body.classList.add("no-scroll"),R&&R.addEventListener("click",function(){M()}),document.addEventListener("keydown",function(e){"Escape"===e.key&&M()})}Modalytics.heap("track",["E-Commerce Widget",{companyName:c.vendorDisplayName,pingToken:w,matchCriteria:"Exclusive (Widget)"}]),so(l,d,{name:"E-Commerce Widget"}),window.addEventListener("message",function(e){const t=e.data;if(t||window.Sentry?.captureMessage(`E-Commerce Widget | Undefined event.data | ${c.vendorDisplayName} | ${w}`,g),(modForm.opts.eCommerceVendorKeys.exclusive.angi.includes(d)||modForm.opts.eCommerceVendorKeys.exclusive.networx.includes(d))&&(t&&"pageState"===t.event&&"WidgetLoaded"===t.payload||"networx"===t.source&&t.payload&&t.payload.pageLoad)&&(Modalytics.heap("track",["E-Commerce Widget | Loaded",{companyName:c.vendorDisplayName,message:JSON.stringify(t)}]),so(l,d,{name:"E-Commerce Widget | Loaded"})),t&&"pageState"===t.event&&"ThankYou"===t.payload||"networx"===t.source&&t.payload&&t.payload.leadDone){const e=Object.keys(modForm.opts.eCommerceVendorKeys.exclusive).find(e=>modForm.opts.eCommerceVendorKeys.exclusive[e].includes(d))?.toLowerCase();
1e&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+`widget=${e}`,p&&(modForm.opts.resultsPage+="&wholesale=true")),Modalytics.heap("track",["E-Commerce Widget | Completed",{resultsPage:modForm.opts.resultsPage}]),so(l,d,{name:"E-Commerce Widget | Completed"},function(){history.pushState(null,null,`${modForm.opts.fullPageUrl}&refreshExp=true`),window.location=modForm.opts.resultsPage})}})}else modForm.opts.eCommerceVendorKeys.exclusive.frontdoor.includes(d)&&!c.vendorLeadDeliveryToken&&(Modalytics.heap("track",["E-Commerce Flow | Missing Token"]),modForm.opts.sharedParam=`shared=${d}`,modForm.opts.isSharedMatch=!0)}}modForm.opts.showLoadingOverlay&&!modForm.opts.isExclusiveWidgetMatch?(vt("submitted"),setTimeout(function(){mt(i,r)},1e3)):mt(i,r)}else"function"==typeof modForm.opts.onGetMatchesBlocked&&0===this.status&&modForm.opts.onGetMatchesBlocked(),"function"==typeof o&&o(r,this.status,i)}),s.addEventListener("loadend",function(){(0,io.G)({formSubmitRequestCompleted:!0}),modForm.isSubmitting=!1,St(!1)}),s.addEventListener("error",function(){(0,io.G)({formSubmitRequestError:!0}),console.error("Something went wrong!"),(0,se.Q)(),H(),Modalytics.heap("track",["API Error | Showing Fallback Experience",{function:"submitFormDataToFormsServiceApi",status:`${this.status}|${this.responseText}`}])}),s.addEventListener("abort",function(){(0,io.G)({formSubmitRequestAborted:!0})}),s.addEventListener("timeout",function(){(0,io.G)({formSubmitRequestTimeOut:!0})})}}function T(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(modForm.opts.quadLinkHasBeenTransformed)return;let t={};const o=new XMLHttpRequest,r=Vt()+modForm.opts.trafficDetailsApi;o.open("POST",r),o.setRequestHeader("Content-Type","application/json"),o.send(JSON.stringify(modForm.opts.quadLinkData)),o.addEventListener("load",async function(){this.response&&(t={...t,...JSON.parse(this.response)},4===this.readyState&&200===this.status&&yt(t,e))}),o.addEventListener("error",function(){console.error("Something went wrong")})}function E(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if((0,io.G)({inValidateRecaptchaResponse:!0}),""===e)return void t(!1,"No token provided");const r={action:"validate_recaptcha",token:e},n=new XMLHttpRequest,i=(o?`https://${"production"===modUtils.getEnv()?"":"qa."}modernize.com`:"")+"/wp-admin/admin-ajax.php";(0,io.G)({reCaptchaURL:i}),n.open("POST",i),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.send(new URLSearchParams(Object.entries(r)).toString()),n.addEventListener("load",function(){if(this.response&&4===this.readyState&&200===this.status){(0,io.G)({reCaptchaSuccess:!0});const e=JSON.parse(this.response),o="string"==typeof e?JSON.parse(e):e,r=!0===o.success,n=r&&"error-codes"in o?o.errorCodes.toString():"";t(r,n)}}),n.addEventListener("error",function(e){const o=e.status+" "+e.responseText;console.log(e),(0,io.G)({reCaptchaError:!0}),t(!1,o)})}var L=o(3864);async function P(e){const t=modForm.opts.maskedPhoneFields?.[0];return t&&(0,g.vg)(t,"phone")&&await(0,h.C)(t),modForm.trestleAddress?(e.S1=modForm.trestleAddress,e.addressSource="Trestle"):(e.S1=modForm.opts.userLocation,e.addressSource="Default"),e}function I(e){(0,io.G)({inAddFallbackOwnHome:!0});return"no"===e.OwnHome&&(e.OwnHome="No"),-1===["Yes","No"].indexOf(e.OwnHome)&&(e.OwnHome="Yes",Modalytics.heap("track",["Homeowner Lead | Default Attribute",{attribute:"OwnHome"}])),e}var O=o(384);function x(){(0,io.G)({inBlockDuplicateSubmissionSameHeapSessionId:!0});const{heapSessionSubmitCookie:e,heapSessionId:t,initialTimestamp:o,expireInOneHour:r}=(0,Et.m)();let{resultsPage:n}=(0,Et.m)();if(null!==e){if(modForm.getTime>r)return;Modalytics.heap("track",["Duplicate Form Submit With Same Heap Session ID | ",{resultsPage:n}]),n.indexOf(modForm.opts.suppressConversionPixelParam)<=-1&&!modForm.opts.isExclusiveMatch&&(n+=(n.indexOf("?")<0?"?":"&")+modForm.opts.suppressConversionPixelParam);return modUtils.getCookie("duplicateSubmitFireCnvrsnPxl")||n.indexOf("ThankYou")>-1&&(window.location.href+="&ThankYou","undefined"!=typeof dataLayer&&window.dataLayer.push({event:"Lead Conversion Failed Redirects"}
1)),modUtils.setCookie(t,JSON.stringify({initialTimestamp:o,resultsPage:n})),modUtils.setCookie("duplicateSubmitFireCnvrsnPxl",!0),window.location.href=n,re(n),modForm.preventDuplicateSubmission=!0,!1}}var N=o(5743);async function q(e){e.stopImmediatePropagation(),e.preventDefault();const t=(0,Pe.I)();if(modForm.opts.zipFormSelectorsToSync.length&&"zip"===t.getAttribute("data-step-name")&&e.target.id!==modForm.opts.formId&&!(0,g.HK)(e.target)){const t=e.target.querySelector('input[name="zip"]');if(t)return void t.focus()}if(!(0,g.HK)(t))return void Le();let o=D();if(Ot(o),modForm.isCurrentStepLast())new Promise(function(e){let t={status:!0};modForm.opts.steps.forEach(async function(o,r){const n=o.querySelector(".step__extra");o.classList.contains("skipped")||n||(0,g.HK)(o)||(t={status:!1,step:o}),modForm.opts.steps.length-1===r&&e(t)})}).then(async e=>{if(!e.status){const t=e?.step;return $t(),De(t?.id),void Le()}Modalytics.gaSend({hitType:"event",eventCategory:"Homeowner Lead Form",eventAction:"Clicked Submit",eventLabel:"S3 Landing Page"},modForm.opts.gaTracker),o=modForm.opts.useContractorApi?nt(o):at(o),go(),modForm.opts.beforeSubmitAsyncCallback&&"function"==typeof modForm.opts.beforeSubmitAsyncCallback&&(o=await modForm.opts.beforeSubmitAsyncCallback(o).catch(()=>o)),ne(o)});else{(0,ie.h)();const e=modForm.opts.trackZip1ChangeDynamically?'input[name="zip"]':'input[name="zip"], input[name="zip1"]';let o=t.querySelectorAll(e)[0];const r=t.querySelectorAll(modForm.zipEditInput)[0];o&&modForm.opts.zipCode!==o?.value&&(modForm.retryZipValidation=!0),modForm.retryZipValidation&&(o=r&&(0,g.zN)(r)?r:modForm.opts.zipField[0]),o&&!modForm.isZipValid||modForm.retryZipValidation?(St(!0),(0,g.Hb)(o.value,function(e){St(!1),e.success?(e.data&&(K(e.data),(0,J.y)(e.data),modForm.opts.zipCode=e.data.zip,"undefined"!=typeof dataLayer&&window.Invoca&&window.dataLayer.push({zip_code:e.data.zip})),"zip1"===o.name?(modForm.opts.gettingLiveConsent&&F(modForm.opts.getConsentListingCallback),"function"==typeof modForm.opts.zip1FieldValidated&&modForm.opts.zip1FieldValidated(e.data)):"function"==typeof modForm.opts.zipCodeValidated&&modForm.opts.zipCodeValidated(e.data),qe()):((0,Xt.d)("Zip"),(0,ye.x)(o),Le())})):qe()}}function D(){(0,io.G)({inGetFormData:!0});const e=new FormData(modForm.opts.form),t={};for(const o of new Set(e.keys())){const r=e.getAll(o);t[o]=r.length>1?r:r[0]}const o={},r=modForm.opts.form.querySelectorAll("input[data-cro]");[...new Set(Array.from(r).map(e=>e.name).filter(Boolean))].forEach(t=>{const r=e.getAll(t).filter(e=>""!==(e||"").trim());r.length>0&&(o[t]=r.join(", "))});const n=modForm.opts.form.querySelectorAll(".skipped");if(n.length>0&&n.forEach(e=>{const r=e.getAttribute("data-step-name");r&&"UtilityProvider"!==r&&(delete o[r],delete t[r])}),0!==Object.keys(o).length&&(t.CROTag=JSON.stringify(o)),!t.homeowner||""===t.homeowner||"on"===t.homeowner){const e=modForm.opts.form.querySelector('input[type="checkbox"][name="homeowner"]');e&&e.length&&(t.homeowner=e.checked?"yes":"no")}return t}function R(){const e=D(),t=document.querySelector('[name="OwnHome"]');return t&&"checkbox"===t.type?t.checked?"Yes":"No":"Authorized"===e.OwnHome?"Yes":e.OwnHome}var M=o(872);function H(){const e=modForm.opts.formData,t=modForm.opts.form.querySelector(".swiper-slide-active .step-inner"),o=document.querySelectorAll(".form-btns, .form-bts, .controls, .findpros-form__btns"),r=document.querySelectorAll(".secure-text, .step__secure-text"),n=document.querySelector(".form-tcpa"),i=function(e){const t=st.X.find(t=>t.serviceCodes.includes(e));return t&&t.modernizeTradePageSlug?`/${t.modernizeTradePageSlug}/`:"/"}(e.service),s=window.location.search,a=`https://modernize.com${i}${s}${s?"&":"?"}zip=${e.zip}&${modForm.opts.suppressConversionPixelParam}#open-findpros-modal`,c=document.querySelector(".header__call-number"),d=c?.textContent;modForm.opts.form.classList.add(modForm.opts.formLoadingCls),modForm.opts.backButtons&&modForm.opts.backButtons.forEach(function(e){e.style.display="none"}),modForm.opts.progressBar&&modForm.opts.progressBar.forEach(function(e){e.style.display="none"}),o&&o.forEach(function(e){e.style.display="none"}),r&&r.forEach(function(e){e.style.display="none"}),n&&(n.style.display="none"),modForm.opts.form.querySelector(".swiper-wrapper").style.alignItems="center",modForm.opts.form.classList.remove(modForm.opts.formLoadingCls);const m=modForm.opts.isLeadWidget?"_blank":"_self";t.innerHTML=`<div class="duplicate-submission" style="background-color:#fff;display:flex; flex-direction:column;justify-content:center;align-items:center;min-height:450px;padding:40px 10px;text-align:center;"><h3 style="color:#545253;font-size:22px;font-weight:bold;line-heigh:1.25;margin:30px auto 0;">Oops, Looks Like There Was a Small Error!</h3><p style="color:#545253;display:block;font-size:15px;font-weight:400;line-height:1.35;margin:20px auto 30px;">It seems like we encountered a hiccup during your submission, but no worries — youâre almost there!<br>Weâll redirect you to Modernize.com to complete your request.</p><a class="btn ${modForm.opts.addAccessibilityUpdates?"btn--primary":"btn-primary"}" id="double-submission-fallback-button" href="${a}" target="${m}" style="height:auto;max-width:fit-content;line-height:normal;width:100%;padding:14px 20px 15px;margin:0 auto 30px;min-width:unset;"><span class="btn__text" style="visibility:visible;font-size: 18px">Continue to Modernize</span></a>
1${modForm.opts.phoneAssignmentConfig.response||c?`<p style="color:#545253;font-size:15px;font-weight:400;margin:0 auto 30px;">For fastest service, call <a id="double-submission-fallback-call-button" href="tel:${modForm.opts.phoneAssignmentConfig.response?modForm.opts.phoneAssignmentConfig.response.hrefPhoneNumber:d.replace(/\D/g,"")}" style="color:inherit;text-decoration:underline;">${modForm.opts.phoneAssignmentConfig.response?modForm.opts.phoneAssignmentConfig.response.displayNumber:d}</a> now!</p>`:""}</div>`}function z(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{};const o=modForm.opts.form.querySelectorAll("button");modForm.opts.formSwiperInstance&&(modForm.opts.formSwiperInstance.on("slideChange",t=>{o.forEach(function(e){e.disabled=!0}),e(t)}),modForm.opts.formSwiperInstance.on("slideChangeTransitionEnd",e=>{const r=(0,Pe.I)();o.forEach(function(e){e.disabled=!1}),r&&(r.setAttribute("aria-hidden","false"),r.focus({preventScroll:!0})),modForm.opts.form.querySelectorAll(".step").forEach(e=>{e!==r&&e.setAttribute("aria-hidden","true")}),t(e),modForm.opts.formSwiperInstance.update()}))}function U(){modForm.opts.formTyCls="form--ty",modForm.opts.submitData={},modForm.opts.sessionObj={},modForm.opts.landingPage=modUtils.getLandingPage(),modForm.opts.referrerCookieName="original_referrer",modForm.opts.referrerCookieExpiration=43200,(0,oe.O)(),Y()}function j(){modForm.opts.form.addEventListener("submit",function(e){e.preventDefault();const t=(0,Pe.I)(),o=Array.from(modForm.opts.steps).indexOf((0,Pe.I)()),r=t.querySelector('input[name="companyZip"]');let n;(0,g.HK)(t)?r&&!modForm.isZipValid?(St(!0),(0,g.Hb)(r.value,function(e){St(!1),e.success?(n=D(),n=nt(n,o),ne(n)):((0,Xt.d)("Zip"),(0,ye.x)(r),Le())})):(n=D(),n=nt(n,o),ne(n)):Le()})}var _=o(732),B=o(2845),V=o(4006);function $(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const t=modForm.opts.form;let o=[];const r=modForm.opts.zipFormSelectorsToSync.length;r&&(o=document.querySelectorAll(modForm.opts.zipFormSelectorsToSync)),e?(t.addEventListener("submit",q),r&&o.forEach(e=>{e.addEventListener("submit",modForm.formSubmitCallback)})):(t.removeEventListener("submit",q),r&&o.forEach(e=>{e.removeEventListener("submit",q)}))}function G(){if(window.Loader&&(modForm.opts.showLoadingOverlay||modForm.opts.showRedirectOverlay)&&!modForm.opts.isLoaderLoaded){(0,io.G)({initiatingLoader:!0});const e=modForm.opts.isBranded??!1,t=(0,rt.q)(window.Loader.getLoaderHTML(!e&&!modForm.showinterstitialLoader));modForm.opts.appendOverlayToElem.append(t),modForm.opts.isLoaderLoaded=!0}}var W=o(5895);function Q(){let e='<div class="secure-text secure-text--dark"><b>Your information is secure</b></div>';modForm.opts.useEncryptedSecureText&&(e='<div class="secure-text secure-text--dark secure-text--italics"><b>Encrypted form, free and competitive quotes</b></div>
1',(0,g.Bu)()||(e='<div class="secure-text secure-text--dark secure-text--italics"><b>Encrypted form, free and competitive quote</b></div>')),modForm.opts.secureTextStepsSelector.forEach(function(t){let o=document.querySelector(`${t} .btn`);modForm.opts.useEncryptedSecureText&&(o=document.querySelector(t)),o&&("below-cta"===modForm.opts.secureTextPosition?o.insertAdjacentHTML("afterend",e):o.insertAdjacentHTML("beforebegin",e))})}function K(e){["city","state"].forEach(function(t){e[t]&&(0,ve.v)(t,e[t])}),document.querySelectorAll('input[name="zip"], input[name="zip1"]').forEach(function(t){t.value=e.zip})}var J=o(1027);function Y(){const e=modUtils.getUrlParamsToObject(),t=e?.trade?.toLowerCase(),o=modForm.opts.form.querySelector('select[name="primaryProjectClass"]');if(t&&o){const e=(0,Je.Z)(t.replace(/-/g," ")).trim();o.querySelectorAll("option").forEach(function(o){o.text!==e&&o.getAttribute("data-qs-trade")!==t||(o.selected=!0)})}}function Z(){Object.keys(modForm.opts.getVars).forEach(function(e){modForm.opts.ignoreQueryParams.includes(e)||le(e,modForm.opts.getVars[e]),"zip"===e&&(le("zip1",modForm.opts.getVars[e]),le("inertZip",modForm.opts.getVars[e])),modForm.opts.prepopulateUserInfo&&(0,At.M)(e,modForm.opts.getVars[e])}),void 0!==modForm.opts.getVars.zip&&(modForm.opts.prepopulateUserInfo||(0,g.Hb)(modForm.opts.getVars.zip,function(e){e.success&&e.data&&(K(e.data),(0,J.y)(e.data),"function"==typeof modForm.opts.zipCodeValidated&&modForm.opts.zipCodeValidated(e.data))}))}var X=o(8352);const ee=function(e){Object.keys(e).length&&Object.entries(e).forEach(function(e){let[t,o]=e;if(o){const e=modForm.opts.form;(e.querySelectorAll(`input[name=${t}], select[name=${t}]`).length?e.querySelectorAll(`input[name=${t}], select[name=${t}]`):e.querySelectorAll(`input[name=${(0,X.Vp)(t)}], select[name=${(0,X.Vp)(t)}]`)).forEach(function(e){e&&("text"===e.type&&(o=o.replace(/\s\s+/gi," ")),"radio"!==e.type||e.value!==o&&!o.includes(e.value)?"OwnHome"===e.name&&"checkbox"===e.type?(e.checked="yes"===o.toLowerCase(),e.value=o):("select-one"===e.type||["text","email","tel","hidden"].includes(e.type))&&(e.value=o):e.checked=!0)})}})};var te=o(6800),oe=o(6824);function re(e){(0,io.G)({inShowFallbackForDuplicateSubmission:!0});const t=document.querySelector(".swiper-slide-active .step-inner"),o=document.querySelector(".form-btns"),r=document.querySelector(".form-tcpa"),n=modForm.opts.landingPage.includes("bestcompany")?"https://bestcompany.com/":"https://modernize.com/",i=window.location.search,s=e||`${n}${i}`;setTimeout(function(){modForm.opts.backButtons&&modForm.opts.backButtons.forEach(function(e){e.style.display="none"}),modForm.opts.progressBar&&modForm.opts.progressBar.forEach(function(e){e.style.display="none"}),o&&(o.style.display="none"),r&&(r.style.display="none"),t.innerHTML='<div style="padding:0 10px;text-align:center;"><h3 style="color:#545253;font-size:22px;font-weight:bold;margin:30px auto 0;">Oops!</h3><p style="color:#545253;display:block;font-size:15px;font-weight:300;line-height:1.5;margin:20px auto 30px;">It looks like you just submitted your <br>information a moment ago.</p><a class="btn '+(modForm.opts.addAccessibilityUpdates?"btn--primary":"btn-primary")+'" id="double-submission-fallback-button" href="'+s+'" style="max-width:280px;"><span class="btn__text" style="visibility:visible;">See My Matches</span></a></div>',Modalytics.heap("track",["Showing Fallback - Duplicate Submission"])},500)}async function ne(e){G(),(0,io.G)({inSubmitForm:!0});if(new MutationObserver(Ke.bind(modForm)).observe(modForm.mutationObserverTarget,modForm.mutationObserverConfig),modForm.opts.formSubmittingCallback&&"function"==typeof modForm.opts.formSubmittingCallback&&(e=modForm.opts.formSubmittingCallback(e),(0,io.G)({formSubmittingCallbackCalled:!0})),e){if(Jt(e),modForm.opts.ignoreDuplicateSubmissionBlocker||x(),!modForm.preventDuplicateSubmission&&(St(!0),modForm.opts.showLoadingOverlay)){(0,io.G)({showLoadingOverlay:!0});const e=document.getElementsByClassName("loader")[0];e?(e.classList.add("loader--visible"),e.setAttribute("aria-hidden","false"),e.focus(),Modalytics.heap("track",["Loader Overlay Initiated"])):Modalytics.heap("track",["Loader Not Found"]),vt("submitting")}if(modForm.opts.useTrestleApiForAddressLookup&&(e=await P(e)),modForm.opts.validateRecaptcha){const t="contractor"!==modForm.opts.vertical,o=!document.location.href.includes("modernize")&&!document.location.href.includes("quinstreet.net");if(t&&!modUtils.getCookie("original_referrer")&&!modForm.opts.isOrganicPreferredMatch)return void E(e.recaptcha,function(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!t)return Modalytics.heap("track",["Token Error",{token:"reCaptcha",errorMessage:o}]),void ut();Modalytics.heap("track",["Token Success",{token:"reCaptcha"}]),modForm.opts.useContractorApi?k():A(e)},o)}modForm.preventDuplicateSubmission||(modForm.opts.useContractorApi?k():A(e))}else(0,io.G)({noFormData:!0})}var ie=o(4017),se=o(6136),ae=o(5422),ce=o(9612);function de(){const e={session:"",sessionToken:"",usid:"",landingPage:modForm.opts.landingPageNoQuery,tcpa:1,tcpaText:modForm.opts.tcpaCopy&&modForm.opts.tcpaCopy.length?Array.from(modForm.opts.tcpaCopy).map(e=>(0,Ze.i)(e).trim().replace(/(<([^>]+)>)/gi,"").replace(/\n/g,"")):""};Object.keys(e).forEach(t=>{le(t,e[t])})}function me(){const e={token:"",contractorId:"",landingPage:modUtils.getLandingPage(),elqCookieWrite:"
10",tcpa:1,tcpaText:modForm.opts.tcpaCopy&&modForm.opts.tcpaCopy.length?Array.from(modForm.opts.tcpaCopy).map(e=>e.innerText.trim()):""};Object.keys(e).forEach(t=>{le(t,e[t],!0)})}function ue(){const e={HomePhoneConsentLanguage:modForm.opts.tcpaCopy&&modForm.opts.tcpaCopy.length?Array.from(modForm.opts.tcpaCopy).map(e=>(0,Ze.i)(e).trim().replace(/(<([^>]+)>)/gi,"").replace(/\n/g,"")):""};Object.keys(e).forEach(t=>{le(t,e[t])})}function le(e,t,o){if(modForm.opts.form.querySelector('input[name="'+e+'"]'))o||(0,ve.v)(e,t);else{const o=document.createElement("input");o.type="hidden",o.id=e,o.name=e,o.value=t,modForm.opts.form.appendChild(o)}}function pe(){const e=modForm.opts.form.querySelector('input[name="zip"]');e&&(e.addEventListener("focus",function(){modForm.opts.steps.forEach(function(e){e.classList.contains(modForm.opts.stepActiveCls)&&e.classList.add("autofill")})}),e.addEventListener("blur",function(){modForm.opts.steps.forEach(function(e){e.classList.remove("autofill")}),(0,be.c)(modForm.opts.maskedPhoneFields)}))}function fe(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=modForm.opts.form;modForm.opts.extraQuestionBlock&&modForm.opts.extraQuestionInputs.forEach(e=>{e&&e.removeAttribute("data-required")}),t.querySelectorAll('input[type="radio"]').forEach(function(t){e.includes(t.name)||(t.addEventListener("click",function(e){e.stopImmediatePropagation(),modForm.radioButtonClickedByMouse&&(Oe(this),modForm.radioButtonClickedByMouse=!1)}),modForm.opts.extraQuestionBlock&&t.addEventListener("keypress",function(e){e.stopImmediatePropagation(),13!==e.keyCode&&"Enter"!==e.key||Oe(this)}))})}var ge=o(3517);function he(){if(!modForm.opts.zip1Field.length)return!1;let e,t=!1;modForm.opts.zip1Field.forEach(function(o){o.addEventListener("keyup",function(o){const r=this;5===this.value.length&&this.value!==e&&!t&&"Enter"!==o.key&&(e=this.value,modForm.retryZipValidation=!0,t=!0,(0,g.Hb)(r.value,function(o){t=!1,o.success?(o.data&&(K(o.data),(0,J.y)(o.data)),e=r.value,r.closest(".form-group").classList.remove(modForm.opts.fieldErrorCls),modForm.opts.zipCode=o.data.zip,modForm.opts.gettingLiveConsent&&F(modForm.opts.getConsentListingCallback),"function"==typeof modForm.opts.zip1FieldValidated&&modForm.opts.zip1FieldValidated(o.data)):r.closest(".form-group").classList.add(modForm.opts.fieldErrorCls)},!0,function(){t=!1}))})})}function Fe(){if(!modForm.opts.zipField.length)return!1;let e,t=!1,o=modForm.opts.zipField;const r=modForm.opts.zipFormSelectorsToSync.length;if(r){o=[];const e=modForm.opts.form.querySelector('input[name="zip"]');e&&o.push(e),modForm.opts.zipFormSelectorsToSync.forEach(function(e){o.push(document.querySelector(`${e} input[name="zip"]`))})}o.forEach(function(n){n.addEventListener("keyup",function(n){const i=this;5===this.value.length&&!t&&"Enter"!==n.key&&this.value!==e&&(e=this.value,r&&o.forEach(e=>{e.value=i.value}),t=!0,(0,g.Hb)(i.value,function(e){if(t=!1,e.success?(e.data&&(K(e.data),(0,J.y)(e.data)),r?o.forEach(e=>{e.closest(".form-group").classList.remove(modForm.opts.fieldErrorCls)}):i.closest(".form-group").classList.remove(modForm.opts.fieldErrorCls),modForm.opts.zipCode=e.data.zip,"function"==typeof modForm.opts.zipCodeValidated&&modForm.opts.zipCodeValidated(e.data)):r?o.forEach(e=>{e.closest(".form-group").classList.add(modForm.opts.fieldErrorCls)}):i.closest(".form-group").classList.add(modForm.opts.fieldErrorCls),"true"===i.getAttribute("data-geolocation-loaded")&&!i.hasAttribute("data-geo-zip-overridden")){const e=window.geolocation?.source,t=e?e.charAt(0).toUpperCase()+e.slice(1):"";Modalytics.heap("track",["ChangeZip",{geoAPIGroup:t}]),i.setAttribute("data-geo-zip-overridden","true")}},!0,function(){t=!1}))})})}var ye=o(5445),be=o(4822),Se=o(4222),ve=o(3029);function we(){modForm.getCurrentStep()?.querySelectorAll(modForm.opts.consentCaptureInputChangeSelector)?.forEach(e=>{e.addEventListener("input",function(e){e.stopImmediatePropagation(),F(modForm.opts.getConsentListingCallback)})})}const Ce=modUtils.debounce(function(e){if("radio"===e.getAttribute("type")){const t=e.closest("fieldset").querySelector('input[type="radio"]:first-child');t.setAttribute("aria-invalid","false"),t.removeAttribute("aria-describedby")}else e.setAttribute("aria-invalid","false"),e.removeAttribute("aria-describedby")},0);function ke(e){if(!e)return!1;const t=e.parentElement.closest("."+modForm.opts.errorParentCls);if(t){t.classList.remove(modForm.opts.fieldErrorCls);const o=e?.closest(".step")?.classList?.contains(modForm.opts.stepActiveCls);modForm.opts.addAccessibilityUpdates&&o&&Ce(e)}else e.parentElement.classList.remove(modForm.opts.fieldErrorCls)}var Ae=o(8903),Te=o(7529);function Ee(){if(modForm.opts.getVars.startStep&&""!==modForm.opts.getVars.startStep){const e=modForm.opts.getVars.startStep;document.getElementById(e)&&De(e)}}function Le(){const e=(0,Pe.I)().querySelector("."+modForm.opts.fieldErrorCls);if(e){const t=e.querySelector('select, input[type="text"], input[type="tel"], input[type="email"]');!t||document.querySelector(".step.left")||document.querySelector(".step.right")||t.focu
1s()}}var Pe=o(5608),Ie=o(425);function Oe(e){const t=(0,Pe.I)(),o="step--one-window-selected";function r(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return modForm.opts.extraQuestionBlockTriggers.some(o=>t?e.name===o.name&&e.value===o.value:e.name===o.name)}if(!modForm.opts.formSwiperInstance||!modForm.opts.formSwiperInstance?.animating)if(modForm.opts.extraQuestionBlock&&r(e))if(r(e,!0))modForm.opts.extraQuestionBlock.style.display="block",modForm.opts.extraQuestionInputs.forEach(e=>{e&&e.setAttribute("data-required","nonempty")}),"NumberOfWindows"===e.name&&(t.classList.add(o),Modalytics.heap("track",["Open To Multiple Windows | Question Shown"])),!0===modForm.opts.formSwiperInstance.params.autoHeight&&modForm.opts.formSwiperInstance.updateAutoHeight();else{if(modForm.opts.extraQuestionBlock.style.display="none",modForm.opts.extraQuestionInputs.forEach(e=>{e&&(e.checked=!1,e.removeAttribute("data-required"))}),ke(modForm.opts.extraQuestionInputs[0]),"NumberOfWindows"===e.name&&t.classList.remove(o),!0===modForm.opts.formSwiperInstance.params.autoHeight&&modForm.opts.formSwiperInstance.updateAutoHeight(),!(0,g.HK)(t))return;qe()}else{if("MultipleWindows"===e.name&&Modalytics.heap("track",[`Open To Multiple Windows | Clicked Option ${e.value}`]),!(0,g.HK)(t))return;qe()}}var xe=o(1974),Ne=o(9258);function qe(){const e=(0,Pe.I)().nextElementSibling;if(e&&(e.classList.contains("step")||e.hasAttribute("data-bind")&&"step"===e.getAttribute("data-bind"))){const t=e.getAttribute("id");if(!modForm.opts.ignoreDuplicateSubmissionBlocker&&modForm.includeDuplicateSubmissionExperience){const e=(0,Et.m)();if(null!==e.heapSessionSubmitCookie&&modForm.getTime<e.expireInOneHour)return(0,_.q)(e),!1}go(),modForm.opts.hashStepTracking&&$t(t),modForm.opts.useAutofill&&modForm.opts.steps.forEach(function(e){e.classList.remove("autofill")}),(0,b.d)(),De(t),e.hasAttribute("data-step-name")&&"widget"===e.getAttribute("data-step-name")&&(0,se.Q)(),(0,g.x6)()&&(0,qt.X)()}}async function De(e){const t=(0,Pe.I)().getAttribute("id");if(modForm.opts.stepChangingCallback&&"function"==typeof modForm.opts.stepChangingCallback&&(e=await modForm.opts.stepChangingCallback(t,e)),modForm.opts.useGlobalSkipSteps&&(e=je(t,e,modForm.opts.skipStepsConfig)),modForm.opts.useShowStepConditionally&&(e=Be(t,e)),!(e=We(t,e)))return;(0,Zt.o)(e);const o=modForm.opts.form.querySelector("#"+e),r=o.dataset.stepName??"";r&&(document.body.dataset.activeStepName=r),(0,Ie.h)(),o.classList.add(modForm.opts.stepActiveCls),modForm.opts.addAccessibilityUpdates&&!modForm.opts.useGlobalInitCarousel&&o.setAttribute("aria-hidden","false"),modForm.opts.isVite&&modForm.opts.scrollTopOnStepChange&&window.scrollTo({top:0,behavior:"smooth"});const n=parseInt(e.slice(4));if(modForm.opts.addAccessibilityUpdates&&modForm.opts.formSwiperInstance){const e=modForm.opts.formSwiperInstance.el;n>1?(e.setAttribute("tabindex","-1"),modForm.opts.toggleFormInProgressClass&&document.body.classList.add(modForm.opts.formInProgressCls)):(e.setAttribute("tabindex","0"),modForm.opts.toggleFormInProgressClass&&document.body.classList.remove(modForm.opts.formInProgressCls))}modForm.opts.showRecaptchaForDirectTraffic&&((0,g.x6)()?""!==modForm.opts.quadLinkData.defaultQuad&&(modForm.opts.usingDefaultQuad=!0,(0,Te.wA)(n)):(0,g.O)()&&(""===modForm.opts.quadLinkData.defaultQuad||modForm.opts.recaptchaContainer&&0!==modForm.opts.recaptchaContainer.children.length||(modForm.opts.usingDefaultQuad=!0,(0,Te.wA)(n)))),modForm.opts.stepChangedCallback&&"function"==typeof modForm.opts.stepChangedCallback&&await modForm.opts.stepChangedCallback(t,e),modForm.opts.vertical&&modForm.opts.fetchAndFormatConsentListings&&n===modForm.opts.steps.length-1&&F(modForm.opts.getConsentListingCallback),modForm.opts.fetchAndFormatConsentListings&&modForm.opts.rerunConsentSearchesOnInputChange&&(0,g.x6)()&&we(),modForm.opts.gettingLiveConsent&&(0,g.O)()&&!modForm.opts.consentRequestId&&Modalytics.heap("track",["Consent Searches | Not Available on Last Step"]),window.innerWidth<768&&(0,Ve.B)(),oo();const i=D();
1i&&i.xxTrustedFormToken&&!modForm.opts.isTfTokenStampedInHeap&&((0,io.G)({tfToken:i.xxTrustedFormToken}),modForm.opts.isTfTokenStampedInHeap=!0),(0,co.N)(),Modalytics.heap("track",["Page Visited"])}function Re(){const e=modForm.opts.form.querySelectorAll("."+modForm.opts.fieldErrorCls);if(e.length){const t=e[0].parentElement.closest(modForm.opts.stepsSelector),o=t.getAttribute("id"),r=e[0].querySelector("input").getAttribute("name");t&&(De(o),Modalytics.heap("track",["Step Shown with Validation API Error | "+o+" "+r,{}]))}}function Me(){window.onhashchange=function(e){let t,o;if(e.preventDefault(),modForm.opts.useStepNameHash){t=void 0!==e.oldURL&&e.oldURL.split("#")[1]||"1",o=void 0!==e.newURL&&e.newURL.split("#")[1]||"1";const r=document.querySelector(`[data-step-name="${t}"]`),n=document.querySelector(`[data-step-name="${o}"]`);n&&(o=n.id.slice(4)),r&&(t=r.id.slice(4))}else t=void 0!==e.oldURL&&e.oldURL.split("#q")[1]||"1",o=void 0!==e.newURL&&e.newURL.split("#q")[1]||"1";if(t!==o){const e=(0,Pe.I)();let r;t>o&&e.previousElementSibling?r=e.previousElementSibling.getAttribute("id"):t<o&&e.nextElementSibling&&(r=e.nextElementSibling.getAttribute("id")),r&&De(r)}t=o}}function He(){const e=(0,Pe.I)().previousElementSibling;if(e&&(e.classList.contains("step")||e.hasAttribute("data-bind")&&"step"===e.getAttribute("data-bind"))){const t=e.getAttribute("id");modForm.opts.hashStepTracking?($t(t),De(t)):De(t)}}var ze=o(6813),Ue=o(1913);function je(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t;const n=D(),i=document.querySelector(`#${t}`).getAttribute("data-step-name"),s=new Set;return Object.keys(o).length&&Object.keys(o).some(a=>{if(a===i&&o[a]){o[a].map(e=>{const[t]=Object.keys(e);let o=!1;o=e[t].includes(n[t]),o&&s.add(o)});const i=document.querySelector(`[data-step-name=${a}]`);1===s.size&&s.has(!0)?(i.classList.add("skipped"),modForm.opts.fetchAndFormatConsentListings&&modForm.opts.steps.length-Array.from(modForm.opts.steps).indexOf(i)===2&&F(modForm.opts.getConsentListingCallback),r=e===(0,Ue.D)(t)?(0,ze.v)(t):(0,Ue.D)(t)):i.classList.remove("skipped")}}),s.has(!0)&&Object.keys(o).includes(document.querySelector(`#${r}`).getAttribute("data-step-name"))?je(t,r,o):r}function _e(e){const t=modForm.opts.form;if(!t||!e)return!0;const o=t.querySelector("#"+e);if(!o)return!0;const r=o.getAttribute("data-step-name"),n=modForm.opts.conditionalShowStepInputs;if(!n||!n.length)return!0;const i=n.filter(e=>function(e,t){return!(!e||!t)&&e.split(",").some(e=>e.trim()===t)}(e.getAttribute("data-show-step"),r));return 0===i.length||i.some(e=>e.checked)}function Be(e,t){if(!t)return t;const o=e===(0,Ue.D)(t);for(;t&&!_e(t);){const e=modForm.opts.form.querySelector("#"+t);e&&(e.classList.add("skipped"),modForm.opts.fetchAndFormatConsentListings&&modForm.opts.steps.length-Array.from(modForm.opts.steps).indexOf(e)===2&&F(modForm.opts.getConsentListingCallback));const r=o?(0,ze.v)(t):(0,Ue.D)(t);if(!r)return;t=r}const r=modForm.opts.form.querySelector("#"+t);return r&&r.classList.contains("skipped")&&r.classList.remove("skipped"),t}var Ve=o(4623),$e=o(7343),Ge=o(9928);function We(e,t){if(!t)return t;const o=e===(0,Ue.D)(t),r=modForm.opts.fetchAndFormatConsentListings?Array.from(modForm.opts.steps):null;for(;t;){const e=modForm.opts.form.querySelector(`#${t}[data-hide-step]`);if(!e)break;e.classList.add("skipped"),r&&r.length-r.indexOf(e)===2&&F(modForm.opts.getConsentListingCallback);const n=o?(0,ze.v)(t):(0,Ue.D)(t);if(!n)return;t=n}const n=modForm.opts.form.querySelector("#"+t);return n&&n.classList.contains("skipped")&&n.classList.remove("skipped"),t}var Qe=o(3313);function Ke(e){(0,io.G)({inSubscribeToNonTYPMutations:!0}),e.some(e=>{if("attributes"===e.type&&~e.target.className.indexOf("gtm-aio-complete"))return Modalytics.heap("track",["Mutation Observer redirect"]),clearTimeout(window.timeOutId),!modForm.opts.autoRedirectToTyOrSorryPage||(window.Loader&&modForm.opts.showRedirectOverlay?(window.Loader.showRedirectAnimation(),Modalytics.heap("track",["Loader Visible - Transferring to Modernize"]),setTimeout(function(){setTimeout(function(){window.location.href=modForm.projexURL},500),document.body.classList.add("submitted")},2500)):(document.body.classList.add("submitted"),setTimeout(function(){window.location.href=modForm.projexURL},500)),!0)})}var Je=o(4171),Ye=o(8762),Ze=o(6954),Xe=o(4186),et=o(9601);function tt(e){(0,io.G)({inMapServiceSpecificAttributes:!0});const t=D();function o(o){if((0,io.G)({inGetAttributeValue:!0}),modForm.opts.form&&o)switch(o){case"OwnHome":modForm.opts.serviceSpecificAttributes[o]=R();break;case"CommercialLocation":modForm.opts.serviceSpecificAttributes.CommercialLocation="Homerent"===t.CommercialLocation?"Home":t.CommercialLocation,"HOME_SECURITY"!==e||t.OwnHome&&""!==t.OwnHome.trim()||(modForm.opts.serviceSpecificAttributes.OwnHome="Homerent"!==t.CommercialLocation?"Yes":"No");break;case"HVACProjectScope":modForm.opts.serviceSpecificAttributes.HVACProjectScope="Repair"===t.HVACProjectScope&&"Yes"===t.ReadyToReplace?"Install":t.HVACProjectScope;break;case"HVACInterest":if(modForm.opts.serviceSpecificAttributes.HVACInterest=t.HVACInterest.replace(" Heat Pump",""),["Central Heating","Boiler/Radiator"].includes(modForm.opts.serviceSpecificAttributes.HVACInterest)){const e=modForm.opts.serviceSpecificAttributes.HVACInterest.replace(" ","").replace("/Radiator","System");modForm.opts.serviceSpecificAttributes[`${e}${modForm.opts.serviceSpecificAttributes.HVACProjectScope}Type`]=t.BoilerHeatingInstallRepairType}modForm.opts.serviceSpecificAttributes.HVACInterest=`${modForm.opts.serviceSpecificAttributes.HVACProjectScope} ${modForm.opts.serviceSpecificAttributes.HVACInterest}`;break;case"NumberOfWindows":modForm.opts.serviceSpecificAttributes.NumberOfWindows="1"===t.NumberOfWindows&&"Yes"===t.MultipleWindows?"3-5":t.NumberOfWindows;break;case"ConcreteProjectScope":modForm.opts.serviceSpecificAttributes.ConcreteProjectScope="CONCRETE_FOUNDATION"===t.service?"Repair":t.ConcreteProjectScope;break;case"RoofingPlan":{const e=modForm.opts.roofingPlanOptions,o=t.RoofingProjectScope;modForm.opts.serviceSpecificAttributes.RoofingPlan=o&&o in e?e[o]:e.Replace;break}default:if(!t[o])return;modForm.opts.serviceSpecificAttributes[o]=Array.isArray(t[o])?JSON.stringify(t[o]):t[o]}}for(const t of st.X)if(t.serviceCodes.includes(e)){Object.keys(modForm.opts.serviceSpecificAttributes).length&&(modForm.opts.serviceSpecificAttributes={}
1),t.requiredAttributes.forEach(e=>{o(e)});const e=[...new Set(Array.from(modForm.opts.form.querySelectorAll("[data-hb]")).filter(e=>!e.closest(".skipped")).map(e=>e.name).filter(Boolean))],r=Array.isArray(t.homebuddyAttributes)?[...t.homebuddyAttributes,...e]:e;r.length&&r.forEach(e=>{o(e)})}}var ot=o(4741),rt=o(8410);function nt(e,t){if(0===t){const t=modUtils.getSupportedTrackingParams();e.primaryProjectClass=(0,et.V)(e.primaryProjectClass),modUtils.heapCookie&&modUtils.heapCookieData&&Object.keys(modUtils.heapCookieData).length&&Object.keys(modUtils.heapCookieData).forEach(function(o){t.indexOf(o)>-1&&(e[o]=modUtils.heapCookieData[o])});const o=(0,Tt.f)();if(""!==o&&(e.elqCustomerGUID=o),e.xxTrustedFormToken){const t=e.xxTrustedFormToken.match(/([A-Za-z0-9]{40})/);null!==t&&void 0!==t[0]&&(e.certificationType="TrustedForm",e.certificationToken=t[0])}e.clientReferrerSource=modUtils.getCookie(modForm.opts.referrerCookieName)}return e=(0,Ye.m)(e,t)}var it=o(5281),st=o(1375);function at(e){let t={};const o=modForm.opts.form,r={FN:"firstName",LN:"lastName",HP:"homePhone",EM:"email",S1:"address",CT:"city",SP:"state",PC:"zip",OwnHome:"homeowner",leadid_token:"leadToken",TrustedFormToken:"xxTrustedFormToken"},n=modForm.opts.quadLinkParams;if(0!==Object.keys(n).length)for(const e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);else if(modUtils.getUrlParamsToObject().hasOwnProperty("tagID")){const{tagID:e}=modUtils.getUrlParamsToObject();t.tagID=e}else t.tagID="production"===modUtils.getEnv()?modForm.opts.tagIDLive:modForm.opts.tagIDTest;if(e.CROTag&&void 0!==e.CROTag){const t=JSON.parse(e.CROTag);t.MultipleWindows&&"Yes"===t.MultipleWindows&&"1"===e.NumberOfWindows&&(e.NumberOfWindows="3-5")}if(window.activeCampaignData&&(t.TestID=window.activeCampaignData["Test ID"],t.VariationName=window.activeCampaignData["Variation Name"]),modUtils.heapCookie&&(t.HeapSessionID=modUtils.heapCookieData.sessionId),t.HeapIdentity=window.heap?.identity||"No Heap Identity",Object.keys(r).forEach(function(o){e[r[o]]&&(t[o]=e[r[o]],delete e[r[o]])}),e.service=(0,Xe.S)(e),e.CROTag&&void 0!==e.CROTag){let t;try{t=JSON.parse(e.CROTag)}catch(e){t=null}if(t){const o=Object.keys(t),r=st.X.find(t=>t.serviceCodes.includes(e.service)&&t.homebuddyAttributes?.some(e=>o.includes(e)));r&&(r.homebuddyAttributes.forEach(e=>{delete t[e]}),Object.keys(t).length?e.CROTag=JSON.stringify(t):delete e.CROTag)}}["session","sessionToken","usid","landingPage","tcpa","tcpaText","xxTrustedFormToken","xxTrustedFormCertUrl","inertZip","homeowner","zip1"].forEach(function(t){delete e[t]});const i=o.querySelectorAll("[data-branded-consent]"),s=[];if(i&&i.length){const t=e=>e.offsetWidth>0&&e.offsetHeight>0,o=Array.from(i).find(t);s.push({vendorKey:e.Match,vendorDisplayName:o?.textContent}),modForm.opts.consentCaptureVendors=s}modForm.opts.gettingLiveConsent&&!modForm.opts.consentRequestId&&Modalytics.heap("track",["Consent Searches | Not Available on Form Submit"]),t=Object.assign(t,e);const a="/"!==window.location.pathname?window.location.pathname:"";return t.site=window.location.host.replace(/(qa|staging|www)./g,"")+a,t.siteName=t.site,t.HomePhoneType=v(t.HP.replace(/\D/g,"")),t.HomePhoneConsent="Yes",t.responseFormat="json",modForm.opts.ipAddress&&(t.IPAddress=modForm.opts.ipAddress),t}function ct(e){e.invalidFields.forEach(function(e){(0,ye.x)(modForm.opts.form.querySelector('input[name="'+e+'"]')),Modalytics.heap("track",["Validation API Error | "+e,{}])}),Re(),Le()}function dt(e,t,o){let r;if("error"===o.statusText)return r={message:"Failed Contractor Signup Form Submit",data:modForm.opts.landingPage},"function"==typeof modForm.opts.formSubmitErrorCallback&&modForm.opts.formSubmitErrorCallback(e),St(!1),void ct(e);
1if(e&&e.data.contractorId&&Modalytics.heap("identify",[e.data.contractorId,"ID"]),0===t&&e&&201===o.status){const t=modForm.opts.form.querySelector('[name="contractorId"]'),o=modForm.opts.form.querySelector('[name="token"]');t.value=e.data.contractorId,o.value=e.data.token,modForm.opts.sessionObj={token:e.data.token},modUtils.setCookie("mod-session",encodeURIComponent(JSON.stringify(modForm.opts.sessionObj))),r={message:"Successful Contractor Signup Form Submit Step 1",data:e.data.contractorId};const n=modForm.opts.form.querySelectorAll(".ty-state-block"),i=modForm.opts.form.querySelector(".ty-state-block-success"),s="thankyou";modForm.opts.form.classList.add(modForm.opts.formTyCls),n&&n.length&&n.forEach(function(e){e.style.display="none"}),i.style.display="block",Modalytics.gaSend({hitType:"pageview",page:modForm.opts.landingPage+s+"/"},modForm.opts.gaTracker)}Modalytics.heap("track",[r.message,r.data]),qe()}function mt(e,t){let o;const r=e,n=r.dataCaptureKey,i=r.zip,s=1===r.vendors?.length&&r.vendors[0].wholeSale;if(null!==n&&200===t.status){const e=modForm.opts.formData.CLK;"undefined"!=typeof dataLayer&&window.dataLayer.push({event:"formSubmit",userId:e,lastProjectId:n,projectId:n,projectClass:modForm.opts.formData.service}),Modalytics.gaSend({hitType:"event",eventCategory:"HRC General",eventAction:"User converted on non-TYP experience",eventLabel:window.location.pathname},modForm.opts.gaTracker),Gt(),modForm.homeownerLeadConversionProps.zip=i,Modalytics.heap("track",["Homeowner Lead Conversion",modForm.homeownerLeadConversionProps]),void 0!==window.dataLayer&&window.dataLayer.push({event:"Homeowner Lead Conversion",isQSPage:"true"}),"undefined"!=typeof pintrk&&pintrk("track","checkout",{order_id:void 0!==n?n:null}),o=Object.assign({},modForm.opts.quadLinkParams,r),o.PROJECT={},(0,g.Bu)()||(o.PROJECT.FIRSTNAME=modForm.opts.formData.firstName);let t=modForm.opts.contractorTrade?modForm.opts.contractorTrade:modForm.opts.vertical;t=t.replace(/_/g," ").toLowerCase(),o.PROJECT.contractorTrade=t;const s=modForm.opts.formData&&modForm.opts.formData.matchingAttributes&&modForm.opts.formData.matchingAttributes.brandedVendor,a=r&&r.vendors;if(s&&Array.isArray(a)&&a.length&&a.forEach(e=>{e&&e.vendorDataCaptureKey&&e.vendorKey&&e.vendorKey===s&&(o.vendorDCK=e.vendorDataCaptureKey)}),modUtils.setCookie("qsLeadData",JSON.stringify(o)),"function"==typeof modForm.opts.formSubmitSuccessCallback&&!1===modForm.opts.formSubmitSuccessCallback(r))return!1}else if(St(!1),"function"==typeof modForm.opts.formSubmitErrorCallback&&!1===modForm.opts.formSubmitErrorCallback(r))return!1;if((0,g.Bu)()&&r.publicLeadIdentifer&&!modForm.opts.showBrandedResultPage&&!modForm.opts.isBrandedExclusiveMatch?(window.projectId=r.publicLeadIdentifer,modForm.opts.resultsPage=(0,M.E)(),modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+"DCK="+n,modForm.opts.shouldSuppressConversionPixel&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+modForm.opts.suppressConversionPixelParam),modForm.opts.isFirePixelTrue&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage?.indexOf("?")<0?"?":"&")+modForm.opts.firePixelParam),modForm.opts.isSharedMatch&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+modForm.opts.sharedParam),Object.keys(modForm.opts.resultsPageAdditionalParams).length&&Object.entries(modForm.opts.resultsPageAdditionalParams).forEach(function(e){let[t,o]=e;modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+t+"="+o}),modForm.opts.prefVendorParam&&modForm.opts.prefVendorKeys&&modForm.opts.prefVendorKeys.length&&(modForm.opts.prefVendorParam+=modForm.opts.prefVendorKeys.toString(),modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+modForm.opts.prefVendorParam),modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+(r.vendors&&r.vendors.length>0?"ThankYou":"Sorry"),modForm.opts.resultsPage+=`&trade=${modForm.initialTrade}`):(modForm.opts.resultsPage=r.vendors&&0===r.vendors.length?modForm.opts.errorRedirectPath:modForm.opts.resultsPage,modForm.opts.getVars&&Object.keys(modForm.opts.getVars).length&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.
1indexOf("?")<0?"?":"&")+new URLSearchParams(modForm.opts.getVars).toString())),void 0!==modForm.opts.appendTyToHrcUrl&&!0===modForm.opts.appendTyToHrcUrl&&modForm.opts.resultsPage.indexOf("ThankYou")<0&&modForm.opts.resultsPage.indexOf("Sorry")<0&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+(r.vendors&&r.vendors.length>0?"ThankYou":"Sorry")),modForm.opts.isExclusiveMatch&&modForm.opts.exclusiveMatchResultsPage&&(modForm.opts.resultsPage=modForm.opts.exclusiveMatchResultsPage),s&&(modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+"wholesale=true"),modForm.opts.resultsPage+=(modForm.opts.resultsPage.indexOf("?")<0?"?":"&")+"userLocation="+modForm.opts.zipCode+","+modForm.opts.userLocation,modForm.opts.defaultMediaChannel&&!modUtils.getTrafficSource()&&(modForm.opts.resultsPage+="&defaultMediaChannel="+modForm.opts.defaultMediaChannel),window.Loader&&modForm.opts.showLoadingOverlay&&window.Loader.updateLink(modForm.opts.resultsPage),modForm.opts.resultsPage&&!modForm.opts.isOrganicPreferredMatch&&modForm.opts.autoRedirectToTyOrSorryPage)if(modForm.opts.showRedirectOverlay){if(modForm.opts.isExclusiveMatch){const e=modForm.opts.exclusiveMatchVendor.charAt(0).toUpperCase()+modForm.opts.exclusiveMatchVendor.slice(1),t="Frontdoor"===e?"American Home Shield":e;window.Loader&&(window.Loader.showRedirectAnimation(...modForm.opts.eCommerceExclusiveLoaders[modForm.opts.exclusiveMatchVendor]),Modalytics.heap("track",[`Loader Visible - Transferring to ${t}`]))}else window.Loader&&modForm.opts.includeTransferringToModernize&&(window.Loader.showRedirectAnimation(),Modalytics.heap("track",["Loader Visible - Transferring to Modernize"]));setTimeout(function(){setTimeout(function(){modForm.opts.isExclusiveMatch&&modForm.opts.exclusiveMatchResultsPage&&modForm.opts.isLeadWidget&&window.parent&&window.parent!==window?window.parent.postMessage({exclusiveRedirectUrl:modForm.opts.exclusiveMatchResultsPage},"*"):window.location.href=modForm.opts.resultsPage},500),document.body.classList.add("submitted")},2500)}else modForm.opts.showLoadingOverlay?(document.body.classList.add("submitted"),setTimeout(function(){window.location.href=modForm.opts.resultsPage},1e3)):window.location.href=modForm.opts.resultsPage;modForm.opts.isExclusiveMatch?(0,Ct.u)(encodeURIComponent(modForm.opts.resultsPage)):(0,Ct.u)(modForm.opts.resultsPage)}function ut(e,t,o){(0,io.G)({inProcessFormSubmitError:!0}),"function"==typeof modForm.opts.formSubmitErrorCallback&&modForm.opts.formSubmitErrorCallback(e,t,o),St(!1),alert("Something went wrong, please try again.")}function lt(){Object.assign(modForm,X.p7,X._t),$(!1),i(!1),s(!1)}function pt(e){if(!e)return void(0,io.G)({noFormDataExitingSwapRecaptchaTokenWithFlag:!0});const t="recaptcha"in e&&""!==e.recaptcha,o="g-recaptcha-response"in e&&""!==e["g-recaptcha-response"];return(t||o)&&((0,io.G)({inSwapRecaptchaTokenWithFlag:!0}),e.recaptchaCompleted=!0,modForm.opts.isModernize||(e.IsRealValidationEnabled=!0),delete e.recaptcha,delete e["g-recaptcha-response"]),e}function ft(e){const t=[...e.searchParams.entries()].map(e=>{let[t,o]=e;return`${t}=${o}`}).join("&");return t?`${e.origin}${e.pathname}?${t}`:`${e.origin}${e.pathname}`}function gt(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=["hsgeolookupdetails","hsgeolookupdata"];if(!e.landingPageURL)return e;let o;try{o=new URL(e.landingPageURL)}catch{return e}o.searchParams.delete("cep");for(const[e,r]of[...o.searchParams.entries()])!t.includes(e.toLowerCase())&&r.length>250&&(Modalytics.heap("track",["Oversized Lead",{type:"parameter",name:e,value:r}]),o.searchParams.delete(e));return e.landingPageURL=ft(o),(0,g.aL)(e)||(o.searchParams.delete("HSGeolookupData"),o.searchParams.delete("HSGeoLookupDetails"),Modalytics.heap("track",["Oversized Lead",{type:"optionalPayload"}]),e.landingPageURL=ft(o),(0,g.aL)(e)||Modalytics.heap("track",["Oversized Lead",{type:"payload"}])),e}function ht(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e&&!Object.keys(e).length)return void(0,io.G)({noFormDataExitingUpdateFormDataFormatForFormsService:!0});(0,io.G)({inUpdateFormDataFormatForFormsService:!0});const{addressSource:t,CCID:o,CLK:r,CROTag:n,EM:i,ExternalGlobalLeadID:s,FN:a,HeapEventID:c,HeapSessionID:d,HeapIdentity:m,HomePhoneConsentLanguage:u,HP:l,InternalSource:p,IsRealValidationEnabled:f,LN:g,Match:h,PartnerSourceID:F,PC:y,phoneActivityScore:b,PublisherSubID:S,QTR:v,quadlink:w,recaptchaCompleted:C,ReferredLead:k,S1:A,searchid:T,service:E,shClickKey:L,site:P,skipAddress:I,tagID:O,TestID:x,VariationName:N,TrustedFormToken:q}=e;let{OwnHome:D}=e;0===Object.keys(modForm.opts.serviceSpecificAttributes).length?tt(E):modForm.opts.serviceSpecificAttributes.OwnHome=R(),D=modForm.opts.serviceSpecificAttributes.OwnHome?modForm.opts.serviceSpecificAttributes.OwnHome:D,delete modForm.opts.serviceSpecificAttributes.OwnHome;const M={...q&&{trustedFormToken:q}
1,...F&&{partnerSourceID:F},...S&&{publisherSubID:S}},H={consentMethod:"Web",...modForm.opts.consentRequestId&&{requestId:modForm.opts.consentRequestId},vendors:modForm.opts.consentCaptureVendors,...modForm.opts.consentCaptureLabels&&{labels:modForm.opts.consentCaptureLabels}},z=h?h.split(",")?.map(e=>e?.trim()):[],U={...z&&{matchVendors:z},brandedLead:z.length>0},j={...modForm.opts.serviceSpecificAttributes},_={..."y"===I&&{skipAddress:!0},...f&&{IsRealValidationEnabled:!0}},B={...T&&{searchid:T},...L&&{shclickkey:L}},V={...o&&{ccid:o},...r&&{clk:r},...p&&{internalSource:p},...v&&{qtr:v},...w&&{quadLink:w},...O&&{quadTagId:O},site:P,additionalAttributes:{...c&&{HeapEventID:c},...d&&{HeapSessionID:d},...m&&{HeapIdentity:m},...x&&{TestID:x},...N&&{VariationName:N},...n&&{CROTag:n},...s&&{ExternalGlobalLeadID:s},...k&&{ReferredLead:k},...C&&{recaptchaCompleted:C},...t&&{addressSource:t},...b&&{phoneActivityScore:b}}};let $=window.location.href.split("#")[0];const G=JSON.stringify(window.currentLocationFromHSGeolookup||{});$.includes("?")?("&"!==$.charAt($.length-1)&&($+="&"),$+="HSGeolookupData="+G):$+="?HSGeolookupData="+G;const W=JSON.stringify(It()),Q=$.includes("?")?"&":"?";$+=`${Q}HSGeoLookupDetails=${W}`;return{zip:y,service:E,firstName:a,lastName:g,email:i,phone:l,address:A,ownHome:D,homePhoneConsentLanguage:u,landingPageURL:$,...M,consentCaptureData:{...H},...Object.keys(U).length?{matchingAttributes:U}:{},...Object.keys(j).length?{serviceSpecificAttributes:j}:{},...Object.keys(_).length?{configOverrideAttributes:_}:{},...Object.keys(B).length?{sureHitsAttributes:B}:{},...Object.keys(V).length?{trackingAttributes:V}:{}}}function Ft(e){if(!e)return void(0,io.G)({noFormDataExitingUseInitialQueryParamsFromSessionStorage:!0});if(modForm.opts.ignoreQueryParamsInSessionStorage)return e;let t=!1;const o=modUtils.getUrlParamsToObject(),r=["zip=","firstName=","lastName=","address=","zip1=","city=","state=","homePhone=","email=","leadToken="];for(const n in o)o.hasOwnProperty(n)&&r.includes(n)&&null===o[n]&&(delete e[n],t=!0);if(t){(0,io.G)({inUseInitialQueryParamsFromSessionStorage:!0});let t=window.sessionStorage.getItem("queryParams");if(t)try{t=JSON.parse(t),(e=Object.assign(e,t)).usingQueryParamsFromSessionStorage=!0,window.sessionStorage.removeItem("queryParams"),Modalytics.heap("track",["Used Initial Query Params from Session Storage",{queryParamsObject:t}])}catch(e){Modalytics.heap("track",["Error Parsing Initial Query Params",{queryParamsObject:t,error:e.message}])}}return e}function yt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e){for(const t in e)modForm.opts.qsParams.includes(t)&&e.hasOwnProperty(t)&&(modForm.opts.quadLinkParams[t]=e[t]);modForm.opts.phoneAssignmentConfig.showPhoneAssignmentNumber&&!t.skipPhoneAssignmentCall&&(0,S.getPhoneAssignmentData)(e),Gt(),modForm.opts.quadLinkHasBeenTransformed=!0,no([modForm.opts.quadLinkParams,{AffiliateKey:e.AffiliateKey}]),ho()}}function bt(){const e={landingpage:modForm.opts.landingPageNoQuery,thankyou:modForm.opts.thankyouPage},t=modUtils.getSupportedTrackingParams(),o=D();Object.keys(o).forEach(function(r){const n=r.toLowerCase();t.indexOf(n)>-1&&(e[n]=o[r])})}function St(e){(0,io.G)({inSwitchFormLoadingState:!0}),e?(modForm.opts.zipFormSelectorsToSync.length&&document.querySelectorAll(modForm.opts.zipFormSelectorsToSync).forEach(function(e){e.classList.add(modForm.opts.formLoadingCls)}),modForm.opts.form.classList.add(modForm.opts.formLoadingCls),modForm.opts.isFormLoading=!0):(modForm.opts.zipFormSelectorsToSync.length&&document.querySelectorAll(modForm.opts.zipFormSelectorsToSync).forEach(function(e){e.classList.remove(modForm.opts.formLoadingCls)}),modForm.opts.form.classList.remove(modForm.opts.formLoadingCls),modForm.opts.isFormLoading=!1)}function vt(e){(0,io.G)({inSwitchFormSubmitState:!0}),"submitting"===e?((0,io.G)({formSubmitting:!0}),modForm.opts.form.classList.add(modForm.opts.formSubmittingCls)):"submitted"===e?((0,io.G)({formSubmitted:!0}),modForm.opts.form.classList.add(modForm.opts.formSubmittedCls)):"error"===e?((0,io.G)({formSubmitError:!0}),modForm.opts.form.classList.add(modForm.opts.formSubmitErrorCls)):(modForm.opts.form.classList.remove(modForm.opts.formSubmittingCls,modForm.opts.formSubmittedCls,modForm.opts.formSubmitErrorCls),document.body.classList.remove("submitted"))}var wt=o(8756),Ct=o(9128);function kt(){const e=modForm.opts.form.querySelectorAll("[data-save]");e.length>0&&e.forEach(function(e){le(e.name,modForm.userObj[e.name]),e.addEventListener("blur",function(){(0,At.M)(this.name,this.value)})})}var At=o(4140),Tt=o(8377),Et=o(3832),Lt=o(1754);function Pt(){const e=window.sessionStorage?window.sessionStorage.getItem("queryParams"):null,t=e?JSON.parse(e):null;return t&&(modForm.opts.getVars=t),t}function It(){let e={};
1if(window.geolocation){(0,io.G)({inGetHSGeoLookupDetails:!0});const{geo:t}=modUtils.getUrlParamsToObject(),{responseCollection:o,source:r,usedSource:n}=window.geolocation;if(o&&(e=o),o?.maxmind){const t=o.maxmind,r={city:t.city?.names?.en||void 0,postalCode:t.postal?.code||void 0,subdivision:t.subdivisions?.[0]?.names?.en||void 0};e.maxmind=r}t&&(e.geo=t),(r||n)&&(e.usedSource=n||r)}return e}function Ot(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=(0,xt.z)();t&&(e={...JSON.parse(t),...e}),modForm.opts.quadLinkParams&&(e={...e,...modForm.opts.quadLinkParams}),Object.keys(e).length&&Object.entries(e).forEach(t=>{let[o,r]=t;e[o]=encodeURIComponent(r)}),modUtils.setCookie("formData",JSON.stringify(e),1440)}var xt=o(3821),Nt=o(6078),qt=o(9777),Dt=o(678);function Rt(e){const t=new XMLHttpRequest;t.open("GET",e),t.send(),t.addEventListener("load",function(){if(this.response&&4===this.readyState&&200===this.status){const e=(0,rt.q)(this.response);document.body.appendChild(e)}}),t.addEventListener("error",function(){console.error("Something went wrong")})}const Mt={"modernize.com":{medicalalerts:{c:"1677934",s:"31135",f:"202109081618210"},showers:{c:"1683621",s:"3086",f:"202309141602090"},foundations:{c:"1690102",s:"36215",f:"202507111128000"},default:{c:"1679227",s:"29914",f:"202202161521310"},"cost-calculator":{windows:{c:"1690555",s:"36215",f:"202508211132120"},roofing:{c:"1690998",s:"36216",f:"202509301101060"},hvac:{c:"1690987",s:"36216",f:"202509301054460"},default:{c:"1679227",s:"29914",f:"202202161521310"}}},"m.homewindowprices.org":{c:"1673838",s:"3086",f:"202010191645180"},"tophottubs.org":{c:"1673840",s:"3086",f:"202010191645190"},"m.tophottubs.org":{c:"1673840",s:"3086",f:"202010191645190"},"quotes.bathwraps.com":{c:"1660429",s:"26393",f:"201812121510250"},"m.bathwraps.com":{c:"1660426",s:"26401",f:"201812121509080"},"craftmaticbeds.com":{c:"655234",s:"3086",f:"201008201638230"},"m.emedicalalerts.com":{c:"1647405",s:"26401",f:"201711071755190"},"quotes.improvementcenter.com":{bathrooms:{c:"1652517",s:"26393",f:"201803221337450"},gutters:{c:"1614214",s:"3086",f:"201608311104250"},stairlifts:{c:"1658469",s:"26393",f:"201809260926260"},walkintubs:{c:"1647588",s:"26393",f:"201711081408530"}},"bathrooms.improvementcenter.com":{c:"1652509",s:"26401",f:"201803221337420"},"gutters.improvementcenter.com":{c:"1635550",s:"16479",f:"201703010604120"},"stairlifts.improvementcenter.com":{c:"1658465",s:"26401",f:"201809260926240"},"walkintubs.improvementcenter.com":{c:"1647564",s:"26401",f:"201711081408460"},"go.medicalguardian.com":{c:"1654232",s:"26393",f:"201805101622250"},"walkintubprices.org":{c:"1673842",s:"3086",f:"202010191645200"},"m.walkintubprices.org":{c:"1673842",s:"3086",f:"202010191645200"},"powerhomesolarpanels.com":{c:"1676761",s:"3086",f:"202105251631450"},"windowreplacementcost.org":{c:"1679716",s:"3086",f:"202205131023370"},"sunroompatiopricing.com":{c:"1698801",s:"3086",f:"202605081139380"},"treetrimmingservicepros.com":{c:"1682327",s:"3086",f:"202302141447090"},"topgutterpros.com":{c:"1683689",s:"3086",f:"202309251220170"},"topremodelingpros.com":{c:"1683689",s:"3086",f:"202309251220170"},"bestcompany.modernize.com":{homewarranty:{c:"1684628",s:"34486",f:"202401301751220"},medicalalertsystems:{c:"1684826",s:"34486",f:"202402151655050"},homesecurity:{c:"1684824",s:"34486",f:"202402151653100"},solar:{c:"1684620",s:"34486",f:"202401301731070"},watersofteners:{c:"1684830",s:"34486",f:"202402141206230"},plumbing:{c:"1684766",s:"34486",f:"202402141115530"},treeservices:{c:"1684764",s:"34486",f:"202402141113540"},newwindows:{c:"1684828",s:"34486",f:"202402151656490"},walkintubs:{c:"1684760",s:"34486",f:"202402141109100"},stairlifts:{c:"1684758",s:"34486",f:"202402141106430"},siding:{c:"1684756",s:"34486",f:"202402141103210"},roofing:{c:"1684754",s:"34486",f:"202402141059590"},hvac:{c:"1684752",s:"34486",f:"202402141057220"},hottubs:{c:"1684750",s:"34486",f:"202402141054450"},gutters:{c:"1684748",s:"34486",f:"202402141051430"},flooring:{c:"1684746",s:"34486",f:"202402141049110"},doors:{c:"1684744",s:"34486",f:"202402141046440"},cabinets:{c:"1684822",s:"34486",f:"202402151651120"},bathroomremodel:{c:"1684820",s:"34486",f:"202402151646230"},findapro:{c:"1684895",s:"3086",f:"202402231339130"}},"bestcompany.com":{homewarranty:{c:"1684628",s:"34486",f:"202401301751220"},medicalalertsystems:{c:"1684826",s:"34486",f:"202402151655050"},homesecurity:{c:"1684824",s:"34486",f:"202402151653100"},solar:{c:"1684620",s:"34486",f:"202401301731070"},watersofteners:{c:"1684830",s:"34486",f:"202402141206230"},plumbing:{c:"1684766",s:"34486",f:"202402141115530"},treeservices:{c:"1684764",s:"34486",f:"202402141113540"},newwindows:{c:"1684828",s:"34486",f:"202402151656490"},walkintubs:{c:"1684760",s:"34486",f:"202402141109100"},stairlifts:{c:"1684758",s:"34486",f:"202402141106430"},siding:{c:"1684756",s:"34486",f:"202402141103210"},roofing:{c:"1684754",s:"34486",f:"202402141059590"},hvac:{c:"1684752",s:"34486",f:"202402141057220"},hottubs:{c:"1684750",s:"34486",f:"202402141054450"},gutters:{c:"1684748",s:"34486",f:"202402141051430"},flooring:{c:"1684746",s:"34486",f:"202402141049110"},doors:{c:"1684744",s:"34486",f:"202402141046440"},cabinets:{c:"1684822",s:"34486",f:"202402151651120"},bathroomremodel:{c:"1684820",s:"34486",f:"202402151646230"},findapro:{c:"1684895",s:"3086",f:"202402231339130"}},"topsolarcompanies.com":{c:"1684497",s:"34399",f:"202401241741100"},"besthomesecuritycompanys.com":{c:"1684495",s:"34399",f:"202401241738220"},"topinsulationpros.com":{c:"1686466",s:"3086",f:"202408211814210"},"leafguardpros.com":{c:"1687885",s:"35730",f:"202501171141140"},"wholehomewatersystems.org":{c:"1688120",s:"3086",f:"202502181424190"},"windowreplacementdeals.org":{c:"1691222",s:"3086",f:"202510141631360"}};var Ht=o(8691),zt=o(6145);function Ut(e){let t,o,r,n="";const i=modForm.opts.defaultQuadLinkValues||jt();return"object"==typeof e&&null!==e?({c:t,s:o,f:r}=e):i&&(t="object"==typeof i.c?i.c[e]:i.c,({s:o,f:r}=i)),n=`http://o1.qnsr.com/cgi/r?;n=203;c=${t};s=${o};x=7936;f=${r};u=j;z=TIMESTAMP;&default=yes;`,n}function jt(){const e=modForm.opts.websiteName.replace(/(qa\.?|staging\.?|www\.?)/g,""),t=modForm.opts.landingPageNoQuery.replace(/^https?:\/\//,"");if(e.includes("bestcompany")){let o=t.split("/");return o=o[2].replace(/-/g,""),Mt[e][o]}if(e.indexOf("quotes.improvementcenter.com")>-1||e.indexOf("modernize.com")>-1||e.indexOf("powerhomedeals.com")>-1){if(t.indexOf("cost-calculator")>-1){let o=t.split("/");return o=o[2].replace(/-/g,""),o=void 0!==Mt[e]["cost-calculator"][o]?o:"default",Mt[e]["cost-calculator"][o]}let o=modForm.opts.landingPageNoQuery.replace(/\/$/g,"").replace(/^(?:[^/]*\/)+/g,"");return o=void 0!==Mt[e][o]?o:"default",Mt[e][o]}return Mt[e]}var _t=o(1122),Bt=o(5435);function Vt(){let e="https://hsleadpost1.quinstage.com/";return"production"===modUtils.getEnv()&&(e="https://hs.leadpost.net/"),e}async function $t(e){if(window.location.search.length>0){"&"!==window.location.search.substr(-1)&&window.history.replaceState({},document.title,window.location.href.split("#")[0]+"&")}
1if(modForm.opts.useStepNameHash&&"object"==typeof modForm.opts.formSwiperInstance){const e=modForm.opts.formSwiperInstance?.params?.speed||modForm.opts.formSwiperInstance?.passedParams?.speed;e&&await new Promise(function(t){setTimeout(function(){const e=modForm.getCurrentStep(),o=e&&e.hasAttribute("data-step-name")?e.getAttribute("data-step-name"):null;o&&(history.pushState(null,null,"#"+o),Gt()),t()},e)})}else if(e){const t=/\d+/g,o=e.match(t)[0];window.location.hash="q"+o}}function Gt(){window.heap?void 0!==modForm.opts.quadLinkParams.CLK&&("production"===modUtils.getEnv()?"heap"in window&&!window.heap.identity?Modalytics.heap("identify",[modForm.opts.quadLinkParams.CLK]):window.heapListenerInitialized||(window.addEventListener("heapCookieResolved",function(){Modalytics.heap("identify",[modForm.opts.quadLinkParams.CLK])},{once:!0}),window.heapListenerInitialized=!0):Modalytics.heap("identify",[modForm.opts.quadLinkParams.CLK])):document.addEventListener("heap.loaded",function(){Gt()})}function Wt(){function e(e){e.stopPropagation(),Yt()}modForm.opts.form.querySelectorAll('.btn-primary, .btn--primary, input[type="radio"], input[type="text"]').forEach(function(t){t&&(t.addEventListener("click",e,!1),t.addEventListener("keypress",e,!1))})}var Qt=o(3898);function Kt(){modForm.opts.form.querySelectorAll('.btn-primary, input[type="radio"]').forEach(function(e){e&&e.addEventListener("click",function(e){!1===modForm.opts.quadLinkHasBeenTransformed&&0===Object.keys(modForm.opts.quadLinkParams).length&&(e.stopPropagation(),T(),Modalytics.heap("track",["Quad Transform Retry"]))})})}function Jt(e){const t={NumberOfWindows:"1",windowsNumber:"1 window"};e||0!==Object.keys(e).length?((0,io.G)({inInitSuppressConversionPixel:!0}),"projectData"in e&&(e=e.projectData),Object.keys(e).forEach(o=>{e[o]&&t[o]&&e[o]===t[o]&&(modForm.opts.shouldSuppressConversionPixel=!0)})):(0,io.G)({noFormDataExitingInitSuppressConversionPixel:!0})}function Yt(){const e=modUtils.getLandingPage().indexOf("modernize.com")>0&&!modUtils.getLandingPage().includes("bestcompany"),t=e&&window.location.pathname.startsWith("/quote");if(t){let e=window.location.pathname;e.endsWith("/")||(e+="/"),modForm.opts.landingPageSubdirectory=e}if(modForm.areLeadTokenScriptsLoaded)return void modForm.opts.form.querySelectorAll('.btn-primary, .btn--primary, input[type="radio"]').forEach(function(e){e&&e.removeEventListener("click",function(e){e.stopPropagation(),Yt()})});const o=document.querySelector("body");let r=e?"":"/";const n=modForm.opts.isVite?"resources/scripts/":"scripts/",i=(e&&!t||modForm.opts.showRecaptchaForDirectTraffic)&&!modForm.opts.disableRecaptcha;if(window.isWordpress&&(r=modUtils.getLandingPage().indexOf("modernize.local")>0?"/wp-content/themes/modernize/source/":"/wp-content/themes/modernize/dist/"),modForm.opts.isGutenbergWP&&(r="/wp-content/themes/modernize/public/"),"local"!==modUtils.getEnv()&&""!==modForm.opts.landingPageSubdirectory&&(r=modForm.opts.landingPageSubdirectory),modForm.trustedFormObserver||(modForm.trustedFormObserver=new MutationObserver(function(e,t){document.contains(document.querySelector("[name=xxTrustedFormToken]"))&&(modForm.loadedScripts.push("trusted"),i&&!modForm.loadedScripts.includes("recaptcha")||(modForm.areLeadTokenScriptsLoaded=!0),t.disconnect())}),modForm.trustedFormObserver.observe(o,{childList:!0,subtree:!0})),i&&!modForm.recaptchaFormObserver&&(modForm.recaptchaFormObserver=new MutationObserver(function(e,t){document.contains(document.querySelectorAll(".grecaptcha-badge")[0])&&(modForm.loadedScripts.push("recaptcha"),modForm.loadedScripts.includes("trusted")&&(modForm.areLeadTokenScriptsLoaded=!0),t.disconnect())}),modForm.recaptchaFormObserver.observe(o,{childList:!0,subtree:!0})),!modForm.opts.useContractorApi){const e=document.getElementById("trustedFormScript");e&&(e.nextElementSibling?.closest("noscript")?.remove(),e.remove(),modForm.trustedFormRetryCount=(modForm.trustedFormRetryCount||0)+1,Modalytics.heap("track",["TrustedForm Retry",{retry:modForm.trustedFormRetryCount}])),Rt(`${r}${n}trusted-form.html`),i&&Rt(`${r}${n}recaptcha.html`)}}var Zt=o(1450),Xt=o(7575),eo=o(5782);function to(){modForm.opts.useQSApi&&modForm.opts.delayQuadTransformation&&(0,Qt.initQuadTransform)(!1)}function oo(){if(!window.dataLayer)return!1;const e=modUtils.getUrlParamsToObject().startStep;if(e&&e===(0,Pe.I)()?.id)return!1;let t=(0,Pe.I)()?.getAttribute("data-step-name");modForm.isCurrentStepSecondToLast()&&(t="Almost Done"),modForm.isCurrentStepLast()&&(t="Last Step"),window.dataLayer.push({event:"stepChange",currentStep:t})}var ro=o(4567);const no=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=function(e){e&&Array.isArray(e)&&e.length&&e.forEach(function(e){e&&(Modalytics.heap("addEventProperties",e),Modalytics.heap("addUserProperties",e))})};window.heap?t(e):document.addEventListener("heap.loaded",function(){t(e)})};var io=o(1320);function so(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!e||!t||!o)return!1;const n="string"==typeof o.name&&o.name.includes("Completed"),i=`${(0,Bt.h)()}/leads/${e}/widgets/${t}/events`,s=new XMLHttpRequest;let a,c=!1;s.open("POST",i),s.setRequestHeader("Content-Type","application/json"),n&&"function"==typeof r?(s.addEventListener("load",function(){c||(c=!0,clearTimeout(a),r("success"))}),s.addEventListener("error",function(){c||(c=!0,clearTimeout(a),r("error"),console.error("Something went wrong"),Modalytics.heap("track",[o.name+" | API Error"]))})):s.addEventListener("error",function(){console.error("Something went wrong"),Modalytics.heap("track",[o.name+" | API Error"])}),s.send(JSON.stringify(o)),n&&"function"==typeof r&&(Modalytics.heap("track",[o.name+" | API Called"]),a=setTimeout(()=>{c||(c=!0,Modalytics.heap("track",[o.name+" | Timeout Reached"]),r("timeout"))},500))}function ao(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e||!Object.keys(e).length)return;const t={},o=["firstName","lastName","phone","email","address","zip","FN","LN","EM","HP","PC","S1"];
1Object.entries(e).forEach(e=>{let[r,n]=e;o.includes(r)||(t[r]=n)}),(0,io.G)({formServiceApiPayload:JSON.stringify(t)})}var co=o(738),mo=o(4536),uo=o(8407),lo=o(9754),po=o(8285);function fo(){const e=D();if(!e.CROTag)return{};try{return JSON.parse(e.CROTag)}catch(e){return{}}}function go(){const e=fo();0===Object.keys(e).length||null!==modForm.opts.croTagHeapPayload&&JSON.stringify(e)===JSON.stringify(modForm.opts.croTagHeapPayload)||(Modalytics.heap("track",["CROTag",e]),modForm.opts.croTagHeapPayload={...e})}function ho(){if(!window.dataLayer||modForm.opts.hasPageContextTrackedToGA4)return!1;const e=modUtils.getUrlParamsToObject(),t=modForm.opts.quadLinkParams,o={heapIdentity:heap?.identity,heapUserId:heap?.userId};window.dataLayer.push({ga4PageData:JSON.stringify({...e,...t,...o}),event:"PageContext"}),modForm.opts.hasPageContextTrackedToGA4=!0}},4171:function(e,t,o){"use strict";function r(e){const t=e.split(" ");let o="";return t.forEach(function(e){o+=e.charAt(0).toUpperCase()+e.slice(1)+" "}),o.trim()}o.d(t,{Z:function(){return r}})},8762:function(e,t,o){"use strict";function r(e,t){const o={0:{firstName:e.firstName,lastName:e.lastName,primaryProjectClass:e.primaryProjectClass,multipleTrades:e.multipleTrades?1:0,contractorNetwork:e.contractorNetwork?1:0,companyName:e.companyName,howDidYouHearAboutUs:e.howDidYouHearAboutUs,clientReferrerSource:e.clientReferrerSource,phone:e.homePhone,email:e.email,bbdId:e.bbdId,attribution:{utm_source:e.utm_source,utm_campaign:e.utm_campaign,utm_medium:e.utm_medium,utm_term:e.utm_term,utm_content:e.utm_content,program:e.program,gclId:e.gclid,keyword:e.keyword,landingPage:e.landingPage,elqCustomerGUID:e.elqCustomerGUID,elqCookieWrite:e.elqCookieWrite},compliance:{wasTcpaShown:e.tcpa,tcpaText:e.tcpaText,certificationToken:e.certificationToken,certificationType:e.certificationType},modSessionId:e.modSessionId,companyZip:e.companyZip,annualRevenue:e.annualRevenue,buysLeads:e.buysLeads,crmInUse:e.crmInUse,ein:e.ein,whoCallsLeads:e.whoCallsLeads,websiteUrl:e.websiteUrl}}[t];return o&&Object.entries(o).length&&Object.entries(o).map(function(e){let[t,o]=e;void 0!==o&&""!==o&&(modForm.opts.submitData[t]=o)}),modForm.opts.submitData}o.d(t,{m:function(){return r}})},6954:function(e,t,o){"use strict";function r(e){if(e){if(e.innerText)return e.innerText;if(e.textContent)return e.textContent;if(e.innerHTML)return e.innerHTML}return""}o.d(t,{i:function(){return r}})},4186:function(e,t,o){"use strict";function r(e){let t="";const o=modForm.opts.vertical,r={BATHROOM_REFACING:"BathProjectScope",CABINET_REFACING:"service",CONCRETE_FOUNDATION:"service",FLOORING_HARDWOOD:"ProductService",PLUMBING:"ServiceDetails",ROOFING_ASPHALT:"ProductService",SIDING_VINYL:"ProductService",SUNROOM:"service",WALK_IN_TUBS:"ProductService",FENCING:"ProductService"}[o];return"BATHROOM_REFACING"===o&&e.BathProjectScope?(t="Bathroom Remodel"===e.BathProjectScope?"BATH_REMODEL":"BATHROOM_REFACING",modForm.opts.optInAddRemoveWalls&&"No"===e.OptIn1&&(t="BATHROOM_REFACING")):t=r&&e[r]?e[r]:o,t}o.d(t,{S:function(){return r}})},9601:function(e,t,o){"use strict";function r(e){return{"Walk In Tubs":"Bathroom","Hot Tubs":"Additions"}[e]||e}o.d(t,{V:function(){return r}})},4741:function(e,t,o){"use strict";function r(e){const t=`${modForm.opts.landingPageSubdirectory||"/"}`;return modForm.opts.eCommerceVendorKeys.exclusive.angi.includes(e.vendorKey)?(modForm.opts.tcpaCopy[0].innerHTML=`By submitting, you authorize Modernize, their <a href="https://hs.leadpost.net/clientList.jsp?c_level=default&aff=0" target="_blank">service professionals</a>, and Angi and its service professionals, or parties acting on their behalf, to use automated technology and prerecorded messages to deliver marketing calls or texts regarding your project to the number you provided. There is no requirement to purchase services. Please see our <a id="tcpaPrivacy" href="/?modal=tcpaPrivacy" data-load="${t}resources/templates/modals/privacy/" data-bind="modal-page">Privacy Notice</a> and <a id="tcpaTerms" href="/?modal=tcpaTerms" data-load="${t}resources/templates/modals/terms/" data-bind="modal-page">Terms of Use</a> and Angi's <a href="https://legal.angi.com/#contract-skmav5s0l" target="_blank">Terms</a> and <a href="https://legal.angi.com/#privacy-policy" target="_blank">Privacy Policy</a>.`,Modalytics.heap("track",["Modified TCPA for Exclusive Vendor",{companyName:e.vend
1orDisplayName}]),!0):!!modForm.opts.eCommerceVendorKeys.exclusive.yelp.includes(e.vendorKey)&&(modForm.opts.tcpaCopy[0].innerHTML=`By submitting, you authorize Modernize, Modernize <a href="https://hs.leadpost.net/clientList.jsp?c_level=default&aff=0" target="_blank">service professionals</a>, Yelp, and service professionals matched through Yelp that provide the service you requested to make marketing calls and texts to the phone number provided to discuss your home service needs. You understand some may use auto-dialers, SMS messages, artificial and prerecorded voice messages to contact you. There is no requirement to purchase services. Please see our <a id="tcpaPrivacy" href="/?modal=tcpaPrivacy" data-load="${t}resources/templates/modals/privacy/" data-bind="modal-page">Privacy Notice</a> and <a id="tcpaTerms" href="/?modal=tcpaTerms" data-load="${t}resources/templates/modals/terms/" data-bind="modal-page">Terms of Use</a> and Yelp's <a href="https://terms.yelp.com/privacy/en_us/20260101_en_us/" target="_blank">Privacy Notice</a> and <a href="https://terms.yelp.com/tos/en_us/20260101_en_us/" target="_blank">Terms of Use</a>.`,Modalytics.heap("track",["Modified TCPA for Exclusive Vendor",{companyName:e.vendorDisplayName}]),!0)}o.d(t,{R:function(){return r}})},8410:function(e,t,o){"use strict";function r(e){if(!e)return!1;return document.createRange().createContextualFragment(e)}o.d(t,{q:function(){return r}})},5281:function(e,t,o){"use strict";function r(e){const t=[];let o;return e&&Object.entries(e)&&Object.entries(e).length&&Object.entries(e).forEach(r=>{let[n,i]=r;"object"==typeof i?(o=n,delete e[n],Object.entries(i).forEach(function(e){let[r,n]=e;n&&t.push([`${o}[${r}]`,n])})):t.push([n,i])}),t}o.d(t,{F:function(){return r}})},1375:function(e,t,o){"use strict";o.d(t,["X",0,[{serviceCodes:["ALERTS_MEDICAL"],requiredAttributes:["MedicalAlertProtectionAt","WhoseMedicalAlert","HasLandlineAtHome"],modernizeTradePageSlug:"medical-alert-systems"},{serviceCodes:["BASEMENT_WATERPROOFING","CRAWLSPACE_ENCAPSULATION"],requiredAttributes:["OwnHome"],modernizeTradePageSlug:"foundations/basement-waterproofing"},{serviceCodes:["BATHROOM_REFACING","BATH_REMODEL"],requiredAttributes:["BathProjectScope","OwnHome","OptIn1"],homebuddyAttributes:["ConvertRemodelReasons","ExistingProblems","SafetyFeatures","MainReasonToUpdate","ExistingIssues","BathroomFloor","PlumbingCondition","WallsAndFloorsCondition","ShowerEnclosureType","ShowerheadType"],modernizeTradePageSlug:"bathroom-remodel"},{serviceCodes:["CONCRETE_FOUNDATION"],requiredAttributes:["ConcreteProjectScope","OwnHome"],modernizeTradePageSlug:"foundations"},{serviceCodes:["CABINET_INSTALL","CABINET_REFACING"],requiredAttributes:["OwnHome"],modernizeTradePageSlug:"kitchen-remodel/cabinets"},{serviceCodes:["COUNTERTOP"],requiredAttributes:["CountertopType","CountertopProjectScope","CommercialLocation","BuyTimeframe","OwnHome"],modernizeTradePageSlug:"kitchen-remodel"},{serviceCodes:["DECK"],requiredAttributes:["DeckProjectScope","DeckMaterial"],modernizeTradePageSlug:"decks"},{serviceCodes:["DOOR"],requiredAttributes:["DoorProjectScope","DoorsNumber","DoorType","OwnHome"],modernizeTradePageSlug:"doors"},{serviceCodes:["DRAINS","SEWER"],requiredAttributes:["DrainageIssue","OwnHome"],modernizeTradePageSlug:"plumbing"},{serviceCodes:["FENCING","FENCE_WOOD","FENCE_VINYL","FENCING_CHAINLINK","FENCE_METAL"],requiredAttributes:["ProjectScope","OwnHome"],modernizeTradePageSlug:"fencing"},{serviceCodes:["FLOORING_HARDWOOD","FLOORING_TILE","FLOORING_VINYL_LINOLEUM","FLOORING_LAMINATE","FLOORING_SUBFLOORS","CARPET"],requiredAttributes:["CommercialLocation","FlooringProjectScope","MaterialPurchase","OwnHome"],modernizeTradePageSlug:"flooring"},{serviceCodes:["GARAGE_DOOR"],requiredAttributes:["GarageDoorSize","OwnHome","ProjectScope"],modernizeTradePageSlug:"garage-doors"},{serviceCodes:["GENERATORS"],requiredAttributes:["ProjectScope","GeneratorType","OwnHome"],homebuddyAttributes:["GeneratorUse","FuelSource","PropertyType"],modernizeTradePageSlug:"generators"},{serviceCodes:["GUTTER_COVERS"],requiredAttributes:["CommercialLocation","OwnHome"],homebuddyAttributes:["ExistingGutters","GutterCoversInstalled","RoofEdgeCondition","DownspoutCount"],modernizeTradePageSlug:"gutters"},{serviceCodes:["HOME_SECURITY"],requiredAttributes:["CommercialLocation","HomeSecurityProjectScope","Monitoring","SecuritySystemInstallationType"],modernizeTradePageSlug:"home-security"},{serviceCodes:["HOME_WARRANTY"],requiredAttributes:["Interest","OwnHome"],modernizeTradePageSlug:"home-warranty"},{serviceCodes:["HOT_TUBS"],requiredAttributes:["HotTubUse","HotTubType","OwnHome"],modernizeTradePageSlug:"hot-tub-spas"},{serviceCodes:["HVAC"],requiredAttributes:["HVACProjectScope","HVACInterest","OwnHome"],modernizeTradePageSlug:"hvac"},{serviceCodes:["INSULATION"],requiredAttributes:["OwnHome","SubProductService","InsulationLocation"],modernizeTradePageSlug:"insulation"},{serviceCodes:["KITCHEN_REMODEL"],requiredAttributes:["OptIn","OwnHome"],modernizeTradePageSlug:"kitchen-remodel"},{serviceCodes:["PAVERS"],requiredAttributes:["ProjectScope","OwnHome"],modernizeTradePageSlug:""},{serviceCodes:["PLUMBING"],requiredAttributes:["OwnHome","PlumbingProjectScope"],modernizeTradePageSlug:"plumbing"},{serviceCodes:["ROOFING_ASPHALT","ROOFING_COMPOSITE","ROOFING_CEDAR_SHAKE","ROOFING_METAL","ROOFING_NATURAL_SLATE","ROOFING_TILE"],requiredAttributes:["OwnHome","RoofingPlan"],homebuddyAttributes:["RoofCondition","RoofMountedEquipment","RoofFeatures","HouseAttic","RoofDrainageSystem","HomeStories","RoofSize","RoofAge"],modernizeTradePageSlug:"roof"},{serviceCodes:["SHEDS"],requiredAttributes:["OwnHome","IntendedUse","ProjectStage"],modernizeTradePageSlug:""},{serviceCodes:["SIDING_VINYL","SIDING_ALUMINIUM","SIDING_BRICKFACE","SIDING_COMPOSITE_WOOD","SIDING_STONEFACE","STUCCO_EXTERIOR"],requiredAttributes:["OwnHome","ProjectPlan","HomeStories"],homebuddyAttributes:["SidingCoverageSqFt","ExteriorWallCondition"],modernizeTradePageSlug:"siding"},{serviceCodes:["SOLAR"],requiredAttributes:["ElectricBill","OwnHome","UtilityProvi
1der"],modernizeTradePageSlug:"solar"},{serviceCodes:["STAIR_LIFTS"],requiredAttributes:["OwnHome","ReasonForStairLift"],modernizeTradePageSlug:"stair-lifts"},{serviceCodes:["SUNROOM","ENCLOSED_PATIOS"],requiredAttributes:["NeedsInsulation","NeedsHVAC","ProjectStage","OwnHome"],modernizeTradePageSlug:""},{serviceCodes:["TREE_SERVICES"],requiredAttributes:["CommercialLocation","JobType","NumberOfTrees","OwnHome","TreeSize"],modernizeTradePageSlug:"tree-services"},{serviceCodes:["WALK_IN_TUBS","WALK_IN_SHOWERS"],requiredAttributes:["Interest","OwnHome"],homebuddyAttributes:["TubSurroundCondition","PlumbingCondition","TubInstallFloor"],modernizeTradePageSlug:"walk-in-tubs"},{serviceCodes:["WATER_HEATERS"],requiredAttributes:["ProjectScope","OwnHome"],modernizeTradePageSlug:"plumbing"},{serviceCodes:["WATER_MAIN"],requiredAttributes:["OwnHome"],modernizeTradePageSlug:"plumbing"},{serviceCodes:["WATER_TREATMENT"],requiredAttributes:["BuyTimeframe","OwnHome","ServiceType"],modernizeTradePageSlug:"plumbing/water-treatment"},{serviceCodes:["WINDOWS"],requiredAttributes:["NumberOfWindows","OwnHome","WindowsProjectScope"],homebuddyAttributes:["HomeStories","WindowShape","WindowMaterial","WindowCondition","WindowReplaceReason"],modernizeTradePageSlug:"windows"}]])},289:function(e,t,o){"use strict";async function r(e){const{firstName:t,lastName:o,zip:r}=modForm.getFormData();let n;modForm.trestleAddress=null,t&&o&&(n=`${t} ${o}`);const i=`https://api.trestleiq.com/3.2/phone?${new URLSearchParams({phone:e.value.replace(/\D/g,""),...n&&{"phone.name_hint":n},...r&&{"phone.postal_code_hint":r}})}`,s=performance.now();let a;try{const e=await fetch(i,{method:"GET",headers:{"x-api-key":"QatoKgQghJ4sXEtq53gcL44goMeWVUUW6voQt2OU"}});if(a=Math.round(performance.now()-s),!e.ok)return void Modalytics.heap("track",["Trestle API",{status:`http error: ${e.status}`,apiUrl:i,responseTime:a}]);const t=await e.json(),o=t.owners?.find(e=>"Person"===e.type)??t.owners?.[0],n=o?.current_addresses?.[0]?.street_line_1,c=o?.current_addresses?.[0]?.postal_code;n?(modForm.trestleAddress=n,Modalytics.heap("track",["Trestle API",{status:"success",apiUrl:i,responseTime:a,...r!==c&&{trestleZipMismatch:!0,trestleZip:c}}])):Modalytics.heap("track",["Trestle API",{status:"no address found",apiUrl:i,responseTime:a}])}catch(e){a=Math.round(performance.now()-s),console.error("Fetch error:",e),Modalytics.heap("track",["Trestle API",{status:"network error",apiUrl:i,responseTime:a}]),modForm.trestleAddress=null}}o.d(t,{C:function(){return r}})},430:function(e,t,o){"use strict";function r(){window.currentLocationFromHSGeolookup&&!window.currentLocationFromHSGeolookup.error||function(){const e="https://"+("production"===modUtils.getEnv()?"hs.leadpost.net/":"hsleadpost1.quinstage.com/");fetch(e+"api/IP2GEO/get").then(e=>e.json()).then(e=>{e={country:e.countryName,city:e.city,state:e.stateName,statecode:e.stateCode,zipcode:e.zip},window.currentLocationFromHSGeolookup=e}).catch(e=>{window.currentLocationFromHSGeolookup={error:e}})}()}o.d(t,{d:function(){return r}})},8357:function(e,t,o){"use strict";let r=null;o.d(t,["getPhoneAssignmentData",0,function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(r)return;const o=modUtils.getUrlParamsToObject(),{CCID:n,CLK:i,QTR:s}=e,{phoneNumberLinksSelector:a,phoneNumbersTextSelector:c,matchVendors:d,formatNumberWithBracketsAndDash:m,skipMatching:u,getPhoneAssignmentDataCallback:l,customPhoneNumber:p,additionalParams:f}=modForm.opts.phoneAssignmentConfig,{zip:g}=o,h="production"===modUtils.getEnv(),F="local"===modUtils.getEnv(),y=new RegExp(/(\d{3})(\d{3})(\d{4})/g),b=document.querySelectorAll(a);let S="",v={},w=v,C={};const k="https://"+(h?"form-service-hs.qnst.com":"hsapiservice.quinstage.com"),A=new Headers;A.append("Accept","application/json");const T=()=>{window.fetchedPhoneNumber=null,document.body.classList.remove("call-tracking"),Modalytics.heap("track",["Phone Assignment",{phoneNumber:!1,updatedExistingPhoneAssignment:t}])},E=modForm.opts?.zipCode||null;let L=null;E||(L=!modForm.opts.usedZipFromParams&&g?(modForm.opts.usedZipFromParams=!0,g):window.geolocation?.currentLocation?.z
1ipcode||null),A.append("Content-Type","application/json"),S=`${k}/calls/matches`,v={ccid:n||null,clk:i||null,qtr:s||null,landingPageURL:window.location.href,matchVendors:Array.isArray(d)&&d.length?d:[-1],service:modForm.opts.vertical,site:window.location.host+("/"!==window.location.pathname?window.location.pathname:""),skipMatching:u,zip:E,zipForLocalizedAssignment:L},!v.zip&&F&&(v.zip="94404"),f&&Object.keys(f).length&&Object.keys(f).forEach(e=>{v[e]=f[e]}),p&&(v.assignPhoneNumber=!1),window.activeCampaignData&&(v.trackingInfo={TestID:window.activeCampaignData["Test ID"],VariationName:window.activeCampaignData["Variation Name"]}),t&&modForm.opts.phoneAssignmentConfig.response&&modForm.opts.phoneAssignmentConfig.response.phoneAssignmentKey&&(v.vendorPhoneAssignmentKeys={[v.matchVendors[0]]:modForm.opts.phoneAssignmentConfig.response.phoneAssignmentKey}),w=JSON.stringify(v),r=new AbortController;const P=r.signal;fetch(S,{method:"POST",headers:A,redirect:"follow",mode:"cors",body:w,signal:P}).then(e=>e.json()).then(e=>{if(C=e,e&&"success"===e.status){const{data:o}=e,{phoneDetails:r,matches:n}=o;let i;if(r?i=r[v.matchVendors[0]]:(i=modForm.opts.phoneAssignmentConfig.response,p&&n&&n.length&&(i={phoneNumber:p})),i){const{phoneNumber:e,extension:o,phoneAssignmentKey:r}=i;((e,o,r)=>{if(window.fetchedPhoneNumber=`${e}${o?`,${o}`:""}`,b&&b.length&&e){document.body.classList.add("call-tracking");const n=e.replace(y,m?"($1) $2-$3":"$1-$2-$3"),i=`${n}${o?` <span class="call-extension">Ext: ${o}</span>`:""}`;modForm.opts.phoneAssignmentConfig.response={displayNumber:i,hrefPhoneNumber:`${e}${o?`,${o}`:""}`,extension:o,phoneNumber:e,formattedPhoneNumber:n,phoneAssignmentKey:r},b.forEach(t=>{t.setAttribute("href",`tel:${e}${o?`,${o}`:""}`);const r=t.querySelector(c);r&&(r.innerHTML=i)}),Modalytics.heap("track",["Phone Assignment",{redshift_phoneAssignment:e,phoneNumber:!0,extension:!!o,updatedExistingPhoneAssignment:t}])}})(e,o,r)}}else T()}).catch(e=>{P.aborted?(console.log(P.reason),Modalytics.heap("track",["Phone Assignment",{isRequestAborted:!0}])):(T(),console.log("Something went wrong!",e))}).finally(()=>{l&&l(C),r=null})}])},3864:function(e,t,o){"use strict";function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!e||!e.readyState)return null;switch(e.readyState){case 0:return`${e.readyState} | UNSENT`;case 1:return`${e.readyState} | OPENED`;case 2:return`${e.readyState} | HEADERS_RECEIVED`;case 3:return`${e.readyState} | LOADING`;case 4:return`${e.readyState} | DONE`;default:return null}}o.d(t,{J:function(){return r}})},8756:function(e,t,o){"use strict";function r(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];modForm.opts.form.querySelectorAll('.btn, input, [data-btn="back"], #swiperForm').forEach(t=>{e?(t.removeAttribute("disabled"),t.style.opacity="1",t.style.pointerEvents="all"):(t.setAttribute("disabled","disabled"),t.style.opacity=".5",t.style.pointerEvents="none")})}o.d(t,{f:function(){return r}})},9128:function(e,t,o){"use strict";function r(e){setTimeout(function(){modUtils.heapCookie&&modUtils.setCookie(modUtils.heapCookieData.sessionId,JSON.stringify({initialTimestamp:modForm.getTime,resultsPage:e}))},30)}o.d(t,{u:function(){return r}})},6078:function(e,t,o){"use strict";function r(){modUtils.deleteCookie("formData")}o.d(t,{s:function(){return r}})},8377:function(e,t,o){"use strict";function r(){const e=modUtils.getCookie("ELOQUA");if(e){const t=e.split("&");for(let e=0;e<t.length;e++){const o=t[e].split("=");if(2===o.length&&"GUID"===o[0])return o[1]}}return""}o.d(t,{f:function(){return r}})},3821:function(e,t,o){"use strict";function r(){return modUtils.getCookie("formData")}o.d(t,{z:function(){return r}})},3832:function(e,t,o){"use strict";function r(){let e,t,o=null,r=null,n="";if(modUtils.heapCookie&&(r=modUtils.heapCookieData.sessionId,o=modUtils.getCookie(r)),null!==o){const r=JSON.parse(decodeURIComponent(o));e=r.initialTimestamp,t=e+36e5,n=modForm.opts.isExclusiveMatch?decodeURIComponent(r.resultsPage):r.resultsPage}
1return{heapSessionSubmitCookie:o,heapSessionId:r,initialTimestamp:e,expireInOneHour:t,resultsPage:n}}o.d(t,{m:function(){return r}})},9777:function(e,t,o){"use strict";async function r(){if(!window.geolocation)return;let e=null;const t="ipInfo",o=modUtils.getCookie(t);if(o)try{e=JSON.parse(o)}catch(e){return}else try{const o=await fetch("https://api.ipinfo.io/lookup/me?token=d5edbd8aba8c6c");if(!o.ok)return;const r=await o.json();r&&Object.keys(r).length&&(e={city:r?.geo?.city||"",zip:r?.geo?.postal_code||"",state:r?.geo?.region||""},modUtils.setCookie(t,JSON.stringify(e),1440))}catch(e){return void console.error("Something went wrong!",e)}e&&window.geolocation.responseCollection&&"object"==typeof window.geolocation.responseCollection&&(window.geolocation.responseCollection.ipInfo=e)}o.d(t,{X:function(){return r}})},1754:function(e,t,o){"use strict";function r(){const e=modUtils.getUrlParamsToObject();e&&Object.keys(e).length&&window.sessionStorage&&!modForm.opts.ignoreQueryParamsInSessionStorage&&window.sessionStorage.setItem("queryParams",JSON.stringify(e))}o.d(t,{i:function(){return r}})},4140:function(e,t,o){"use strict";function r(e,t){e.toLowerCase().includes("zip")?modForm.userObj.zip=t:modForm.userObj[e]=t,modUtils.setCookie("userInfo",JSON.stringify(modForm.userObj),526740)}o.d(t,{M:function(){return r}})},738:function(e,t,o){"use strict";function r(){const e=modForm.opts.initialServiceCode&&modForm.opts.vertical&&modForm.opts.initialServiceCode!==modForm.opts.vertical;if(modForm.opts&&modForm.opts.vertical&&!modForm.opts.isServiceCodeStampedInHeap||e){modForm.opts.initialServiceCode=modForm.opts.vertical;const e={serviceCode:modForm.opts.vertical};Modalytics.heap("addEventProperties",e),Modalytics.heap("addUserProperties",e),modForm.opts.isServiceCodeStampedInHeap=!0}}o.d(t,{N:function(){return r}})},678:function(e,t,o){"use strict";function r(){const e={"mod-form":"form/homeowner","mod-utils":"mod-utils/modutils","mod-alytics":"mod-alytics/modalytics"};document.querySelectorAll("script").forEach(t=>{const o=t.src;if(o)for(const t in e){const r=e[t];o.includes(r)&&Modalytics.heap("addEventProperties",{[t]:o.split("/").pop()})}})}o.d(t,{S:function(){return r}})},4536:function(e,t,o){"use strict";function r(){if(modForm.opts.isBestCompany)return;let e=null;if(e=modForm.opts.isBranded&&!modForm.opts.isLeadForm?"Branded":modForm.opts.isModernize?"Modernize":modForm.opts.isCallOnly?"Non-Branded_Call-Only":"Non-Branded",e){const t={siteLabel:e};Modalytics.heap("addEventProperties",t),Modalytics.heap("addUserProperties",t)}}o.d(t,{e:function(){return r}})},8691:function(e,t,o){"use strict";function r(e){Modalytics.gaSend({hitType:"event",eventCategory:"HRC General",eventAction:"User converted on non-TYP experience",eventLabel:window.location.pathname},modForm.opts.gaTracker);const t=window.location.hostname+window.location.pathname;window.heap&&window.heap.addEventProperties({project_id:window.projectId,form_path:t}),window.activeCampaignData&&window.heap&&window.heap.addEventProperties(window.activeCampaignData);const o=e&&e.zip?e.zip:void 0;if(modForm.homeownerLeadConversionProps.zip=o,Modalytics.heap("track",["Homeowner Lead Conversion",modForm.homeownerLeadConversionProps]),modForm.redirectStart=Date.now(),"undefined"!=typeof dataLayer&&window.dataLayer.push({event:"Homeowner Lead Conversion"}),!modForm.opts.autoRedirectToTyOrSorryPage)return!1;Modalytics.heap("track",["NonTYP Redirect Timer Start",{timeElapsed:Date.now()}]),window.timeOutId=setTimeout(function(){const e=document.querySelector("body").getAttribute("class");Modalytics.heap("track",["Hit Timeout to redirect to HRC",{classesPresent:e,timeElapsed:Date.now()-modForm.redirectStart}]),window.Loader&&modForm.opts.showRedirectOverlay?(window.Loader.showRedirectAnimation(),Modalytics.heap("track",["Loader Visible - Transferring to Modernize"]),setTimeout(function(){setTimeout(function(){window.location.href=modForm.projexURL},500),document.body.classList.add("submitted")},2500)):(document.body.classList.add("submitted"),setTimeout(function(){window.location.href=modForm.projexURL},500))},5e3)}o.d(t,{f:function(){return r}})},8407:function(e,t,o){"use strict";function r(){const e=navigator.userAgent.toLowerCase();
1let t="Unknown",o="",r="Desktop",n="Unknown",i=null,s="";/ipad/i.test(e)?r="iPad":/silk/.test(e)||/\bkf[a-z0-9]+/.test(e)?r="Kindle Fire":/kindle/.test(e)&&!/silk/.test(e)?r="Kindle (E-Ink)":/mobile|android|iphone|ipod/i.test(e)&&(r="Mobile"),/android/i.test(e)?(n=e.match(/android\s+([\d.]+)/i)?.[0]||"Android",n=n?.charAt(0)?.toUpperCase()+n?.slice(n)):/iphone|ipad|ipod/i.test(e)||/darwin\/\d+/i.test(e)&&/cfnetwork/i.test(e)&&!/macintosh|mac os x|mac os/i.test(e)?n="iOS":/windows/i.test(e)?n="Windows":/macintosh|mac os|mac os x/i.test(e)||/darwin\/\d+/i.test(e)?n="macOS":/kaios/.test(e)?n="KaiOS":/linux/i.test(e)&&(n="Linux"),/(fbav|fban|fbios)(?:\/|\s)/i.test(e)?(i="Facebook",s=e.match(/(fbav)(?:\/|\s)(\d+)/i)?.[2]):/instagram(?:\/|\s)/i.test(e)?(i="Instagram",s=e.match(/instagram(?:\/|\s)(\d+)/i)?.[1]):/(messenger|fban\/messenger|fban\/messengerliteforios)(?:\/|\s)/i.test(e)?(i="Messenger",s=e.match(/(messenger|fban\/messenger|fbav)(?:\/|\s)(\d+)/i)?.[2]):/\[?(tiktok|ttwebview)\]?(?:\/|\s)/i.test(e)||/\bwv\b/i.test(e)&&(/bytedancewebview|bytelocale/.test(e)||/appname(?:\/|\s)(trill|musical_ly|ultralite)/i.test(e))?(i="TikTok",s=e.match(/(tiktok|ttwebview)(?:\/|\s)(\d+)/i)?.[2]||e.match(/appname\/(trill|musical_ly|ultralite)(?:\/|\s)(\d+)/i)?.[2]||""):/twitter(?:\/|\s)/i.test(e)?(i="Twitter",s=e.match(/twitter(?:\/|\s)(\d+)/i)?.[1]):/\[?(linkedinapp|linkedin)\]?(?:\/|\s)/i.test(e)?(i="LinkedIn",s=e.match(/\[?(linkedinapp|linkedin)\]?(?:\/|\s)(\d+)/i)?.[2]):/pinterest(?:\/|\s)/i.test(e)?(i="Pinterest",s=e.match(/pinterest(?:\/|\s)(\d+)/i)?.[1]):/snapchat(?:\/|\s)/i.test(e)?(i="Snapchat",s=e.match(/snapchat(?:\/|\s)(\d+)/i)?.[1]):/whatsapp(?:\/|\s)/i.test(e)?(i="WhatsApp",s=e.match(/whatsapp(?:\/|\s)(\d+)/i)?.[1]):/(gmail|gsa)(?:\/|\s)/i.test(e)||/com\.google\.android\.gm/i.test(e)?(i="Gmail",s=e.match(/(gmail|gsa)(?:\/|\s)(\d+)/i)?.[2]):/(outlook-ios|outlook-android|microsoft outlook)\//i.test(e)?(i="Outlook",s=e.match(/(outlook-ios|outlook-android)(?:\/|\s)(\d+)/i)?.[2]):/\b(yahoomail|ymail)\b(?:\/|\s)/i.test(e)?(i="Yahoo",s=e.match(/\b(yahoomail|ymail)\b(?:\/|\s)(\d+)/i)?.[2]):/\[?spark\]?(?:\/|\s)/i.test(e)?(i="Spark",s=e.match(/spark(?:\/|\s)(\d+)/i)?.[1]):/edisonmail(?:\/|\s)/i.test(e)?(i="Edison",s=e.match(/edisonmail(?:\/|\s)(\d+)/i)?.[1]):/(baiduboxapp|baidubrowser|baiduhd)(?:\/|\s)/i.test(e)?(i="Baidu",s=e.match(/(baiduboxapp|baidubrowser|baiduhd)(?:\/|\s)(\d+)/i)?.[2]):/copilotsapphire\//i.test(e)?(i="Copilot",s=e.match(/copilotsapphire(?:\/|\s)(\d+)/i)?.[1]):/\bpolymail\b(?:\/|\s)/i.test(e)?(i="Polymail",s=e.match(/polymail(?:\/|\s)(\d+)/i)?.[1]):/protonmail(?:\/|\s)/i.test(e)?(i="ProtonMail",s=e.match(/protonmail(?:\/|\s)(\d+)/i)?.[1]):/\bwv\b/i.test(e)&&/android/i.test(e)?i="Android WebView":/wkwebview|mobile\/[\d.]+/i.test(e)&&!/safari|android/i.test(e)&&(i="iOS WebView"),/(edg|edgios|edga)(?:\/|\s)/i.test(e)?(t="Edge",o=e.match(/(edg|edgios|edga)(?:\/|\s)(\d+)/i)?.[2]):/(opr|opera|opios)(?:\/|\s)/i.test(e)?(t="Opera",o=e.match(/(opr|opera|opios)(?:\/|\s)(\d+)/i)?.[2]):/brave(?:\/|\s)/i.test(e)?(t="Brave",o=e.match(/chrome|brave(?:\/|\s)(\d+)/i)?.[1]):/samsungbrowser/i.test(e)?(t="Samsung Internet",o=e.match(/samsungbrowser(?:\/|\s)(\d+)/i)?.[1]):/\barc\b(?:\/|\s)/i.test(e)?(t="Arc",o=e.match(/\barc\b(?:\/|\s)(\d+)/i)?.[1]):/\bvivaldi\b/i.test(e)?(t="Vivaldi",o=e.match(/\bvivaldi\b(?:\/|\s)(\d+)/i)?.[1]):/\bduckduckgo\b/i.test(e)?(t="DuckDuckGo",o=e.match(/\bduckduckgo\b(?:\/|\s)(\d+)/i)?.[1]):/kiwibrowser/i.test(e)||/kiwichrome/i.test(e)?(t="Kiwi",o=e.match(/(kiwibrowser|kiwichrome)(?:\/|\s)(\d+)/i)?.[2]):/\becosia\b/i.test(e)?(t="Ecosia",o=e.match(/\becosia\b(?:\/|\s)(\d+)/i)?.[1]):/ucbrowser|ucweb/i.test(e)?(t="UC",o=e.match(/(ucbrowser|ucweb)(?:\/|\s)(\d+)/i)?.[2]):/\bwaterfox\b/i.test(e)?(t="Waterfox",o=e.match(/\bwaterfox\b(?:\/|\s)(\d+)/i)?.[1]):/mqqbrowser|qqbrowserLite/i.test(e)?(t="QQ",o=e.match(/(mqqbrowser|qqbrowserLite)(?:\/|\s)(\d+)/i)?.[2]):/baidubrowser|baiduhd/i.test(e)?(t="Baidu",o=e.match(/(baidubrowser|baiduhd)(?:\/|\s)(\d+)/i)?.[2]):/miuibrowser|mibrowser/i.test(e)?(t="MiUi",o=e.match(/(miuibrowser|mibrowser)(?:\/|\s)(\d+)/i)?.[2]):/yabrowser|yandex/i.test(e)?(t="Yandex",o=e.match(/yabrowser(?:\/|\s)(\d+)/i)?.[1]):/silk/i.test(e)?(t="Silk",o=e.match(/silk(?:\/|\s)(\d+)/i)?.[1]):/kindle/.test(e)&&!/silk/.test(e)?(t="Kindle",o=e.match(/kindle(?:\/|\s)(\d+)/i)?.[1]):/kaios/.test(e)?(t="KaiOS",o=e.match(/kaios(?:\/|\s)(\d+)/i)?.[1]):/(chrome|crios)(?:\/|\s)/i.test(e)&&!/edg|edga|edgios|opr|opios|opera/i.test(e)?(t="Chrome",o=e.match(/(chrome|crios)(?:\/|\s)(\d+)/i)?.[2]):/(firefox|fxios)(?:\/|\s)/i.test(e)?(t="Firefox",o=e.match(/(firefox|fxios)(?:\/|\s)(\d+)/i)?.[2]):/safari/i.test(e)&&!/chrome|opr|edg|crios|fxios|edgios|opios/i.test(e)?(t="Safari",o=e.match(/version(?:\/|\s)(\d+)/i)?.[1]):/msie|trident/i.test(e)&&(t="Internet Explorer",o=e.match(/(msie|rv:)(?:\/|\s)(\d+)/i)?.[2]);const a=[i?`${i} In-App`:t,o?`v${o}`:"",`(${r}, ${n}
1)`].filter(Boolean).join(" "),c=[""+(i?`${i.replace(/\s+/g,"")}_InApp${s||""}`:`${t}${o||""}`),r,n.replace(/\s+|[0-9.]/g,"")].filter(Boolean).join("|");return{name:t,version:o||"Unknown",device:r,os:n,inAppBrowser:i||"None",inAppBrowserVersion:s,readable:a,compact:c,userAgent:navigator.userAgent}}o.d(t,{Z:function(){return r}})},6145:function(e,t,o){"use strict";function r(){let e="https://hsapi.quinstage.com/";return"production"===modUtils.getEnv()&&(e="https://hsapi.quinstreet.com/"),e}o.d(t,{p:function(){return r}})},1122:function(e,t,o){"use strict";function r(){let e=modForm.opts.websiteName.replace(/(qa|staging|www)./g,"");return e=e.replace("m.",""),e}o.d(t,{e:function(){return r}})},5435:function(e,t,o){"use strict";function r(){let e="https://hsapiservice.quinstage.com/";return"production"===modUtils.getEnv()&&(e="https://form-service-hs.qnst.com/"),e}o.d(t,{h:function(){return r}})},9754:function(e,t,o){"use strict";function r(){if(document.referrer)try{return new URL(document.referrer).hostname}catch(e){return null}}o.d(t,{E:function(){return r}})},3898:function(e,t,o){"use strict";o.d(t,{initQuadTransform:function(){return n}});var r=o(5235);async function n(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];const t=(0,r.O_H)()||modUtils.getUrlParamsToObject(),o=t.hasOwnProperty("quadlink"),n=t.hasOwnProperty("tagID"),i={message:""},s=Object.keys(t).some(function(e){return modForm.opts.qsParams.includes(e.toUpperCase())});for(const[e,o]of Object.entries(t))e in modForm.opts.quadLinkData||(modForm.opts.quadLinkData[e]=o);if(s){for(const e in t)modForm.opts.qsParams.includes(e.toUpperCase())&&void 0!==t[e]&&(modForm.opts.quadLinkParams[e.toUpperCase()]=t[e]);(0,r.JxV)(),window.geolocation?document.addEventListener("geolocation.dataReady",function(){modForm.opts.phoneAssignmentConfig.showPhoneAssignmentNumber&&(0,r.QnV)(modForm.opts.quadLinkParams)}):modForm.opts.phoneAssignmentConfig.showPhoneAssignmentNumber&&(0,r.QnV)(modForm.opts.quadLinkParams),modForm.opts.quadLinkParams&&Object.keys(modForm.opts.quadLinkParams).length&&modForm.opts.quadLinkParams.CCID?(modForm.opts.quadLinkData.CCID=modForm.opts.quadLinkParams.CCID,(0,r.I7e)({skipPhoneAssignmentCall:!0})):(0,r.jtI)()}else{let s="",a="";if(n?(s=t.tagID,a="tagID"):(s=o?t.quadlink:(0,r.xTD)(modForm.opts.vertical),a=o?"quadlink":"defaultQuad"),modForm.opts.quadLinkData[a]=s,""!==s){if(modUtils.getLandingPage().includes("bestcompany")&&modUtils.getLandingPage().includes("find-a-pro")){const e=document.querySelector('input[name="quadlink"]'),t=(0,r.xTD)(r.tRQ["bestcompany.com"].findapro).replace("&default=yes;","");e&&(e.value=t),modForm.opts.quadLinkData.quadlink?modForm.opts.quadLinkData.quadlink=t:modForm.opts.quadLinkData.defaultQuad=t}e?"IdlizeQueue"in window?(i.message="initQuadTransform() called on DOMContentLoaded with IdlizeQueue",window.IdlizeQueue.pushTask(()=>{(0,r.I7e)()})):((0,r.I7e)(),i.message="initQuadTransform() called on DOMContentLoaded without IdlizeQueue"):((0,r.I7e)(),i.message="initQuadTransform() called on window.onload")}Modalytics.heap("track",["Quad Transform",i])}}},4567:function(e,t,o){"use strict";function r(){const e=document.createElement("script");e.src="https://js.sentry-cdn.com/cfb3494495c55c086a1b2f077e365a24.min.js",e.crossOrigin="anonymous",document.head.append(e)}o.d(t,{D:function(){return r}})},1450:function(e,t,o){"use strict";function r(e){const t=document.getElementById(e).getAttribute("data-ga-step-name")||e;Modalytics.gaSend({hitType:"pageview",page:window.location.pathname+"?step="+t,title:document.title+" ("+t+")"},modForm.opts.gaTracker)}o.d(t,{o:function(){return r}})},1320:function(e,t,o){"use strict";o.d(t,{G:function(){return n}});let r={};function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.keys(e).length&&(r=Object.assign(r,e),Modalytics.heap("track",["Submit Function Call Checkpoint",r]))};"production"!==modUtils.getEnv()||window.heap?t(e):document.addEventListener("heap.",function(){t(e)})}},7575:function(e,t,o){"use strict";function r(e){Modalytics.heap("track",["Validation Error | "+e,{}])}o.d(t,{d:function(){return r}})},5782:function(e,t,o){"use strict";function r(){modForm.opts.form.addEventListener("mousemove",function(){modForm.opts.form.classList.contains("form--disable-step-focus")||modForm.opts.form.classList.add("form--disable-step-focus")}),modForm.opts.form.querySelectorAll('fieldset label, input[type="radio"]').forEach(function(e){e.addEventListener("mouseup",function(){modForm.radioButtonClickedByMouse=!0})})}o.d(t,{K:function(){return r}})},8285:function(e,t,o){"use strict";const r={start:function(){const e=Date.now();
1modUtils.setCookie("startTime",e)},complete:function(){const e=Number(modUtils.getCookie("startTime"));if(e&&!isNaN(e)){const t=Date.now()-e,o=r.formatTime(t);return modUtils.deleteCookie("startTime"),o}},formatTime:function(e){if(!e||isNaN(e))return"unknown";const t=Math.floor(e/1e3),o=Math.floor(t/60),r=Math.floor(o/60);return`${String(r).padStart(2,"0")}:${String(o%60).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}};o.d(t,["J",0,r])},9693:function(e,t,o){"use strict";o.r(t),o.d(t,{gt:function(){return r.g},Jb:function(){return n.J},O:function(){return u},x6:function(){return f},xd:function(){return i.x},vg:function(){return s},aL:function(){return h.a},HK:function(){return c},Bu:function(){return p},h$:function(){return d.h},uV:function(){return F.u},cG:function(){return g.c},zN:function(){return l.z},Hb:function(){return m}});var r=o(4574),n=o(241),i=o(2471);function s(e,t){let o,n,s,a,c=!0,m=e.value;const u={areaCode:["000","800","888","866","911"],preCode:["555","000","911"],badNumbers:["4192933931","7137760656","6315431074","2814689701","2814827603","6318642656"]},l={name:/[^A-Za-z'\- .Ã -Å»]/,zip:/^\d{5}(?:-\d{4})?$/},p=/\s\s+/g,f=/^[2-9][0-9]{2}[2-9][0-9]{6}$/,g=/(.+)(?=\1{2})/,h=/(.+)(?=\1{4})/,F=/^(?:[A-Za-z]+|[A-Za-z]{3,}-[A-Za-z]{3,})$/;switch(void 0!==l[t]&&(c="name"===t?c&&!l[t].test(m):c&&l[t].test(m)),t){case"email":c=c&&(0,i.x)(m,e)&&-1===m.search("rediffmail");break;case"phone":m=m.replace(/[()\s-]/g,""),n=m.substr(0,3),a=m.substr(3,3),s=!1,s=u.areaCode.includes(n)||u.preCode.includes(a)||-1!==n.indexOf("11"),c=c&&!s&&!u.badNumbers.includes(m)&&f.test(m)&&!h.test(m);break;case"address":o=e.getAttribute("data-address-min")&&parseInt(e.getAttribute("data-address-min"),10)?parseInt(e.getAttribute("data-address-min"),10):5,c=c&&m.length>=o&&!(0,r.g)(m)&&!p.test(m);break;case"name":o=e.getAttribute("data-name-min")&&parseInt(e.getAttribute("data-name-min"),10)?parseInt(e.getAttribute("data-name-min"),10):2,c=c&&m.length>=o&&!(0,r.g)(m)&&!g.test(m)&&F.test(m);break;case"companyName":c=c&&(0,d.h)(m);break;case"nonempty":o=e.getAttribute("data-nonempty-min")&&parseInt(e.getAttribute("data-nonempty-min"),10)?parseInt(e.getAttribute("data-nonempty-min"),10):1,c=!!(c&&m&&m.length>=o);break;case"regex":c=c&&new RegExp(e.getAttribute("data-regex")).test(m);break;case"ein":c=c&&(""===m||/^\d{2}-\d{7}$/.test(m));break;case"int":m=parseInt(m,10),Number.isInteger(m)||(c=!1),e.getAttribute("data-min")&&parseInt(e.getAttribute("data-min"),10)&&m<parseInt(e.getAttribute("data-min"),10)&&(c=!1),e.getAttribute("data-max")&&parseInt(e.getAttribute("data-max"),10)&&m>parseInt(e.getAttribute("data-max"),10)&&(c=!1)}return c}var a=o(5235);function c(e){let t=!0;if(e){const o=[];let r=null,n=null;if(e.querySelectorAll("[data-required]").forEach(function(i){const c=i,d=c.getAttribute("data-required");if(t="radio"===c.getAttribute("type")||"checkbox"===c.getAttribute("type")?e.querySelectorAll('input[name="'+c.getAttribute("name")+'"]:checked').length:s(c,d),"name"===d&&t&&((0,a.EBV)(c),r="firstName"===c?.name?c:r,n="lastName"===c?.name?c:n,r&&n)){const e=r.value,o=n.value;t=t&&(0,F.u)(e,o),t||((0,a.x5o)(r),(0,a.x5o)(n),Modalytics.heap("track",["Validation Error | Identical First and Last Name",{}]))}if(!t){const e=c.name.charAt(0).toUpperCase()+c.name.slice(1);if(-1===o.indexOf(e)&&o.push(e),"zip"===c.name&&modForm.opts.zipFormSelectorsToSync.length){const e=[],t=modForm.opts.form.querySelector('input[name="zip"]');t&&e.push(t),modForm.opts.zipFormSelectorsToSync.forEach(function(t){e.push(document.querySelector(`${t} input[name="zip"]`))}),e.forEach(function(e){e.value=c.value,(0,a.x5o)(e)})}else(0,a.x5o)(c);t=!1}}),modForm.opts.steps){(0,a.IsU)().querySelectorAll("."+modForm.opts.fieldErrorCls).length>0&&(t=!1)}o.length&&(t=!1,o.forEach(function(e){(0,a.dDO)(e)}))}return t}var d=o(8959);function m(e,t){let o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;o&&(modForm.opts.zipTrackingState={active:!1,request:null,abortCallback:r});const n=modForm.opts.getVars&&modForm.opts.getVars.timeout&&"production"!==modUtils.getEnv()?Number(modForm.opts.getVars.timeout):3e3,i="https://"+("production"===modUtils.getEnv()?"hs.leadpost.net/":"hsleadpost1.quinstage.com/"),s=document.querySelectorAll(modForm.zipEditInput)[0],c=modUtils.getUrlParamsToObject(),{phoneAssignmentC
1onfig:d,quadLinkParams:m}=modForm.opts,u=d.showPhoneAssignmentNumber&&!c.startStep&&m&&Object.keys(m).length&&modForm.opts.zipCode!==e,l=new XMLHttpRequest;let p={};l.open("GET",`${i}api/PostalCordinateInfo/${e}/get`),l.timeout=n,o?(modForm.opts.zipTrackingState.active=!0,modForm.opts.zipTrackingState.request=l):!o&&modForm.opts.zipTrackingState.active?(modForm.opts.zipTrackingState.request.abort(),modForm.opts.zipTrackingState.active=!1,modForm.opts.zipTrackingState.abortCallback&&modForm.opts.zipTrackingState.abortCallback()):(modForm.opts.zipTrackingState.active=!1,modForm.opts.zipTrackingState.request=null),modForm.isZipValid=!1,l.send(),l.addEventListener("load",function(){this.response&&(p={...p,...JSON.parse(this.response)},4===this.readyState&&200===this.status?(p.success=!0,p.data=JSON.parse(this.response),p.data.zip=e,s&&"hidden"===s.style.display&&(document.querySelector(modForm.zipEditControlCls).style.display="block"),modForm.retryZipValidation=!1,modForm.isZipValid=!0,"function"==typeof t&&t(p),u&&(0,a.QnV)(modForm.opts.quadLinkParams,!0)):(modForm.isZipValid=!1,"function"==typeof t&&(400===p.status?t({error:!0,message:p.error_message}):t({}))))}),l.addEventListener("error",function(){console.error("Something went wrong");const e=(0,a.mCz)();(0,a.qQx)(e),Modalytics.heap("track",["API Error | Showing Fallback Experience",{function:"isZipCodeValid"}])}),l.addEventListener("timeout",function(){modForm.retryZipValidation=!0,modForm.opts.cityField[0]&&(modForm.opts.cityField[0].value=""),modForm.opts.stateField[0]&&(modForm.opts.stateField[0].value=""),document.querySelector(modForm.zipEditControlCls)&&(document.querySelector(modForm.zipEditControlCls).style.display="none"),t({success:!0,data:{zip:e}})})}function u(){return 1===(modForm?.opts?.steps&&modForm.opts.steps.length-Array.from(modForm.opts.steps).indexOf((0,a.IsU)()))}var l=o(3203);function p(){return!!modForm.opts.isEligibleForHrc||["modernize.local","modernize.com","homesolarrebate.com","hvaccostguide.com","pennythepro.com","quotes.improvementcenter.com","roofing-survey.com","sunroompatiopricing.com","thesidingremodelconnection.com","tophottubs.org","topinsulationpros.com","treetrimmingservicepros.com","walkintubprices.org","wholehomewatersystems.org","windowreplacementcost.org","windowscostguide.com","windowspromos.com","windowsremodelconnection.com","windowreplacementdeals.org","windowssurvey.com"].indexOf((0,a.e$X)())>-1}function f(){return modForm.opts.steps.length-Array.from(modForm.opts.steps).indexOf((0,a.IsU)())===2}var g=o(2062),h=o(5474),F=o(3996)},4574:function(e,t,o){"use strict";function r(e){const t=["anal","anus","arse","ass","assfucker","asshole","balls","ballsack","bastard","biatch","bitch ass","bitch","bitchin","bitching","blow job","blowjob","boner","boob","booger","booob","boooob","booooob","booooooob","breast","butt fuck","butt","butthole","chink","clit","clitoris","cock sucker","cock","cocksuck","cocksucked","cocksucker","cocky","crap","cum","cumshot","cunt","damn","darn","derp","dickhead","dildo","dlck","douche","douchebag","eatme","ejaculate","fag","faggot","fat","fatass","fatty","fuck off","fuck","fucked","fucker","fuckhead","fuckyou","goddamn","haha","hahaha","hahahaha","horniest","horny","i'm","infection","jack off","jackoff","jerk off","jizz","listed","masturbate","me off","meh off","meoff","mother fucker","motherfuck","motherfucker","muff","myball","nazi","nigga","niggah","niggaz","nigger","numbnut","nutsack","nutz","orgasm","pecker","penis","pimple","piss","pissy","poop","porn","prick","prickly","pube","pussi","pussy","queef","rectum","retard","schlong","scrotum","semen","sex","sexy","shit","shithead","shitty","skank","slut","smegma","smut","snatch","spammer","sponge","spongebob","spunk","squarepant","stupid","suck","sucker","teet","testicle","thisisgay","titti","titty","troll","turd","twat","ugly","vagina","whore","xxx","your","your mother"],o=(e=(e=e.replace(/[^a-z0-9.'#-s]/i)).toLowerCase()).split(" ");for(let e=0;e<o.length;e++)for(let r=0;r<t.length;r++)if(o[e]===t[r])return!0;return!1}o.d(t,{g:function(){return r}})},241:function(e,t,o){"use strict";function r(){const e=[];return null===modForm.opts.vertical&&e.push("Please define the vertical."),null!==modForm.opts.form&&modForm.opts.form.length||e.push("Please define the form element."),document.querySelector(modForm.opts.stepsSelector)||e.push("Please form steps."),!e.length||(alert(e.join("\n")),!1)}o.d(t,{J:function(){return r}})},2471:function(e,t,o){"use strict";function r(e){return/^([\w+-]+(?:\.[\w+-]+)*)(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)/i.test(e)}o.d(t,{x:function(){return r}})},5474:function(e,t,o){"use strict";function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Object.keys(e).length||"object"!=typeof e)return!1;return JSON.stringify(e).length<4e3}o.d(t,{a:function(){return r}})},8959:function(e,t,o){"use strict";function r(e){const t=e.match(".*[a-zA-Z]+.*"),o=e&&e.length>=1;return!(!t||["na","n/a"].includes(e.toLowerCase())||!o)}o.d(t,{h:function(){return r}})},3996:function(e,t,o){"use strict";o.d(t,{u:function(){return n}});const r=e=>String(e).trim().toLowerCase();function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return!e||!t||r(e)!==r(t)}},2062:function(e,t,o){"use strict";o.d(t,{c:function(){return n}});let r=null;async function n(e){if(r)return;if(!e)return r=!1,!0;r=!0;const t="https://"+("production"===modUtils.getEnv()?"prod.lead-vali
1dation.api.modernize.com/":"staging.lead-validation.api.modernize.com/");let o=!0;try{const r=await fetch(`${t}validate/phone-number`,{headers:{"Content-Type":"application/json"},body:JSON.stringify({phoneNumber:e?.replace(/[()\s-]/g,"")}),method:"POST"}),n=await r.json();return o=n?.isvalid,o}catch(e){console.error("Something went wrong",e)}finally{r=!1}return o}},3203:function(e,t,o){"use strict";function r(e){return e&&e.offsetHeight>0&&e.offsetWidth>0}o.d(t,{z:function(){return r}})}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,o),i.exports}o.d=function(e,t){if(Array.isArray(t))for(var r=0;r<t.length;){var n=t[r++],i=t[r++],s=0===i?{enumerable:!0,value:t[r++]}:{enumerable:!0,get:i};o.o(e,n)||Object.defineProperty(e,n,s)}else for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){"use strict";o.r(r),o.d(r,{modForm:function(){return d}});var e={};o.r(e),o.d(e,{init:function(){return c}});var t=o(8352),n=o(5235),i={};o.r(i),o.d(i,{abandonmentTriggerCallback:function(){return n.fLf},addAddressToFormDataFromTrestleApi:function(){return n.kpA},addFallbackOwnHome:function(){return n.xeM},addGeolocationData:function(){return n.ibT},addHiddenVapiInput:function(){return n.ga0},addInvocaFallbackToDataLayer:function(){return n.QpF},addRegressionTestingAttributes:function(){return n._hf},addRequiredFieldsToContractorForm:function(){return n.ik5},addRequiredFieldsToForm:function(){return n.vmJ},addRequiredQSFieldsToForm:function(){return n.hv7},addServiceCodeToHeap:function(){return n.NyN},addSharedResourceFileNamesToHeap:function(){return n.S3y},addSiteLabelToHeap:function(){return n.eA1},addToHeapEventAndUserProperties:function(){return n.snI},appendFormInput:function(){return n.BOl},appendLeadTokenScriptToBody:function(){return n.WzO},backButtonClickCallback:function(){return n.fJ3},blockDuplicateSubmissionSameHeapSessionId:function(){return n.u2L},capitalize:function(){return n.ZHe},checkStartStep:function(){return n.RxA},createHeapSessionIdCookie:function(){return n.uld},defaultQuadLinkValues:function(){return n.tRQ},deleteFormDataCookie:function(){return n.sUt},elqGetGuidCookieValue:function(){return n.fex},findEmailProvider:function(){return n.RT3},fireNonTYPConversionPathPixels:function(){return n.fk9},focusOnFirstErrorOnCurrentStep:function(){return n._jl},formSubmitCallback:function(){return n.wJL},formatContractorDataForModApi:function(){return n.mq$},generateSession:function(){return n.uDx},generateTooltipMarkup:function(){return n.LnV},getAddressUsingTrestle:function(){return n.Cg5},getBrowserDetails:function(){return n.ZEO},getCROTagPayloadForHeap:function(){return n.IWy},getConsentListing:function(){return n.l8D},getCrossSellApiDomain:function(){return n.pZ},getCurrentStep:function(){return n.IsU},getDefaultQuad:function(){return n.xTD},getDefaultQuadByDomain:function(){return n.S5W},getDefaultSiteByDomain:function(){return n.e$X},getEddieData:function(){return n.uk5},getFormData:function(){return n.tgI},getFormDataCookie:function(){return n.zIm},getFormsServiceApiDomain:function(){return n.hry},getGeolocationData:function(){return n.d$Q},getHSGeoLookupDetails:function(){return n.Vqk},getHeapSessionIdCookieData:function(){return n.mCz},getIpInfoGeoDetails:function(){return n.Xwf},getNextStepId:function(){return n.v5B},getOwnHomeValue:function(){return n.lLi},getPhoneAssignmentData:function(){return n.QnV},getPhoneNumberType:function(){return n.A9b},getPrevStepId:function(){return n.DFK},getProjExUrl:function(){return n.EGm},getQSApiDomain:function(){return n.RID},getReferrerDomain:function(){return n.Epu},getRequestState:function(){return n.JgO},getSavedQueryParams:function(){return n.O_H},getSkipStepsConfig:function(){return n.RM0},getTcpaElementContent:function(){return n.ioF}
1,getUtilityProvidersByState:function(){return n.hY1},getUtilityProvidersByZip:function(){return n.lLF},handleNextButton:function(){return n.Yo2},hashStepTracking:function(){return n.q7I},heapIdentify:function(){return n.JxV},hideAllSteps:function(){return n.hL4},initApiErrorFallbackExperience:function(){return n.b4i},initAutofill:function(){return n.vHd},initBackButtons:function(){return n.vTO},initCarousel:function(){return n.Hpj},initClickToProceed:function(){return n.Wzn},initContractorForm:function(){return n.Aos},initContractorFormSubmit:function(){return n.yfL},initDuplicateSubmissionExperience:function(){return n.qQx},initExtraQuestionBlock:function(){return n.gHb},initFormDynamicContent:function(){return n.Hew},initFormElements:function(){return n.C2f},initFormSubmit:function(){return n.FYY},initFormSubmitLoader:function(){return n.MAG},initFormSubmitLoaderAssets:function(){return n.h78},initHvacFuelTypeBlock:function(){return n.oGh},initLeadTokenScriptsTriggers:function(){return n.PYM},initNextButtonAbusePrevention:function(){return n.u8y},initNumericOnlyFields:function(){return n.xST},initPhoneAssignmentConfig:function(){return n.SRk},initQSForm:function(){return n.piO},initQuadTransform:function(){return n.QP},initQuadTransformRetry:function(){return n.QcI},initRecaptcha:function(){return n._su},initRecaptchaDefaultQuad:function(){return n.wAW},initResubmitBtn:function(){return n.ePo},initSentryScript:function(){return n.D4},initShowSecureText:function(){return n.w1s},initSuppressConversionPixel:function(){return n.E9y},initTooltips:function(){return n.Dcu},initTrackZip1Change:function(){return n.ayy},initTrackZipChange:function(){return n.ROK},initUserInformationStorage:function(){return n.LA6},loadLeadTokenScriptsTriggers:function(){return n.XLJ},mapDynamicServiceCode:function(){return n.SI$},mapProjectValue:function(){return n.VNb},mapServiceSpecificAttributes:function(){return n.f91},markFieldAsInvalid:function(){return n.x5o},maskEinFields:function(){return n.kcK},maskPhoneFields:function(){return n.cYO},modifyTcpaForExclusiveVendors:function(){return n.Rhu},nextButtonClickCallBack:function(){return n.pfF},onRecaptchaLoad:function(){return n.F4w},parseHTMLFromString:function(){return n.qEB},populateFormWithZipData:function(){return n.Os9},populateInput:function(){return n.vnX},populateLocationFieldsDynamically:function(){return n.yWL},populateTradeFromURL:function(){return n.YBD},prePopFormWithEddie:function(){return n.I9K},preProcessPayload:function(){return n.FJv},prepopFormFromURL:function(){return n.wDK},preprocessContractorFormData:function(){return n.sUC},preprocessQSFormData:function(){return n.h4d},preventRecaptchaFileLoad:function(){return n.YbH},preventSkip:function(){return n.IUI},processAPIResponseErrors:function(){return n.QIE},processContractorFormSubmitSuccess:function(){return n.Qsh},processFormSubmitError:function(){return n.IYu},processFormsServiceApiSubmitSuccess:function(){return n.L0f},recaptchaChallengeObserver:function(){return n.n7g},removeEvents:function(){return n.GUm},removeLoader:function(){return n.QUQ},rerunConsentSearchesOnInputChange:function(){return n.mmk},reviewOptinEligibility:function(){return n.QMH},sanitizeLandingPageUrl:function(){return n.PUd},saveFormDataToCookie:function(){return n.rrF},saveOriginalReferrerCookie:function(){return n.Orn},saveQueryParamsCookie:function(){return n.iWb},saveUserInfoToCookie:function(){return n.M7_},serviceCodesAndAttributions:function(){return n.XjZ},showFallbackForDuplicateSubmission:function(){return n.wAF},showNextStep:function(){return n.lB1},showPrevStep:function(){return n.Pib},showStep:function(){return n.mfN},showStepConditionally:function(){return n.lwN},showStepWithFirstError:function(){return n.kCm},showUtilityProviders:function(){return n.uPb},skipHiddenSteps:function(){return n.zV1},skipSteps:function(){return n.lyQ},submitContractorFormDataToApi:function(){return n.Bpe},submitForm:function(){return n.rMA},submitFormDataToFormsServiceApi:function(){return n.GIv},subscribeToNonTYPMutations:function(){return n.SBi},swapRecaptchaTokenWithFlag:function(){return n.G3W},switchFormEnabledState:function(){return n.fNc},switchFormLoadingState:function(){return n.AyO},switchFormSubmitState:function(){return n.Yte},tabKeyDownCallBack:function(){return n.mEw},trackCROTagToHeap:function(){return n.Jw2},trackEcommerceWidgetEvents:function(){return n.$$Z},trackFormServiceApiPayload:function(){return n.FJm},trackFormStepChangeDataLayer:function(){return n.Bsj},trackFormStepGA:function(){return n.ov6},trackFormSubmissionFlow:function(){return n.GHi},trackInvalidFieldsInHeap:function(){return n.dDO},trackMouseMovement:function(){return n.K9G},trackPageContextToGA4:function(){return n.jtI},trackTimeOnPage:function(){return n.Jbh},transformQuadlink:function(){return n.I7e},transformQuadlinkSuccessCallback:function(){return n.otf},triggerAbandonmentExperience:function(){return n.Eti},triggerQuadTransform:function(){return n.IDj},unmarkFieldAsInvalid:function(){return n.EBV},updateConsentHiddenFields:function(){return n.TsY},updateFormDataFormatForFormsService:function(){return n.IGB},updateTabIndexes:function(){return n.BoI},useInitialQueryParamsFromSessionStorage:function(){return n.JBN},validateRecaptchaResponse:function(){return n.B3c},watchHashChange:function(){return n.Cgh},zipControlButtonClick:function(){return n.r2_},zipKeyDownCallBack:function(){return n.k1d}});var s=o(9693),a={};function c(e){modForm.opts={...modForm.opts,...e},modForm.opts.landingPageNoQuery=modForm.opts.landingPage.split("?")[0],window.isNonTyp=!0,(0,s.Jb)()&&(modForm.opts.steps=modForm.opts.form.querySelectorAll(modForm.opts.stepsSelector),(0,n.C2f)(),modForm.opts.getVars=modUtils.getUrlParamsToObject(modForm.opts.landingPage),(0,n.Hew)(),(0,n.ik5)(),modForm.opts.prepopulateUserInfo&&(modForm.userObj=modUtils.getCookie("userInfo")?JSON.parse(modUtils.getCookie("userInfo")):{}),(0,n.wDK)(),(0,n._hf)(),(0,n.uDx)(),"contractor"===modForm.opts.vertical&&((0,n.Aos)(),modForm.opts.useContractorApi=!0),(0,n.xST)(modForm.opts.maskedPhoneFields),(0,n.cYO)(modForm.opts.maskedPhoneFields),(0,n.kcK)(modForm.opts.maskedEinFields),(0,n.xST)(modForm.opts.numericsOnlyFields),modForm.opts.form.addEventListener("change",function(e){(0,n.EBV)(e.target)}),modForm.opts.useContractorApi?(0,n.yfL)():(modForm.opts.form.addEventListener("click",function(){window.innerWidth<768&&(0,n.BoI)()},{once:!0}),(0,n.FYY)()),(0,n.PYM)(),modForm.opts.prepopulateUserInfo&&(0,n.LA6)(),modForm.opts.useAutofill&&(0,n.vHd)(),modForm.opts.hashStepTracking&&"contractor"!==modForm.opts.vertical&&(0,n.Cgh)())}o.r(a),o.d(a,{isBadWord:function(){return s.gt},isConfigValid:function(){return s.Jb},isCurrentStepLast:function(){return s.O},isCurrentStepSecondToLast:function(){return s.x6},isEmailValid:function(){return s.xd},isFieldValid:function(){return s.vg},isFormServiceAPIPayloadLengthValid:function(){return s.aL},isFormValid:function(){return s.HK},isQsSiteEligibleForHrc:function(){return s.Bu},isValidCompanyName:function(){return s.h$},isValidName:function(){return s.uV},isValidUSPhoneNumber:function(){return s.cG},isVisible:function(){return s.zN},isZipCodeValid:function(){return s.Hb}}),window.isNewContractorForm=!0;const d={...t._t,...t.p7,...e,...i,...a}}();var n=window;for(var i in r)n[i]=r[i];r.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})}(); 2//# sourceMappingURL=contractor.min.js.map
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.