﻿var females = new Array();

females[3] = true;
females[12] = true;
females[19] = true;
females[20] = true;
females[25] = true;
females[26] = true;
females[41] = true;
females[42] = true;
females[44] = true;
females[45] = true;
females[64] = true;
females[65] = true;
females[84] = true;
females[85] = true;
females[97] = true;
females[111] = true;
females[112] = true;
females[118] = true;
females[119] = true;
females[123] = true;
females[129] = true;
females[130] = true;
females[154] = true;
females[165] = true;
females[166] = true;
females[178] = true;
females[185] = true;
females[186] = true;
females[190] = true;
females[194] = true;
females[195] = true;
females[198] = true;
females[202] = true;
females[203] = true;
females[207] = true;
females[208] = true;
females[212] = true;
females[214] = true;
females[215] = true;
females[217] = true;
females[221] = true;
females[224] = true;
females[229] = true;
females[232] = true;
females[256] = true;
females[257] = true;
females[267] = true;
females[269] = true;
females[272] = true;
females[274] = true;
females[275] = true;
females[307] = true;
females[308] = true;
females[315] = true;
females[316] = true;
females[317] = true;
females[322] = true;
females[323] = true;
females[332] = true;
females[350] = true;
females[369] = true;
females[396] = true;
females[397] = true;
females[398] = true;
females[399] = true;
females[400] = true;
females[401] = true;
females[402] = true;
females[403] = true;
females[404] = true;
females[405] = true;
females[407] = true;
females[415] = true;
females[417] = true;
females[424] = true;
females[443] = true;
females[444] = true;
females[445] = true;
females[449] = true;
females[450] = true;
females[453] = true;
females[454] = true;
females[456] = true;
females[457] = true;
females[459] = true;
females[460] = true;
females[461] = true;
females[464] = true;
females[465] = true;
females[473] = true;

var forms = new Array();

forms[172] = new Array("", "spiky");
forms[201] = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "em", "qm");
forms[351] = new Array("", "fire", "water", "ice");
forms[386] = new Array("", "fr", "lg", "em");
forms[412] = new Array("", "ground", "steel");
forms[413] = new Array("", "ground", "steel");
forms[421] = new Array("", "sunny");
forms[422] = new Array("east", "west");
forms[423] = new Array("east", "west");
forms[479] = new Array("", "fire", "water", "ice", "flying", "grass");
forms[487] = new Array("", "origin");
forms[492] = new Array("", "sky");
forms[493] = new Array("normal", "fire", "water", "electric", "grass", "ice", "fighting", "poison", "ground", "flying", "psychic", "bug", "rock", "ghost", "dragon", "dark", "steel", "unknown");

var formnames = new Array();

formnames[172] = new Array("Normal", "Spiky-Ear")
formnames[201] = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "!", "?");
formnames[351] = new Array("Normal", "Sunny", "Rain", "Hail");
formnames[386] = new Array("Normal", "Attack", "Defense", "Speed");
formnames[412] = new Array("Plant Cloak", "Sand Cloak", "Trash Cloak");
formnames[413] = new Array("Plant Cloak", "Sand Cloak", "Trash Cloak");
formnames[421] = new Array("Normal", "Sunny");
formnames[422] = new Array("East", "West");
formnames[423] = new Array("East", "West");
formnames[479] = new Array("Normal", "Heat", "Wash", "Frost", "Spin", "Cut");
formnames[487] = new Array("Altered Forme", "Origin Forme");
formnames[492] = new Array("Land Forme", "Sky Forme");
formnames[493] = new Array("Normal", "Fire", "Water", "Electric", "Grass", "Ice", "Fighting", "Poison", "Ground", "Flying", "Psychic", "Bug", "Rock", "Ghost", "Dragon", "Dark", "Steel", "Unknown");

window.onload = assign;

var z = new Array(494);

z[1] = "bulbasaur";
z[2] = "ivysaur";
z[3] = "venusaur";
z[4] = "charmander";
z[5] = "charmeleon";
z[6] = "charizard";
z[7] = "squirtle";
z[8] = "wartortle";
z[9] = "blastoise";
z[10] = "caterpie";
z[11] = "metapod";
z[12] = "butterfree";
z[13] = "weedle";
z[14] = "kakuna";
z[15] = "beedrill";
z[16] = "pidgey";
z[17] = "pidgeotto";
z[18] = "pidgeot";
z[19] = "rattata";
z[20] = "raticate";
z[21] = "spearow";
z[22] = "fearow";
z[23] = "ekans";
z[24] = "arbok";
z[25] = "pikachu";
z[26] = "raichu";
z[27] = "sandshrew";
z[28] = "sandslash";
z[29] = "nidoranf";
z[30] = "nidorina";
z[31] = "nidoqueen";
z[32] = "nidoranm";
z[33] = "nidorino";
z[34] = "nidoking";
z[35] = "clefairy";
z[36] = "clefable";
z[37] = "vulpix";
z[38] = "ninetales";
z[39] = "jigglypuff";
z[40] = "wigglytuff";
z[41] = "zubat";
z[42] = "golbat";
z[43] = "oddish";
z[44] = "gloom";
z[45] = "vileplume";
z[46] = "paras";
z[47] = "parasect";
z[48] = "venonat";
z[49] = "venomoth";
z[50] = "diglett";
z[51] = "dugtrio";
z[52] = "meowth";
z[53] = "persian";
z[54] = "psyduck";
z[55] = "golduck";
z[56] = "mankey";
z[57] = "primeape";
z[58] = "growlithe";
z[59] = "arcanine";
z[60] = "poliwag";
z[61] = "poliwhirl";
z[62] = "poliwrath";
z[63] = "abra";
z[64] = "kadabra";
z[65] = "alakazam";
z[66] = "machop";
z[67] = "machoke";
z[68] = "machamp";
z[69] = "bellsprout";
z[70] = "weepinbell";
z[71] = "victreebel";
z[72] = "tentacool";
z[73] = "tentacruel";
z[74] = "geodude";
z[75] = "graveler";
z[76] = "golem";
z[77] = "ponyta";
z[78] = "rapidash";
z[79] = "slowpoke";
z[80] = "slowbro";
z[81] = "magnemite";
z[82] = "magneton";
z[83] = "farfetchd";
z[84] = "doduo";
z[85] = "dodrio";
z[86] = "seel";
z[87] = "dewgong";
z[88] = "grimer";
z[89] = "muk";
z[90] = "shellder";
z[91] = "cloyster";
z[92] = "gastly";
z[93] = "haunter";
z[94] = "gengar";
z[95] = "onix";
z[96] = "drowzee";
z[97] = "hypno";
z[98] = "krabby";
z[99] = "kingler";
z[100] = "voltorb";
z[101] = "electrode";
z[102] = "exeggcute";
z[103] = "exeggutor";
z[104] = "cubone";
z[105] = "marowak";
z[106] = "hitmonlee";
z[107] = "hitmonchan";
z[108] = "lickitung";
z[109] = "koffing";
z[110] = "weezing";
z[111] = "rhyhorn";
z[112] = "rhydon";
z[113] = "chansey";
z[114] = "tangela";
z[115] = "kangaskhan";
z[116] = "horsea";
z[117] = "seadra";
z[118] = "goldeen";
z[119] = "seaking";
z[120] = "staryu";
z[121] = "starmie";
z[122] = "mrmime";
z[123] = "scyther";
z[124] = "jynx";
z[125] = "electabuzz";
z[126] = "magmar";
z[127] = "pinsir";
z[128] = "tauros";
z[129] = "magikarp";
z[130] = "gyarados";
z[131] = "lapras";
z[132] = "ditto";
z[133] = "eevee";
z[134] = "vaporeon";
z[135] = "jolteon";
z[136] = "flareon";
z[137] = "porygon";
z[138] = "omanyte";
z[139] = "omastar";
z[140] = "kabuto";
z[141] = "kabutops";
z[142] = "aerodactyl";
z[143] = "snorlax";
z[144] = "articuno";
z[145] = "zapdos";
z[146] = "moltres";
z[147] = "dratini";
z[148] = "dragonair";
z[149] = "dragonite";
z[150] = "mewtwo";
z[151] = "mew";
z[152] = "chikorita";
z[153] = "bayleef";
z[154] = "meganium";
z[155] = "cyndaquil";
z[156] = "quilava";
z[157] = "typhlosion";
z[158] = "totodile";
z[159] = "croconaw";
z[160] = "feraligatr";
z[161] = "sentret";
z[162] = "furret";
z[163] = "hoothoot";
z[164] = "noctowl";
z[165] = "ledyba";
z[166] = "ledian";
z[167] = "spinarak";
z[168] = "ariados";
z[169] = "crobat";
z[170] = "chinchou";
z[171] = "lanturn";
z[172] = "pichu";
z[173] = "cleffa";
z[174] = "igglybuff";
z[175] = "togepi";
z[176] = "togetic";
z[177] = "natu";
z[178] = "xatu";
z[179] = "mareep";
z[180] = "flaaffy";
z[181] = "ampharos";
z[182] = "bellossom";
z[183] = "marill";
z[184] = "azumarill";
z[185] = "sudowoodo";
z[186] = "politoed";
z[187] = "hoppip";
z[188] = "skiploom";
z[189] = "jumpluff";
z[190] = "aipom";
z[191] = "sunkern";
z[192] = "sunflora";
z[193] = "yanma";
z[194] = "wooper";
z[195] = "quagsire";
z[196] = "espeon";
z[197] = "umbreon";
z[198] = "murkrow";
z[199] = "slowking";
z[200] = "misdreavus";
z[201] = "unown";
z[202] = "wobbuffet";
z[203] = "girafarig";
z[204] = "pineco";
z[205] = "forretress";
z[206] = "dunsparce";
z[207] = "gligar";
z[208] = "steelix";
z[209] = "snubbull";
z[210] = "granbull";
z[211] = "qwilfish";
z[212] = "scizor";
z[213] = "shuckle";
z[214] = "heracross";
z[215] = "sneasel";
z[216] = "teddiursa";
z[217] = "ursaring";
z[218] = "slugma";
z[219] = "magcargo";
z[220] = "swinub";
z[221] = "piloswine";
z[222] = "corsola";
z[223] = "remoraid";
z[224] = "octillery";
z[225] = "delibird";
z[226] = "mantine";
z[227] = "skarmory";
z[228] = "houndour";
z[229] = "houndoom";
z[230] = "kingdra";
z[231] = "phanpy";
z[232] = "donphan";
z[233] = "porygon2";
z[234] = "stantler";
z[235] = "smeargle";
z[236] = "tyrogue";
z[237] = "hitmontop";
z[238] = "smoochum";
z[239] = "elekid";
z[240] = "magby";
z[241] = "miltank";
z[242] = "blissey";
z[243] = "raikou";
z[244] = "entei";
z[245] = "suicune";
z[246] = "larvitar";
z[247] = "pupitar";
z[248] = "tyranitar";
z[249] = "lugia";
z[250] = "hooh";
z[251] = "celebi";
z[252] = "treecko";
z[253] = "grovyle";
z[254] = "sceptile";
z[255] = "torchic";
z[256] = "combusken";
z[257] = "blaziken";
z[258] = "mudkip";
z[259] = "marshtomp";
z[260] = "swampert";
z[261] = "poochyena";
z[262] = "mightyena";
z[263] = "zigzagoon";
z[264] = "linoone";
z[265] = "wurmple";
z[266] = "silcoon";
z[267] = "beautifly";
z[268] = "cascoon";
z[269] = "dustox";
z[270] = "lotad";
z[271] = "lombre";
z[272] = "ludicolo";
z[273] = "seedot";
z[274] = "nuzleaf";
z[275] = "shiftry";
z[276] = "taillow";
z[277] = "swellow";
z[278] = "wingull";
z[279] = "pelipper";
z[280] = "ralts";
z[281] = "kirlia";
z[282] = "gardevoir";
z[283] = "surskit";
z[284] = "masquerain";
z[285] = "shroomish";
z[286] = "breloom";
z[287] = "slakoth";
z[288] = "vigoroth";
z[289] = "slaking";
z[290] = "nincada";
z[291] = "ninjask";
z[292] = "shedinja";
z[293] = "whismur";
z[294] = "loudred";
z[295] = "exploud";
z[296] = "makuhita";
z[297] = "hariyama";
z[298] = "azurill";
z[299] = "nosepass";
z[300] = "skitty";
z[301] = "delcatty";
z[302] = "sableye";
z[303] = "mawile";
z[304] = "aron";
z[305] = "lairon";
z[306] = "aggron";
z[307] = "meditite";
z[308] = "medicham";
z[309] = "electrike";
z[310] = "manectric";
z[311] = "plusle";
z[312] = "minun";
z[313] = "volbeat";
z[314] = "illumise";
z[315] = "roselia";
z[316] = "gulpin";
z[317] = "swalot";
z[318] = "carvanha";
z[319] = "sharpedo";
z[320] = "wailmer";
z[321] = "wailord";
z[322] = "numel";
z[323] = "camerupt";
z[324] = "torkoal";
z[325] = "spoink";
z[326] = "grumpig";
z[327] = "spinda";
z[328] = "trapinch";
z[329] = "vibrava";
z[330] = "flygon";
z[331] = "cacnea";
z[332] = "cacturne";
z[333] = "swablu";
z[334] = "altaria";
z[335] = "zangoose";
z[336] = "seviper";
z[337] = "lunatone";
z[338] = "solrock";
z[339] = "barboach";
z[340] = "whiscash";
z[341] = "corphish";
z[342] = "crawdaunt";
z[343] = "baltoy";
z[344] = "claydol";
z[345] = "lileep";
z[346] = "cradily";
z[347] = "anorith";
z[348] = "armaldo";
z[349] = "feebas";
z[350] = "milotic";
z[351] = "castform";
z[352] = "kecleon";
z[353] = "shuppet";
z[354] = "banette";
z[355] = "duskull";
z[356] = "dusclops";
z[357] = "tropius";
z[358] = "chimecho";
z[359] = "absol";
z[360] = "wynaut";
z[361] = "snorunt";
z[362] = "glalie";
z[363] = "spheal";
z[364] = "sealeo";
z[365] = "walrein";
z[366] = "clamperl";
z[367] = "huntail";
z[368] = "gorebyss";
z[369] = "relicanth";
z[370] = "luvdisc";
z[371] = "bagon";
z[372] = "shelgon";
z[373] = "salamence";
z[374] = "beldum";
z[375] = "metang";
z[376] = "metagross";
z[377] = "regirock";
z[378] = "regice";
z[379] = "registeel";
z[380] = "latias";
z[381] = "latios";
z[382] = "kyogre";
z[383] = "groudon";
z[384] = "rayquaza";
z[385] = "jirachi";
z[386] = "deoxys";
z[387] = "turtwig";
z[388] = "grotle";
z[389] = "torterra";
z[390] = "chimchar";
z[391] = "monferno";
z[392] = "infernape";
z[393] = "piplup";
z[394] = "prinplup";
z[395] = "empoleon";
z[396] = "starly";
z[397] = "staravia";
z[398] = "staraptor";
z[399] = "bidoof";
z[400] = "bibarel";
z[401] = "kricketot";
z[402] = "kricketune";
z[403] = "shinx";
z[404] = "luxio";
z[405] = "luxray";
z[406] = "budew";
z[407] = "roserade";
z[408] = "cranidos";
z[409] = "rampardos";
z[410] = "shieldon";
z[411] = "bastiodon";
z[412] = "burmy";
z[413] = "wormadam";
z[414] = "mothim";
z[415] = "combee";
z[416] = "vespiquen";
z[417] = "pachirisu";
z[418] = "buizel";
z[419] = "floatzel";
z[420] = "cherubi";
z[421] = "cherrim";
z[422] = "shellos";
z[423] = "gastrodon";
z[424] = "ambipom";
z[425] = "drifloon";
z[426] = "drifblim";
z[427] = "buneary";
z[428] = "lopunny";
z[429] = "mismagius";
z[430] = "honchkrow";
z[431] = "glameow";
z[432] = "purugly";
z[433] = "chingling";
z[434] = "stunky";
z[435] = "skuntank";
z[436] = "bronzor";
z[437] = "bronzong";
z[438] = "bonsly";
z[439] = "mimejr";
z[440] = "happiny";
z[441] = "chatot";
z[442] = "spiritomb";
z[443] = "gible";
z[444] = "gabite";
z[445] = "garchomp";
z[446] = "munchlax";
z[447] = "riolu";
z[448] = "lucario";
z[449] = "hippopotas";
z[450] = "hippowdon";
z[451] = "skorupi";
z[452] = "drapion";
z[453] = "croagunk";
z[454] = "toxicroak";
z[455] = "carnivine";
z[456] = "finneon";
z[457] = "lumineon";
z[458] = "mantyke";
z[459] = "snover";
z[460] = "abomasnow";
z[461] = "weavile";
z[462] = "magnezone";
z[463] = "lickilicky";
z[464] = "rhyperior";
z[465] = "tangrowth";
z[466] = "electivire";
z[467] = "magmortar";
z[468] = "togekiss";
z[469] = "yanmega";
z[470] = "leafeon";
z[471] = "glaceon";
z[472] = "gliscor";
z[473] = "mamoswine";
z[474] = "porygonz";
z[475] = "gallade";
z[476] = "probopass";
z[477] = "dusknoir";
z[478] = "froslass";
z[479] = "rotom";
z[480] = "uxie";
z[481] = "mesprit";
z[482] = "azelf";
z[483] = "dialga";
z[484] = "palkia";
z[485] = "heatran";
z[486] = "regigigas";
z[487] = "giratina";
z[488] = "cresselia";
z[489] = "phione";
z[490] = "manaphy";
z[491] = "darkrai";
z[492] = "shaymin";
z[493] = "arceus";

var taken = new Array(3);
var t;

function assign() {
   document.getElementById('generate1').onclick = writeone;
   document.getElementById('generate2').onclick = writetwo;
   document.getElementById('generate3').onclick = writethree;
   document.getElementById('find').onclick = find;
}

function find() {
   clear();
   var m;
   for (m = 1; m < 4; m++) {
      var found = false;
      var pokemon1 = document.getElementById('find' + m.toString()).value;
      pokemon1 = pokemon1.toLowerCase();
      var number1 = 0;

      pokemon1 = pokemon1.replace(/[^a-z0-9]/g, "");
      if (pokemon1 == "") {
         found = true;
      }
      while (!found) {
         number1++;
         if (pokemon1 == z[number1]) {
            number1 = number1.toString();
            while (number1.length < 3) {
               number1 = "0" + number1;
            }
            found = true;
            writesprites(number1);
            t = 0;
            while (t < 3) {
               if (taken[t] == "") {
                  taken[t] = pokemon1;
                  t = 3;
               }
               else {
                  t++;
               }
            }
         }
         if (number1 == z.length) {
            found = true;
            alert("There is no such Pokémon as '" + pokemon1 + "'. Please check your spelling.");
         }
      }
   }
}

function write() {
   var random1 = Math.floor(Math.random() * (z.length - 1)) + 1;
   var pokemon1 = z[random1];
   while (pokemon1 == taken[0] || pokemon1 == taken[1] || pokemon1 == taken[2]) {
      random1 = Math.floor(Math.random() * (z.length - 1)) + 1;
      pokemon1 = z[random1];
   }
   var number1 = random1.toString();
   while (number1.length < 3) {
      number1 = "0" + number1;
   }
   writesprites(number1);
   t = 0;
   while (t < 3) {
      if (taken[t] == "") {
         taken[t] = pokemon1;
         t = 3;
      }
      else {
         t++;
      }
   }
}

function clear() {
document.getElementById("sprites").innerHTML = "";
taken[0] = "";
taken[1] = "";
taken[2] = "";
}

function writeone() {
clear();
write();
}

function writetwo() {
clear();
write();
write();
}

function writethree() {
clear();
write();
write();
write();
}

function writesprites(number1) {
   document.getElementById("sprites").innerHTML += '<div class="pokemon"></div>';
   var pokeforms;
   var pokeformnames;
   if (forms[number1] != undefined) {
      pokeforms = forms[number1];
      pokeformnames = formnames[number1];
   }
   else if (females[number1 * 1] != undefined) {
      pokeforms = new Array("", "f");
      pokeformnames = new Array("Male", "Female");
   }
   else {
      pokeforms = new Array("");
      pokeformnames = new Array("Normal");
   }
   for (var i = 0; i < pokeforms.length; i++) {
      var formstring = "";
      if (pokeforms[i] != "") {
         formstring = "-" + pokeforms[i];
      }
      document.getElementById("sprites").lastChild.innerHTML += '<div class="form"><h3>' + pokeformnames[i] + '</h3><p><img src="hgsssprites/' + number1 + z[number1 * 1] + formstring + '.png" alt="' + z[number1 * 1] + '" /><img src="hgsssprites/frame2/' + number1 + z[number1 * 1] + formstring + '.png" alt="' + z[number1 * 1] + '" /></p><p><img src="hgssspritesshiny/' + number1 + z[number1 * 1] + formstring + '.png" alt="' + z[number1 * 1] + '" /><img src="hgssspritesshiny/frame2/' + number1 + z[number1 * 1] + formstring + '.png" alt="' + z[number1 * 1] + '" /></p></div>';
   }
}