var seq = 0

function loadChatHistory() {

    $.get('/get_chat_history', function (data) {
        data.history.forEach(function (message) {
            if (message.role === 'model') {
                addMessage('Mr. Botner: ' + message.parts[0].text);
            } else {
                addMessage('You: ' + message.parts[0].text);
            }
        });
    });

}

function sendMessage() {
    if (seq === 1) {
        var userInput = document.getElementById('userInput');
        var message = userInput.value;
        userInput.value = '';
        addMessage('Note for Mark: ' + message);
        fetch('/handleMemo', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({message: message}),
        }).then(seq = 0).then(addMessage('Mr. Botner: Ok, I\'ll let Mark know. What else can I help you with?'))
    } else {
        var userInput = document.getElementById('userInput');
        var message = userInput.value;
        if (message.trim() !== '') {
            addMessage('You: ' + message);
            userInput.value = '';
            // Send the message to the server
            fetch('/chat', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                },
                body: JSON.stringify({message: message}),
            })
                .then(response => response.json())
                .then(data => {
                    if (data.type === 2) {
                        window.location.href = data.redirect_url;
                    }
                    addMessage('Mr. Botner: ' + data.response);
                    if (data.type === 3) {
                        seq = 1;
                    }
                    if (data.type === 4) {
                        switch (data.request) {
                            case 'calendar':
                                openCalendly();
                                break;
                            case 'contact':
                                openContact();
                                break;
                        }

                    }

                });
        }
    }
}

function addMessage(message) {
    var chatMessages = document.getElementById('chatMessages');
    var messageElement = document.createElement('p');
    messageElement.textContent = message;
    chatMessages.appendChild(messageElement);
    chatMessages.scrollTop = chatMessages.scrollHeight;
}

function openCalendly() {
    const browser = document.getElementById('calendly');
    const content = document.getElementById('calendly-content');

    browser.style.display = 'block';
}
function openContact() {
    const browser = document.getElementById('contact');
    const content = document.getElementById('contact-content');

    browser.style.display = 'block';
}

function closeCalendly() {
    const browser = document.getElementById('calendly');
    browser.style.display = 'none';
}
function closeContact() {
    const browser = document.getElementById('contact');
    browser.style.display = 'none';
}

window.onload = function () {
    Calendly.initInlineWidget({
        url: 'https://calendly.com/markbochner1',
        parentElement: document.getElementById('calendly-embed')
    });
};

$(document).ready(function() {
    console.log('Document ready');
    loadChatHistory();
    $('.chat-input input').keypress(function(e) {
        if (e.which == 13) {
            sendMessage();
            return false;
        }
    });

});

window.onbeforeunload = () => fetch('/stop');
event.stopPropagation();