{"id":283480,"date":"2025-05-26T07:41:14","date_gmt":"2025-05-26T05:41:14","guid":{"rendered":"https:\/\/www.msd-online.ch\/?p=283480"},"modified":"2026-04-07T17:34:15","modified_gmt":"2026-04-07T15:34:15","slug":"ete-plaisir-courses-de-canards","status":"publish","type":"post","link":"https:\/\/msd.swiss\/fr\/ete-plaisir-courses-de-canards\/","title":{"rendered":"\u00c9t\u00e9, plaisir &amp; courses de canards"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Unsere Arbeit im Missionswerk msd, finanziert sich durch Spenden. Das ist manchmal herausfordernd, aber immer wieder auch ein Grund zur Dankbarkeit. Denn wir erleben, wie Gott unsere Finanzen st\u00e4rkt \u2013 oft auf \u00fcberraschende Weise. Diese Versorgung gibt uns die Freiheit, mit ganzer Hingabe in sein Reich zu investieren und Menschen zu dienen. Genau deshalb veranstalten wir am Samstag, 28. Juni 2025, das msd Sommerfest mit dem grossen Entenrennen: Es ist ein fr\u00f6hlicher Sponsoring-Event, der hilft, unsere Arbeit finanziell zu tragen \u2013 und zugleich ein Fest voller Leben, Gemeinschaft und Dankbarkeit.<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-1024x640.jpg\" alt=\"\" class=\"wp-image-283459\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-1024x640.jpg 1024w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-300x188.jpg 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-768x480.jpg 768w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-1536x960.jpg 1536w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-2048x1280.jpg 2048w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-400x250.jpg 400w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-1080x675.jpg 1080w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-1280x801.jpg 1280w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-980x613.jpg 980w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Entenrennen-1610-480x300.jpg 480w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\">Wir laden dich herzlich ein, diesen besonderen Tag mit uns zu feiern \u2013 in Frutigen im Gand. Dort erwartet dich eine entspannte, famili\u00e4re Atmosph\u00e4re, eingebettet in die wundersch\u00f6ne Natur des Berner Oberlands.\u00a0<\/p>\n\n<p class=\"wp-block-paragraph\">Bei hoffentlich warmen Sommertemperaturen l\u00e4dt das Bachbett im Gand zum F\u00fcssebaden und Verweilen ein \u2013 ein nat\u00fcrlicher Ort zum Abk\u00fchlen, Spielen und Staunen. F\u00fcr die Kinder gibt es die M\u00f6glichkeit, sich schminken zu lassen und f\u00fcr einen Moment in eine andere Rolle zu schl\u00fcpfen. Ein besonderes Highlight wird das Outdoor-Minigolf \u00fcber Stock und Stein sein \u2013 etwas, das man nicht alle Tage erlebt. Verschiedene liebevoll gestaltete Bahnen warten darauf, ausprobiert zu werden, und Gross wie Klein sind eingeladen, ihre Geschicklichkeit unter Beweis zu stellen. Hast du eine ruhige Hand? Doch bei allem Programm bleibt das Wichtigste: das Geniessen, das Miteinander, das Pflegen von Beziehungen und das gemeinsame Lachen inmitten der Natur.<\/p>\n\n<p class=\"wp-block-paragraph\">Ein besonderes Highlight ist das Entenrennen im Bach \u2013 ein Spass f\u00fcr Gross und Klein. Und das Beste daran: Du kannst (und sollst!) deine eigene Ente ins Rennen schicken. Mitmachen lohnt sich. Neben Spannung und Spass gibt es bei den Rennen auch tolle Preise im Wert von je 150 Franken zu gewinnen. Wie du deine Ente anmeldest und was du daf\u00fcr brauchst, erf\u00e4hrst du ganz einfach unter msd-online.ch\/entenrennen.<\/p>\n\n<p class=\"wp-block-paragraph\">Wir freuen uns riesig auf dich \u2013 und nat\u00fcrlich auf deine Ente. Lass uns gemeinsam feiern, Gott danken und einen unvergesslichen Sommertag erleben!<\/p>\n<div class=\"et_pb_section_0 et_pb_section et_pb_section--fixed et_section_regular et_flex_section\" id=\"popup_projekte\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\" id=\"popup-projekte-inhalt\"><div class=\"et_pb_column_0 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\" id=\"bild_popup\"><div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\" data-et-mv-hidden-phone=\"true\"><script>\n\/* Projekt-Popup: Button \u00f6ffnet den jeweiligen Projekt-Link immer in einem neuen Tab (DE & FR).\n   Greift \u00fcber die ID \"projekt_button\" oder jeden Button im Projekt-Popup.\n   Capture-Phase: wir sind vor dem alten jQuery-Button-Script im Header dran,\n   das sonst alle Divi-Buttons im selben Tab \u00f6ffnet. *\/\n(function () {\n  if (window.__msdProjektButton) return;\n  window.__msdProjektButton = true;\n\n  document.addEventListener('click', function (e) {\n    var btn = e.target.closest && e.target.closest('#projekt_button, #popup_projekte a.et_pb_button');\n    if (!btn) return;\n\n    var href = btn.getAttribute('href');\n    if (!href || href === '#') return;\n\n    e.preventDefault();\n    e.stopPropagation();\n    e.stopImmediatePropagation();\n\n    window.open(href, '_blank', 'noopener');\n  }, true);\n})();\n<\/script><\/div><\/div><\/div><div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\"><div class=\"et_pb_group_0 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough\"><div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module\" id=\"logo_popup\"><span class=\"et_pb_image_wrap\"><img src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/05\/cc_popup.png\" title=\"cc_popup\" width=\"1080\" height=\"226\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup.png 1080w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-300x63.png 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-1024x214.png 1024w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-768x161.png 768w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-980x205.png 980w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-480x100.png 480w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" class=\"wp-image-287092\" \/><\/span><\/div><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"beschreibung\"><div class=\"et_pb_text_inner\"><p><span>\"Seit 1962 entwickeln sich die Change Camps stetig weiter. Sie verbinden tiefe Gemeinschaft, starke Gotteserfahrungen und das Eintauchen in andere Kulturen. Durch kreative Outreaches mit Sport, praktischen Eins\u00e4tzen, Worship und Prayer Walks wachsen wir in einen evangelistischen Lebensstil. Unsere Vision ist, Jesus in verschiedenen Nationen bekannt zu machen und Jugendliche f\u00fcr ein Leben zu begeistern, das Gott ehrt. Wir wollen lokale Kirchen unterst\u00fctzen und ein Segen f\u00fcr Menschen vor Ort sein. Ein Change Camp soll das Leben der Teilnehmenden nachhaltig ver\u00e4ndern, ihr Herz neu f\u00fcr Gott entfachen und sie mit Leidenschaft f\u00fcr Mitmenschen, Regionen und Nationen erf\u00fcllen \u2013 damit sie diese Begeisterung auch in ihren Alltag tragen.\"<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper preset--module--divi-button--default_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module preset--module--divi-button--default\" href=\"\" target=\"_blank\" id=\"projekt_button\">titel<\/a><\/div><\/div><div class=\"et_pb_icon_0 et_pb_icon et-interaction-target-kp1pp7plxu et_pb_module et_flex_module\" data-interaction-trigger=\"poknua1gij\" data-interaction-target=\"kp1pp7plxu\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf00d<\/span><\/span><\/div><div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"kostenstelle\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><strong>M\u00f6chtest du das Projekt finanziell unterst\u00fctzen?<\/strong><br \/>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br \/>PC-Nr. 30-26890-3 | IBAN CH69 0900 0000 3002 6890 3<br \/>Vermerk: <span id=\"kostenstelle-projekt\">projekt<\/span><\/p>\n<\/div><\/div><\/div><\/div><div class=\"et_pb_row_1 et_pb_row et_flex_row\" id=\"popup-loader_projekte\"><div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div class=\"skeleton-wrapper\">\n  <div class=\"skeleton-links\">\n    <div class=\"skeleton-projekte skeleton-bild\"><\/div>\n  <\/div>\n  <div class=\"skeleton-rechts_p\">\n    <div>\n      \n    \n    <div class=\"skeleton-projekte skeleton-logo\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text_beschreibung\"><\/div>\n    <div class=\"skeleton-projekte skeleton-button\"><\/div>\n    <\/div>\n    \n    <div class=\"skeleton_kostenstelle_p\">\n      <div class=\"skeleton-projekte skeleton-text\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text mittel\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text kurz\"><\/div>\n    <\/div>\n  <\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_1 et_pb_section et_pb_section--fixed et_section_regular et_flex_section et-interaction-target-tj91x06n4w\" data-interaction-target=\"tj91x06n4w\" id=\"popup_mitarbeiter\"><div class=\"et_pb_row_2 et_pb_row et_flex_row\" id=\"popup-inhalt\"><div class=\"et_pb_column_3 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\" id=\"mitarbeiter_bild\"><div class=\"et_pb_code_2 et_pb_code et_pb_module\" id=\"mitarbeiter_bild\"><div class=\"et_pb_code_inner\"><style>\n\/* IBAN: auf Desktop in derselben Zeile wie die PC-Nr., auf Mobile eigene Zeile *\/\n#popup_mitarbeiter .msd-br-mobile {\n  display: none;\n}\n\n@media only screen and (max-width: 767px) {\n  #popup_mitarbeiter .msd-br-mobile {\n    display: inline;\n  }\n  #popup_mitarbeiter .msd-sep {\n    display: none;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  \/\/ Nur einmal ausf\u00fchren, auch wenn das Skript doppelt auf der Seite ist\n  if (window.__msdPopupKombi) return;\n  window.__msdPopupKombi = true;\n\n  const lang = (document.documentElement.lang || 'de').substring(0, 2);\n  const params = `acf_format=standard&lang=${lang}&_embed`;\n  const MOBILE = '(max-width: 980px)';\n  const POST_TYPE = 'mitarbeiter';\n\n  \/\/ PC-Nr. und IBAN: IBAN bricht nie mittendrin um, auf Mobile eigene Zeile\n  const zahlungsZeile =\n    '<span style=\"white-space:nowrap\">PC-Nr. 30-26890-3<\/span>' +\n    '<span class=\"msd-sep\"> | <\/span><br class=\"msd-br-mobile\">' +\n    '<span style=\"white-space:nowrap\">IBAN CH69 0900 0000 3002 6890 3<\/span>';\n\n  const cache = {};            \/\/ \"typ_idOderSlug\" -> Daten\n  const laufend = {};          \/\/ \"typ_idOderSlug\" -> laufende Anfrage\n  const listen = {};           \/\/ typ -> Promise vom Hintergrund-Laden\n  const bilderGeladen = new Set();\n  let aktuellerKlick = null;\n\n  \/\/ =====================================================\n  \/\/ Hilfsfunktionen (unver\u00e4ndert)\n  \/\/ =====================================================\n  const getImageUrl = (field) => {\n    if (!field) return '';\n    if (typeof field === 'string') return field;\n    if (typeof field === 'object' && field !== null) {\n      if (field.url) return field.url;\n      if (field.source_url) return field.source_url;\n      if (field.sizes) {\n        const s = field.sizes;\n        return s.large?.url || s.large || s.medium_large?.url || s.medium_large || s.full?.url || s.full || '';\n      }\n    }\n    return '';\n  };\n\n  const getMitarbeiterFoto = (data) => {\n    const felder = data.acf || {};\n    const kandidaten = [\n      felder.bild_sw_name, felder.bild_sw, felder.bild,\n      felder.foto, felder.portrait, felder.mitarbeiter_bild,\n      felder.person_bild, felder.bild_farbe\n    ];\n\n    for (const item of kandidaten) {\n      const url = getImageUrl(item);\n      if (url) return url;\n    }\n\n    for (const key in felder) {\n      const val = felder[key];\n      const url = getImageUrl(val);\n      if (url && (url.includes('\/wp-content\/uploads\/') || \/\\.(jpg|jpeg|png|webp|svg)\/i.test(url))) {\n        return url;\n      }\n    }\n\n    if (data._embedded && data._embedded['wp:featuredmedia'] && data._embedded['wp:featuredmedia'][0]) {\n      const media = data._embedded['wp:featuredmedia'][0];\n      const url = media.source_url || media.media_details?.sizes?.full?.source_url;\n      if (url) return url;\n    }\n\n    if (data.featured_media_src_url) return data.featured_media_src_url;\n    return '';\n  };\n\n  const setText = (container, selector, text) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n    if (!text || text.trim() === '') {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n    el.style.removeProperty('display');\n    const target = el.querySelector('.et_pb_text_inner') || el;\n    target.textContent = text;\n  };\n\n  const setContactIcon = (container, selector, value, type) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n\n    if (!value || value.trim() === '') {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n\n    el.style.removeProperty('display');\n    const link = el.tagName === 'A' ? el : el.querySelector('a');\n    const prefix = type === 'mail' ? 'mailto:' : 'tel:';\n    const cleanVal = type === 'mobile' ? value.replace(\/\\s+\/g, '') : value;\n\n    if (link) {\n      link.href = prefix + cleanVal;\n      link.title = value;\n    }\n\n    const target = el.querySelector('.et_pb_text_inner') || link || el;\n    if (target) {\n      Array.from(target.childNodes).forEach(node => {\n        if (node.nodeType === 3) node.textContent = '';\n      });\n    }\n  };\n\n  const setImage = (container, selector, imageSource) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n    const url = getImageUrl(imageSource);\n\n    if (!url) {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n\n    el.style.removeProperty('display');\n    const img = el.tagName === 'IMG' ? el : el.querySelector('img');\n\n    if (img) {\n      img.src = url;\n      img.removeAttribute('srcset');\n      img.removeAttribute('sizes');\n    } else {\n      el.style.backgroundImage = `url('${url}')`;\n      el.style.backgroundSize = 'cover';\n      el.style.backgroundPosition = 'center center';\n    }\n  };\n\n  \/\/ =====================================================\n  \/\/ Spendenblock finden\n  \/\/ =====================================================\n  function ksKandidaten(popup) {\n    const alle = Array.from(popup.querySelectorAll('.et_pb_text, .et_pb_module')).filter(mod => {\n      const txt = mod.textContent.toLowerCase();\n      return mod.id === 'mitarbeiter_kostenstelle' ||\n             mod.hasAttribute('data-msd-ks') ||\n             txt.includes('finanziell freisetzen') ||\n             txt.includes('financially') ||\n             txt.includes('lib\u00e9rer') ||\n             txt.includes('grassiweg 3') ||\n             txt.includes('30-26890-3');\n    });\n\n    \/\/ Nur die innersten Module (keine Gruppen, die einen Block nur umschliessen)\n    return alle.filter(mod => !alle.some(anderes => anderes !== mod && mod.contains(anderes)));\n  }\n\n  function ksBlockWaehlen(popup) {\n    const kandidaten = ksKandidaten(popup);\n    if (!kandidaten.length) return { block: null, kandidaten };\n\n    \/\/ Eigene Inline-Styles vom letzten \u00d6ffnen entfernen\n    kandidaten.forEach(mod => {\n      mod.setAttribute('data-msd-ks', '1');\n      mod.style.removeProperty('display');\n      mod.style.removeProperty('margin-top');\n    });\n\n    \/\/ Bevorzugt: Block in der Spalte mit dem Bibelvers (hat dort das passende Design)\n    const zitat = popup.querySelector('#mitarbeiter_zitat');\n    const spalte = zitat ? zitat.closest('.et_pb_column') : null;\n    const inTextspalte = spalte ? kandidaten.filter(mod => spalte.contains(mod)) : [];\n    const bevorzugt = popup.querySelector('#mitarbeiter_kostenstelle');\n\n    let block = null;\n    if (inTextspalte.length) {\n      block = (bevorzugt && inTextspalte.includes(bevorzugt)) ? bevorzugt : inTextspalte[0];\n    } else if (bevorzugt && kandidaten.includes(bevorzugt)) {\n      block = bevorzugt;\n    } else {\n      block = kandidaten[0];\n    }\n\n    return { block, kandidaten };\n  }\n\n  \/\/ Auf dem Handy: Spendenblock direkt unter den Bibelvers setzen\n  function unterBibelvers(popup, block) {\n    if (!block || !window.matchMedia(MOBILE).matches) return;\n    const zitat = popup.querySelector('#mitarbeiter_zitat');\n    if (!zitat || zitat === block || zitat.contains(block)) return;\n    if (zitat.nextElementSibling !== block) {\n      zitat.insertAdjacentElement('afterend', block);\n    }\n  }\n\n  \/\/ =====================================================\n  \/\/ Cache & Vorladen\n  \/\/ =====================================================\n  function merken(postType, data) {\n    if (!data) return;\n    cache[`${postType}_${data.id}`] = data;\n    if (data.slug) cache[`${postType}_${data.slug}`] = data;\n  }\n\n  function bildVorladen(url) {\n    if (!url || typeof url !== 'string' || bilderGeladen.has(url)) return;\n    bilderGeladen.add(url);\n    const img = new Image();\n    img.decoding = 'async';\n    img.src = url;\n  }\n\n  function bilderVorladen(data) {\n    if (!data) return;\n    const f = data.acf || {};\n    bildVorladen(getMitarbeiterFoto(data));\n    bildVorladen(getImageUrl(f.position_bild));\n  }\n\n  function alleLaden(postType) {\n    if (listen[postType]) return listen[postType];\n    listen[postType] = (async function () {\n      let seite = 1;\n      let gesamtSeiten = 1;\n      do {\n        const res = await fetch(`\/wp-json\/wp\/v2\/${postType}?per_page=100&page=${seite}&${params}`);\n        if (!res.ok) throw new Error(`HTTP Fehler: ${res.status}`);\n        gesamtSeiten = parseInt(res.headers.get('X-WP-TotalPages') || '1', 10);\n        const liste = await res.json();\n        if (Array.isArray(liste)) liste.forEach(d => merken(postType, d));\n        seite++;\n      } while (seite <= gesamtSeiten);\n    })().catch(function (err) {\n      console.warn(`Hintergrund-Laden (${postType}) fehlgeschlagen, lade einzeln:`, err);\n    });\n    return listen[postType];\n  }\n\n  function einzelnLaden(postType, idOrSlug) {\n    const key = `${postType}_${idOrSlug}`;\n    if (cache[key]) return Promise.resolve(cache[key]);\n    if (laufend[key]) return laufend[key];\n\n    const isNumeric = \/^\\d+$\/.test(idOrSlug);\n    const url = isNumeric\n      ? `\/wp-json\/wp\/v2\/${postType}\/${idOrSlug}?${params}`\n      : `\/wp-json\/wp\/v2\/${postType}?slug=${encodeURIComponent(idOrSlug)}&${params}`;\n\n    laufend[key] = fetch(url)\n      .then(function (res) {\n        if (!res.ok) throw new Error(`HTTP Fehler: ${res.status}`);\n        return res.json();\n      })\n      .then(function (json) {\n        const data = Array.isArray(json) ? json[0] : json;\n        if (!data) throw new Error(`${postType} mit ID\/Slug '${idOrSlug}' nicht gefunden`);\n        merken(postType, data);\n        cache[key] = data;\n        return data;\n      })\n      .finally(function () {\n        delete laufend[key];\n      });\n\n    return laufend[key];\n  }\n\n  async function holen(postType, idOrSlug) {\n    const key = `${postType}_${idOrSlug}`;\n    if (cache[key]) return cache[key];\n    if (listen[postType]) {\n      await listen[postType];\n      if (cache[key]) return cache[key];\n    }\n    return einzelnLaden(postType, idOrSlug);\n  }\n\n  \/\/ =====================================================\n  \/\/ Popup bef\u00fcllen (nur Mitarbeiter)\n  \/\/ =====================================================\n  function befuellen(popup, data) {\n    const felder = data.acf || {};\n\n    const rawTitle = data.title?.rendered || '';\n    const cleanName = rawTitle.replace(\/^\\d+\\s*\/, '');\n    setText(popup, '#mitarbeiter_name', cleanName);\n\n    setImage(popup, '#mitarbeiter_position_bild', felder.position_bild);\n    const fotoUrl = getMitarbeiterFoto(data);\n    setImage(popup, '#mitarbeiter_bild', fotoUrl);\n\n    \/\/ ZITAT\n    let zitatText = felder.zitat || '';\n    if (zitatText) {\n      zitatText = zitatText.trim()\n        .replace(\/^[\"'\u00ab\u00bb\u201c\u201d\\s]+\/, '')\n        .replace(\/[\"'\u00ab\u00bb\u201c\u201d\\s\\.]+\\s*$\/, '').trim();\n\n      if (lang === 'fr') {\n        zitatText = `\u00ab ${zitatText} \u00bb.`;\n      } else {\n        zitatText = `'${zitatText}'`;\n      }\n    }\n    const zitatEl = popup.querySelector('#mitarbeiter_zitat');\n    if (zitatEl) zitatEl.style.fontWeight = 'normal';\n    setText(popup, '#mitarbeiter_zitat', zitatText);\n\n    setContactIcon(popup, '#mitarbeiter_mail', felder.mail, 'mail');\n    setContactIcon(popup, '#mitarbeiter_mobile', felder.mobile, 'mobile');\n\n    \/\/ SPENDENBLOCK\n    const { block: ksBlock, kandidaten } = ksBlockWaehlen(popup);\n\n    kandidaten.forEach(mod => {\n      if (mod !== ksBlock) {\n        mod.style.setProperty('display', 'none', 'important');\n      }\n    });\n\n    const acfKs = (felder && felder.kostenstelle) ? String(felder.kostenstelle).trim() : '';\n\n    if (ksBlock) {\n      if (!acfKs || acfKs === 'false' || acfKs === '0') {\n        ksBlock.style.setProperty('display', 'none', 'important');\n      } else {\n        \/\/ Auf dem Handy direkt unter den Bibelvers\n        unterBibelvers(popup, ksBlock);\n\n        \/\/ Erzwingen, damit er auf allen Ger\u00e4ten sichtbar ist\n        ksBlock.style.setProperty('display', 'block', 'important');\n\n        \/\/ Abstand: Desktop wie gehabt, Handy etwas kompakter\n        const abstand = window.matchMedia(MOBILE).matches ? '30px' : '65px';\n        ksBlock.style.setProperty('margin-top', abstand, 'important');\n\n        let cleanVal = acfKs.replace(\/^(vermerk|reference|note|mention):\\s*\/i, '').trim();\n        cleanVal = cleanVal.replace(\/kostenstelle\/gi, '').trim();\n\n        const isEn = (lang === 'en');\n        const isFr = (lang === 'fr');\n\n        if (isFr) {\n          cleanVal = cleanVal.replace(\/^(personalkosten|personnel costs|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('frais de salaire')) {\n            cleanVal = `frais de salaire ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>Tu veux me lib\u00e9rer directement sur le plan financier ?<\/strong><br>\u0152uvre missionnaire MSD | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Mention : ${cleanVal}<\/p><\/div>`;\n        } else if (isEn) {\n          cleanVal = cleanVal.replace(\/^(personalkosten|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('personnel costs')) {\n            cleanVal = `Personnel costs ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>Would you like to release me financially directly?<\/strong><br>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Note: ${cleanVal}<\/p><\/div>`;\n        } else {\n          cleanVal = cleanVal.replace(\/^(personnel costs|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('personalkosten')) {\n            cleanVal = `Personalkosten ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>M\u00f6chtest du mich direkt finanziell freisetzen?<\/strong><br>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Vermerk: ${cleanVal}<\/p><\/div>`;\n        }\n      }\n    }\n\n    popup.querySelectorAll('.et_pb_text, .et_pb_module').forEach(mod => {\n      if (mod !== ksBlock && !kandidaten.includes(mod)) {\n        const txt = mod.textContent.trim().toLowerCase();\n        if (txt === 'kostenstelle' || txt === 'cost center' || txt === 'centre de co\u00fbt') {\n          mod.style.setProperty('display', 'none', 'important');\n        }\n      }\n    });\n  }\n\n  \/\/ =====================================================\n  \/\/ Karte erkennen (nur Mitarbeiter)\n  \/\/ =====================================================\n  function karteInfo(target) {\n    if (!target || !target.closest) return null;\n    const karte = target.closest('.mitarbeiter-karte');\n    if (!karte) return null;\n    return { karte, idOrSlug: karte.dataset.id };\n  }\n\n  \/\/ =====================================================\n  \/\/ Vorladen beim Dr\u00fcberfahren \/ Antippen\n  \/\/ =====================================================\n  function vorladenBeiKarte(e) {\n    const info = karteInfo(e.target);\n    if (!info || !info.idOrSlug) return;\n    holen(POST_TYPE, info.idOrSlug)\n      .then(data => bilderVorladen(data))\n      .catch(function () {});\n  }\n\n  document.addEventListener('pointerover', vorladenBeiKarte, { passive: true });\n  document.addEventListener('touchstart', vorladenBeiKarte, { passive: true });\n  document.addEventListener('focusin', vorladenBeiKarte);\n\n  \/\/ =====================================================\n  \/\/ Klick auf Karte\n  \/\/ =====================================================\n  document.addEventListener('click', async function (e) {\n    const info = karteInfo(e.target);\n    if (!info) return;\n\n    const { idOrSlug } = info;\n\n    e.preventDefault();\n\n    const popup = document.getElementById('popup_mitarbeiter');\n    if (!popup) return;\n\n    const q = (sel) => popup.querySelector(sel);\n    const loader = q('[id*=\"loader\"]') || document.getElementById('popup-loader_mitarbeiter');\n    const inhalt = q('[id*=\"inhalt\"]') || document.getElementById('popup-inhalt');\n\n    if (!idOrSlug) return;\n\n    const key = `${POST_TYPE}_${idOrSlug}`;\n    aktuellerKlick = key;\n\n    const sofort = cache[key];\n\n    if (sofort) {\n      \/\/ Schon geladen: sofort bef\u00fcllen, ohne Lade-Skelett\n      befuellen(popup, sofort);\n      if (loader) loader.style.display = 'none';\n      if (inhalt) inhalt.style.display = 'flex';\n    } else {\n      \/\/ Alte Bilder ausblenden, damit nichts Falsches kurz aufblitzt\n      setImage(popup, '#mitarbeiter_bild', '');\n      setImage(popup, '#mitarbeiter_position_bild', '');\n      if (loader) loader.style.display = 'flex';\n      if (inhalt) inhalt.style.display = 'none';\n    }\n\n    if (window.et_execute_interaction_effect) {\n      window.et_execute_interaction_effect({ effect: 'addVisibility' }, popup);\n    } else {\n      popup.style.display = 'block';\n    }\n\n    if (sofort) {\n      bilderVorladen(sofort);\n      return;\n    }\n\n    try {\n      const data = await holen(POST_TYPE, idOrSlug);\n\n      \/\/ Inzwischen etwas anderes angeklickt? Dann nicht \u00fcberschreiben\n      if (aktuellerKlick !== key) return;\n\n      befuellen(popup, data);\n      bilderVorladen(data);\n\n      if (loader) loader.style.display = 'none';\n      if (inhalt) inhalt.style.display = 'flex';\n    } catch (err) {\n      console.error('Fehler beim Laden des Popups:', err);\n      if (loader) loader.style.display = 'none';\n    }\n  });\n\n  \/\/ =====================================================\n  \/\/ Schliessen bei Klick auf Hintergrund\n  \/\/ =====================================================\n  document.addEventListener('click', function (e) {\n    const popup = document.getElementById('popup_mitarbeiter');\n    if (popup && e.target === popup) {\n      if (window.et_execute_interaction_effect) {\n        window.et_execute_interaction_effect({ effect: 'removeVisibility' }, popup);\n      } else {\n        popup.style.display = 'none';\n      }\n    }\n  });\n\n  \/\/ =====================================================\n  \/\/ Hintergrund-Laden starten, sobald die Seite fertig ist\n  \/\/ =====================================================\n  function starten() {\n    if (document.getElementById('popup_mitarbeiter') && document.querySelector('.mitarbeiter-karte')) {\n      alleLaden(POST_TYPE);\n    }\n  }\n\n  function planen() {\n    if ('requestIdleCallback' in window) {\n      requestIdleCallback(starten, { timeout: 2000 });\n    } else {\n      setTimeout(starten, 300);\n    }\n  }\n\n  if (document.readyState === 'complete') {\n    planen();\n  } else {\n    window.addEventListener('load', planen);\n  }\n})();\n<\/script><\/div><\/div><\/div><div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module\" id=\"mitarbeiter_position_bild\"><span class=\"et_pb_image_wrap\"><img src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/05\/Titel-Yanis.png\" title=\"mitarbeiter_bild\" width=\"591\" height=\"154\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis.png 591w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis-300x78.png 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis-480x125.png 480w\" sizes=\"(max-width: 591px) 100vw, 591px\" class=\"wp-image-287212\" \/><\/span><\/div><div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_name\"><div class=\"et_pb_text_inner\"><p><span>Mitarbeiter name<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_group_1 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough\"><a class=\"et_pb_icon_1 et_pb_icon et_clickable et_pb_module et_flex_module\" href=\"mailto:info@msd-online.ch\" id=\"mitarbeiter_mail\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\ue010<\/span><\/span><\/a><a class=\"et_pb_icon_2 et_pb_icon et_clickable et_pb_module et_flex_module\" href=\"tel:+41%2078%20225%2046%2036%20\" id=\"mitarbeiter_mobile\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf879<\/span><\/span><\/a><\/div><div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_zitat\"><div class=\"et_pb_text_inner\"><p><span>Zitat<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_spenden_block\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><strong>M\u00f6chtest du mich direkt finanziell freisetzen?\u00a0<br \/><\/strong><spantitillium web=\"\" arial=\"\" font-weight:normal=\"\" font-style:normal=\"\" data-sheets-root=\"1\">Missionswerk msd | Grassiweg 3 | 3714 Frutigen<\/spantitillium><br \/><span>PC-Nr. 30-26890-3 | IBAN CH69 0900 0000 3002 6890 3<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_kostenstelle\"><div class=\"et_pb_text_inner\"><p>Vermerk: Personalkosten<\/p>\n<\/div><\/div><div class=\"et_pb_icon_3 et_pb_icon et-interaction-target-s625yagv4m et_pb_module et_flex_module\" data-interaction-trigger=\"qxdh4ltg2t\" data-interaction-target=\"s625yagv4m\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf00d<\/span><\/span><\/div><\/div><\/div><div class=\"et_pb_row_3 et_pb_row et_flex_row\" id=\"popup-loader_mitarbeiter\"><div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_3 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div class=\"skeleton-wrapper\">\n  <div class=\"skeleton-links\">\n    <div class=\"skeleton skeleton-bild\"><\/div>\n  <\/div>\n  <div class=\"skeleton-rechts\">\n    <div class=\"skeleton skeleton-position\"><\/div>\n    <div class=\"skeleton skeleton-titel\"><\/div>\n    <div class=\"skeleton skeleton-titel-unten\"><\/div>\n    \n    <div class=\"skeleton_icon_wrapper\">\n      <div class=\"skeleton skeleton_icon\"><\/div>\n      <div class=\"skeleton skeleton_icon\"><\/div>\n    <\/div>\n    <div class=\"skeleton_zitat\">\n      <div class=\"skeleton skeleton-text\"><\/div>\n    <div class=\"skeleton skeleton-text mittel\"><\/div>\n    <div class=\"skeleton skeleton-text kurz\"><\/div>\n    <\/div>\n    <div class=\"skeleton_kostenstelle\">\n      <div class=\"skeleton skeleton-text\"><\/div>\n    <div class=\"skeleton skeleton-text mittel\"><\/div>\n    <div class=\"skeleton skeleton-text kurz\"><\/div>\n    <\/div>\n  <\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0Seit 1962 entwickeln sich die Change Camps stetig weiter. Sie verbinden tiefe Gemeinschaft, starke Gotteserfahrungen und das Eintauchen in andere Kulturen. Durch kreative Outreaches mit Sport, praktischen Eins\u00e4tzen, Worship und Prayer Walks wachsen wir in einen evangelistischen Lebensstil. Unsere Vision ist, Jesus in verschiedenen Nationen bekannt zu machen und Jugendliche f\u00fcr ein Leben zu begeistern, &#8230;<\/p>\n","protected":false},"author":5,"featured_media":283481,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[133,122],"tags":[],"class_list":["post-283480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-fr","category-info-fr"],"acf":[],"_links":{"self":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/283480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/comments?post=283480"}],"version-history":[{"count":2,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/283480\/revisions"}],"predecessor-version":[{"id":287236,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/283480\/revisions\/287236"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/media\/283481"}],"wp:attachment":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/media?parent=283480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/categories?post=283480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/tags?post=283480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}