
<script>
document.addEventListener('DOMContentLoaded', () => {
  const form = document.querySelector(
    '#panettone-form form.elementor-form'
  );
  if (!form) return;

  const field = id =>
    form.querySelector(`[name="form_fields[${id}]"]`);

  const delivery = field('versandart');
  const same = field('adresse_gleich');
  const address = field('lieferadresse');

  if (!delivery || !same || !address) return;

  const sameGroup = same.closest('.elementor-field-group');
  const addressGroup = address.closest('.elementor-field-group');

  // Bedingte Felder ein-/ausblenden
  function updateFields() {
    const isDelivery = delivery.value === 'delivery';
    const isDifferent = isDelivery && same.value === 'different';

    sameGroup.style.display = isDelivery ? '' : 'none';
    addressGroup.style.display = isDifferent ? '' : 'none';

    same.disabled = !isDelivery;
    address.disabled = !isDifferent;

    same.required = isDelivery;
    address.required = isDifferent;
  }

  delivery.addEventListener('change', updateFields);
  same.addEventListener('change', updateFields);

  // Bestellmengen prüfen
  const qtyIds = [
    'tradizionale',
    'tradizionale_piccolo',
    'cioccolato',
    'cioccolato_piccolo'
  ];

  const quantities = qtyIds.map(field);

  if (quantities.some(input => !input)) return;

  function validateQuantities() {
    let total = 0;
    let allValid = true;

    quantities.forEach(input => {
      input.min = '0';
      input.max = '99';
      input.step = '1';

      const value = input.value.trim();
      const valid = value === '' ||
        (/^\d+$/.test(value) && Number(value) <= 99);

      input.setCustomValidity(
        valid ? '' : 'Bitte eine ganze Zahl von 0 bis 99 eingeben.'
      );

      if (!valid) {
        allValid = false;
      } else {
        total += Number(value || 0);
      }
    });

    if (allValid && total === 0) {
      quantities[0].setCustomValidity(
        'Bitte mindestens einen Panettone bestellen.'
      );
    }
  }

  quantities.forEach(input => {
    input.addEventListener('input', validateQuantities);
    input.addEventListener('change', validateQuantities);
  });

  // Vor dem Elementor-AJAX-Versand validieren
  form.addEventListener('submit', event => {
    updateFields();
    validateQuantities();

    if (!form.checkValidity()) {
      event.preventDefault();
      event.stopImmediatePropagation();
      form.reportValidity();
    }
  }, true);

  updateFields();
});
</script>
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//labestia-luzern.ch/wp-content/plugins/wordpress-seo/css/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://labestia-luzern.ch/post-sitemap.xml</loc>
		<lastmod>2026-09-28T08:00:57+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://labestia-luzern.ch/page-sitemap.xml</loc>
		<lastmod>2026-02-24T15:29:01+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://labestia-luzern.ch/category-sitemap.xml</loc>
		<lastmod>2026-09-28T08:00:57+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Yoast SEO -->