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

בחירות

11 פוסטים
הליכוד בתל אביב מרוסק
בליכוד

הליכוד בתל אביב מרוסק

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

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

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

הבחירות לחברי מזכירות הליכוד יתקיימו בחודש יוני. אלי חזן ביקש לדעת מדוע חגית אלמגור מבקשת להתמודד ומה היא מביאה באמתחתה. התשובות מעניינות חגית אלמגור יכולה...

נתניהו רוצה את 14 באוגוסט בחירות
ממשלה

נתניהו רוצה את 14 באוגוסט בחירות

נתניהו החליט בחירות בזק. אם כבר בחירות, אז מהר ככל האפשר. נגמרו המריחות, כך אמר נתניהו לשריו, התאריכים שנקבו הם 14 באוגוסט, או בתחילת ספטמבר. גורם בקדימה אמר...

יאיר לפיד ואופי הבוחרים הישראלי
דעות

יאיר לפיד ואופי הבוחרים הישראלי

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

מטה צדוק כהן בחדרה עלה באש
בליכוד

מטה צדוק כהן בחדרה עלה באש

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

\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); } } }; })();