(function(){
function qs(sel, root){ return (root||document).querySelector(sel); }
function ce(tag, cls){ var el=document.createElement(tag); if(cls) el.className=cls; return el; }
var cfg=window.EMHDS_BANNER_CONFIG||null;
if(!cfg||!cfg.enabled||!cfg.image_url){ return; }
function ajax(action, payload){
payload=payload||{};
payload.action=action;
payload._ajax_nonce=cfg.nonce;
return fetch(cfg.ajax_url, {
method: 'POST',
credentials: 'same-origin',
headers: {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'},
body: new URLSearchParams(payload).toString()
}).then(function(r){ return r.json().catch(function(){ return {};});});
}
function buildBanner(){
var wrap=ce('div','emhds-banner');
wrap.style.height=(parseInt(cfg.height,10)||70) + 'px';
var a=ce('a','emhds-banner__link');
a.href=cfg.link_url||'#';
if(cfg.new_tab){ a.target='_blank'; a.rel='noopener noreferrer'; }
var img=ce('img','emhds-banner__img');
img.src=cfg.image_url;
img.alt=cfg.alt||'Banner';
a.appendChild(img);
wrap.appendChild(a);
a.addEventListener('click', function(e){
if(!cfg.link_url){ e.preventDefault(); }
ajax('emhds_banner_click', { page_url: location.href }).catch(function(){});
}, true);
return wrap;
}
var lastShell=null;
function ensureBanner(){
var shell=qs('#wl-ctc-shell');
if(!shell||shell===lastShell) return;
lastShell=shell;
var pop=qs('.wl-ctc-popup', shell);
if(!pop) return;
var slot=qs('.emhds-banner-slot', shell);
if(!slot){
slot=ce('div','emhds-banner-slot');
slot.setAttribute('aria-hidden','true');
}
try{
if(slot.parentNode!==pop){
if(slot.parentNode) slot.parentNode.removeChild(slot);
pop.insertBefore(slot, pop.firstChild);
}
var header=qs('.wl-ctc-popup__header', pop);
if(header&&header.previousSibling!==slot){
pop.insertBefore(slot, header);
}else if(!header&&pop.firstChild!==slot){
pop.insertBefore(slot, pop.firstChild);
}}catch(_move){}
var banner=buildBanner();
ajax('emhds_banner_view', { page_url: location.href }).then(function(res){
if(res&&res.success===false){ return; }
if(res&&res.data&&res.data.show===false){ return; }
if(!qs('.emhds-banner', shell)){
slot.innerHTML='';
slot.setAttribute('aria-hidden','false');
slot.appendChild(banner);
try{ window.dispatchEvent(new CustomEvent('emhds:banner-rendered')); }catch(_e){}}
}).catch(function(){  });
}
function observe(){
var mo=new MutationObserver(function(){
ensureBanner();
});
mo.observe(document.documentElement||document.body, {childList:true, subtree:true});
ensureBanner();
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', observe);
}else{
observe();
}})();