Používáme cookies. Díky nim vám náš eshop funguje tak, jak má. Pomůžou vám zapamatovat nastavení jazyku, měny nebo adresy. Také vám díky nim doporučíme produkty, které jsou přesně pro vás. Více najdete v našich zásadách pro cookies.
function syncPiecesAndDeliveryToPava(scope) {
// scope = dokument / konkrétní produkt / konkrétní karta
const containers = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right, body');
// Helper: vytáhni datum z .delivery-estimate (např. "Obdržíte do 20.01")
function extractDateText(deliveryEl) {
if (!deliveryEl) return '';
const t = (deliveryEl.textContent || '').trim();
const m = t.match(/(\d{2}\.\d{2})/);
return m ? m[1] : '';
}
// Helper: vytáhni kusy z textu dostupnosti ("Skladem 1 ks" / "Centrální sklad 8 ks")
function extractPiecesFromAvailabilityText(text) {
const t = (text || '').replace(/\s+/g, ' ').trim();
const m = t.match(/(\d+)\s*ks/i);
return m ? m[1] : '';
}
// Pro každý produkt/kartu zkus najít zdroje a cíle uvnitř
const productRoots = scope.querySelectorAll('#product_list > li.p_cart_block, .p_detail_right');
productRoots.forEach(root => {
const delivery = root.querySelector('.delivery-estimate');
const deliveryDDMM = extractDateText(delivery);
if (!deliveryDDMM) return; // když není datum, nic neduplikuj
// Zdroje dostupnosti (detail i výpis)
const availabilityEl =
root.querySelector('.p_detail_availability [data-variant="availability"]') ||
root.querySelector('.p_block .p_g.p_action') ||
root.querySelector('.p_g[data-variant="availability"]') ||
root.querySelector('.p_g.p_action');
const pieces = extractPiecesFromAvailabilityText(availabilityEl ? availabilityEl.textContent : '');
// Cíl: modul p_ava (může být div nebo span, proto obecně)
const pava =
root.querySelector('div.p_ava.p_g.p_action') ||
root.querySelector('span.p_ava.p_g.p_action') ||
root.querySelector('.p_ava.p_g.p_action');
if (!pava) return;
// Sestav text: zachovej původní text a jen doplň ks + datum do druhého řádku
// 1) doplnění ks (pokud máš)
const baseText = (pava.textContent || '').trim() || (availabilityEl ? availabilityEl.textContent.trim() : '');
const baseNoPieces = baseText.replace(/\s*\d+\s*ks\b/ig, '').trim();
const piecesPart = pieces ? ` ${pieces} ks` : '';
const line1 = `${baseNoPieces}${piecesPart}`.trim();
// 2) datum na nový řádek (stejný pattern jako u detailu)
const line2 = `Obdržíte do ${deliveryDDMM}`;
// aby se to neduplikovalo opakovaně:
// držíme si vlastní span uvnitř pava
let extra = pava.querySelector('.pava-extra');
if (!extra) {
extra = document.createElement('span');
extra.className = 'pava-extra';
extra.style.display = 'block'; // jen layout, bez stylování barvy apod.
pava.appendChild(extra);
}
// nastav texty
pava.childNodes.forEach(n => {
// necháme jen text node prvního řádku + extra span
// (jednoduše: přepíšeme obsah bezpečně)
});
// bezpečný přepis: nejdřív vyčisti pava, pak vlož 1. řádek + extra
pava.textContent = line1;
pava.appendChild(extra);
extra.textContent = line2;
});
}
// zavolej po tvém hlavním výpočtu / vložení .delivery-estimate
syncPiecesAndDeliveryToPavaModule();
function syncPiecesAndDeliveryToPavaModule(){
syncPiecesAndDeliveryToPava(document);
}