The Doc Dialer, Part 2: A Browser Independent Version: Prompting the User

The Doc Dialer, Part 2: A Browser Independent Version

Prompting the User

One of the new features of this column is the ability to prompt the user for new names and extension numbers. The function enterNewName() does not take any parameters and checks that the entered name is not a duplicate of an entry already in the system:

function enterNewName() {
var aDuplicate = true;
while (aDuplicate) {
var newName = prompt("Enter A New Name, First Name followed by
Last Name, blank separated:", "Theodore Roosevelt");
// (The two lines above should be joined as one line.
// They have been split for formatting purposes.)
if (!newName) return;
var firstName = extractFirstName(newName);
var lastName = extractLastName(newName);
while (true) {
var phoneExt = parseInt(prompt("Enter employee's 4-digit
extension number:", "0000"));
// (The two lines above should be joined as one line.
// They have been split for formatting purposes.)
if (phoneExt >= 1000 && phoneExt

We begin with setting the variable aDuplicate to true:

var aDuplicate = true;

We keep prompting the user until a non-duplicate name is entered. First we prompt the user for the new name:

var newName = prompt("Enter A New Name, First Name followed by
Last Name, blank separated:", "Theodore Roosevelt");
// (The two lines above should be joined as one line.
// They have been split for formatting purposes.)

If the user cancels this prompt box, we return immediately to the main script:

We then go an infinite loop for prompting the new employee's extension number. We break the loop only when the entered extension is a 4-digit number:

while (true) {
var phoneExt = parseInt(prompt("Enter employee's 4-digit
extension number:", "0000"));
// (The two lines above should be joined as one line.
// They have been split for formatting purposes.)
if (phoneExt >= 1000 && phoneExt

Still to be checked is whether the new name-extension combination is a duplicate of an existing name-extension combination. The new name is comprised of the first and last name with a blank delimiter in between:

empList[lastEmp] = firstName + " " + lastName;

We then call the verifyNewName() function which takes two parameters: the new name and the new extension:

aDuplicate = verifyNewName(checkNewName, phoneExt);

We'll describe this function on the next page. Once the entered name-index combination is not a duplicate, aDuplicate becomes false and the while(aDuplicate) loop is broken. What's left to be done is to increment the number of entries:

lastEmp++;

Store the new name in the empList array:

empList[lastEmp] = firstName + " " + lastName;

Store his or her extension:

empPhone[lastEmp] = phoneExt;

Finally, we can add the new entry to the trie data structure. First we enter the first name followed by the last name: