Súbory cookies používame pre správne fungovanie našej webovej stránky a jej funkcií. Pomocou súborov cookies si tiež napríklad pamätáme váš preferovaný jazyk, zvyšujeme pre vás relevantnosť zobrazovaných reklám, počítame návštevnosť stránok a pamätáme si vaše nastavenia vykonané na stránke.
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);
}