const chatWindow = document.getElementById('chatWindow');
const userInput = document.getElementById('userInput');
const sendBtn = document.getElementById('sendBtn');
// Funzione per aggiungere un messaggio alla finestra della chat
function addMessage(message, sender) {
const messageElement = document.createElement('div');
messageElement.classList.add('message', sender);
if (sender === 'bot') {
const userIcon = document.createElement('div');
userIcon.classList.add('userIcon');
userIcon.innerHTML = '
'; // Cambia il percorso dell'icona
messageElement.appendChild(userIcon);
setItemWithExpiry('sessioneAttiva', true, 36000000);
}
const textElement = document.createElement('span');
textElement.textContent = message;
messageElement.appendChild(textElement);
chatWindow.appendChild(messageElement);
chatWindow.scrollTop = chatWindow.scrollHeight;
}
function setItemWithExpiry(key, value, ttl) {
const now = new Date();
const item = {
value: value,
expiry: now.getTime() + ttl,
};
localStorage.setItem(key, JSON.stringify(item));
}
function getItemWithExpiry(key) {
const itemStr = localStorage.getItem(key);
if (!itemStr) {
return null;
}
const item = JSON.parse(itemStr);
const now = new Date();
if (now.getTime() > item.expiry) {
localStorage.removeItem(key);
return null;
}
return item.value;
}
function showWelcomeMessage() {
const domandeProposte = [
'di cosa si occupa Pietranera?',
'cosa è l`HEAD SPA Experience?',
'lavaggi e benessere?',
'cosa è l`Holistic Wellness Hair?',
'qual è il vostro indirizzo?',
'con quali vostri prodotti si parla HEAD SPA Experience?',
'descrivimi Fable Lift?'
];
const domandeProposteId = [
];
// Funzione per mescolare l'array
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
// Mescola l'array e prendi le prime 3 domande
const domandeRandom = shuffleArray(domandeProposte).slice(0, 2);
const sessioneAttiva = getItemWithExpiry('sessioneAttiva');
if (sessioneAttiva == null) {
// Aggiungi un messaggio vuoto per il bot
addMessage('', 'bot');
const lastMessage = chatWindow.lastChild.querySelector('span');
const welcomeText = 'Ciao, sono il tuo assistente Pietranera, sono qui per presentarti e spiegarti il nostro servizio HEAD SPA Experience. You can ask me in your language, je parle plusieurs langues. Altri utenti mi hanno chiesto: ' + domandeRandom.join(' ');
// Applica l'effetto typing
showTypingEffect(welcomeText, lastMessage);
// Salva la sessione attiva
// 3600000 1 ora
setItemWithExpiry('sessioneAttiva', true, 3600000);
}
else
{
// Esempi di domanda da proporre
// Aggiungi un messaggio vuoto per il bot
addMessage('', 'bot');
const lastMessage = chatWindow.lastChild.querySelector('span');
const welcomeText = 'Ciao di nuovo, mi fa piacere rivederti. Come posso aiutarti? Recentemente mi hanno chiesto: ' + domandeRandom.join(' ');
// Applica l'effetto typing
showTypingEffect(welcomeText, lastMessage);
}
}
function sendMessageFromLink(question) {
userInput.value = question;
sendMessage();
}
// Funzione per l'effetto di typing
function showTypingEffect(html, element) {
let index = 0;
const interval = setInterval(() => {
if (index < html.length) {
element.innerHTML = html.substring(0, index + 1); // Usa innerHTML per aggiornare gradualmente il contenuto
index++;
chatWindow.scrollTop = chatWindow.scrollHeight;
} else {
clearInterval(interval);
}
}, 15);
}
// Funzione per inviare un messaggio
function sendMessage() {
const message = userInput.value;
if (message.trim() !== "") {
addMessage(message, 'user');
userInput.value = "";
// Mostra un indicatore di typing
const botMessageElement = document.createElement('div');
botMessageElement.classList.add('message', 'bot');
botMessageElement.innerHTML = '