{"version":3,"names":["ENGINE_URL","lastInjectedUrl","sendPromoEvent","eventName","eventData","isGTM","window","google_tag_manager","dataLayer","i","length","item","event","document","scripts","getElementsByTagName","src","indexOf","push","ecommerce","gtag","ce_inject","target","getElementById","location","href","querySelector","xhr","XMLHttpRequest","url","encodeURIComponent","Date","getTime","open","onreadystatechange","readyState","status","data","JSON","parse","responseText","error","old","querySelectorAll","parentNode","removeChild","link","createElement","id","rel","head","appendChild","promo","accent","accentColor","imageUrl","mobileImageUrl","adUrl","className","style","cssText","innerHTML","customCss","customStyle","styleId","promoLink","clickUrl","addEventListener","promoData","creative_name","title","creative_slot","location_id","promotion_id","promotion_name","items","item_id","item_name","body","ctaText","insertBefore","firstChild","promoViewData","e","send","init","setTimeout","setInterval"],"sources":["theme-48-inline-common-head_tag.js"],"sourcesContent":["\n/**\n * Content Engine - Intégration Sécurisée & Suivi GTM Discourse v1.3.2\n */\n(function() {\n  var ENGINE_URL = \"https://ce.twiza.org\";\n  var lastInjectedUrl = \"\";\n  \n  function sendPromoEvent(eventName, eventData) {\n    // 1. Détecter si Google Tag Manager (GTM) est présent ou s'apprête à charger\n    var isGTM = false;\n    if (window.google_tag_manager) {\n      isGTM = true;\n    } else if (window.dataLayer) {\n      for (var i = 0; i < window.dataLayer.length; i++) {\n        var item = window.dataLayer[i];\n        if (item && (item.event === 'gtm.js' || item['gtm.start'])) {\n          isGTM = true;\n          break;\n        }\n      }\n    }\n    if (!isGTM && typeof document !== 'undefined') {\n      var scripts = document.getElementsByTagName('script');\n      for (var i = 0; i < scripts.length; i++) {\n        var src = scripts[i].src || '';\n        if (src.indexOf('gtm.js') !== -1 || src.indexOf('googletagmanager.com/gtm.js') !== -1) {\n          isGTM = true;\n          break;\n        }\n      }\n    }\n\n    // 2. Envoyer l'événement de manière appropriée\n    if (isGTM) {\n      // Pour GTM, on utilise exclusivement le dataLayer pour éviter l'avertissement \"Some hits will not be sent...\"\n      if (window.dataLayer) {\n        window.dataLayer.push({ ecommerce: null }); // Nettoyer l'objet e-commerce précédent\n        window.dataLayer.push({\n          event: eventName,\n          ecommerce: eventData\n        });\n      }\n    } else {\n      // Pour une implémentation directe de GA4 (sans GTM), on utilise gtag si disponible\n      if (window.gtag) {\n        window.gtag(\"event\", eventName, eventData);\n      } else if (window.dataLayer) {\n        window.dataLayer.push({ ecommerce: null });\n        window.dataLayer.push({\n          event: eventName,\n          ecommerce: eventData\n        });\n      }\n    }\n  }\n\n  function ce_inject() {\n    try {\n      var target = document.getElementById(\"main-outlet\");\n      if (!target) return;\n      \n      // Éviter la double injection sur la même URL\n      if (lastInjectedUrl === window.location.href && document.querySelector(\".ce-native-promo\")) return;\n\n      var xhr = new XMLHttpRequest();\n      var url = ENGINE_URL + \"/api.php/serve/default?platform=discourse&url=\" + encodeURIComponent(window.location.href) + \"&t=\" + new Date().getTime();\n      \n      xhr.open(\"GET\", url, true);\n      xhr.onreadystatechange = function() {\n        if (xhr.readyState === 4 && xhr.status === 200) {\n          try {\n            var data = JSON.parse(xhr.responseText);\n            if (!data || data.error) return;\n            \n            // Nettoyage sécurisé\n            var old = document.querySelectorAll(\".ce-native-promo\");\n            for (var i = 0; i < old.length; i++) {\n              if (old[i].parentNode) old[i].parentNode.removeChild(old[i]);\n            }\n\n            // Charger le CSS de base s'il n'est pas présent\n            if (!document.getElementById(\"ce-style-link\")) {\n              var link = document.createElement(\"link\");\n              link.id = \"ce-style-link\";\n              link.rel = \"stylesheet\";\n              link.href = ENGINE_URL + \"/ce-style.css\";\n              document.head.appendChild(link);\n            }\n\n            var promo = document.createElement(\"div\");\n            var accent = data.accentColor || \"#00FFFFFF\";\n            var imageUrl = data.imageUrl || '';\n            var mobileImageUrl = data.mobileImageUrl || imageUrl;\n            \n            if (data.adUrl) {\n              promo.className = \"ce-native-ad\";\n              promo.style.cssText = \"border: 1px solid #eee; border-radius: 16px; margin: 20px 0; background: #fff; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.05); clear: both;\";\n              promo.innerHTML = '<iframe src=\"' + data.adUrl + '\" style=\"width:100%; height:250px; border:none; display:block;\"></iframe>';\n            } else {\n              // Injecter le CSS personnalisé s'il est présent\n              if (data.customCss && !document.getElementById(\"ce-custom-style\")) {\n                var customStyle = document.createElement(\"style\");\n                customStyle.id = \"ce-custom-style\";\n                customStyle.innerHTML = data.customCss;\n                document.head.appendChild(customStyle);\n              }\n\n              var styleId = 'ce-dynamic-style-' + data.id;\n              if (!document.getElementById(styleId)) {\n                var style = document.createElement('style');\n                style.id = styleId;\n                style.innerHTML = \n                  '.ce-discourse-dynamic-bg-' + data.id + ' { background-image: url(\"' + imageUrl + '\") !important; } ' +\n                  '@media (max-width: 768px) { .ce-discourse-dynamic-bg-' + data.id + ' { background-image: url(\"' + mobileImageUrl + '\") !important; } }';\n                document.head.appendChild(style);\n              }\n\n              // Création dynamique de l'élément d'ancrage avec gestionnaire d'événement de clic\n              var promoLink = document.createElement(\"a\");\n              promoLink.href = data.clickUrl;\n              promoLink.className = \"ce-native-promo ce-discourse-dynamic-bg-\" + data.id;\n              promoLink.target = \"_blank\";\n              promoLink.style.cssText = \"--ce-accent: \" + accent + \";\";\n              \n              promoLink.addEventListener(\"click\", function() {\n                var promoData = {\n                  creative_name: data.title,\n                  creative_slot: \"discourse\",\n                  location_id: \"discourse\",\n                  promotion_id: data.id,\n                  promotion_name: data.title,\n                  items: [{\n                    item_id: data.id,\n                    item_name: data.title,\n                    creative_name: data.title,\n                    creative_slot: \"discourse\",\n                    location_id: \"discourse\",\n                    promotion_id: data.id,\n                    promotion_name: data.title\n                  }]\n                };\n                sendPromoEvent(\"select_promotion\", promoData);\n              });\n\n              promoLink.innerHTML = '<div class=\"ce-content\">' +\n                  '<h3>' + data.title + '</h3>' +\n                  '<div class=\"ce-body\">' + data.body + '</div>' +\n                  '<div><span class=\"ce-cta\" >' + (data.ctaText || \"Je Découvre\") + '</span></div>' +\n                '</div>';\n\n              promo.appendChild(promoLink);\n            }\n            \n            target.insertBefore(promo, target.firstChild);\n            lastInjectedUrl = window.location.href;\n            \n            if (!data.adUrl) {\n              var promoViewData = {\n                creative_name: data.title,\n                creative_slot: \"discourse\",\n                location_id: \"discourse\",\n                promotion_id: data.id,\n                promotion_name: data.title,\n                items: [{\n                  item_id: data.id,\n                  item_name: data.title,\n                  creative_name: data.title,\n                  creative_slot: \"discourse\",\n                  location_id: \"discourse\",\n                  promotion_id: data.id,\n                  promotion_name: data.title\n                }]\n              };\n              sendPromoEvent(\"view_promotion\", promoViewData);\n            }\n          } catch (e) {}\n        }\n      };\n      xhr.send();\n    } catch (e) {}\n  }\n\n  // L'approche d'initialisation stabilisée\n  var init = function() {\n    setTimeout(function() {\n      setInterval(function() {\n        if (window.location.href !== lastInjectedUrl || !document.querySelector(\".ce-native-promo\")) {\n          ce_inject();\n        }\n      }, 2000);\n      ce_inject();\n    }, 300);\n  };\n\n  if (document.readyState === \"complete\") {\n    init();\n  } else {\n    window.addEventListener(\"load\", init);\n  }\n})();\n"],"mappings":"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","ignoreList":[]}