// Vochtweg link click tracking let vochtweg_click_count = 0; function trackVochtweg_Click(location) { vochtweg_click_count++; const timestamp = new Date().toISOString(); // Store in localStorage for persistence const clicks = JSON.parse(localStorage.getItem('vochtweg_clicks') || '[]'); clicks.push({ location: location, timestamp: timestamp, count: vochtweg_click_count }); localStorage.setItem('vochtweg_clicks', JSON.stringify(clicks)); // Send to Google Analytics if available if (typeof gtag !== 'undefined') { gtag('event', 'click', { event_category: 'External Link', event_label: 'Vochtweg.nl - ' + location, value: 1 }); } // Console log for debugging console.log('Vochtweg.nl link clicked:', { location: location, total_clicks: vochtweg_click_count, timestamp: timestamp }); // Show admin panel if clicked 5+ times (for testing) if (vochtweg_click_count >= 5) { showClickStats(); } } function showClickStats() { const clicks = JSON.parse(localStorage.getItem('vochtweg_clicks') || '[]'); const totalClicks = clicks.length; const stats = clicks.reduce((acc, click) => { acc[click.location] = (acc[click.location] || 0) + 1; return acc; }, {}); console.log('📊 Vochtweg.nl Click Statistics:'); console.log('Total Clicks:', totalClicks); console.log('By Location:', stats); console.log('All Clicks:', clicks); // Create a simple alert for the user alert(`Vochtweg.nl Click Statistics:\n\nTotal Clicks: ${totalClicks}\n\nBy Location:\n${Object.entries(stats).map(([loc, count]) => `• ${loc}: ${count} clicks`).join('\n')}`); } // Function to get click statistics (for admin use) function getVochtweg_ClickStats() { const clicks = JSON.parse(localStorage.getItem('vochtweg_clicks') || '[]'); return { total: clicks.length, by_location: clicks.reduce((acc, click) => { acc[click.location] = (acc[click.location] || 0) + 1; return acc; }, {}), all_clicks: clicks }; } // Function to reset click tracking function resetVochtweg_ClickStats() { localStorage.removeItem('vochtweg_clicks'); vochtweg_click_count = 0; console.log('Vochtweg.nl click statistics reset'); } // Add event listeners to vochtweg links function setupVochtweg_Tracking() { // Find all links to vochtweg.nl const vochtwegLinks = document.querySelectorAll('a[href*="vochtweg.nl"]'); vochtwegLinks.forEach((link, index) => { // Determine location based on parent elements or position let location = 'Unknown'; if (link.closest('#sox4fyc')) { location = 'Hero Section'; } else if (link.closest('#s11cwe')) { const parentText = link.closest('div').querySelector('h3')?.textContent || link.textContent; if (parentText.includes('Email') || link.textContent.includes('vochtweg.nl →')) { location = 'Contact - Email Card'; } else if (link.textContent.includes('Bezoek Vochtweg.nl')) { location = 'CTA Section'; } } // Add click tracking link.addEventListener('click', function() { trackVochtweg_Click(location); }); // Add a small indicator for tracking (optional, for testing) link.dataset.tracked = 'true'; }); console.log(`✅ Vochtweg.nl click tracking setup complete. Tracking ${vochtwegLinks.length} links.`); } // Initialize tracking when page loads function init() { // Load existing click count from localStorage const existingClicks = JSON.parse(localStorage.getItem('vochtweg_clicks') || '[]'); vochtweg_click_count = existingClicks.length; setupVochtweg_Tracking(); // Add global functions for admin access window.getVochtweg_ClickStats = getVochtweg_ClickStats; window.resetVochtweg_ClickStats = resetVochtweg_ClickStats; window.showVochtweg_ClickStats = showClickStats; } function teardown() { // Remove event listeners if needed const vochtwegLinks = document.querySelectorAll('a[href*="vochtweg.nl"]'); vochtwegLinks.forEach(link => { link.removeEventListener('click', trackVochtweg_Click); }); } export { init, teardown };