(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;
});
// GWP-208 — carry Meta's first-party click-linker cookies (_fbc
// = fb.1.<ts>.<fbclid>, _fbp) into the captured payload so they
// ride the persistent gmx_first_touch cookie cross-page (LP X →
// LP Y) the same way the URL click-ids do. The CF7 hidden-field
// populator copies the whole payload verbatim, so fbc/fbp reach
// the lead even when the form lives on a page without ?fbclid.
var fbcMatch = document.cookie.match(/(?:^|;\s*)_fbc=([^;]+)/);
if (fbcMatch && fbcMatch[1]) data.fbc = decodeURIComponent(fbcMatch[1]);
var fbpMatch = document.cookie.match(/(?:^|;\s*)_fbp=([^;]+)/);
if (fbpMatch && fbpMatch[1]) data.fbp = decodeURIComponent(fbpMatch[1]);
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) {}
})();
/* Meta Pixel base — inline in wp_head so Breeze Delay-All-JS does not defer it; fbevents.js is async-injected (optimizer-invisible). */
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');/* Symmetric with server GMX_Consent: revoke BEFORE init; cookies/sends held until grant. */
fbq('consent', 'revoke');
fbq('init', '1857131551802431');
fbq('track', 'PageView'); /* queued; flushed to Meta only after consent grant *//* Grant bridge — reads the SAME ATR marketing signal as GMX_Consent.applyConsent(). */
(function () {
function read(name){var m=document.cookie.match('(?:^|; )'+name.replace(/([.*+?^${}()|[\]\\])/g,'\\$1')+'=([^;]*)');return m?decodeURIComponent(m[1]):'';}
function marketingGranted(){
try {
var given = read('atr_cookie_notice_consent_given');
if (!given) return false; // undecided -> stay revoked
var c = JSON.parse(read('atr_cookie_notice_consent') || '{}');
return !!(c.marketing || c.ad_storage === 'granted');
} catch (e) { return false; } // NO-SILENT-OK: parse/read failure degrades gracefully to revoked (consent stays held; no marketing send) — not an error to report.
}
function apply(){ if (marketingGranted()) fbq('consent', 'grant'); }
apply();
document.addEventListener('click', function(ev){
if (ev.target && ev.target.closest && ev.target.closest('[class*="atr-cookie"], #atr-cookie-notice')) setTimeout(apply, 50);
}, true);
window.addEventListener('storage', apply);
})();
var breeze_prefetch = {"local_url":"https://gomixapp.com","ignore_remote_prefetch":"1","ignore_list":["/cart/","/checkout/","/my-account/","https://gomixapp.co.il/(.)/u05d4u05d8u05d5u05e4u05e1-u05e0u05e9u05dcu05d7-u05d1u05d4u05e6u05dcu05d7u05d4/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
Halachic prayer times are calculated according to 4 main methods: the Gra (the halachic day begins at sunrise), Magen Avraham (begins at dawn / alot hashachar), Ohr HaChaim (the method of Rav Ovadia – in proportional minutes), and Rabbeinu Tam (for the end of Shabbat). The GoMixApp system displays 29 automatic prayer times on synagogue digital signage based on geographic location.
Halachic prayer times are the foundation of synagogue life – when to pray Shacharit, Mincha and Maariv, when the latest time for Kriat Shema is, when Shabbat begins and ends. The 4 different halachic calculation methods can differ by minutes to hours, so it is important to understand the differences. In this article we review the 4 main methods, how to calculate prayer times by location, and how to display them automatically on digital signage inside the synagogue.
What are the prayer times?
An observant Jew prays three prayers a day: Shacharit (morning, starting from sunrise), Mincha (afternoon, starting from halachic midday), and Maariv (night, starting from nightfall / tzeit hakochavim). Each prayer has a halachic start and end time – someone who prays after the time has not fulfilled the mitzvah in the ideal manner.
In addition, there are further halachic target times: latest time for Shema (3 proportional hours from sunrise), latest time for prayer (4 proportional hours from sunrise), halachic midday (chatzot), mincha gedola (half an hour after midday), mincha ketana (9.5 hours from sunrise), plag hamincha (10.75 hours from sunrise), sunset, nightfall, and more.
The Gra Method (the Vilna Gaon)
The Gra method is the most widespread. According to it, the halachic day begins at sunrise (hanetz) and ends at sunset (shkia). A proportional hour = (sunset – sunrise) / 12. Example: in a city with sunrise at 6:00 and sunset at 19:00, the length of the halachic day = 13 hours, so a proportional hour = 65 minutes.
The Gra method is considered more “true” from an astronomical perspective – it is based on what actually happens (the visible sunrise and sunset). Most Ashkenazi communities pray according to this method.
The Magen Avraham Method (MGA)
The Magen Avraham method extends the halachic day: from dawn / alot hashachar (before sunrise) until nightfall / tzeit hakochavim (after sunset). A longer proportional hour means an earlier latest time for Shema. Three common variants:
72 minutes – dawn 72 minutes before sunrise, nightfall 72 minutes after sunset
16.1 degrees – an average hour of about 72 minutes (varies by season)
19.8 degrees – according to the Eretz Yisrael calendar (Tukatzinsky), the earliest variant
In the Magen Avraham method, the latest time for Shema is earlier by about 30-40 minutes compared to the Gra. Many are stringent to be in Shacharit prayer early in order to fulfill the time according to this method.
4 calculation methods: Gra, Magen Avraham, Ohr HaChaim, Rabbeinu Tam
The Ohr HaChaim Method – Rabbi Ovadia Yosef zt”l
The “Ohr HaChaim” method, of which Maran Rabbi Ovadia Yosef zt”l was the leading halachic authority, is characterized by calculation in proportional minutes rather than proportional hours. A proportional minute = a proportional hour / 60.
Explanation: according to the Magen Avraham method using a proportional hour, “72 minutes before sunrise” means dawn is *fixed* at 72 minutes. In the Ohr HaChaim method, “72 proportional minutes before sunrise” – their length varies by season. In summer it is more time, in winter less. This is a specific halachic precision on which Maran Rabbi Ovadia was meticulous in all of his rulings.
The Ohr HaChaim method is the most widespread in Sephardic communities and in communities that follow the rulings of Rabbi Ovadia (Shas, traditional, neighborhood rabbis). For information on daily halacha according to this method, see the daily halacha guide.
The Rabbeinu Tam Method
The Rabbeinu Tam method is different from the other three – it is used primarily for the end of Shabbat and Yom Tov. According to Rabbeinu Tam, night begins later than what appears at first glance – 72 proportional minutes after sunset. The reason: an astronomical explanation that the sphere of the sun continues to rotate below the horizon for 72 minutes before reaching the “western descent,” which is the true night.
Many of the stringent – especially Chassidim and Chabadniks – wait for the time of Rabbeinu Tam at the end of Shabbat and at the end of Yom Kippur before starting any melacha (turning on lights, driving a vehicle, connecting electricity). The wait is 50-72 minutes after sunset.
Calculation by Geographic Location
Prayer times depend on 3 geographic factors: latitude (effect on day length across seasons – further north means longer days in summer and shorter in winter), longitude (effect on sunrise and sunset times relative to UTC), and elevation of the city (greater elevation means earlier sunrise and later sunset). Jerusalem, at an elevation of about 750 m, receives sunrise about 3 minutes earlier than Tel Aviv (elevation about 50 m).
The Hebcal library (https://hebcal.com) is the accepted standard in the digital world for calculating prayer times for any location and any day. Modern digital signage systems, including GoMixApp, use it.
Sunrise and sunset times – automatic calculation based on location
How to Display 29 Prayer Times Automatically on a Synagogue Screen
The GoMixApp system for synagogues displays 29 halachic prayer times automatically, calculated based on geographic location and the elevation of the synagogue. The times are updated daily and support all 4 calculation methods (Gra / MGA / Ohr HaChaim / Rabbeinu Tam) with customized offsets for local customs – for example, Jerusalem lights candles 40 minutes before sunset (Offset = -22).
For information on daily study programs that the system supports, see the Daf Yomi guide. For information on Shabbat times in particular, see the guide to the start of Shabbat.
Frequently Asked Questions About Prayer Times
What are the 4 main halachic prayer time calculation methods?
The Gra (the day begins at sunrise), Magen Avraham (the day begins at dawn / alot hashachar, in 3 variants: 72 minutes / 16.1 degrees / 19.8 degrees), Ohr HaChaim (the method of Rabbi Ovadia Yosef, calculation in proportional minutes), and Rabbeinu Tam (for the end of Shabbat and Yom Tov, 72 proportional minutes after sunset).
What is a “proportional hour”?
A proportional hour is 1/12 of the length of the halachic day. Its length varies by season: longer in summer (up to 75 minutes), shorter in winter (down to 45 minutes). The halachic day according to the Gra = from sunrise to sunset. According to Magen Avraham = from dawn / alot hashachar to nightfall / tzeit hakochavim.
When is it permitted to pray Mincha?
Mincha gedola begins half a proportional hour after halachic midday (ideal time according to the Gra). Mincha ketana – 9.5 proportional hours from sunrise – is the preferred ideal time. Plag hamincha – 10.75 proportional hours – is the earliest time for Maariv prayer according to some halachic decisors.
What is the “time of dawn / alot hashachar” and why is it important?
Dawn / alot hashachar is the first moment of daylight, about 72 minutes before sunrise (according to different methods: 16.1 degrees or 19.8 degrees below the horizon). Its importance: from then it is possible to fulfill mitzvot that depend on daytime, to put on tallit and tefillin (if one can recognize), and to begin the latest time for Shema according to Magen Avraham.
How are prayer times calculated based on geographic location?
The times depend on 3 factors: latitude (effect on day length across seasons), elevation of the city (effect on sunrise and sunset times – Jerusalem is higher, so sunrise is earlier), and calculation method (Gra / MGA / Ohr HaChaim). Modern systems use the Hebcal library for accurate calculation for any day and location.
What is the Jerusalem custom of 40 minutes for candle lighting?
The Jerusalem custom is to light candles 40 minutes before sunset (instead of the standard 18 minutes). The reason: unique preservation of the sanctity of Shabbat in the holy city. In the GoMixApp system you can configure Time Offset = -22 (40 minus 18) to match the Jerusalem custom.
Is it possible to display prayer times automatically on a synagogue screen?
Yes. The GoMixApp system automatically displays 29 halachic prayer times based on geographic location and elevation of the city. The times update daily and support all 4 calculation methods (Gra / MGA / Ohr HaChaim / Rabbeinu Tam) with customized offsets for local customs.
Summary
Halachic prayer times are the foundation of synagogue life – and the differences between the methods can be significant. A digital signage system that supports all 4 methods (Gra / MGA / Ohr HaChaim / Rabbeinu Tam) and calculates automatically based on geographic location is a professional solution for any synagogue – without dealing manually with complex calculations.
var atrCookieNoticeSettings = {"cookieName":"atr_cookie_notice_consent","decisionCookieName":"atr_cookie_notice_consent_given","expiryDays":"365","autoHideDelay":"0","enableDebug":"","siteName":"GoMixApp","isPrivacyPage":"","privacyPolicyUrl":"https://gomixapp.com/privacy-policy/","privacyNoteText":"\ud83d\udca1 You can read this page while deciding about cookies","mode":"simple"};
//# sourceURL=atr-cookie-notice-simple-js-extra