/* Better Boss dynamic renderer v1 */ (function(){ function el(tag,cls,attrs,text){var n=document.createElement(tag);if(cls)n.className=cls;if(attrs)Object.keys(attrs).forEach(function(k){n.setAttribute(k,attrs[k]);});if(text!=null)n.textContent=text;return n;} function parseData(html,marker){ var open='id="'+marker+'" type="application/json">'; var s=html.indexOf(open);if(s<0){open="id='"+marker+"' type='application/json'>";s=html.indexOf(open);}if(s<0)return null; s+=open.length; var e=html.indexOf('',s);if(e<0)return null; try{return JSON.parse(html.substring(s,e));}catch(err){return null;} } function fetchData(url,marker){ return fetch(url+(url.indexOf('?')>=0?'&':'?')+'_='+Date.now(),{cache:'no-store'}).then(function(r){return r.text();}).then(function(h){return parseData(h,marker);}); } function bad(id,msg){var b=document.getElementById(id);if(!b)return;b.textContent='';b.appendChild(el('p',null,{style:'color:#ef4444;padding:32px;text-align:center;'},msg));} function fmtDate(iso){try{return new Date(iso).toLocaleDateString('en-US',{year:'numeric',month:'long',day:'numeric'});}catch(e){return iso;}} function slugFromPath(p){return p.replace(/\/$/,'').split('/').pop();} /* ======= EPISODE DETAIL ======= */ function renderEpisode(){ var slug=slugFromPath(location.pathname); fetchData('/bb-episodes-data/','bb-episodes-data').then(function(eps){ if(!eps){bad('epBody','Could not load episode data.');return;} eps.sort(function(a,b){return a.num-b.num;}); var idx=-1;for(var i=0;i