!function(e){try{const q=new URLSearchParams(location.search),K=["utm_source","utm_medium","utm_campaign","utm_term","utm_content","gclid","fbclid"],A={};K.forEach(k=>{const v=q.get(k);v&&(A[k]=v)});if(Object.keys(A).length){const s=JSON.stringify(A);try{sessionStorage.setItem("kandua_attr",s)}catch(e2){}try{e.cookie="kandua_attr="+encodeURIComponent(s)+";domain=.kandua.com;path=/;max-age=2592000;SameSite=Lax"}catch(e2){}}}catch(e2){}!function(){const t=e.createElement("link");t.rel="stylesheet",t.href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css",e.head.appendChild(t);const n=e.createElement("script");n.src="https://cdn.jsdelivr.net/npm/flatpickr",e.head.appendChild(n);const o=e.createElement("script");o.src="https://cdn.voiceflow.com/widget-next/bundle.mjs",o.type="text/javascript",o.onload=()=>{let t;const n=(()=>{let t,n,o=0;return{enable:()=>{innerWidth>1024||(t||(t=e.querySelector('meta[name="viewport"]'),t||(t=e.createElement("meta"),t.name="viewport",e.head.appendChild(t)),n=t.getAttribute("content")||"width=device-width, initial-scale=1"),o++,t.setAttribute("content","width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"))},disable:()=>{innerWidth>1024||setTimeout(()=>{o=Math.max(0,o-1),t&&0===o&&null!=n&&t.setAttribute("content",n)},50)},blurActive:()=>{try{e.activeElement?.blur?.()}catch(e){}}}})(),o=(()=>{const t="data-vf-hide-composer";let n,o=!1,a=new Set;const i=()=>{const t=new Set([e]),n=[e],o=new Set(n);for(;n.length;){const e=n.shift();(e instanceof Document||e instanceof ShadowRoot?e.querySelectorAll("*"):[]).forEach(e=>{e&&e.shadowRoot&&!o.has(e.shadowRoot)&&(o.add(e.shadowRoot),t.add(e.shadowRoot),n.push(e.shadowRoot))})}return[...t]},r=n=>{if(!n||!(n instanceof Document||n instanceof ShadowRoot))return;if(n.querySelector(`style[${t}]`))return;const o=e.createElement("style");o.setAttribute(t,"1"),o.textContent=".vfrc-input-container,.vfrc-footer,.vfrc-composer,.vfrc-message-composer,.vfrc-chat-input-container{display:none!important}";try{n.appendChild(o),a.add(n)}catch(e){}},s=e=>{const n=e.querySelector?.(`style[${t}]`);if(n)try{n.remove()}catch(e){}a.delete(e)};return{hide(){o=!0,i().forEach(r),n||(n=new MutationObserver(()=>{o&&i().forEach(r)}),n.observe(e.documentElement,{childList:!0,subtree:!0}))},show(){o=!1,a.forEach(s),a.clear(),n?.disconnect?.(),n=null}}})(),a=(()=>{const e='.vfrc-avatar,[class*="vfrc-avatar"]',t=new WeakMap,n=t=>{t.querySelectorAll(e).forEach(e=>{e.style.display="none",e.style.visibility="hidden",e.style.width="0",e.style.margin="0",e.style.padding="0"})};return{hideFor:o=>{const a=(t=>{let n=t;for(let t=0;t<12&&n;t++){if(n.querySelector?.(e))return n;n=n.parentElement||n.getRootNode&&n.getRootNode().host||null}return null})(o);if(!a)return;if(n(a),t.has(a))return;const i=new MutationObserver(e=>{let t=!1;for(const n of e)n.addedNodes&&n.addedNodes.length&&(t=!0);t&&n(a)});i.observe(a,{childList:!0,subtree:!0}),t.set(a,i),setTimeout(()=>{i.disconnect(),t.delete(a)},1200)}}})(),i=(t,n)=>{const o=[],a=[e],i=new Set(a);for(;a.length;){const e=a.shift();o.push(e),(e instanceof Document||e instanceof ShadowRoot?e.querySelectorAll("*"):[]).forEach(e=>{e&&e.shadowRoot&&!i.has(e.shadowRoot)&&(i.add(e.shadowRoot),a.push(e.shadowRoot))})}o.forEach(o=>{if(!o||!(o instanceof Document||o instanceof ShadowRoot))return;if(o.querySelector(`style[${n}]`))return;const a=e.createElement("style");a.setAttribute(n,"1"),a.textContent=t;try{o.appendChild(a)}catch(e){}})};function r(e){let t=e,n=0;for(;t&&n<20;){const e=(t.className||"")+"";if("listitem"===t.getAttribute?.("role")||/vfrc-.*(message|bubble|response|chat|row)/i.test(e))return t;t=t.parentNode||t.getRootNode&&t.getRootNode().host||null,n++}return null}function s(e){try{if(!e)return;let t=e;for(let e=0;e<15&&t;e++){if((t.className||"").includes("vfrc-system-response")){t.style.display="none",t.style.height="0",t.style.margin="0",t.style.padding="0",t.style.overflow="hidden";break}t=t.parentElement||t.getRootNode&&t.getRootNode().host||null}}catch(e){}}i(".vf-wide-card{width:100%!important;max-width:100%!important;display:block!important}.vf-wide-card>.vf-form-card{width:100%!important;max-width:100%!important}.vf-savefx-success{background:#00bf63!important;transition:background .22s ease,transform .22s ease,opacity .3s ease}.vf-savefx-bounce{transform:translateY(-1px) scale(1.02)}.vf-savefx-hide{opacity:0;transform:translateY(-6px) scale(.98);pointer-events:none;transition:opacity .28s ease,transform .28s ease}","data-vf-styles"),i(".vf-loader-card{padding:16px;border:1px solid #e5e7eb;border-radius:12px;margin:12px 0;background:#f8fafc;width:100%}.vf-loader-wrap{display:flex;align-items:center;gap:14px}.vf-spinner{width:46px;height:46px;border-radius:9999px;border:4px solid #dbeafe;border-top-color:#0551fb;animation:vfSpin 1s linear infinite;flex:0 0 auto}@keyframes vfSpin{to{transform:rotate(360deg)}}.vf-loader-text{display:flex;flex-direction:column}.vf-loader-title{font-weight:800;color:#0f172a;font-size:16px}.vf-loader-sub{color:#334155;font-size:14px;margin-top:2px}.vf-dots{display:inline-flex;gap:4px;margin-top:6px}.vf-dot{width:6px;height:6px;border-radius:9999px;background:#0551fb;opacity:.35;animation:vfBounce 1s ease-in-out infinite}.vf-dot:nth-child(2){animation-delay:.15s}.vf-dot:nth-child(3){animation-delay:.3s}@keyframes vfBounce{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-6px);opacity:1}}","data-vf-loader-styles"),i('[class*="vfrc-message--extension-"]{background:transparent!important;padding:0!important;border-radius:0!important}',"data-vf-unbubble"),i(".vfrc-chat--dialog{flex:1 1 auto!important;min-height:0!important}","data-vf-fill");const l=new Set,d=e=>{try{return"string"==typeof e?.payload?JSON.parse(e.payload):e?.payload||{}}catch(e){return{}}};const c=(()=>{function t(e,t){if("function"==typeof gtag)try{gtag("event",e,t)}catch(e){}}return{trackEvent:t}})(),p=(e,t,n,o)=>({name:e,type:"response",match:({trace:t})=>t?.type===e||t?.payload?.name===e,render:({element:e})=>(c.trackEvent(n,o),s(e),()=>{})}),f=(e,t,n)=>({name:e,type:"response",match:({trace:t})=>t?.type===e||t?.payload?.name===e,render:({trace:e,element:o})=>(c.trackEvent(`${t}_complete`,n(d(e))),s(o),()=>{})}),P=(e,t)=>({name:e,type:"response",match:({trace:n})=>n?.type===e||n?.payload?.name===e,render:({trace:n,element:o})=>(c.trackEvent(t,{event_category:"funnel",...d(n)}),s(o),()=>{})}),TRK=[P("ext_web_entry","web_entry"),P("ext_chatInitiated","chat_initiated"),P("ext_conversationStarted","conversation_started"),P("ext_mainIntent","main_intent"),P("ext_getGuidance","get_guidance"),p("ext_plumbingDiagnoseStart","plumbing_diagnose","plumbing_diagnose_start",{event_category:"funnel"}),f("ext_plumbingDiagnoseEnd","plumbing_diagnose",e=>({event_category:"funnel",...e})),p("ext_electricianDiagnoseStart","electrician_diagnose","electrician_diagnose_start",{event_category:"funnel"}),f("ext_electricianDiagnoseEnd","electrician_diagnose",e=>({event_category:"funnel",...e})),p("ext_locationStart","location_capture","location_capture_start",{event_category:"funnel"}),f("ext_locationEnd","location_capture",e=>({event_category:"funnel",...e})),P("ext_locationFallback","location_fallback"),p("ext_dateTimeCaptureStart","datetime_capture","datetime_capture_start",{event_category:"funnel"}),f("ext_dateTimeCaptureEnd","datetime_capture",e=>({event_category:"funnel",...e})),P("ext_proCheckAPIFailed","pro_check_api_failed"),P("ext_checkForProsSuccess","check_for_pros_success"),P("ext_pros_found","pros_found"),p("ext_finalDetailsStart","final_details","final_details_start",{event_category:"funnel"}),f("ext_finalDetailsCaptured","final_details",e=>({event_category:"funnel",...e})),P("ext_jobPostSuccess","job_post_success")],y={name:"ext_loading_on_first",type:"response",match:({trace:e})=>"ext_loading_on_first"===e?.type||"ext_loading_on_first"===e?.payload?.name,render:({trace:t,element:i})=>{const s=d(t),c=s.label||"Please wait a moment...",p=Math.max(1e3,Number(s.min_ms||0));o.hide(),n.enable();const f=e.createElement("div");return f.className="vf-anti-zoom vf-wide-card vf-loader-card",f.setAttribute("role","status"),f.setAttribute("aria-live","polite"),f.setAttribute("aria-busy","true"),f.innerHTML=`
Looking for nearby Pros
${c}
`,i.appendChild(f),L(i,f),a.hideFor(f),l.add({node:f,contentEl:i,wrapper:r(i),started:Date.now(),minMs:p}),()=>{}}},w={name:"ext_loading_off_first",type:"response",match:({trace:e})=>"ext_loading_off_first"===e?.type||"ext_loading_off_first"===e?.payload?.name,render:()=>(function(){const e=Date.now();l.forEach(t=>{const{node:a,contentEl:i,started:s,minMs:d}=t,c=Math.max(0,s+d-e);setTimeout(()=>{try{a?.remove()}catch(e){}!function(e){try{if(!e)return;if(0===e.childElementCount&&""===(e.textContent||"").trim()){const t=r(e)||e.parentNode;if(t)try{t.remove()}catch(e){}}}catch(e){}}(i);try{l.delete(t)}catch(e){}0===l.size&&(o.show(),n.disable())},c)})}(),()=>{})},k=(()=>{function e(e,t){e&&e.classList.add("vf-savefx-hide"),t&&t.classList.add("vf-savefx-hide"),setTimeout(()=>{e&&(e.style.display="none"),t&&(t.style.display="none")},320)}return{celebrate(t,n){t&&(t.classList.add("vf-savefx-success","vf-savefx-bounce"),setTimeout(()=>t.classList.remove("vf-savefx-bounce"),240),setTimeout(()=>e(t,n),1e3))},hideBoth:e}})(),L=(e,t)=>{try{e.style.width=e.style.maxWidth="100%",e.style.alignSelf="stretch"}catch(e){}try{t.style.width=t.style.maxWidth="100%"}catch(e){}let n=e.parentElement;for(let e=0;e<4&&n;e++){try{n.style&&(n.style.width=n.style.maxWidth="100%",n.style.flex="1 1 100%",n.style.alignSelf="stretch")}catch(e){}n=n.parentElement||n.getRootNode&&n.getRootNode().host||null}},S=(e,n)=>{try{t?.setVariable?.(e,n)}catch(e){}},C=({label:t,description:n,htmlField:o,submitText:a="Save",errorText:i="Please fix the error above."})=>{const r=e.createElement("div");if(r.className="vf-wide-card",r.innerHTML=`
${n?`

${n}

`:""}${o}
`,!e.getElementById("vf-anti-zoom-style")){const t=e.createElement("style");t.id="vf-anti-zoom-style",t.textContent="@media(max-width:1024px){.vf-anti-zoom input,.vf-anti-zoom textarea,.vf-anti-zoom select{font-size:16px!important;-webkit-text-size-adjust:100%}}",e.head.appendChild(t)}return r},_={name:"ext_location_picker",type:"response",match:({trace:e})=>"ext_location_picker"===e?.type||"ext_location_picker"===e?.payload?.name,render:({element:i})=>{o.hide(),n.enable();const r=e.createElement("div");if(r.className="vf-wide-card",r.innerHTML='
Location confirmed
Enter suburb below
Type then select the suburb where you need the work done
Select your suburb from the suggestions below
Selected suburbChange
Getting your location...
Please select your suburb before continuing.
Can\'t find your suburb? Enter it another way
',!e.getElementById("vf-anti-zoom-style")){const st=e.createElement("style");st.id="vf-anti-zoom-style",st.textContent="@media(max-width:1024px){.vf-anti-zoom input,.vf-anti-zoom textarea,.vf-anti-zoom select{font-size:16px!important;-webkit-text-size-adjust:100%}}",e.head.appendChild(st)}i.appendChild(r),L(i,r),a.hideFor(r);const s=r.querySelector(".vf-loc-input"),d=r.querySelector(".vf-loc-drop"),c=r.querySelector(".vf-loc-helper"),p=r.querySelector(".vf-loc-chip"),f=r.querySelector(".vf-loc-chip-val"),v=r.querySelector(".vf-loc-loading"),h=r.querySelector(".vf-loc-error"),u=r.querySelector(".vf-loc-btn"),m=r.querySelector(".vf-loc-inputwrap"),g=r.querySelector(".vf-loc-main"),x=r.querySelector(".vf-loc-done"),b=r.querySelector(".vf-loc-done-val"),y=r.querySelector(".vf-loc-fallback a"),D=r.querySelector(".vf-loc-change"),F=r.querySelector(".vf-form-card"),GEO=r.querySelector(".vf-loc-geo");let w=null,_=null,z=null,E=null;function T(){v.classList.remove("show")}function j(e){h.textContent=e,h.style.display="block",T()}function q(){h.style.display="none"}function A(e){const t=["sublocality_level_1","locality","administrative_area_level_3"];for(const n of t){const t=e.find(e=>e.types.includes(n));if(t)return t.long_name}return""}function G(){requestAnimationFrame(()=>{requestAnimationFrame(()=>{try{const t=e=>e.parentElement||e.getRootNode&&e.getRootNode().host||null,n=e=>{try{const t=getComputedStyle(e);return/(auto|scroll)/.test(t.overflowY)&&e.scrollHeight>e.clientHeight+4}catch(e){return!1}};let o=t(u);for(let a=0;a<30&&o&&o!==e.documentElement&&o!==e.body;a++){try{!n(o)&&o.scrollTop&&(o.scrollTop=0)}catch(e){}o=t(o)}let a=null,i=u;for(let e=0;e<30&&i;e++){if(i.classList&&i.classList.contains("vfrc-chat--dialog")){a=i;break}i=t(i)}if(!a||!n(a)){let o=t(u);for(let i=0;i<30&&o&&o!==e.documentElement&&o!==e.body;i++){if(n(o)){a=o;break}o=t(o)}}if(!a||!n(a))return;const r=a.getBoundingClientRect(),s=u.getBoundingClientRect().bottom-r.bottom+24;s>0&&a.scrollTo({top:a.scrollTop+s,behavior:"smooth"})}catch(e){}})})}function H(t){z&&(v.querySelector("span").textContent="Getting location details...",v.classList.add("show"),d.classList.remove("show"),s.classList.remove("open"),z.getDetails({placeId:t.place_id,fields:["address_components","formatted_address","geometry","name"],sessionToken:E},(t,i)=>{if(T(),i===google.maps.places.PlacesServiceStatus.OK&&t){const i={formattedAddress:t.formatted_address,suburb:A(t.address_components||[])||t.name||"",lat:t.geometry.location.lat(),lng:t.geometry.location.lng()};w=i,s.value=t.formatted_address,f.textContent=i.formattedAddress,p.classList.add("show"),m.style.display="none",GEO.style.display="none",c.classList.remove("show"),u.disabled=!1,q(),E=new google.maps.places.AutocompleteSessionToken,G()}else j("Could not get location details. Please try another suburb.")}))}function B(t){d.innerHTML="";const V=(t||[]).filter(p2=>(p2.types||[]).some(q2=>["sublocality","sublocality_level_1","locality","neighborhood"].includes(q2)));if(0===V.length)return d.innerHTML='
No suburbs found. Check the spelling, try Use my current location, or tap Enter it another way below.
',d.classList.add("show"),void s.classList.add("open");V.slice(0,2).forEach(t=>{const n=e.createElement("div");n.className="vf-loc-item",n.innerHTML='',n.querySelector(".vf-loc-item-main").textContent=t.structured_formatting.main_text,n.querySelector(".vf-loc-item-sec").textContent=t.structured_formatting.secondary_text,n.addEventListener("click",()=>H(t)),n.addEventListener("touchstart",()=>{n.style.background="#dbeafe"},{passive:!0}),n.addEventListener("touchend",()=>{n.style.background=""},{passive:!0}),d.appendChild(n)}),d.classList.add("show"),s.classList.add("open")}return D.addEventListener("click",()=>{w=null,p.classList.remove("show"),m.style.display="",GEO.style.display="",u.disabled=!0,q(),s.focus()}),GEO.addEventListener("click",()=>{if(q(),!navigator.geolocation)return void j("Location is not supported on this device \u2014 please type your suburb instead.");if(!(window.google&&google.maps&&google.maps.Geocoder))return void j("Location services are still loading \u2014 please try again in a moment.");v.querySelector("span").textContent="Getting your location...",v.classList.add("show"),d.classList.remove("show"),s.classList.remove("open"),navigator.geolocation.getCurrentPosition(pos=>{try{(new google.maps.Geocoder).geocode({location:{lat:pos.coords.latitude,lng:pos.coords.longitude}},(res,st2)=>{if(T(),"OK"===st2&&res&&res.length){const g2=res.find(r2=>(r2.types||[]).some(t2=>["sublocality_level_1","sublocality","locality","neighborhood"].includes(t2)))||res[0],sb=A(g2.address_components||[]);if(!sb)return void j("We couldn't pinpoint your suburb \u2014 please type it instead.");w={formattedAddress:g2.formatted_address,suburb:sb,lat:pos.coords.latitude,lng:pos.coords.longitude},s.value=g2.formatted_address,f.textContent=w.formattedAddress,p.classList.add("show"),m.style.display="none",GEO.style.display="none",c.classList.remove("show"),u.disabled=!1,q(),G()}else j("We couldn't pinpoint your suburb \u2014 please type it instead.")})}catch(e2){T(),j("We couldn't pinpoint your suburb \u2014 please type it instead.")}},er=>{T(),j(er&&1===er.code?"Location permission was denied \u2014 please type your suburb instead.":"We couldn't get your location \u2014 please type your suburb instead.")},{enableHighAccuracy:!0,timeout:1e4,maximumAge:6e4})}),y.addEventListener("click",e=>{e.preventDefault(),t.interact({type:"captured",payload:{locationFallback:!0}}),n.blurActive(),o.show(),n.disable()}),u.onclick=()=>{w?(q(),S("formattedAddress",w.formattedAddress),S("suburb",w.suburb),S("googleLat",w.lat.toString()),S("googleLong",w.lng.toString()),b.textContent=w.formattedAddress,g.style.opacity="0",setTimeout(()=>{g.style.display="none",x.classList.add("show"),F.style.padding="0",F.style.border="none",F.style.background="transparent"},250),n.blurActive(),o.show(),n.disable(),t.interact({type:"captured",payload:{formattedAddress:w.formattedAddress,suburb:w.suburb,latitude:w.lat,longitude:w.lng,locationConfirmed:!0}})):j("Please select your suburb before continuing.")},async function(){try{await new Promise((t,n)=>{if(window.google&&window.google.maps)return void t();const o=e.createElement("script");o.src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC51PJx9faiS3ptAxYuMfkYKKtTU00Tz-Q&libraries=places",o.onload=()=>t(),o.onerror=()=>n(new Error("Failed to load Google Maps")),e.head.appendChild(o)}),_=new google.maps.places.AutocompleteService;const t=e.createElement("div");t.style.display="none",e.body.appendChild(t),z=new google.maps.places.PlacesService(t),E=new google.maps.places.AutocompleteSessionToken,function(){let t;s.addEventListener("input",()=>{const e=s.value.trim();return clearTimeout(t),0===e.length?(c.classList.remove("show"),d.classList.remove("show"),void s.classList.remove("open")):(c.textContent="Select your suburb from the suggestions below",c.classList.add("show"),void(t=setTimeout(()=>{var t;e.length>=1&&(t=e,_&&_.getPlacePredictions({input:t,componentRestrictions:{country:"za"},types:["(regions)"],sessionToken:E},(e,t)=>{t===google.maps.places.PlacesServiceStatus.OK&&e?B(e):t===google.maps.places.PlacesServiceStatus.ZERO_RESULTS?(d.innerHTML='
No suburbs found. Check the spelling, try Use my current location, or tap Enter it another way below.
',d.classList.add("show"),s.classList.add("open")):(d.classList.remove("show"),s.classList.remove("open"))}))},300)))}),s.addEventListener("keydown",e=>{" "!==e.key&&32!==e.keyCode||e.stopPropagation()}),e.addEventListener("click",e=>{m.contains(e.target)||(d.classList.remove("show"),s.classList.remove("open"))})}()}catch(e){j("Failed to load location services. Please refresh and try again.")}}(),()=>{o.show(),n.disable()}}},z={name:"calendar-picker",type:"response",match:({trace:e})=>"calendar"===e?.type||"calendar-picker"===e?.payload?.name,render:({element:i})=>{o.hide(),n.enable();const r=e.createElement("div");if(r.className="vf-wide-card",r.innerHTML='
Date confirmed
When do you need help?
Pick a day that suits you
Selected date
Please pick a date before confirming.
',!e.getElementById("vf-anti-zoom-style")){const st=e.createElement("style");st.id="vf-anti-zoom-style",st.textContent="@media(max-width:1024px){.vf-anti-zoom input,.vf-anti-zoom textarea,.vf-anti-zoom select{font-size:16px!important;-webkit-text-size-adjust:100%}}",e.head.appendChild(st)}i.appendChild(r),L(i,r),a.hideFor(r);const s=r.querySelector(".vf-calendar"),h=r.querySelector(".vf-cal2-error"),b=r.querySelector(".vf-cal2-btn"),p=r.querySelector(".vf-cal2-chip"),f=r.querySelector(".vf-cal2-chip-val"),m=r.querySelector(".vf-cal2-main"),x=r.querySelector(".vf-cal2-done"),D=r.querySelector(".vf-cal2-done-val"),F=r.querySelector(".vf-form-card"),W=e2=>{try{const[a2,b2,c2]=e2.split("-").map(Number);return new Date(a2,b2-1,c2).toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long",year:"numeric"})}catch{return e2}},n1=new Date,n2=new Date(n1.getFullYear(),n1.getMonth(),n1.getDate()),n3=new Date(n2.getFullYear()+1,11,31);let g=null,G="";return flatpickr(s,{inline:!0,appendTo:s,monthSelectorType:"static",minDate:n2,maxDate:n3,showMonths:1,disableMobile:!0,dateFormat:"Y-m-d",defaultDate:null,onChange:(e2,t2)=>{g=t2,t2&&(b.disabled=!1,h.style.display="none",G=W(t2),f.textContent=G,p.classList.add("show"))}}),b.onclick=()=>{g?(h.style.display="none",S("date",g),D.textContent=G,m.style.opacity="0",setTimeout(()=>{m.style.display="none",x.classList.add("show"),F.style.padding="0",F.style.border="none",F.style.background="transparent"},250),n.blurActive(),o.show(),n.disable(),t.interact({type:"captured",payload:{date:g,urgent:!1}})):h.style.display="block"},()=>{o.show(),n.disable()}}},E={name:"ext_Intent",type:"response",match:({trace:e})=>"ext_Intent"===e?.type||"ext_Intent"===e?.payload?.name,render:({element:i})=>{o.hide(),n.enable();const r=e.createElement("div");r.className="vf-wide-card",r.innerHTML='\n
\n \n\n
\n
\n
\n
You selected
\n
\n
\n
\n
\n\n
JessSelect servicePowered by Kandua AI
\n\n
\n
\n \n Plumber\n \n
\n\n
\n \n Electrician\n \n
\n\n
\n \n Handyman\n \n
\n\n
\n \n Painter\n \n
\n\n
\n \n Carpenter\n \n
\n\n
\n Jess\n \n Get guidance\n Ask Jess anything about improving, maintaining and protecting your home\n \n \n
\n
\n\n
85,000+ 4.5 star+ reviews. Powered by Vetted Pros
\n
\n ',i.appendChild(r),L(i,r),a.hideFor(r);const s=r.querySelectorAll(".vf-intent-card"),l=r.querySelector(".vf-intent-head"),d=r.querySelector(".vf-intent-options"),c=r.querySelector(".vf-intent-trust"),p=r.querySelector(".vf-intent-selected"),f=r.querySelector(".vf-intent-selected-lead"),v=r.querySelector(".vf-intent-selected-value"),h=r.querySelector(".vf-form-card");return s.forEach(e=>{e.onclick=()=>{const a=e.getAttribute("data-intent"),i=e.getAttribute("data-label"),r=e.querySelector(".vf-intent-lead");s.forEach(e=>{e.style.pointerEvents="none",e.style.opacity="0.4"}),e.classList.add("selected"),e.style.opacity="1",S("mainIntent",a),setTimeout(()=>{l.style.opacity="0",d.style.opacity="0",c.style.opacity="0",setTimeout(()=>{l.style.display="none",d.style.display="none",c.style.display="none",f.innerHTML="",r&&f.appendChild(r.cloneNode(!0)),v.textContent=i,p.style.display="flex",h.style.padding="0",h.style.border="none",h.style.background="transparent",requestAnimationFrame(()=>{p.style.opacity="0",p.style.transform="translateY(-10px)",requestAnimationFrame(()=>{p.style.transition="all 0.3s ease",p.style.opacity="1",p.style.transform="translateY(0)"})})},300)},400),n.blurActive(),o.show(),n.disable(),t.interact({type:"captured",payload:{mainIntent:a}})}}),()=>{o.show(),n.disable()}}},M={name:"ext_handover",type:"response",match:({trace:e})=>"ext_handover"===e?.type||"ext_handover"===e?.payload?.name,render:({trace:i,element:r})=>{o.hide(),n.enable();const s=(()=>{try{return"string"==typeof i?.payload?JSON.parse(i.payload):i?.payload||{}}catch(e){return{}}})();let l=s.user_id||s.userId||"",d=s.service||"",c=s.location||"",p=s.vf_transcript_id||s.transcriptId||"";try{!l&&t?.getVariable&&(l=t.getVariable("user_id")||""),!p&&t?.getVariable&&(p=t.getVariable("vf_transcript_id")||"")}catch(e){}try{"function"==typeof gtag&>ag("event","handover_to_pwa",{event_category:"funnel",event_label:"Handover card shown",user_id:l||"unknown",transcript_id:p||"unknown"})}catch(e){}const f=(()=>{let u2=`https://marketplace.kandua.com/?conversation=${encodeURIComponent(l)}&redirect=book&service=${encodeURIComponent(d)}&location=${encodeURIComponent(c)}`;try{let a2=null;try{a2=sessionStorage.getItem("kandua_attr")}catch(e2){}if(!a2){const m2=e.cookie.match(/(?:^|; )kandua_attr=([^;]*)/);m2&&(a2=decodeURIComponent(m2[1]))}if(a2){const o2=JSON.parse(a2);for(const k2 in o2)u2+="&"+encodeURIComponent(k2)+"="+encodeURIComponent(o2[k2])}}catch(e2){}return u2})(),v=e.createElement("div");v.className="vf-wide-card",v.innerHTML=`
Create account and confirmStep 3 of 3
Top-rated Pros found near yourated 4.5+
One last step
Create your free account then confirm your booking.
Please tick the box above to accept our T&C's
Continue
Takes under a minute: sign in with your email. Then we'll just need your name and number too.
Your booking has moved to the secure portal \u2014 please complete it there.
`,r.appendChild(v),L(r,v),a.hideFor(v);const h=v.querySelector(".vf-ho2-btn"),u=v.querySelector(".vf-ho2-locked"),hcb=v.querySelector(".vf-ho2-chk"),hbx=v.querySelector(".vf-ho2-box"),hts=v.querySelector(".vf-ho2-toast"),hlk=v.querySelector(".vf-ho2-legal a");let htn=null;hlk&&hlk.addEventListener("click",e2=>e2.stopPropagation());const hsync=()=>{h.classList.toggle("vf-ho2-off",!hcb.checked),h.setAttribute("aria-disabled",hcb.checked?"false":"true"),hcb.checked&&(hts.classList.remove("show"),hbx.classList.remove("nudge"),clearTimeout(htn))};hcb.addEventListener("change",hsync),hsync();h.addEventListener("click",e2=>{if(!hcb.checked){e2.preventDefault(),hts.classList.add("show"),hbx.classList.remove("nudge");void hbx.offsetWidth;hbx.classList.add("nudge"),clearTimeout(htn),htn=setTimeout(()=>{hts.classList.remove("show"),hbx.classList.remove("nudge")},3200);return}S("termsAccepted","true");try{"function"==typeof gtag&>ag("event","handover_click",{event_category:"funnel",event_label:"User clicked through to booking portal",user_id:l||"unknown",transcript_id:p||"unknown"})}catch(e){}(()=>{try{o.hide(),n.disable(),n.blurActive(),u.classList.add("show");let e=0;const t=setInterval(()=>{o.hide(),e++,e>20&&clearInterval(t)},500)}catch(e){}})()}),o.hide(),requestAnimationFrame(()=>{try{o.hide()}catch(e){}}),setTimeout(()=>{try{o.hide()}catch(e){}},50);const w=setInterval(()=>{try{o.hide()}catch(e){}},500);return()=>{try{clearInterval(w)}catch(e){}o.hide(),n.disable()}}};function j({name:t,step:n,label:o}){return{name:t,type:"response",match:({trace:e})=>e?.type===t||e?.payload?.name===t,render:({element:i})=>{const T=3,p=['','',''],u=[2.2,2.2,2.5],d=k=>{const c2=k1&&k`},h=k=>k`:'',g=1===n?"vf-ps-first":n===T?"vf-ps-last":"vf-ps-mid",y2=1===n||n===T?"":"left:50%;",x=.1+.5*(n-2)+.75,m=e.createElement("div");m.className="vf-ps-wrap vf-wide-card",m.innerHTML=`
${d(1)}${h(1)}${d(2)}${h(2)}${d(3)}
${o}Step ${n} of ${T}
`,i.appendChild(m),L(i,m),a.hideFor(m)}}}const q=j({name:"ext_progress_step1",step:1,label:"Describe your problem"}),A=j({name:"ext_progress_step2",step:2,label:"Where and when you need help"}),PC={name:"ext_page_context",type:"response",match:({trace:e})=>"ext_page_context"===e?.type||"ext_page_context"===e?.payload?.name,render:({element:o})=>{let a="";try{const k=window.kanduaPage;k&&"string"==typeof k.context&&(a=k.context.trim().toLowerCase())}catch(e2){}const m2={plumbing:"plumber",plumbers:"plumber",electrical:"electrician",electricians:"electrician",handymen:"handyman",painting:"painter",painters:"painter",carpentry:"carpenter",carpenters:"carpenter"};m2[a]&&(a=m2[a]);setTimeout(()=>{try{t.interact({type:"captured",payload:{pageContext:a,pagePath:location.pathname}})}catch(e2){}},0);return s(o),()=>{}}};t=window.voiceflow.chat,t.load({verify:{projectID:"6a1d7b09a2bdb2f81d8077cd"},url:"https://general-runtime.sanlamstudios.voiceflow.com",versionID:"production",assistant:{persistence:"memory",extensions:[y,w,q,A,_,z,E,M,PC,...TRK]}}).then(()=>{e.querySelectorAll(".launch_jess").forEach(e=>e.addEventListener("click",()=>t.open()));try{const k=window.kanduaPage;if(k&&!0===k.autoOpen&&!sessionStorage.getItem("kandua_auto_opened")){const d2="number"==typeof k.autoOpenDelay?k.autoOpenDelay:4e3;setTimeout(()=>{try{sessionStorage.setItem("kandua_auto_opened","1")}catch(e2){}try{t.open()}catch(e2){}},d2)}}catch(e2){}})},e.body.appendChild(o)}()}(document);