(function () {
try {
// AQ-r2 (2026-06-09): respect the explicit-denial sentinel
// written by cookie-consent-harden.js writeATR() on any
// marketing-axis denial (payload.marketing === false; cycle-3 F1).
// Without this gate, the next page navigation re-creates
// gmx_first_touch from the current URL+referrer+utm_*+click_ids,
// silently undoing the reject-all deletion (sweep finding #1).
// The sentinel is cleared the moment the visitor grants
// marketing in the banner (analytics-only grant does NOT
// clear), restoring the writer path on the very next
// page load. Page-cache-safe: the sentinel is a
// browser-resident cookie checked in the inline script, so
// varnish/breeze-served HTML still hits this gate.
if (/(?:^|;\s*)gmx_consent_denied=1(?:;|$)/.test(document.cookie || '')) return;
var CLICK_IDS = ['gclid','fbclid','msclkid','ttclid','wbraid','gbraid','li_fat_id'];
var qs = new URLSearchParams(window.location.search);
var urlClickIdKey = null;
for (var i = 0; i < CLICK_IDS.length; i++) {
if (qs.get(CLICK_IDS[i])) { urlClickIdKey = CLICK_IDS[i]; break; }
}// Parse existing cookie.
var existing = null;
var match = document.cookie.match(/(?:^|;\s*)gmx_first_touch=([^;]+)/);
if (match) {
try { existing = JSON.parse(decodeURIComponent(match[1])); } catch (e) { existing = null; }
}// GWP-273 — referrer-enrichment branch.
// Keep existing unless either (a) URL carries a new click id
// the stored payload lacks (paid click is a higher-value
// signal and upgrades direct/organic), OR (b) the stored
// payload has empty referrer AND the current document.referrer
// is non-empty + external (Safari/ITP/policy-quirk catch:
// first-hit may have missed the referrer; later same-session
// page-loads can recover it).
var existingHasRef = !!(existing && existing.referrer && existing.referrer !== '');
var docRef = document.referrer || '';
var refHost = '';
if (docRef) {
try {
refHost = new URL(docRef).hostname.replace(/^www\./, '').toLowerCase();
} catch (e) { refHost = ''; }
}
var ownHost = (location.host || '').replace(/^www\./, '').toLowerCase();
var currentExternalRef = !!(refHost && refHost !== ownHost);
var canEnrichRef = !!existing && !existingHasRef && currentExternalRef;if (existing) {
if (!urlClickIdKey && !canEnrichRef) return;
if (urlClickIdKey && existing[urlClickIdKey] && !canEnrichRef) return;
}var utm_keys = [
'utm_source','utm_medium','utm_campaign','utm_content','utm_term',
'utm_adgroup','utm_matchtype','utm_network','utm_device','utm_placement'
];
// GWP-273 — merge-preserving base. When enriching an existing
// payload, retain its landing_url + ts + prior click ids /
// utms; only overlay referrer (and any click id appended below
// via the forEach). Branches with/without urlClickIdKey were
// collapsed — both produced the identical Object.assign — the
// click id is added uniformly later.
//
// GWP-273 design choice: "latest external referrer wins" —
// accepted edge case where a user opens a new external tab
// post-empty-first-touch and returns; low-volume, simple, no
// sentinel flag needed.
var data;
if (existing && canEnrichRef) {
data = Object.assign({}, existing, { referrer: docRef });
} else {
data = { landing_url: window.location.href, referrer: docRef, ts: Date.now() };
}
utm_keys.concat(CLICK_IDS).forEach(function (k) {
var v = qs.get(k);
if (v) data[k] = v;
});
var encoded = encodeURIComponent(JSON.stringify(data));
if (encoded.length > 3800) return;
var expires = new Date(Date.now() + 90 * 864e5).toUTCString(); // GWP-143 C1: match Google Ads 90-day attribution window
var secure = window.location.protocol === 'https:' ? '; Secure' : '';
document.cookie = 'gmx_first_touch=' + encoded + '; Path=/; Expires=' + expires + '; SameSite=Lax' + secure;
} catch (e) {}
})();
var breeze_prefetch = {"local_url":"https://gomixapp.co.il","ignore_remote_prefetch":"1","ignore_list":["/cart/","/checkout/","/my-account/","/(.)/u05d4u05d8u05d5u05e4u05e1-u05e0u05e9u05dcu05d7-u05d1u05d4u05e6u05dcu05d7u05d4/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
מחפשים נוסח הודעה על שינוי זמני תפילה? לפניכם הודעת גבאי מוכנה לציבור המתפללים — מתאימה למעבר לשעון חורף או קיץ, להקדמת מנחה או לכל עדכון בזמני התפילות. מלאו את התאריך, את השעה החדשה ואת הסיבה — ואז העתיקו, הדפיסו לתלייה בלוח המודעות או הורידו כקובץ PDF או Word.
מלאו את הפרטים — הנוסח יתעדכן אוטומטית:
בס״ד
הודעה לציבור המתפללים — שינוי זמני תפילה
מתפללים יקרים,
החל מיום [תאריך], תפילת [שם התפילה] תתקיים בשעה [שעת התחלה] (במקום בשעה [השעה הקודמת]).
הסיבה לשינוי: [סיבה].
שאר זמני התפילות נשארים ללא שינוי. נא לעקוב אחר העדכונים בלוח המודעות ובקבוצת המתפללים.
בתודה ובברכה,
הגבאים — בית הכנסת [שם בית הכנסת]
איך מודיעים על שינוי זמני תפילה — בלי שאף מתפלל יגיע לדלת סגורה
שינוי זמני תפילה הוא ההודעה הרגישה ביותר בלוח של בית הכנסת: מתפלל שלא ראה אותה יגיע בשעה הישנה — וימצא היכל ריק או תפילה שכבר באמצעה. לכן הכלל הראשון הוא להקדים לפרסם: נהוג לתלות את ההודעה כשבוע לפני מועד השינוי, ולהוסיף תזכורת יום-יומיים לפני. את ההודעה כדאי גם להכריז בסיום התפילה — בשבת שלפני השינוי קהל השומעים הוא הרחב ביותר — ולשלוח בקבוצת הוואטסאפ של המתפללים, כך שגם מי שלא הגיע השבוע יידע.
בנוסח עצמו הקפידו לציין גם את השעה הקודמת וגם את השעה החדשה — "מנחה בשעה 17:30 (במקום 18:15)" ברור לאין ערוך מ"מנחה בשעה 17:30" לבדו, ומונע ספקות אצל מי שזוכר את הזמן הישן. הוסיפו את הסיבה לשינוי במשפט אחד: המעבר לשעון חורף, הקדמת מנחה לזמני החורף, סדרי בין הזמנים או תפילות החגים. סיבה קצרה משדרת סדר ומונעת שאלות חוזרות אל הגבאים. אם השינוי נוגע לכמה תפילות — עדיף לתלות לצד ההודעה לוח זמנים מעודכן ומלא, ולהשאיר להודעה עצמה מסר אחד ממוקד.
עוד שני נוהגים של גבאים מנוסים: ראשית, כתבו ממתי השינוי בתוקף — "החל מיום ראשון, ג' בחשוון" — וציינו אם מדובר בשינוי קבוע לעונה או בשינוי חד-פעמי. שנית, הסירו את ההודעה אחרי שהשינוי נקלט, בדרך כלל שבוע-שבועיים, והחליפו את לוח הזמנים הישן בחדש — לוח מודעות שמוצגים בו שני זמנים סותרים מבלבל יותר משלא הייתה הודעה כלל. חתמו בשם הגבאים והוסיפו טלפון לבירורים — זה חוסך אי-הבנות ומכבד את הציבור.
שאלות נפוצות
כמה זמן מראש מודיעים על שינוי בזמני התפילה?
נהוג כשבוע מראש, עם תזכורת יום-יומיים לפני הכניסה לתוקף. בשינויים עונתיים קבועים — כמו המעבר לשעון חורף — אפשר ונכון לפרסם אפילו שבועיים מראש, כי הציבור רגיל לשעה הישנה במשך חודשים.
האם לציין בהודעה גם את השעה הקודמת?
כן, תמיד. "בשעה 17:30 (במקום 18:15)" מסיר כל ספק, מדגיש שמדובר בשינוי ומונע מצב שבו מתפלל חושב שההודעה היא סתם תזכורת לזמן הקיים. זה ההבדל בין הודעה שנקלטת להודעה שמדלגים עליה.
מתי בדרך כלל משתנים זמני התפילה בבית הכנסת?
המועדים הנפוצים: המעבר לשעון חורף ולשעון קיץ, הקדמת מנחה בחורף כשהשקיעה מוקדמת, תפילות מיוחדות בחגים ובימים הנוראים, וסדרי בין הזמנים בקהילות שבהן שיעורים ותפילות מותאמים לחופשת הישיבות.
באילו ערוצים מפרסמים את השינוי מלבד לוח המודעות?
שלושה ערוצים משלימים: הכרזה בסיום התפילה — בעיקר בשבת שלפני השינוי, הודעה בקבוצת הוואטסאפ של המתפללים, ועדכון לוח הזמנים הקבוע שבכניסה. מי שמסתמך על ערוץ אחד בלבד תמיד מפספס חלק מהציבור.
מי חותם על הודעת שינוי זמנים ולמי פונים בשאלות?
ההודעה נחתמת בדרך כלל בשם הגבאים או ועד בית הכנסת, בלי שם פרטי. מומלץ להוסיף שורת "לבירורים" עם שם וטלפון של אחד הגבאים — שאלה אחת שנענית בטלפון חוסכת עשר שאלות ליד הדלת.
נקודות מפתח
מפרסמים כשבוע מראש + תזכורת יום-יומיים לפני השינוי
תמיד מציינים גם את השעה הקודמת וגם את השעה החדשה
סיבה קצרה במשפט אחד — שעון חורף, מנחה עונתית, חגים
שלושה ערוצים: לוח המודעות, הכרזה אחרי התפילה ובוואטסאפ
הנוסח כאן חינמי — מילוי מהיר, העתקה, הדפסה או הורדה כ-PDF/Word
ובדרך הדיגיטלית: בלוח דיגיטלי בכניסה לבית הכנסת זמני התפילות מתעדכנים מהטלפון בשניות — בלי להדפיס מחדש את הלוח בכל מעבר עונה, וכל מתפלל רואה תמיד את הזמן הנכון.
document.addEventListener('click', function(e) {
var el = e.target.closest('.gmx-lite-yt');
if (!el) return;
var vid = el.getAttribute('data-vid');
if (!vid) return;
var iframe = document.createElement('iframe');
iframe.src = 'https://www.youtube.com/embed/' + vid + '?autoplay=1';
iframe.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;border:0;';
iframe.allow = 'autoplay;encrypted-media';
iframe.allowFullscreen = true;
el.style.position = 'relative';
el.innerHTML = '';
el.appendChild(iframe);
});
(function () {
var c = document.body.className;
c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
document.body.className = c;
})();
var gmxCf7LegacyUxI18n = {"errName":"Please enter a full name","errPhone":"Please enter a valid phone number","errEmail":"Please enter a valid email address","errRequired":"Required field"};
//# sourceURL=gmx-cf7-legacy-ux-js-extra
(function(){
function cleanUrl(url) {
// Strip query params embedded mid-path: /ID?params/file -> /ID/file
return url.replace(/\?[^\/]+\//g, '/');
}
function addWebPFallback(pic) {
if (pic.getAttribute('data-webp-fb')) return;
pic.setAttribute('data-webp-fb', '1');
var img = pic.querySelector('img');
if (!img) return;
img.onerror = function() {
this.onerror = null;
this.src = cleanUrl(this.src).replace('vi_webp','vi').replace('.webp','.jpg');
var sources = this.parentElement.querySelectorAll('source');
for (var i = 0; i < sources.length; i++) {
sources[i].srcset = cleanUrl(sources[i].srcset).replace('vi_webp','vi').replace('.webp','.jpg');
}
};
}
var observer = new MutationObserver(function() {
var pics = document.querySelectorAll('.video-seo-youtube-picture');
for (var i = 0; i < pics.length; i++) addWebPFallback(pics[i]);
});
observer.observe(document.documentElement, { childList: true, subtree: true });
})();
(function(){
var siteKey = "6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
var action = "submit_lead_form";
var loaderUrl = "https:\/\/www.google.com\/recaptcha\/enterprise.js?render=6Ldnu_gsAAAAAGpkh7vCd_h3L9BA193yFU59I4Do";
// GWP-506 (perf): the reCAPTCHA Enterprise runtime costs ~900ms of main-thread
// work (PSI contactus TBT 660ms, perf 69). It was loaded eagerly on every page
// carrying a CF7 form. It now loads on the FIRST real page interaction
// (scroll/pointer/key/touch) — warming the runtime well before the user can
// reach submit — and never loads on a no-interaction (lab) page view, so the
// perf win holds. The token is still stamped on form focusin and refreshed at
// submit. IMPORTANT: the server gate is fail-CLOSED by default (GWP-412
// require_token) — a missing token at submit is treated as spam — so the
// runtime MUST be warm before submit; that is exactly why the warm trigger is
// first-page-interaction, NOT focusin-only (focusin-only left a race where a
// fast focus→submit could POST before the ~900ms download finished and drop a
// legit lead). The eager <script src> is gone.
var greReady = false, greWaiters = [], greLoadStarted = false;
function pollGre(attempts) {
if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise) {
greReady = true;
var queued = greWaiters;
greWaiters = [];
queued.forEach(function (fn) { try { fn(); } catch (e) {} });
return;
}
if (attempts > 200) {
// no-silent-failures: enterprise.js never became ready (network-blocked,
// consent/privacy blocker, or a Google outage). Surface it — a missing
// token fails CLOSED server-side (GWP-412) and drops the lead.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] enterprise.js not ready after ~10s; token will be missing (submit fails closed).');
}
return; // give up after ~10s (200 * 50ms)
}
setTimeout(function () { pollGre(attempts + 1); }, 50);
}
function loadGre() {
if (greLoadStarted) return;
greLoadStarted = true;
var s = document.createElement('script');
s.src = loaderUrl;
s.async = true;
document.head.appendChild(s);
pollGre(0); // begin polling only once the runtime is actually loading
}
function whenGreReady(cb) {
if (greReady) return cb();
greWaiters.push(cb);
}
function stampToken(form) {
if (!form.querySelector('.wpcf7-form-control-wrap input[type="submit"], .wpcf7-submit')) return;
loadGre(); // lazy: kick off enterprise.js on demand (idempotent)
whenGreReady(function () {
grecaptcha.enterprise.ready(function () {
grecaptcha.enterprise.execute(siteKey, { action: action }).then(function (token) {
var hidden = form.querySelector('input[name="gmx_recaptcha_token"]');
if (!hidden) {
hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = 'gmx_recaptcha_token';
form.appendChild(hidden);
}
hidden.value = token;
}).catch(function () {
// no-silent-failures: token generation failed; the server gate is
// fail-CLOSED (GWP-412), so this submit will be rejected as spam.
if (window.console && console.warn) {
console.warn('[GMX recaptcha] token execute failed; submit will fail closed.');
}
});
});
});
}
document.addEventListener('wpcf7submit', function (e) { stampToken(e.target); });
// Also stamp on first focus into any CF7 form (so token ready before submit).
// `whenGreReady()` queues the stamp until grecaptcha loads, so the once-
// listener stays safe even if grecaptcha isn't ready at focus-in time.
document.querySelectorAll('form.wpcf7-form').forEach(function (form) {
form.addEventListener('focusin', function once() {
form.removeEventListener('focusin', once);
stampToken(form);
});
});
// GWP-506: warm enterprise.js on the FIRST real page interaction so the ~900ms
// runtime is ready before the user reaches submit (closes the focusin-only race
// against the fail-CLOSED server gate, and covers AJAX/popup-injected forms that
// missed the focusin binding above). Never fires on a no-interaction (lab) view,
// so the perf win holds. Idempotent via loadGre()'s greLoadStarted guard.
var warmOpts = { passive: true, capture: true };
var warmEvents = ['pointerdown', 'keydown', 'touchstart', 'scroll'];
function warmGre() {
loadGre();
warmEvents.forEach(function (e) { window.removeEventListener(e, warmGre, warmOpts); });
}
warmEvents.forEach(function (e) { window.addEventListener(e, warmGre, warmOpts); });
})();
(function(){
var loaded = false;
function loadUserWay() {
if (loaded) return;
loaded = true;
var el = document.createElement('script');
el.setAttribute('data-account', "UX40fo0Ctw");
el.setAttribute('data-language', "he");
el.setAttribute('src', 'https://cdn.userway.org/widget.js');
document.body.appendChild(el);
events.forEach(function(e){ window.removeEventListener(e, loadUserWay, {passive: true}); });
}
var events = ['scroll', 'mousemove', 'touchstart', 'click', 'keydown'];
events.forEach(function(e){ window.addEventListener(e, loadUserWay, {passive: true}); });
})();