Assignment 13

TRIE Spellchecker

by dhizzybusy

HTML

<p id="Assignment 13">
  TRIE Spellchecker
</p><br /> Word to Add:
<input type="textbox" id="X" value="" />
<input type="button" value="Add To Dictionary" onclick="AddTo();" />
<input type="button" value="Spell Check" onclick="CheckSpelling();" />
<p id="output"></p>
<p id="output2"> </p>

JavaScript

function Trie(key) {
  this.key = key;
  this.value;
}

Trie.prototype.AddToTrie = function(name) {

  var node = this,
    nameLength = name.length,
    i = 0,
    currentLetter;

  for (i = 0; i < nameLength; i++) {
    currentLetter = name[i];
    node = node[currentLetter] || (node[currentLetter] = new Trie(currentLetter));
  }

  node.value = name;
  node.name = name;

};

Trie.prototype.SpellCheck = function(name) {

  var node = this,
    nameLength = name.length,
    i, node;

  for (i = 0; i < nameLength; i++) {
    if (!(node = node[name[i]])) break;
  }

  return (i === nameLength) ? 'Value Exists' : 'Value Not Found !';
};

//Tree Seeded with values below
var dict = new Trie();
dict.AddToTrie("I");
dict.AddToTrie("in");
dict.AddToTrie("into");
dict.AddToTrie("inlet");
dict.AddToTrie("inn");
dict.AddToTrie("inner");
dict.AddToTrie("innate");
dict.AddToTrie("ink");


//Add function
function AddTo() {
  document.getElementById("output2").innerHTML = "";
  var Value = document.getElementById("X").value;
  if (Value == 0) {
    var A = "Please Enter A Value";
    return A;
  }

  dict.AddToTrie(Value);
  document.getElementById("output").innerHTML = "Word Added : " + Value;

}

//Check function
function CheckSpelling() {
  document.getElementById("output").innerHTML = "";
  document.getElementById("output2").innerHTML = "Word Checked: ";
  var Value = document.getElementById("X").value;

  if (Value == 0) {
    var A = "Please Enter A Value";
    return A;
  }

  document.getElementById("output").innerHTML = dict.SpellCheck(Value);
  document.getElementById("output2").innerHTML += Value;


}