File size: 4,413 Bytes
f84e4e1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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();
    });

    // Інтеграція календаря з FullCalendar
    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();

    // Інтеграція Lightbox для галереї
    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;
    }

    // Інші функції, такі як запис відео, аналітика настрою, рекомендації тощо.
});