// CORE64 Records - Main Application Logic // CMS Data stored in localStorage const defaultData = { releases: [ { id: 1, title: "Neural Network", artist: "Cybernetic", genre: "Neurofunk", year: "2024", image: "http://static.photos/technology/640x360/1", link: "#" }, { id: 2, title: "Dark Matter", artist: "Synapse", genre: "Techstep", year: "2024", image: "http://static.photos/abstract/640x360/2", link: "#" }, { id: 3, title: "System Shock", artist: "Binary Soul", genre: "Breakbeat", year: "2023", image: "http://static.photos/industry/640x360/3", link: "#" }, { id: 4, title: "Core Dump", artist: "Null Pointer", genre: "DnB", year: "2024", image: "http://static.photos/technology/640x360/4", link: "#" } ], artists: [ { id: 1, name: "Cybernetic", genre: "Neurofunk", bio: "Піонер української нейрофанк сцени. Виробляє потужні басові лінії з 2019 року.", image: "http://static.photos/people/640x360/10", soundcloud: "#", instagram: "#" }, { id: 2, name: "Synapse", genre: "Techstep", bio: "Майстер темних атмосфер та агресивних ритмів.", image: "http://static.photos/people/640x360/11", soundcloud: "#", instagram: "#" }, { id: 3, name: "Binary Soul", genre: "Breakbeat", bio: "Експериментатор, що поєднує класичний брейкбіт з сучасним звучанням.", image: "http://static.photos/people/640x360/12", soundcloud: "#", instagram: "#" } ], events: [ { id: 1, title: "CORE64 Label Night", date: "2024-02-15", time: "22:00", venue: "Київ, Atlas", description: "Великий лейбл-ніч з усіма артистами CORE64.", image: "http://static.photos/nightlife/640x360/20" }, { id: 2, title: "Neurofunk Madness", date: "2024-03-01", time: "23:00", venue: "Львів, !FESTrepublic", description: "Вечірка присвячена найважчому нейрофанку.", image: "http://static.photos/nightlife/640x360/21" } ], settings: { title: "CORE64 Records", about: "CORE64 Records — незалежний музичний лейбл, заснований у 2024 році. Ми спеціалізуємося на найважчих жанрах електронної музики: Neurofunk, Techstep, Darkstep та Breakbeat.", mission: "Наша місія — підтримувати андерграунд сцену та виводити Drum & Bass на новий рівень. Кожен реліз — це унікальна історія, закодована в звуках синтезаторів та ритмах барабанів.", email: "demo@core64.records", password: "core64admin" // Default admin password } }; // Initialize data function initData() { if (!localStorage.getItem('core64_data')) { localStorage.setItem('core64_data', JSON.stringify(defaultData)); } return JSON.parse(localStorage.getItem('core64_data')); } // Get data function getData() { return JSON.parse(localStorage.getItem('core64_data')) || defaultData; } // Save data function saveData(data) { localStorage.setItem('core64_data', JSON.stringify(data)); } // Render releases function renderReleases() { const data = getData(); const grid = document.getElementById('releases-grid'); if (!grid) return; grid.innerHTML = data.releases.map(release => `
${release.title}
${release.genre}

${release.title}

${release.artist}

${release.year} CORE64
`).join(''); // Update stats const statEl = document.getElementById('stat-releases'); if (statEl) statEl.textContent = data.releases.length; if (window.lucide) lucide.createIcons(); } // Render artists function renderArtists() { const data = getData(); const grid = document.getElementById('artists-grid'); if (!grid) return; grid.innerHTML = data.artists.map(artist => `
${artist.name}
${artist.genre}

${artist.name}

${artist.bio}

`).join(''); // Update stats const statEl = document.getElementById('stat-artists'); if (statEl) statEl.textContent = data.artists.length; if (window.lucide) lucide.createIcons(); } // Render events function renderEvents() { const data = getData(); const list = document.getElementById('events-list'); if (!list) return; const sortedEvents = [...data.events].sort((a, b) => new Date(a.date) - new Date(b.date)); list.innerHTML = sortedEvents.map(event => { const eventDate = new Date(event.date); const day = eventDate.getDate(); const month = eventDate.toLocaleDateString('uk-UA', { month: 'short' }); return `
${event.title}

${event.title}

${day} ${month} • ${event.time}
${event.venue}

${event.description}

`; }).join(''); if (window.lucide) lucide.createIcons(); } // Mobile menu toggle function toggleMobileMenu() { const menu = document.getElementById('mobile-menu'); menu.classList.toggle('hidden'); } // Scroll to section function scrollToSection(id) { const element = document.getElementById(id); if (element) { element.scrollIntoView({ behavior: 'smooth' }); // Close mobile menu if open const mobileMenu = document.getElementById('mobile-menu'); if (mobileMenu) mobileMenu.classList.add('hidden'); } } // Contact form handler function initContactForm() { const form = document.getElementById('contact-form'); if (form) { form.addEventListener('submit', (e) => { e.preventDefault(); alert('Дякуємо за повідомлення! Ми зв\'яжемося з вами найближчим часом.'); form.reset(); }); } } // Initialize document.addEventListener('DOMContentLoaded', () => { initData(); renderReleases(); renderArtists(); renderEvents(); initContactForm(); // Load about text from settings const data = getData(); const aboutEl = document.getElementById('about-text'); if (aboutEl && data.settings.about) { aboutEl.textContent = data.settings.about; } // Load mission text from settings const missionEl = document.getElementById('about-mission'); if (missionEl && data.settings.mission) { missionEl.textContent = data.settings.mission; } });