// Author: Matthew Shiel
$("#user-input-form").submit(
function (event) {
event.preventDefault();
// Store input in a variable
var question = $('#user-input').val().trim() // Remove whitespace
var bot = $('#bot-name').val().trim() // Remove whitespace
var session = $('#session-id').val().trim() // Remove whitespace
var user = $('#user-name').val().trim() // Remove whitespace
// Clear the input box
$('#user-input').val("");
// If the user doesn't input anything return nothing
if (!question) {
return;
}
// Append the user's question to the list and clear input
$("#output-area").append('
' + question + '');
// scroll to the bottom of the messages
// adapted from https://stackoverflow.com/questions/11715646/scroll-automatically-to-the-bottom-of-the-page
$('#output-area').animate({
scrollTop: $('#output-area').prop("scrollHeight")
}, 300);
$.get('/user-input', {
value: question,
bot: bot,
session: session,
user: user
})
.done(function (data) {
// Set a timeout to make Eliza seem like she's thinking
// Adapted random number in a range from here https://stackoverflow.com/questions/1527803/generating-random-whole-numbers-in-javascript-in-a-specific-range
setTimeout(() => {
// Add Eliza's answer to the list
addListItem(data);
}, Math.floor(Math.random() * (2000 - 600 + 1)) + 600);
})
});
function addListItem(input) {
// Add the input to the list
$("#output-area").append('' + input + '')
// Automatically scroll to the last message
// adapted from https://stackoverflow.com/questions/11715646/scroll-automatically-to-the-bottom-of-the-page
$('#output-area').animate({
scrollTop: $('#output-area').prop("scrollHeight")
}, 300);
}