1document.addEventListener("DOMContentLoaded",function(){const onMixPage=document.querySelector('#slots');if(!onMixPage)return;const slotContainer=document.querySelector('#slots');const slots=document.querySelectorAll(".slot");const slotCount=parseInt(slotContainer.dataset.slotCount||"8");const discountValue=parseFloat(slotContainer.dataset.discount||"15");const productId=parseInt(slotContainer.dataset.productId||"36920");const nonce=document.getElementById('mixbox-nonce')?.value||'';let selected=[];let totalPrice=0;const formatPrice=(price)=>new Intl.NumberFormat('de-DE',{style:'currency',currency:'EUR'}).format(price);function generateMixId(){return'mix_'+Math.random().toString(36).substring(2,10)} 2function updateUI(){const priceBox=document.getElementById("mix-price");const addBtn=document.getElementById("add-to-cart");const formattedOriginal=formatPrice(totalPrice);const visualTotal=totalPrice-discountValue;const formattedVisual=formatPrice(visualTotal>0?visualTotal:0);const savings=formatPrice(discountValue);const grundpreis=formatPrice((visualTotal>0?visualTotal:0)/slotCount);let html='';if(selected.length===slotCount){html+=`<div><span class="original-price" style="text-decoration: line-through; color: #a00; margin-right: 8px;">${formattedOriginal}</span>`;html+=`<span class="discounted-price" style="font-size: 1.4em; font-weight: bold;">${formattedVisual}</span></div>`;html+=`<div style="font-size: 0.9em; color: #555;">inkl. MwSt.</div>`;html+=`<div style="font-size: 0.9em; color: #555;">(${grundpreis} / 1 kg)</div>`}else{html+=`<div><span class="only-price">${formattedOriginal}</span></div>`;html+=`<div style="font-size: 0.9em; color: #555;">inkl. MwSt.</div>`} 3priceBox.innerHTML=html;addBtn.disabled=selected.length!==slotCount;addBtn.style.opacity=addBtn.disabled?"0.5":"1";addBtn.style.cursor=addBtn.disabled?"not-allowed":"pointer";const sparenBox=document.querySelector('.Mixkarton-Sparbetrag');if(sparenBox){sparenBox.style.display=selected.length===slotCount?'block':'none'}} 4document.querySelectorAll(".product-card").forEach(prod=>{const productId=prod.dataset.id;const price=parseFloat(prod.dataset.price);const productName=prod.dataset.name;if(!productId||isNaN(price))return;prod.addEventListener("click",function(){const emptySlot=Array.from(slots).find(slot=>slot.dataset.filled==="0");if(!emptySlot)return;const content=emptySlot.querySelector(".slot-content");content.innerHTML='';const img=this.querySelector('img')?.cloneNode(!0);if(img)content.appendChild(img);const name=document.createElement('p');name.textContent=productName;content.appendChild(name);emptySlot.dataset.filled="1";emptySlot.dataset.id=productId;emptySlot.dataset.price=price;emptySlot.dataset.name=productName;const variations=prod.dataset.variations?JSON.parse(prod.dataset.variations):null;selected.push({id:productId,price,name:productName,variations:variations});totalPrice+=price;updateUI()})});slots.forEach(slot=>{slot.addEventListener("click",function(){if(slot.dataset.filled!=="1")return;const price=parseFloat(slot.dataset.price);const id=slot.dataset.id;const index=selected.findIndex(item=>item.id===id&&item.price===price);if(index>-1)selected.splice(index,1);totalPrice-=price;slot.querySelector(".slot-content").innerHTML="";slot.dataset.filled="0";delete slot.dataset.id;delete slot.dataset.price;delete slot.dataset.name;updateUI()})});const addBtn=document.getElementById("add-to-cart");addBtn.addEventListener("click",function(){if(selected.length!==slotCount){alert(`Bitte wähle genau ${slotCount} Produkte aus.`);return} 5const form=document.createElement("form");form.method="POST";form.action=window.location.href;const mixId=generateMixId();const selectedMahlgrad=document.getElementById('mix-mahlgrad').value;[{name:'add-to-cart',value:productId},{name:'mix_id',value:mixId},{name:'mix_variants',value:selected.map(p=>{const finalId=(p.variations&&p.variations[selectedMahlgrad])?p.variations[selectedMahlgrad]:p.id;return `${finalId}|${mixId}`}).join(',')},{name:'_wpnonce',value:nonce},{name:'_wp_http_referer',value:window.location.pathname}
5].forEach(({name,value})=>{const input=document.createElement("input");input.type="hidden";input.name=name;input.value=value;form.appendChild(input)});document.body.appendChild(form);addBtn.style.width=addBtn.offsetWidth+"px";addBtn.innerHTML='<span class="spinner"></span>';addBtn.disabled=!0;addBtn.style.cursor="not-allowed";addBtn.style.opacity="0.5";form.submit()});updateUI();document.querySelectorAll('.product-card .product-name-link a').forEach(link=>{link.addEventListener('click',function(e){e.stopPropagation()})})});(function($){$(document).ready(function(){var $descriptionsContainer=$('#variation-descriptions');if($descriptionsContainer.length===0)return;var $dynamicContainer=$('#dynamic-variation-description');var $firstDesc=$descriptionsContainer.find('[data-variation-id]').first();if($firstDesc.length){$dynamicContainer.html($firstDesc.html()).show()} 6$('form.variations_form').on('found_variation',function(event,variation){var $desc=$descriptionsContainer.find('[data-variation-id="'+variation.variation_id+'"]');if($desc.length){$dynamicContainer.fadeOut(200,function(){$(this).html($desc.html()).fadeIn(200)})}});$('form.variations_form').on('reset_data',function(){if($firstDesc.length){$dynamicContainer.fadeOut(200,function(){$(this).html($firstDesc.html()).fadeIn(200)})}})})})(jQuery);(function(){"use strict";if(!document.body.classList.contains("page-id-45213"))return;var attempts=0;var poll=setInterval(function(){attempts++;if(document.querySelector(".pgc-price-box")&&document.querySelector(".pgc-var-btn")){clearInterval(poll);setTimeout(init,500)} 7if(attempts>60)clearInterval(poll);},150);function init(){priceMirror();buildMotivCards();enhanceKaffee();enhanceManualPools()} 8function priceMirror(){var header=document.querySelector(".pgc-product-header");var srcBox=document.querySelector(".pgc-price-box");if(!header||!srcBox)return;var mirror=document.createElement("div");mirror.className="pgc-price-top";var meta=header.querySelector(".pgc-product-meta");if(meta)header.insertBefore(mirror,meta);else header.appendChild(mirror);var hint=header.querySelector(".pgc-price-from");function sync(){var p=srcBox.querySelector(".pgc-price");if(p){mirror.innerHTML=srcBox.innerHTML;mirror.style.display="";if(hint)hint.style.display="none"}else{mirror.style.display="none";if(hint)hint.style.display=""}} 9sync();new MutationObserver(sync).observe(srcBox,{childList:!0,subtree:!0,characterData:!0})} 10function buildMotivCards(){var varPart=document.querySelector('.pgc-variation-part[data-config-id="45220"]');if(!varPart)return;var dataEl=document.querySelector('.pgc-data[data-config-id="45220"]');if(!dataEl)return;var configData;try{configData=JSON.parse(dataEl.textContent)}catch(e){return} 11var variations=configData.variationsData||[];var varImages=configData.variationImages||{};var varBtns=varPart.querySelectorAll(".pgc-var-btn");if(!variations.length)return;var origSection=varPart.querySelector(".pgc-variation-section");if(origSection)origSection.style.display="none";var wrapper=document.createElement("div");wrapper.className="pgc-motiv-section pgc-section";var title=document.createElement("h4");title.className="pgc-section-title";title.textContent="Geschenk für";wrapper.appendChild(title);var grid=document.createElement("div");grid.className="pgc-motiv-grid";var maxDirect=Math.min(3,variations.length);for(var i=0;i<maxDirect;i++){(function(v){var card=createMotivCard(v,varImages);card.addEventListener("click",function(){varBtns.forEach(function(btn){if(parseInt(btn.dataset.selectedId)===v.id)btn.click();});setActive(grid,card,"pgc-motiv-active")});grid.appendChild(card)})(variations[i])} 12if(variations.length>3){var moreCard=document.createElement("div");moreCard.className="pgc-motiv-card pgc-motiv-more";var ph=document.createElement("div");ph.className="pgc-motiv-more-placeholder";ph.innerHTML='<span class="pgc-motiv-more-icon">+</span>';moreCard.appendChild(ph);var mn=document.createElement("span");mn.className="pgc-motiv-name pgc-motiv-more-name";mn.textContent="Weitere Motive";moreCard.appendChild(mn);moreCard.addEventListener("click",function(){showPicker(variations.slice(maxDirect),varBtns,varImages,grid,moreCard,mn,"pgc-motiv-active","pgc-motiv-picker")});grid.appendChild(moreCard)} 13wrapper.appendChild(grid);varPart.prepend(wrapper);var activeBtn=varPart.querySelector(".pgc-var-btn--active");if(activeBtn){var aid=activeBtn.dataset.selectedId;markActiveById(grid,aid,variations,maxDirect,varImages,"pgc-motiv-active","pgc-motiv-more","pgc-motiv-more-name")}
14var motivUpdating=!1;new MutationObserver(function(mutations){if(motivUpdating)return;var relevant=mutations.some(function(m){return m.target.classList&&m.target.classList.contains("pgc-var-btn")});if(!relevant)return;var act=varPart.querySelector(".pgc-var-btn--active");if(!act)return;motivUpdating=!0;markActiveById(grid,act.dataset.selectedId,variations,maxDirect,varImages,"pgc-motiv-active","pgc-motiv-more","pgc-motiv-more-name");motivUpdating=!1}).observe(varPart,{subtree:!0,attributes:!0,attributeFilter:["class"]})} 15function createMotivCard(v,varImages){var card=document.createElement("div");card.className="pgc-motiv-card";card.dataset.varId=String(v.id);var imgUrl=varImages[String(v.id)]||"";if(imgUrl){var img=document.createElement("img");img.src=imgUrl;img.alt=v.label;img.loading="lazy";card.appendChild(img)} 16var name=document.createElement("span");name.className="pgc-motiv-name";name.textContent=v.label;card.appendChild(name);return card} 17function enhanceKaffee(){var mahlPart=document.querySelector(".pgc-mahlgrad-part");var mahlSelect=mahlPart?mahlPart.querySelector(".pgc-mahlgrad-select"):null;if(mahlPart)mahlPart.style.display="none";document.querySelectorAll(".pgc-pool--kaffee").forEach(function(p){if(p.style.display!=="none")buildKaffeeUI(p,mahlSelect);});var obs=new MutationObserver(function(){document.querySelectorAll(".pgc-pool--kaffee").forEach(function(p){if(p.style.display!=="none"&&!p.classList.contains("pgc-ku-done"))buildKaffeeUI(p,mahlSelect);})});document.querySelectorAll(".pgc-pools-part").forEach(function(pp){obs.observe(pp,{attributes:!0,subtree:!0,attributeFilter:["style"]})})} 18function buildKaffeeUI(poolEl,mahlSelect){if(poolEl.classList.contains("pgc-ku-done"))return;var poolId=poolEl.dataset.poolId;var dialog=document.getElementById("pgc-kd-"+poolId);if(!dialog)return;poolEl.classList.add("pgc-ku-done");var origTitle=poolEl.querySelector(".pgc-section-title");if(origTitle)origTitle.style.display="none";var slotEl=poolEl.querySelector(".pgc-kaffee-slot");if(slotEl)slotEl.style.display="none";var allCards=dialog.querySelectorAll(".pgc-kd-card:not(.pgc-kd-card--oos)");if(!allCards.length)return;var preCard=dialog.querySelector('.pgc-kd-card[data-preselect="1"]:not(.pgc-kd-card--oos)');var picks=[];if(preCard)picks.push(preCard);allCards.forEach(function(c){if(picks.length<3&&!picks.includes(c))picks.push(c);});var wrapper=document.createElement("div");wrapper.className="pgc-ku-wrap-all";var titleEl=document.createElement("h4");titleEl.className="pgc-section-title pgc-ku-heading";titleEl.textContent="Kaffeesorte";wrapper.appendChild(titleEl);var hint=document.createElement("p");hint.className="pgc-ku-hint";hint.innerHTML="★ <em>Unsere Empfehlung: der Festtagskaffee â kommt immer gut an!</em>";wrapper.appendChild(hint);var grid=document.createElement("div");grid.className="pgc-ku-grid";picks.forEach(function(dc){var cw=document.createElement("div");cw.className="pgc-ku-card-wrap";var card=createKuCard(dc);cw.appendChild(card);var ms=document.createElement("div");ms.className="pgc-ku-mahl-slot";cw.appendChild(ms);card.addEventListener("click",function(){dc.click();activateKu(grid,card,ms,mahlSelect)});grid.appendChild(cw)});var mw=document.createElement("div");mw.className="pgc-ku-card-wrap";var mc=document.createElement("div");mc.className="pgc-ku-card pgc-ku-more";mc.innerHTML='<span class="pgc-ku-more-icon">+</span><span class="pgc-ku-name pgc-ku-more-name">Weitere Sorten</span>';var mms=document.createElement("div");mms.className="pgc-ku-mahl-slot";mc.addEventListener("click",function(){var btn=poolEl.querySelector(".pgc-kaffee-choose-btn")||poolEl.querySelector(".pgc-kaffee-change-btn");if(btn)btn.click();});mw.appendChild(mc);mw.appendChild(mms);grid.appendChild(mw);wrapper.appendChild(grid);var pc=poolEl.querySelector(".pgc-pool-content");if(pc)pc.prepend(wrapper);if(slotEl){var moreName=mc.querySelector(".pgc-ku-more-name");new MutationObserver(function(){syncKuSlot(slotEl,grid,mc,moreName,mms,mahlSelect,picks)}).observe(slotEl,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]})} 19setTimeout(function(){syncKuSlot(slotEl,grid,mc,mc.querySelector(".pgc-ku-more-name"),mms,mahlSelect,picks)},150)} 20function createKuCard(dc){var c=document.createElement("div");c.className="pgc-ku-card";c.dataset.label=dc.dataset.label;var img=document.createElement("img");img.src=dc.dataset.img;
20img.alt=dc.dataset.label;img.loading="lazy";var n=document.createElement("span");n.className="pgc-ku-name";n.textContent=dc.dataset.label;n.title=dc.dataset.label;c.appendChild(img);c.appendChild(n);return c} 21function activateKu(grid,card,mSlot,mahlSelect){clearKu(grid);card.classList.add("pgc-ku-active");resetMoreCard(grid);placeMahlgrad(mSlot,mahlSelect)} 22function clearKu(g){g.querySelectorAll(".pgc-ku-card").forEach(function(c){c.classList.remove("pgc-ku-active")});g.querySelectorAll(".pgc-ku-mahl-slot").forEach(function(s){s.innerHTML=""})} 23function resetMoreCard(grid){var mc=grid.querySelector(".pgc-ku-more");if(!mc)return;var existImg=mc.querySelector(".pgc-ku-more-img");if(existImg)existImg.remove();var icon=mc.querySelector(".pgc-ku-more-icon");if(icon)icon.style.display="";var mn=mc.querySelector(".pgc-ku-more-name");if(mn)mn.textContent="Weitere Sorten"} 24function syncKuSlot(slotEl,grid,moreCard,moreName,moreMSlot,mahlSelect,picks){if(!slotEl)return;var f=slotEl.querySelector(".pgc-kaffee-slot-filled");if(!f||f.style.display==="none")return;var ne=slotEl.querySelector(".pgc-kaffee-slot-name");if(!ne||!ne.textContent)return;var sn=ne.textContent.trim();var found=!1;grid.querySelectorAll(".pgc-ku-card:not(.pgc-ku-more)").forEach(function(c){if(c.dataset.label===sn){var ms=c.parentNode.querySelector(".pgc-ku-mahl-slot");activateKu(grid,c,ms,mahlSelect);found=!0}});if(!found){clearKu(grid);moreCard.classList.add("pgc-ku-active");var slotImg=slotEl.querySelector(".pgc-kaffee-slot-img");var imgSrc=slotImg?slotImg.src:"";var existImg=moreCard.querySelector(".pgc-ku-more-img");if(imgSrc){if(!existImg){existImg=document.createElement("img");existImg.className="pgc-ku-more-img";existImg.loading="lazy";moreCard.insertBefore(existImg,moreCard.firstChild)} 25existImg.src=imgSrc;existImg.alt=sn;var icon=moreCard.querySelector(".pgc-ku-more-icon");if(icon)icon.style.display="none"} 26moreName.textContent=sn;moreName.title=sn;placeMahlgrad(moreMSlot,mahlSelect)}} 27function placeMahlgrad(slot,orig){if(!orig)return;var inner=document.querySelector(".pgc-ku-mahl-inner");if(!inner){inner=document.createElement("div");inner.className="pgc-ku-mahl-inner";var l=document.createElement("span");l.className="pgc-ku-mahl-label";l.textContent="Mahlgrad:";inner.appendChild(l);var px=orig.cloneNode(!0);px.className="pgc-ku-mahl-select";px.removeAttribute("id");px.value=orig.value;px.addEventListener("change",function(){orig.value=this.value;orig.dispatchEvent(new Event("change",{bubbles:!0}))});orig.addEventListener("change",function(){px.value=orig.value});inner.appendChild(px)} 28slot.innerHTML="";slot.appendChild(inner)} 29function enhanceManualPools(){document.querySelectorAll(".pgc-pool:not(.pgc-pool--kaffee)").forEach(function(poolEl){var cards=poolEl.querySelectorAll(".pgc-product-card");if(cards.length<4)return;var productsContainer=poolEl.querySelector(".pgc-pool-products");if(!productsContainer)return;for(var i=3;i<cards.length;i++){cards[i].style.display="none";cards[i].classList.add("pgc-hidden-card")} 30var moreCard=document.createElement("div");moreCard.className="pgc-product-card pgc-pool-more-card";moreCard.style.cursor="pointer";moreCard.innerHTML='<div style="display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:4px;"><span style="font-size:1.3em;font-weight:300;color:#999;">+</span><p class="pgc-card-name" style="font-weight:600;color:#777;">Weitere Sorten</p></div>';moreCard.addEventListener("click",function(){poolEl.querySelectorAll(".pgc-hidden-card").forEach(function(c){c.style.display=""});moreCard.style.display="none"});productsContainer.appendChild(moreCard)})} 31function setActive(grid,card,cls){grid.querySelectorAll("."+cls).forEach(function(c){c.classList.remove(cls)});card.classList.add(cls)} 32function markActiveById(grid,aid,variations,maxDirect,varImages,activeCls,moreCls,moreNameCls){var directIds=[];for(var j=0;j<maxDirect;j++)directIds.push(String(variations[j].id));grid.querySelectorAll("."+activeCls).forEach(function(c){c.classList.remove(activeCls)});if(directIds.indexOf(aid)>-1){grid.querySelectorAll("[data-var-id='"+aid+"']").forEach(function(c){c.classList.add(activeCls)});var mc=grid.querySelector("."+moreCls);if(mc){delete mc.dataset.varId;var mn=mc.querySelector("."+moreNameCls);if(mn)mn.textContent="Weitere Motive";var ei=mc.querySelector("img");if(ei)ei.remove();var ph=mc.querySelector(".pgc-motiv-more-placeholder");if(ph)ph.style.display=""}}else{var mc2=grid.querySelector("."+moreCls);if(mc2){mc2.classList.add(activeCls);mc2.dataset.varId=aid;var matchV=variations.find(function(v){return String(v.id)===aid});if(matchV){var mn2=mc2.querySelector("."+moreNameCls);if(mn2)mn2.textContent=matchV.label;var imgUrl=varImages[aid]||"";if(imgUrl){var existImg=mc2.querySelector("img");if(!existImg){existImg=document.createElement("img");existImg.loading="lazy";var ph2=mc2.querySelector(".pgc-motiv-more-placeholder");if(ph2)ph2.style.display="none";mc2.insertBefore(existImg,mc2.firstChild)} 33existImg.src=imgUrl;existImg.alt=matchV.label}}}}} 34function showPicker(items,varBtns,varImages,grid,moreCard,moreName,activeCls,pickerCls){var existing=d
34ocument.querySelector("."+pickerCls);if(existing){existing.remove();return} 35var picker=document.createElement("div");picker.className=pickerCls;items.forEach(function(v){var opt=document.createElement("div");opt.className=pickerCls+"-opt";var imgUrl=varImages[String(v.id)]||"";if(imgUrl){var img=document.createElement("img");img.src=imgUrl;img.alt=v.label;img.loading="lazy";opt.appendChild(img)} 36var name=document.createElement("span");name.textContent=v.label;opt.appendChild(name);opt.addEventListener("click",function(){varBtns.forEach(function(btn){if(parseInt(btn.dataset.selectedId)===v.id)btn.click();});picker.remove()});picker.appendChild(opt)});moreCard.parentNode.appendChild(picker);setTimeout(function(){document.addEventListener("click",function closer(e){if(!picker.contains(e.target)&&!moreCard.contains(e.target)){picker.remove();document.removeEventListener("click",closer)}})},50)}})()
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.