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

מאת-ד"ר אביגדור הדר

8 פוסטים
עיר ללא ראש
כללי

עיר ללא ראש

רבים ואולי רוב התושבים של העיר תל-אביב אינם מודעים לנעשה בעירם ובמיוחד בדרומה של העיר למעט מיידע מצומצם בהיערך הפגנות. דרום תל-אביב מהווה אזור מועד לפורענות...

שגרירות ארה"ב בירושלים?
כללי

שגרירות ארה"ב בירושלים?

האם אנו צפויים במהרה בימינו להעברת השגרירות לירושלים, עוד חזון למועד, המבנה המוצע טרם נבנה או שופץ, המעבר לכשייושם הנו אבן הבוחן של הנשיא הנבחר של ארה"ב דונאלד...

מדינה שוחקת
כללי

מדינה שוחקת

כתבת התחקיר של ערוץ 2 על המצוקה החברתית, אינה מחמיאה לקובעי המדיניות בישראל גם אם רק חלקו נכון, לראות אימהות חד הוריות, נכים וקשישים במצוקה כלכלית עד לכדי...

פערי שכר ופערי מחיה
כללי

פערי שכר ופערי מחיה

ד"ר אביגדור הדר על השכר במשק ועל השלכותיו השכר הממוצע במשק בישראל מורכב מהממוצע של שכר ברוטו. השכר הממוצע לשכיר בישראל עמד בחודש אוגוסט על 9,904 שקל – על פי...

הרחפן
כללי

הרחפן

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

רפורמות והפיקציות שלהן
כללי

רפורמות והפיקציות שלהן

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

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

משחק האבסורד

ד"ר אביגדור הדר שואל מדוע רוצח מתועב זוכה לעונש קליל ? הסדר טיעון בתיק ההרוג הראשון בגל הטרור פורסם ב: 31.10.2016 11:21 עודכן ב: 31.10.2016 12:22 המדינה הגיעה...

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