let COLOR_CODE='#b034d9';
let API_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRlVGltZSI6MTc0OTU1MjI5Mzc0MSwidV9pZCI6IjUxMS0xNzQ5NTUyMjkzNzQxIiwicF9pZCI6MiwidHlwZSI6ImNvbnZlcnNhdGlvblVzZXIiLCJhX2lkIjoiMSIsImlhdCI6MTc0OTU1MjI5M30.9RCALteUWyUTVMl2-SEovOkbZDeFRX5GsV-DyuDi6dA';
let host = 'https://chat.pura-ai.com';
let chatbotName='511';
let welcomeMessage='Hello and welcome to 511 Digital Marketing. I am your digital marketing specialist today. It is great to connect with you. ';
let botLogo='data:image/webp;base64,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';window.onload = function () {
renderChatBot()
localStorage.removeItem('chatbot-tok')
// if (localStorage.getItem('chatbot-tok')) {
// API_KEY = localStorage.getItem('chatbot-tok')
// } else {
// localStorage.setItem('chatbot-tok', API_KEY)
// }
// console.log(localStorage.getItem('chatbot-tok'))
}
var socket;
let chatType = 'agent'
let createChatLi,openExternalPage1, chatbotToggler, closeBtn, refreshBtn, chatbox, chatInput, sendChatBtn, isEmoticons = false, branchListData = [], formVariableList, projectListData = [], productListData = [], utm_params;
let userMessage = null;
let puraBotSlideIndex = 1;
let carosalImageList = []
async function renderChatBot() {
console.log('start')
let newDiv = document.createElement('div');
newDiv.id = 'webChatBot'
document.body.appendChild(newDiv);
var script = document.createElement('script');
script.src = `${host}/socket.io/socket.io.js`;
document.head.appendChild(script);
setTimeout(() => {
console.log('hi')
createChatBot();
loadEmoticons();
}, 1000)
setTimeout(() => { loadTriggerKey() }, 2000)
let url = new URL(window.location.href);
utm_params = url.searchParams.toString()
}
let aiCount = 0
function createChatBot() {
let htmlData = `
mode_commentclose
Chat with
${chatbotName}
close
${welcomeMessage}
Contact Us
Submit
moodsend
`
let dat = document.getElementById('webChatBot')
dat.innerHTML = htmlData
chatbotToggler = document.querySelector(".chatbot-toggler");
closeBtn = document.querySelector(".close-btn");
refreshBtn = document.querySelector(".refresh-btn")
chatbox = document.querySelector(".chatbox");
chatboxUserForm = document.querySelector(".chatbox .userform");
chatInput = document.querySelector(".chat-input textarea");
sendChatBtn = document.querySelector(".chat-input .sent-btn");
if (localStorage.getItem('chatbot_token')) {
API_KEY = localStorage.getItem('chatbot_token')
} else {
localStorage.setItem('chatbot_token',API_KEY)
}
// Variable to store user's message
// const API_KEY = "PASTE-YOUR-API-KEY"; // Paste your API key here
const inputInitHeight = chatInput.scrollHeight;
createChatLi = (message, className) => {
// Create a chat
element with passed message and className
const chatLi = document.createElement("li");
chatLi.classList.add("chat", `${className}`);
let chatContent = className === "outgoing" ? ` ` : `
support_agent
`;
chatLi.innerHTML = chatContent;
chatLi.querySelector("p").innerHTML = message;
return chatLi; // return chat
element
}
const generateResponse = (chatElement) => {
const API_URL = `${host}/aiChat`;
const messageElement = chatElement.querySelector("p");
// Define the properties and message for the API request
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `${API_KEY}`
},
body: JSON.stringify({
message: userMessage,
})
}
// Send POST request to API, get response and set the reponse as paragraph text
fetch(API_URL, requestOptions).then(res => res.json()).then(data => {
messageElement.textContent = data.message;
}).catch(() => {
messageElement.classList.add("error");
messageElement.textContent = "Oops! Something went wrong. Please try again.";
}).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight));
}
const handleChat = () => {
userMessage = chatInput.value.trim();
console.log('handleChat',userMessage,chatType)// Get user entered message and remove extra whitespace
if (!userMessage) return;
// Clear the input textarea and set its height to default
chatInput.value = "";
// chatInput.style.height = `${inputInitHeight}px`;
conversationalBot(userMessage)
}
chatInput.addEventListener("input", () => {
// Adjust the height of the input textarea based on its content
chatInput.style.height = `${inputInitHeight}px`;
chatInput.style.height = `${chatInput.scrollHeight}px`;
});
window.addEventListener("message", function (event) {
console.log('sd', event)
let eventData = JSON.parse(event.data)
// if (event.origin !== "http://localhost:9000") return;
if (eventData.type === "appointment_submitted") {
console.log(" Appointment was submitted!");
chatbox.appendChild(createChatLi(eventData.data.userMsg, "outgoing"));
chatbox.appendChild(createChatLi(eventData.data.agentMsg, "incoming"));
chatbox.scrollTo(0, chatbox.scrollHeight);
}
});
chatInput.addEventListener("keydown", (e) => {
// If Enter key is pressed without Shift key and the window
// width is greater than 800px, handle the chat
if (e.key === "Enter" && !e.shiftKey && window.innerWidth > 800) {
e.preventDefault();
handleChat();
}
});
sendChatBtn.addEventListener("click", handleChat);
closeBtn.addEventListener("click", () => document.body.classList.remove("show-chatbot"));
refreshBtn.addEventListener("click", () => { reloadChat() })
chatbotToggler.addEventListener("click", () => document.body.classList.toggle("show-chatbot"));
}
function openExternalPage(url) {
console.log('openExternalPage',url)
window.open(url,'_blank')
}
function showHideEmoticon() {
if (isEmoticons) {
document.getElementById('emoticonsContainer').style.display = 'none';
isEmoticons = false
} else {
document.getElementById('emoticonsContainer').style.display = 'flex';
isEmoticons = true
}
}
function appendMessage(emoticon) {
let val = chatInput.value.trim()
chatInput.value = val + ' ' + emoticon
}
function reloadChat() {
let htmlData = `