// Achievement system const ACHIEVEMENTS = { "first_visit": { name: "Nováček", description: "První návštěva na portálu", icon: "fa-star", color: "text-yellow-500" }, "frequent_visitor": { name: "Pravidelný návštěvník", description: "10 návštěv za měsíc", icon: "fa-clock-rotate-left", color: "text-blue-500", threshold: 10, period: "monthly" }, "power_user": { name: "Power User", description: "50 návštěv za měsíc", icon: "fa-rocket", color: "text-purple-500", threshold: 50, period: "monthly" }, "super_fan": { name: "Super Fan", description: "100 návštěv za měsíc", icon: "fa-award", color: "text-gold", threshold: 100, period: "monthly" } }; let achievementsEnabled = false; // Hidden toggle for achievements function toggleAchievements() { achievementsEnabled = !achievementsEnabled; localStorage.setItem('achievementsEnabled', achievementsEnabled); if (achievementsEnabled) { checkAchievements(); showAchievements(); } else { hideAchievements(); } } // Check if user has earned achievements async function checkAchievements() { try { const response = await fetch('/api/visitor-stats'); const stats = await response.json(); // Check for monthly achievements Object.values(ACHIEVEMENTS).forEach(achievement => { if (achievement.period === "monthly" && stats.monthly_visits >= achievement.threshold) { showAchievementToast(achievement); } }); // First visit achievement if (stats.total_visits === 1) { showAchievementToast(ACHIEVEMENTS.first_visit); } } catch (error) { console.error('Error checking achievements:', error); } } // Show achievement toast function showAchievementToast(achievement) { const toast = document.createElement('div'); toast.className = `fixed bottom-4 right-4 bg-white rounded-lg shadow-lg p-4 w-64 flex items-center ${achievement.color}`; toast.innerHTML = `
${achievement.description}