יום שבת, 7 במרץ 2026
טוען מזג אוויר...
תגית

משה רווח

16 פוסטים
השבוע השחור של יואב קיש
בליכוד

השבוע השחור של יואב קיש

זה התחיל בקול תרועה: ארגון המורים פתח בקמפיין ארסי נגד יואב קיש, והאשים אותו ב"פירוק הזהות היהודית" – בזמן שהוא בכלל מנסה להוביל רפורמה מסודרת. אבל זה היה רק...

חברנו יאיר דוידי נפטר
בליכוד

חברנו יאיר דוידי נפטר

אתר ליכודניק מצטרף לאבל הכבד של סניף רמת גן כאשר יו"ר מועצת הסניף יאיר דוידי נפטר אחר מחלה קשה. יו"ר סיעת הליכוד ברמת גן משה רווח יו"ר סניף רמת גן שמוליק לרמן...

ערבובים ברמת גן
בליכוד

ערבובים ברמת גן

*השחקנים-* ראש העיר כרמל שאמה, שר החינוך יואב קיש, יו"ר הסניף משה רווח, ראש המטה של השר קיש לילך זמר טוב. קיש ניסה להצניח את לילך לראש הרשימה, ובכך לדחוק את...

יש רווח בתמיכה ברפורמה
בליכוד

יש רווח בתמיכה ברפורמה

לאחרונה נתלו מאות שלטים על מרפסות בתים ברמת גן שמטרתם - הבעת תמיכה בשינויים המשפטיים "אנחנו אלו ששומרים על הדמוקרטיה". יוזם המהלך משנה לראש העיר יו״ר סיעת...

רמת גן כפני הליכוד
כללי

רמת גן כפני הליכוד

מי מחבל במערכת הבחירות של הליכוד, רמת גן קרב רב, ניר דחק את יריביו, אבל קמו יריבים נוספים, יריב, אלי כהן, גלנט, אוחנה. שקט אצל הג'ינג'י השבוע פורסם כי לשכתו של...

צו מניעה נגד קיש
בליכוד

צו מניעה נגד קיש

סניף רמת גן נגד יואב קיש: אמש הוגשה עתירה לבית הדין של הליכוד נגד חבר הכנסת קיש על ידי סניף רמת גן. בניגוד לחוקת המפלגה, החליט לנכס לעצמו קיש את הקלפיות של...

\n \n "},{"key":"google_tag_manager","name":"Google Tag Manager","category":"analytics","script":"\n \n \n \n \n "},{"key":"microsoft_clarity","name":"Microsoft Clarity","category":"analytics","script":"\n \n \n "}]}; const LOADED_SCRIPTS = {}; // Get stored consent function getConsent() { try { const stored = localStorage.getItem(CONSENT_KEY); if (stored) { const consent = JSON.parse(stored); if (consent.version === CONSENT_VERSION) { return consent; } } } catch (e) {} return null; } // Save consent function saveConsent(preferences) { const consent = { version: CONSENT_VERSION, timestamp: Date.now(), preferences: preferences }; localStorage.setItem(CONSENT_KEY, JSON.stringify(consent)); // Dispatch event for other scripts to react window.dispatchEvent(new CustomEvent('cookieConsentChanged', { detail: consent })); // Load scripts based on new consent loadTrackingScripts(preferences); } // Load tracking scripts based on consent function loadTrackingScripts(preferences) { if (!TRACKING_CONFIG || !TRACKING_CONFIG.services) return; TRACKING_CONFIG.services.forEach(function(service) { // Skip if already loaded if (LOADED_SCRIPTS[service.key]) return; // Check if user consented to this category if (!preferences[service.category]) { console.log('[Tracking] Skipping ' + service.name + ' - no consent for ' + service.category); return; } // Load the script console.log('[Tracking] Loading ' + service.name); LOADED_SCRIPTS[service.key] = true; // Create a container for the scripts var container = document.createElement('div'); container.innerHTML = service.script; // Process script tags (they won't execute if just innerHTML'd) var scripts = container.querySelectorAll('script'); scripts.forEach(function(oldScript) { var newScript = document.createElement('script'); // Copy attributes Array.from(oldScript.attributes).forEach(function(attr) { newScript.setAttribute(attr.name, attr.value); }); // Copy inline script content if (oldScript.innerHTML) { newScript.innerHTML = oldScript.innerHTML; } // Append to head document.head.appendChild(newScript); }); // Handle noscript content (for pixels that have noscript fallbacks) var noscripts = container.querySelectorAll('noscript'); noscripts.forEach(function(ns) { // Append noscript content as-is to body var div = document.createElement('div'); div.innerHTML = ns.innerHTML; document.body.appendChild(div); }); }); } // Show banner function showBanner() { const banner = document.getElementById('cookie-consent-banner'); if (banner) { banner.style.display = 'block'; } } // Hide banner function hideBanner() { const banner = document.getElementById('cookie-consent-banner'); if (banner) { banner.style.display = 'none'; } } // Show modal function showModal() { const modal = document.getElementById('cookie-settings-modal'); if (modal) { modal.style.display = 'flex'; document.body.style.overflow = 'hidden'; // Load current preferences const consent = getConsent(); if (consent) { document.getElementById('cookie-analytics').checked = consent.preferences.analytics; document.getElementById('cookie-marketing').checked = consent.preferences.marketing; } } } // Hide modal function hideModal() { const modal = document.getElementById('cookie-settings-modal'); if (modal) { modal.style.display = 'none'; document.body.style.overflow = ''; } } // Accept all cookies function acceptAll() { saveConsent({ essential: true, analytics: true, marketing: true }); hideBanner(); hideModal(); } // Accept essential only function acceptEssential() { saveConsent({ essential: true, analytics: false, marketing: false }); hideBanner(); hideModal(); } // Save custom preferences function savePreferences() { saveConsent({ essential: true, analytics: document.getElementById('cookie-analytics').checked, marketing: document.getElementById('cookie-marketing').checked }); hideBanner(); hideModal(); } // Initialize function init() { const consent = getConsent(); if (!consent) { // No consent yet, show banner showBanner(); } else { // Consent exists, load allowed scripts loadTrackingScripts(consent.preferences); } // Event listeners document.getElementById('cookie-accept-all')?.addEventListener('click', acceptAll); document.getElementById('cookie-accept-essential')?.addEventListener('click', acceptEssential); document.getElementById('cookie-settings')?.addEventListener('click', showModal); document.getElementById('cookie-modal-close')?.addEventListener('click', hideModal); document.getElementById('cookie-save-preferences')?.addEventListener('click', savePreferences); // Close modal on overlay click document.querySelector('.cookie-modal-overlay')?.addEventListener('click', hideModal); // Close modal on Escape key document.addEventListener('keydown', function(e) { if (e.key === 'Escape') { hideModal(); } }); } // Run when DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } // Expose API for other scripts window.CookieConsent = { getConsent: getConsent, showBanner: showBanner, showSettings: showModal, hasConsent: function(type) { const consent = getConsent(); return consent && consent.preferences[type]; }, // Allow manual reload of scripts (e.g., after settings change) reloadScripts: function() { const consent = getConsent(); if (consent) { loadTrackingScripts(consent.preferences); } } }; })();