| document.addEventListener('DOMContentLoaded', function() { |
| const sections = document.querySelectorAll('section'); |
| const navLinks = document.querySelectorAll('nav a'); |
|
|
| function showSection(target) { |
| sections.forEach(section => { |
| section.classList.remove('active'); |
| }); |
| document.getElementById(target).classList.add('active'); |
| } |
|
|
| navLinks.forEach(link => { |
| link.addEventListener('click', function(e) { |
| e.preventDefault(); |
| showSection(this.dataset.target); |
| }); |
| }); |
|
|
| |
| const eventForm = document.getElementById('eventForm'); |
| const eventsList = document.getElementById('eventsList'); |
| const repeatEventCheckbox = document.getElementById('repeatEvent'); |
| const repeatOptions = document.getElementById('repeatOptions'); |
|
|
| eventForm.addEventListener('submit', function(e) { |
| e.preventDefault(); |
| const eventName = eventForm.querySelector('input[type="text"]').value; |
| |
|
|
| |
| const repeatType = repeatEventCheckbox.checked ? repeatOptions.querySelector('input[name="repeatType"]:checked').value : null; |
|
|
| |
| const eventElement = document.createElement('div'); |
| eventElement.classList.add('event'); |
| eventElement.innerHTML = `<strong>Назва: </strong>${eventName} |
| |
| <!-- ... інші поля ... -->`; |
|
|
| |
| eventsList.appendChild(eventElement); |
|
|
| |
| eventForm.reset(); |
| }); |
|
|
| |
| const calendarEl = document.getElementById('calendarContainer'); |
| const calendar = new FullCalendar.Calendar(calendarEl, { |
| initialView: 'dayGridMonth', |
| headerToolbar: { |
| left: 'prev,next today', |
| center: 'title', |
| right: 'dayGridMonth,timeGridWeek,timeGridDay' |
| }, |
| events: [ |
| |
| ] |
| }); |
| calendar.render(); |
|
|
| |
| const lightbox = new SimpleLightbox('.gallery a', { |
| captionsData: 'alt', |
| captionsPosition: 'outside', |
| captionDelay: 200 |
| }); |
|
|
| |
| const gameButtons = document.querySelectorAll('.game-button'); |
| const gameContainer = document.querySelector('.game-container'); |
|
|
| gameButtons.forEach(button => { |
| button.addEventListener('click', function() { |
| const gameType = button.getAttribute('data-game'); |
| gameContainer.innerHTML = ''; |
|
|
| switch(gameType) { |
| case 'crossword': |
| |
| break; |
| |
| } |
| }); |
| }); |
|
|
| |
| const chatInput = document.getElementById('chatInput'); |
| const sendButton = document.getElementById('sendButton'); |
| const chatMessages = document.querySelector('.chat-messages'); |
| const socket = new WebSocket('ws://localhost:8080'); |
|
|
| socket.addEventListener('open', () => { |
| console.log('Підключено до WebSocket'); |
| }); |
|
|
| socket.addEventListener('message', event => { |
| const message = JSON.parse(event.data); |
| displayMessage(message); |
| }); |
|
|
| sendButton.addEventListener('click', () => { |
| const message = chatInput.value; |
| if (message) { |
| socket.send(JSON.stringify({ sender: 'User', message })); |
| chatInput.value = ''; |
| } |
| }); |
|
|
| function displayMessage(message) { |
| const messageElement = document.createElement('div'); |
| messageElement.textContent = `${message.sender}: ${message.message}`; |
| chatMessages.appendChild(messageElement); |
| chatMessages.scrollTop = chatMessages.scrollHeight; |
| } |
|
|
| |
| }); |