(function(){window.jdgm=window.jdgm||{},window.judgeme=jdgm;const f=window.jdgmSettings||{};jdgm.WIDGET_REBRANDING_ENABLED=f.widget_version==="3.0",jdgm.REVIEW_SUBMISSION_P2="true",jdgm.AUTO_STORE_REVIEWS="true",jdgm.PREVENT_NEGATIVE_REVIEWS="true",jdgm.isVersion3=parseFloat(f.widget_version)>=3;function k(){return window.location.search.includes("jdgm_debug=true")}const V=k();function a(...e){V&&console.log(...e)}jdgm.debugLog=a;var v=function(e){return e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST?e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT):null};jdgm.prefetchResource=function(e,t){var d=document.createElement("link");d.className="jdgm-prefetch",d.rel="prefetch",d.crossOrigin="",t&&(d.as=t),d.href=e;var o=v(e);o&&(d.onerror=function(){jdgm.prefetchResource(o,t)}),document.body.appendChild(d)},jdgm.loadScript=function(e,t,d){if(!(!d&&jdgm.loadScript.requestedUrls.indexOf(e)>=0))if(jdgm.loadScript.requestedUrls.push(e),jdgm.loadJS&&f.widget_advanced_speed_features<=10)jdgm.loadJS(e,t);else if(jdgm.$&&jdgm.$.ajax)jdgm.$.ajax({dataType:"script",cache:!0,url:e}).done(t).fail(function(){var n=v(e);n&&jdgm.loadScript(n,t,d)});else{var o=document.createElement("script");o.className="jdgm-script",o.type="text/javascript",o.src=e,o.async=!0,t&&(o.onload=t);var i=v(e);i&&(o.onerror=function(){jdgm.loadScript(i,t,d)}),document.body.appendChild(o)}},jdgm.loadScript.requestedUrls=[],jdgm.widgetPath=function(e){var t=jdgm.isVersion3?"widget_v3/":"widget/";return jdgm.CDN_HOST+t+e};var h=".jdgm-all-reviews-page, .jdgm-all-reviews-widget",S=".jdgm-review-widget, #judgeme_product_reviews",w={"widget/arp.js":h,"widget/others.js":".jdgm-carousel, .jdgm-revs-tab, .jdgm-all-reviews-rating, .jdgm-medals, .jdgm-all-reviews-text__text, .jdgm-ugc-media, .jdgm-verified-badge, .jdgm-popup-widget, .jdgm-review-snippet-widget, .jdgm-videos-carousel, .jdgm-cards-carousel","widget/main.js":".jdgm-preview-badge, .judgeme-preview-badge","widget/write_review_modal.js":S+', [data-widget="review"], [data-widget="all-reviews-v2025"]'},E=Object.assign({},w,{"widget/media.js":".jdgm-revs-tab, .jdgm-medal__image, .jdgm-ugc-media, "+h});f.review_widget_revamp_enabled||(w["widget/main.js"]+=", "+S,E["widget/media.js"]+=", "+S);var L={"main.css":{selector:S+", .jdgm-revs-tab, .jdgm-ugc-media, "+h,callback:function(){var e=document.createEvent("Event");e.initEvent("jdgm.doneLoadingCss",!0,!0),document.dispatchEvent(e)}}},R={"media.css":".jdgm-ugc-media"},U=["judgeme_token","judgeme_review_uuid","judgeme_dynamic_form","judgeme_follow_up_token","judgeme_upload_pictures","judgeme_pre_verified"],F=jdgm.CDN_HOST+"widget/base.js",C=jdgm.CDN_HOST+"widget/common.js",T=!1,W=!1,D=[],O=function(){return document.querySelectorAll(Object.values(w).join(", ")).length>0},A=function(){W=!0,D.forEach(function(e){e()}),setTimeout(function(){jdgm.triggerVanillaEvent("finishLoadingCore")},0)},q=function(e){T||(T=!0,jdgm.loadScript(F,function(){jdgm.loadScript(C,A)}),jdgm.prefetchResource(C,"script")),W?e():D.push(e)},M=function(){var e=window.location,t=e.hash=="#judgeme"||e.hash=="#judgeme_product_reviews";return U.forEach(function(d){t=t||e.search.indexOf(d)>=0}),t},G=function(){var e=M();q(function(){Object.keys(w).forEach(function(t){document.querySelectorAll(w[t]).length>0&&jdgm.loadScript(jdgm.CDN_HOST+t)}),e&&(jdgm.loadScript(jdgm.CDN_HOST+"widget/form.js"),jdgm.loadScript(jdgm.CDN_HOST+"widget/write_review_modal.js"),jdgm.loadCSS(jdgm.widgetPath("form.css")))}),Object.keys(E).forEach(function(t){document.querySelectorAll(E[t]).length>0&&jdgm.prefetchResource(jdgm.CDN_HOST+t,"script")}),e||(jdgm.prefetchResource(jdgm.CDN_HOST+"widget/form.js","script"),jdgm.prefetchResource(jdgm.widgetPath("form.css"),"style"))},x=function(){jdgm.loadCSS(jdgm.widgetPath("base.css")),Object.keys(L).forEach(function(e){if(document.querySelectorAll(L[e].selector).length>0){var t=jdgm.widgetPath(e);jdgm.loadCSS(t,L[e].callback)}}),Object.keys(R).forEach(function(e){document.querySelectorAll(R[e]).length>0&&jdgm.prefetchResource(jdgm.widgetPath(e),"style")})};async function B(){const e=window.jdgm?.CDN_HOST,t=window.jdgm?.CDN_HOST_ALT,d=window.jdgm?.API_HOST,o=window.Shopify?.shop;if(!e){a("[Judge.me Widget Loader] CDN_HOST not configured, skipping CDN test");return}if(t&&e===t){a("[Judge.me Widget Loader] Using alternative CDN as primary, skipping CDN test");return}if(!o){a("[Judge.me Widget Loader] Shopify shop not found, skipping CDN test");return}const i=`${e}installed.js`;a("[Judge.me Widget Loader] Testing CDN reachability:",i);function n(c){if(a("[Judge.me Widget Loader] ❌ CDN test failed, reporting to API"),!d){a("[Judge.me Widget Loader] API_HOST not configured, cannot report CDN failure");return}const g=`${d}api/widget/requests`;fetch(g,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({shop_domain:o,method:"HEAD",url:i,status:c,duration:0})}).then(()=>{a("[Judge.me Widget Loader] ✅ CDN failure reported to API")}).catch(l=>{a("[Judge.me Widget Loader] ⚠️ Failed to report CDN failure:",l.message)})}const r=new XMLHttpRequest;r.open("HEAD",i,!0),r.timeout=15e3,r.onload=()=>{r.status>=200&&r.status<400?a("[Judge.me Widget Loader] ✅ CDN test successful"):n(r.status)},r.onerror=()=>{n(-1)},r.ontimeout=()=>{n(0)},r.send()}B(),jdgm.docReady(function(){if(window.jdgmLoadCSS||O()){var e=jdgm.CDN_HOST+"shopify_v2.css";document.querySelector("link[rel='stylesheet'][href='"+e+"']")||(f.widget_load_with_code_splitting?x():jdgm.loadCSS(e))}}),jdgm.docReady(function(){(window.jdgmLoadJS||O())&&(f.widget_load_with_code_splitting?G():jdgm.loadScript(jdgm.CDN_HOST+"shopify_v2.js",A))}),a("[Judge.me Widget Loader] Script loaded and executing...");const b=".jdgm-widget[data-entry-point]",j=document.querySelectorAll(b);if(j.length===0){a("[Judge.me Widget Loader] No containers found with selector:",b);return}a("[Judge.me Widget Loader] Found "+j.length+" container(s), processing each...");const I=new Set,s={REVIEW:"review",ALL_REVIEWS_V2025:"all-reviews-v2025",CAROUSEL:"carousel",TRUST_BADGE:"trust-badge",STORE_SUMMARY:"store-summary",REVIEWS_GRID:"reviews-grid"},Y={review:s.REVIEW,"all-reviews-v2025":s.ALL_REVIEWS_V2025,"testimonials-carousel":s.CAROUSEL,"cards-carousel":s.CAROUSEL,"videos-carousel":s.CAROUSEL,"trust-badge":s.TRUST_BADGE,"store-summary":s.STORE_SUMMARY,"reviews-grid":s.REVIEWS_GRID};function $(e){const t=e.dataset.widget;return Y[t]||null}function z(e){const t=e.querySelector(".jdgm-legacy-widget-content");return t?t.innerHTML.trim().length>20:!1}function K(e,t){if(t===s.ALL_REVIEWS_V2025){const i=window.jdgm?.data?.allReviewsWidgetV2025;return!!(i&&Object.keys(i).length>0)}const d=e.dataset.productId,o=window.jdgm?.data?.reviewWidget?.[d];return!!(o&&o.reviews!==void 0)}function N(e,t,d){const o=f?.[t],i=e.dataset.productId,n=z(e),r=K(e,d);let c=null,g="",l="",m=!1;return o?r?(m=!0,n?(c=1,g="Revamp enabled + both data sources available",l="Loading revamp widget (preferred)"):(c=3,g="Revamp enabled + only revamp data",l="Loading revamp widget (only option available)")):n?(c=2,g="Revamp enabled + only legacy data",l="Falling back to legacy widget (revamp data not available)",m=!1):(c="edge-revamp-no-data",g="Revamp enabled + no data sources",l="Loading revamp widget for empty state",m=!0):n?(m=!1,r?(c=4,g="Revamp disabled + both data sources available",l="Showing legacy widget (preferred)"):(c=6,g="Revamp disabled + only legacy data",l="Showing legacy widget (only option available)")):r?(c=5,g="Revamp disabled + only revamp data",l="Falling back to revamp widget (legacy not available)",m=!0):(c="edge-no-data",g="Revamp disabled + no data sources",l="No widget will be shown (no data available)",m=!1),{scenarioId:c,scenarioName:g,decision:l,shouldLoadRevamp:m,metadata:{productId:i,revampEnabled:o,hasLegacyData:n,hasRevampData:r}}}function J(e,t,d,o){a("[Judge.me Widget Loader] "+d+" - Scenario "+t.scenarioId+": "+t.scenarioName),a("[Judge.me Widget Loader] "+d+" - Decision:",t.decision),a("[Judge.me Widget Loader] "+d+" - Debug info:",{...t.metadata,willLoadRevamp:t.shouldLoadRevamp});let i;o===s.ALL_REVIEWS_V2025?i=window.jdgm?.data?.allReviewsWidgetV2025:i=window.jdgm?.data?.reviewWidget?.[t.metadata.productId];const n=!!i;t.metadata.hasRevampData!==n&&(console.warn("[Judge.me Widget Loader] ⚠️ Data mismatch detected!!"),console.warn("[Judge.me Widget Loader] Liquid says hasRevamp:",t.metadata.hasRevampData),console.warn("[Judge.me Widget Loader] JavaScript sees data:",n),console.warn("[Judge.me Widget Loader] Actual data:",i));const r=e.querySelector(".jdgm-legacy-widget-content");if(r){const c=r.innerHTML.trim().length;if(c>0&&c<=20){const g=r.innerHTML.trim().substring(0,50);a("[Judge.me Widget Loader] 📏 Legacy widget is small ("+c+' chars), treating as empty. Content: "'+g+'"')}}}function H(e){const t=e.querySelector(".jdgm-legacy-widget-content");t&&(t.style.display=""),a("[Judge.me Widget Loader] ✅ Legacy widget displayed")}function p(e){const t=e.dataset.entryPoint,d=e.dataset.entryKey;if(!t||!d){a("[Judge.me Widget Loader] ⚠️ Missing entryPoint or entryKey, skipping container");return}const o=window.jdgm.CDN_BASE_URL,i=o+t,n=e.querySelector(".jdgm-rev-widg");if(n&&(n.style.display="none",a("[Judge.me Widget Loader] 🙈 Hidden legacy widget element (.jdgm-rev-widg)")),a("[Judge.me Widget Loader] ⏳ Loading revamp widget:",t),I.has(i)||document.querySelector('script[src="'+i+'"]')){a("[Judge.me Widget Loader] ⏭️ Script already loaded, skipping:",t);return}I.add(i),X(o,d,t).finally(()=>{const r=document.createElement("script");r.type="module",r.src=i,r.onload=()=>{a("[Judge.me Widget Loader] ✅ Revamp widget script loaded successfully:",t)},r.onerror=()=>{console.error("[Judge.me Widget Loader] ❌ Failed to load revamp widget script:",t)},document.head.appendChild(r)})}async function X(e,t,d){if(!(e+d).includes("localhost"))try{let l=function(m){const u=c[m];u&&(u.css&&u.css.forEach(_=>{const P=e+_;if(!document.querySelector('link[href="'+P+'"]')){const y=document.createElement("link");y.rel="stylesheet",y.href=P,document.head.appendChild(y)}}),u.imports&&u.imports.forEach(l))};var i=l;const n=e+"manifest.json?v="+Date.now(),c=await(await fetch(n)).json(),g=c[t];g&&g.css&&g.css.forEach(m=>{const u=e+m;if(!document.querySelector('link[href="'+u+'"]')){const _=document.createElement("link");_.rel="stylesheet",_.href=u,document.head.appendChild(_)}}),g&&g.imports&&g.imports.forEach(l)}catch(n){console.warn("Could not load manifest or CSS files:",n)}}j.forEach((e,t)=>{const d=$(e),o=e.dataset.entryPoint;if(a("[Judge.me Widget Loader] Processing container "+(t+1)+"/"+j.length+" - Type: "+d+", Entry: "+o),!d){a("[Judge.me Widget Loader] ⏭️ Unknown widget type, skipping container");return}switch(d){case s.REVIEW:{const i=N(e,"review_widget_revamp_enabled",s.REVIEW);J(e,i,"Review Widget",s.REVIEW),i.shouldLoadRevamp?p(e):H(e);break}case s.ALL_REVIEWS_V2025:{const i=N(e,"all_reviews_widget_v2025_enabled",s.ALL_REVIEWS_V2025);J(e,i,"All Reviews V2025 Widget",s.ALL_REVIEWS_V2025),i.shouldLoadRevamp?p(e):H(e);break}case s.CAROUSEL:a("[Judge.me Widget Loader] Carousel widget - always loading revamp"),p(e);break;case s.TRUST_BADGE:{a("[Judge.me Widget Loader] Trust Badge widget"),p(e);break}case s.STORE_SUMMARY:{a("[Judge.me Widget Loader] Store Summary widget"),p(e);break}case s.REVIEWS_GRID:{a("[Judge.me Widget Loader] Reviews Grid widget"),p(e);break}}})})();