class AdWidget{constructor(e,t,n,a){this.showCarrier="true"===e.dataset.showcarrier,this.carrierId=e.dataset.carrierid,this.ctaUrl=e.dataset.ctaurl,this.direction=e.dataset.direction||"column",this.category=e.dataset.category,this.lob=e.dataset.lob,this.naics=e.dataset.naic,this.naicsDisplay=e.dataset.naicsdisplay,this.getRecommendations({category:e.dataset.category,businessLine:e.dataset.lob,naicsIndustry:e.dataset.naics,pagePath:e.dataset.pagepath||"/",carrierId:e.dataset.carrierid,sourceContent:e.dataset.sourcecontent}).then(s=>{s.json().then(s=>{if(s.carrier||s.faraEligibleAgencies&&s.faraEligibleAgencies.length>0){t.classList.remove("d-none"),t.classList.add("d-block"),this.carrierId=s.carrier&&s.carrier.id?s.carrier.id.toString():void 0,this.renderCarrier(s.carrier,n,e.dataset),this.renderAgencies(s.faraEligibleAgencies,a,e.dataset),this.recordCarrierImpression(s.carrier),this.recordAgencyImpressions(s.faraEligibleAgencies);const i=new CustomEvent("recommendation",{detail:s});e.dispatchEvent(i)}})})}getRecommendations(e){this.removeEmptyValues(e);let t=new URLSearchParams(e);return t.append("iiabaId.operator","notlike"),t.append("iiabaId.value","OMIG"),fetch("/api/v1/recommendations?"+t.toString())}removeEmptyValues(e){let t=Object.getOwnPropertyNames(e);for(let n=0;n\n
\n Recommended insurance companies are highly valued by their partnering Trusted Choice insurance agents.\n
\n Recommended Insurance Company\n
\n
\n \n \n \n \n \n \n \n Locate Agents \n \n `;let a=t.getElementsByClassName("carrier-link");if(a)for(let t of a)t.addEventListener("click",()=>{this.recordCarrierClick(e)})}}getCtaUrlForCarrier(e,t){const n=this.getSearchContextParams();e.id&&n.set("c",e.id.toString()),null!=t&&(null!=t.category&&n.set("category",t.category),null!=t.lob&&n.set("businessLines",t.lob),null!=t.naicsDisplay&&n.set("naics-display",t.naicsDisplay),null!=t.naics&&n.set("naics",t.naics));const a=new URL("/find-an-agent",window.location.toString());return a.search=n.toString(),a.toString()}recordCarrierImpression(e){null!=e&&this.pushAnalytics({event:"impressionPush",ecommerce:{impressions:[{name:e.name,id:e.id.toString(),list:"Sponsored Content Ad",position:1,category:"Carrier"}]}})}recordCarrierClick(e){null!=e&&this.pushAnalytics({event:"clickPush",ecommerce:{click:{actionField:{list:"Sponsored Content Ad"},products:[{name:e.name,id:e.id.toString(),list:"Sponsored Content Ad",position:1,category:"Carrier"}]}}})}renderAgencies(e,t,n){if(e){let a="";for(let t of e)a+=`
\n
\n
\n ${t.iiabaMember?"\n
\n A TrustedChoice.com recommended local Trusted Choice independent insurance agency, with elite-level expertise, is here to assist you with your insurance needs. Your protection is their priority.\n
":""}\n ${t.iiabaMember?"":"\n
\n A TrustedChoice.com recommended local independent insurance agency, with elite-level expertise, is here to assist you with your insurance needs. Your protection is their priority.\n
"}\n
\n \n ${t.features.includes("agency_tagline")&&t.tagline?t.tagline:"Recommended Local Agency"}\n \n
\n
\n\n
\n
\n \n ${t.name}\n \n
\n ${t.reviewCount?`\n
\n ${this.renderRating(t.averageRating,t.reviewCount)}\n
`:""}\n
\n \n ${t.address.city+", "+t.address.regionCode}\n
\n
\n\n \n
\n
`;t.innerHTML=a}}getCtaUrlForAgency(e,t){const n=this.getSearchContextParams();e.iiabaId&&n.set("a",e.iiabaId),null!=this.carrierId&&n.set("c",this.carrierId),null!=t&&(null!=t.category&&n.set("category",t.category),null!=t.lob&&n.set("businessLines",t.lob),null!=t.naicsDisplay&&n.set("naics-display",t.naicsDisplay),null!=t.naics&&n.set("naics",t.naics));const a=new URL("/find-an-agent",window.location.toString());return a.search=n.toString(),a.toString()}recordAgencyImpressions(e){if(e.length<1)return;const t=e.map(e=>{let t="";return this.hasFeature("advantage",e)?t="Advantage":this.hasFeature("basic",e)&&(t="Basic"),{list:"Sponsored Content Ad - Agency",name:e.name,id:e.iiabaId,brand:t,variant:null!=e.address?e.address.zipCode:"",category:"Agency"}});this.pushAnalytics({event:"impressionPush",ecommerce:{impressions:t}})}renderRating(e,t){let n="";return n+='',n+='',n+='',n+="",n+=`(${t})`,n}getSearchContextParams(){const e=new URLSearchParams;return e.set("tc","sponsoredClick"),this.category&&e.set("category",this.category),this.lob&&e.set("businessLines",this.lob),this.naics&&e.set("naics",this.naics),this.naicsDisplay&&e.set("naics-display",this.naicsDisplay),e}pushAnalytics(e){window.dataLayer.push(e)}hasFeature(e,t){return t&&t.features&&t.features.includes(e)||!1}}let adWidgets=document.getElementsByClassName("ad-widget");if(adWidgets&&adWidgets.length>0)for(let e of adWidgets){let t=(e.getElementsByClassName("ad-widget-container")||[null])[0],n=(e.getElementsByClassName("ad-widget-carrier")||[null])[0],a=(e.getElementsByClassName("ad-widget-agencies")||[null])[0];if(t&&n&&a){new AdWidget(e,t,n,a)}}