File size: 4,302 Bytes
5f73f37
e56a79c
5f73f37
2da39c0
0c9f1f3
 
5f73f37
 
 
6b91e96
 
 
 
5f73f37
 
 
 
 
6b91e96
5f73f37
 
 
294ffbb
6b91e96
 
 
 
 
 
 
 
 
8170b7e
6b91e96
 
5f73f37
 
 
 
 
 
 
 
d1b90c5
 
dce7cd4
5f73f37
dce7cd4
 
 
5f73f37
dce7cd4
 
 
 
 
 
d1b90c5
 
 
 
 
dce7cd4
 
 
d1b90c5
 
5f73f37
 
 
 
 
 
 
 
dce7cd4
3d60223
 
 
912ae9b
 
 
3d60223
5309ff5
3d60223
 
dce7cd4
5309ff5
 
3d60223
 
5309ff5
 
 
 
 
 
3d60223
 
 
5309ff5
3d60223
 
dce7cd4
 
5309ff5
3b2bc6b
 
 
2da39c0
3b2bc6b
6b91e96
912ae9b
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
let conversation = [
    { role: 'bot', message: "Hi there! I'm Chat Bot! May I know your name?" }
];
let selectedIngredients = [];
let selectedMenuItem = null;
let cart = [];

function addMessage(role, message) {
    const chatMessages = document.getElementById('chatMessages');
    if (!chatMessages) {
        console.error('Chat messages container not found!');
        return;
    }
    const messageDiv = document.createElement('div');
    messageDiv.className = role === 'bot' ? 'bot-message' : 'user-message';
    messageDiv.textContent = message;
    chatMessages.appendChild(messageDiv);
    chatMessages.scrollTop = chatMessages.scrollHeight;
    console.log(`Added ${role} message: ${message}`);
}

function sendMessage() {
    const userInput = document.getElementById('userInput');
    if (!userInput) {
        console.error('User input field not found!');
        return;
    }
    const message = userInput.value.trim();
    if (message) {
        addMessage('user', message);
        conversation.push({ role: 'user', message: message });
        userInput.value = '';
        setTimeout(() => handleResponse(message), 500);
    } else {
        console.warn('Empty message!');
    }
}

function handleResponse(userInput) {
    const lastMessage = conversation[conversation.length - 1].message.toLowerCase();
    let botResponse = '';
    let options = [];

    // Handle name input (first user response after bot's greeting)
    if (conversation.length === 2 && conversation[0].role === 'bot' && conversation[0].message.includes('May I know your name?')) {
        botResponse = `Nice to meet you, ${userInput}! 😊 How can I assist you today?`;
        options = [
            { text: 'How do I contact customer support?', class: 'blue' },
            { text: 'What are your business hours?', class: 'blue' },
            { text: 'How do I reset my password?', class: 'blue' }
        ];
    } else if (lastMessage.includes('how do i contact customer support?')) {
        botResponse = 'You can email us at [email protected].';
    } else if (lastMessage.includes('what are your business hours?')) {
        botResponse = 'We are open from 9 AM to 6 PM, Monday to Friday.';
    } else if (lastMessage.includes('how do i reset my password?')) {
        botResponse = 'Click on "Forgot Password" on the login page.';
    } else {
        // Fallback for unrecognized input
        botResponse = "Sorry, I didn't understand that. Could you please clarify or choose an option?";
        if (conversation.length === 2) {
            options = [
                { text: 'How do I contact customer support?', class: 'blue' },
                { text: 'What are your business hours?', class: 'blue' },
                { text: 'How do I reset my password?', class: 'blue' }
            ];
        }
    }

    addMessage('bot', botResponse);
    if (options.length > 0) {
        displayOptions(options);
    }
}

function displayOptions(options) {
    const chatMessages = document.getElementById('chatMessages');
    if (!chatMessages) {
        console.error('Chat messages container not found for options!');
        return;
    }

    // Display each option as a chat message
    options.forEach(opt => {
        const messageDiv = document.createElement('div');
        messageDiv.className = 'bot-message'; // This ensures the options look like bot messages
        const button = document.createElement('button');
        button.textContent = opt.text;
        button.className = `option-button ${opt.class}`;
        
        // When an option is clicked, treat it as a user response and trigger the appropriate handler
        button.onclick = () => {
            addMessage('user', opt.text);
            conversation.push({ role: 'user', message: opt.text });
            setTimeout(() => handleResponse(opt.text), 500);
        };

        messageDiv.appendChild(button);
        chatMessages.appendChild(messageDiv); // Append the button inside a bot message container
    });

    // Scroll to the bottom of the chat container
    chatMessages.scrollTop = chatMessages.scrollHeight;
}


document.getElementById('userInput').addEventListener('keypress', function(e) {
    if (e.key === 'Enter') {
        sendMessage();
    }
});

console.log('Script loaded successfully');