﻿// JScript File
Type.registerNamespace('AjaxTutorial');

// Dictionary constructor
AjaxTutorial.Dictionary = function() {
  this._prefix = "";
  this._results = [];
  this._dictionary = [
"Aaron", "Abdullah", "Abel", "Abraham", "Abram","Adam",
"Adan","Addison","Aden","Adin","Aditya","Adolfo","Adonis",
"Adrian","Adriel","Adrien","Aedan","Agustin","Ahmad","Ahmed",
"Aidan","Aiden","Ajax","Alan","Albert","Alberto","Alden",
"Aldo","Alec","Alejandro","Alessandro","Alex","Alexander",
"Alexandro","Alexis","Alexzander","Alfonso","Alfred",
"Alfredo","Ali","Alijah","Allan","Allen","Alonso","Alonzo",
"Alvaro","Alvin","Amare","Amari","Amarion","Amir","Anderson",
"Andre","Andreas","Andres","Andrew","Andy","Angel","Angelo",
"Anthony","Antoine","Anton","Antonio","Antony","Antwan","Ari",
"Ariel","Arjun","Armando","Armani","Arnav","Aron",
"Arthur","Arturo","Aryan","Asa","Asher","Ashton","Atticus",
"August","Augustus","Austen","Austin","Avery","Axel","Aydan",
"Ayden","Aydin","Baby","Bailey","Barrett","Beau","Ben",
"Benjamin","Bennett","Bernard","Bernardo","Billy","Blaine",
"Blaise","Blake","Blaze","Bobby","Bogdan","Brad","Braden",
"Bradley","Brady","Bradyn","Braeden","Braedon","Braiden",
"Branden","Brandon","Branson","Braulio","Braxton","Brayan",
"Brayden","Braydon","Braylen","Braylon","Brendan","Brenden",
"Brendon","Brennan","Brennen","Brent","Brenton","Brett","Brian",
"Brice","Bridger","Brock","Broderick","Brodie","Brody",
"Bronson","Brooks","Bruce","Bruno","Bryan","Bryant","Bryce",
"Brycen","Bryson","Byron","Cade","Caden","Cael","Caiden",
"Cale","Caleb","Calvin","Camden","Cameron","Campbell","Camren",
"Camron","Camryn","Cannon","Carl","Carlo","Carlos","Carlton",
"Carmelo","Carmine","Carson","Carter","Casey","Cash","Cason",
"Cayden","Cedric","Cesar","Chad","Chaim","Chance","Chandler",
"Charles","Charlie","Chase","Chaz","Chris","Christian",
"Christopher","Clarence","Clark","Clay","Clayton","Clifford",
"Clinton","Coby","Cody","Cohen","Colby","Cole","Coleman",
"Colin","Collin","Colt","Colten","Colton","Conner","Connor",
"Conor","Conrad","Cooper","Corbin","Corey","Cornelius",
"Cortez","Cory","Craig","Cristian","Cristobal","Cristofer",
"Cristopher","Cruz","Cullen","Curtis","Cyrus","Dakota","Dale",
"Dallas","Dallin","Dalton","Damari","Damarion","Damian",
"Damien","Damion","Damon","Dandre","Dane","Dangelo","Daniel",
"Danny","Dante","Daquan","Darian","Darien","Darin","Dario",
"Darion","Darius","Darnell","Darrell","Darren","Darrius",
"Darryl","Darwin","Daryl","Dashawn","Davian","David","Davin",
"Davion","Davis","Davon","Dawson","Dayton","Deacon","Dean",
"Deandre","Deangelo","Declan","Demarcus","Demarion",
"Demetrius","Dennis","Denzel","Deon","Derek","Derick",
"Derrick","Deshaun","Deshawn","Desmond","Destin","Devan",
"Deven","Devin","Devon","Devonte","Devyn","Dexter","Diego",
"Dillan","Dillon","Dimitri","Dion","Domenic","Dominic",
"Dominick","Dominik","Dominique","Donald","Donavan","Donovan",
"Donte","Dorian","Douglas","Drake","Draven","Drew","Duncan",
"Dustin","Dwayne","Dylan","Dylon","Ean","Earl","Easton",
"Eddie","Edgar","Edison","Eduardo","Edward","Edwin",
"Efrain", "Efren","Eli","Elian", "Elias","Elijah",
"Eliseo","Elisha","Elliot","Elliott",
"Ellis","Elmer","Elvin","Elvis","Emanuel","Emerson",
"Emiliano","Emilio","Emmanuel","Emmett","Enrique","Enzo",
"Eric","Erick","Erik","Ernest","Ernesto","Esteban","Estevan",
"Ethan","Ethen","Eugene","Evan","Everett","Ezekiel",
"Ezequiel","Ezra","Fabian","Felipe","Felix","Fernando",
"Fidel","Finn","Finnegan","Fisher","Francis","Francisco",
"Franco","Frank","Frankie","Franklin","Freddy","Frederick",
"Fredrick","Fredy","Gabriel","Gael","Gage","Gaige","Gannon",
"Garret","Garrett","Garrison","Gary","Gauge","Gaven","Gavin",
"Gavyn","Geoffrey","George","Gerald","Gerardo","German",
"Giancarlo","Gianni","Gideon","Gilbert","Gilberto","Giovani",
"Giovanni","Giovanny","Glenn","Gonzalo","Gordon","Grady",
"Graham","Grant","Grayson","Gregory","Greyson","Griffin",
"Guadalupe","Guillermo","Gunnar","Gunner","Gustavo","Haden",
"Hamza","Harley","Harold","Harrison","Harry","Hassan",
"Hayden","Heath","Hector","Henry","Holden","Houston",
"Howard","Hudson","Hugh","Hugo","Humberto","Hunter","Ian",
"Ibrahim","Ignacio","Immanuel","Irvin","Irving","Isaac",
"Isaak","Isai","Isaiah","Isaias","Isiah","Ismael","Israel",
"Issac","Ivan","Izaiah","Jabari","Jace","Jack","Jackson",
"Jacoby","Jaden","Jadon","Jadyn","Jaeden","Jaheim","Jaiden",
"Jaidyn","Jaime","Jair","Jairo","Jake","Jacob","Jakob",
"Jalen","Jamal","Jamar","Jamari","Jamarion","Jamel","James",
"Jameson","Jamie","Jamir","Jamison","Jan","Jaquan","Jared",
"Jaren","Jaron","Jarrett","Jarvis","Jase","Jason","Jasper",
"Javier","Javion","Javon","Jax","Jaxon","Jaxson","Jay",
"Jayce","Jayden","Jaydin","Jaydon","Jaylan","Jaylen",
"Jaylin","Jaylon","Jayson","Jean","Jefferson","Jeffery",
"Jeffrey","Jeramiah","Jeremiah","Jeremy","Jermaine","Jerome",
"Jerry","Jesse","Jessie","Jesus","Jett","Jimmy","Joaquin",
"Joe","Joel","Joey","Johan","John","Johnathan","Johnathon",
"Johnny","Johnpaul","Jon","Jonah","Jonas","Jonathan",
"Jonathon","Jordan","Jorden","Jordon","Jordy","Jordyn",
"Jorge","Jose","Josef","Joseph","Josh","Joshua","Josiah",
"Josue","Jovan","Jovani","Jovanni","Jovanny","Jovany",
"Juan","Judah","Jude","Julian","Julien","Julio","Julius",
"Junior","Justice","Justin","Justus","Kade","Kaden","Kadin",
"Kadyn","Kaeden","Kai","Kaiden","Kale","Kaleb","Kamari",
"Kamden","Kameron","Kamren","Kamron","Kane","Kanye","Kareem",
"Karl","Karson","Karter","Kasey","Kason","Kayden","Keagan",
"Keanu","Keaton","Keegan","Keenan","Keith","Kellen","Kelton",
"Kelvin","Kendall","Kendrick","Kennedy","Kenneth","Kenny",
"Kenyon","Keon","Keshawn","Keven","Kevin","Keyon","Keyshawn",
"Khalil","Kian","Kieran","Kobe","Kody","Kolby","Kole",
"Kolton","Konner","Konnor","Korbin","Korey","Kristian",
"Kristopher","Kurt","Kyan","Kylan","Kyle","Kyler","Lamar",
"Lance","Landen","Landon","Landyn","Lane","Larry","Lawrence",
"Lawson","Layne","Layton","Leandro","Lee","Leland","Leo",
"Leon","Leonard","Leonardo","Leonel","Leroy","Levi","Lewis",
"Liam","Lincoln","Logan","London","Lorenzo","Louis","Luca",
"Lucas","Lucian","Luciano","Luis","Luka","Lukas","Luke",
"Maddox","Makai","Makhi","Malachi","Malakai","Malaki",
"Malcolm","Malik","Manuel","Marc","Marcel","Marcelo","Marco",
"Marcos","Marcus","Mariano","Mario","Mark","Markell",
"Markus","Marlon","Marques","Marquez","Marquis","Marquise",
"Marshall","Martin","Marvin","Mason","Mateo","Mathew",
"Mathias","Matias","Matteo","Matthew","Matthias","Maurice",
"Mauricio","Maverick","Max","Maxim","Maximilian",
"Maximillian","Maximo","Maximus","Maxwell","Mekhi","Melvin",
"Messiah","Micah","Michael","Micheal","Miguel","Mike",
"Mikel","Miles","Milo","Milton","Misael","Mitchell",
"Mohamed","Mohammad","Mohammed","Moises","Morgan","Moses",
"Moshe","Muhammad","Myles","Nash","Nasir","Nathan",
"Nathanael","Nathanial","Nathaniel","Nathen","Nehemiah",
"Neil","Nelson","Nestor","Nicholas","Nick","Nickolas",
"Nico","Nicolas","Nigel","Nikhil","Nikolas","Noah","Noe",
"Noel","Nolan","Norman","Octavio","Oliver","Omar","Omari",
"Omarion","Orion","Orlando","Oscar","Osvaldo","Oswaldo",
"Owen","Pablo","Parker","Patrick","Paul","Paxton","Payton",
"Pedro","Perry","Peter","Peyton","Philip","Phillip",
"Phoenix","Pierce","Porter","Pranav","Preston","Prince",
"Quentin","Quincy","Quinn","Quinten","Quintin","Quinton",
"Rafael","Ralph","Ramiro","Ramon","Randall","Randy",
"Raphael","Rashad","Raul","Ray","Raymond","Reagan","Reece",
"Reed","Reese","Reginald","Reid","Reilly","Remington","Rene",
"Reuben","Rex","Rey","Reynaldo","Rhett","Rhys","Ricardo",
"Richard","Ricky","Rigoberto","Riley","Rishi","River",
"Robert","Roberto","Rocco","Rocky","Roderick","Rodney",
"Rodolfo","Rodrigo","Rogelio","Roger","Rohan","Roland",
"Rolando","Roman","Romeo","Ronald","Ronaldo","Ronan",
"Ronnie","Rory","Ross","Rowan","Roy","Royce","Ruben",
"Rudy","Russell","Ryan","Ryder","Ryker","Rylan","Ryland",
"Rylee","Sage","Salvador","Salvatore","Sam","Samir",
"Sammy","Samuel","Santiago","Santino","Santos","Saul",
"Savion","Sawyer","Scott","Seamus","Sean","Sebastian",
"Semaj","Sergio","Seth","Shamar","Shane","Shannon","Shaun",
"Shawn","Shayne","Shea","Sheldon","Sidney","Silas","Simeon",
"Simon","Sincere","Skylar","Skyler","Solomon","Sonny",
"Soren","Spencer","Stanley","Stefan","Stephan","Stephen",
"Sterling","Steve","Steven","Stone","Sullivan","Talan",
"Talon","Tanner","Tariq","Tate","Taylor","Tayshaun","Teagan",
"Terrance","Terrell","Terrence","Terry","Thaddeus",
"Theodore","Thomas","Timothy","Titus","Tobias","Toby",
"Todd","Tomas","Tommy","Tony","Trace","Travis","Travon",
"Trent","Trenton","Trevon","Trevor","Trey","Tristan",
"Tristen","Tristian","Tristin","Triston","Troy","Tucker",
"Ty","Tye","Tyler","Tyree","Tyrell","Tyrese","Tyrone",
"Tyshawn","Tyson","Ulises","Ulysses","Uriel","Valentin",
"Van","Vance","Vaughn","Vicente","Victor","Vincent",
"Vincenzo","Wade","Walker","Walter","Warren","Waylon",
"Wayne","Wesley","Weston","Will","William","Willie","Wilson",
"Winston","Wyatt","Xander","Xavier","Xzavier","Yahir",
"Yair","Yosef","Yusuf","Zachariah","Zachary","Zachery",
"Zack","Zackary","Zackery","Zain","Zaire","Zakary","Zander",
"Zane","Zavier","Zechariah","Zion" ];
}

// Dictionary members
AjaxTutorial.Dictionary.prototype = 
{
  // filter each item
  _matchItem : function( element, index, array)
  {             
    if (element.toLowerCase().indexOf(this._prefix.toLowerCase()) 
== 0) Array.add(this._results, element);
  },
    
  // get the matching items for a prefix
  getMatchingItems: function(prefix)
  {
    // return the cached items for the same prefix
    if(this._prefix.toLowerCase() == prefix.toLowerCase())
    {
      return Array.clone(this._results);
    }
        
    // fetch the new items according to the new prefix
    this._prefix = prefix.toString();        
    this._results = [];
        
    Array.forEach(this._dictionary, 
                  Function.createDelegate(this,this._matchItem));
    return Array.clone(this._results);
  }
};

// register the Dictionary class
AjaxTutorial.Dictionary.registerClass('AjaxTutorial.Dictionary');