<!--
// font properties for the monster list tables
var font_size		 = 2;
var font_color		 = "#3C2D17";
var version_num		 = "v1.6.1";
var popup_percent_width  = 75;	// percentage of screen width to use for exp table popup window
var popup_percent_height = 85;	// percentage of screen height to use for the exp table popup window
var exp = new Array()

function DivinityOn(div, div_mask)
{
  return (
    (div == "e" && (div_mask & 2)) ||
    (div == "s" && (div_mask & 4)) ||
    (div == "i" && (div_mask & 8)) ||
    (div == "f" && (div_mask & 16)) ||
    (div == "n" && (div_mask & 32)) ||
    ((div == "?" || div == "-") && (div_mask & 1)))
}

function Exp(n, l, e, k, d, mymin, mymax, spawn, race)
{
  this.name = n
  this.level = l
  this.eppd = e
  this.ksb = k
  this.divinity = d
  this.min = mymin
  this.max = mymax
  this.spawn = spawn
  this.race = race
}

function GetDivinity(d)
{
  switch (d)
  {
  case "-": return "Neutral"
  case "e": return "Earth"
  case "s": return "Storm"
  case "i": return "Ice"
  case "f": return "Fire"
  case "n": return "Night"
  case "?": return "Unknown"
  default: return ("calc bug: " + d)
  }
}

// n - name
// l - level
// e - eppd
// k - ksb
// d - divinity
// min and max - possible hitpoint range
// sp - spawning spots
// r - race
function z(n, l, e, k, d, min, max, sp, r)
{
  exp[exp.length] = new Exp(n, l, e, k, d, min, max, sp, r)
}

function SortByName(a, b)
{
  var anew = a.name.toLowerCase()
  var bnew = b.name.toLowerCase()
  if (anew < bnew) return -1
  if (anew > bnew) return 1
  return 0
}

function SortByRace(a, b)
{
  if (a.race < b.race) return 1
  if (a.race > b.race) return -1
  return 0
}

function SortByLevel(a, b)
{
  if (isNaN(a.level)) return 1
  if (isNaN(b.level)) return -1

  if (a.level < b.level) return -1
  if (a.level > b.level) return 1
  return 0
}

function SortByBaseEPPD(a, b)
{
  if (isNaN(a.eppd)) return 1
  if (isNaN(b.eppd)) return -1

  if (a.eppd < b.eppd) return -1
  if (a.eppd > b.eppd) return 1
  return 0
}

function SortByBaseKSB(a, b)
{
  if (isNaN(a.ksb)) return 1
  if (isNaN(b.ksb)) return -1

  if (a.ksb < b.ksb) return -1
  if (a.ksb > b.ksb) return 1
  return 0
}

function SortByEPPD(a, b)
{
  if (isNaN(a.eppd)) return 1
  if (isNaN(b.eppd)) return -1

  var lvl = document.expform.level.selectedIndex + 1
  var eppd_a = a.eppd + a.eppd*(a.level - lvl)/10
  var eppd_b = b.eppd + b.eppd*(b.level - lvl)/10

  if (eppd_a < eppd_b) return -1
  if (eppd_a > eppd_b) return 1
  return 0
}

function SortByKSB(a, b)
{
  if (isNaN(a.ksb)) return 1
  if (isNaN(b.ksb)) return -1

  var lvl = document.expform.level.selectedIndex + 1
  var ksb_a = a.ksb + a.ksb*(a.level - lvl)/10
  var ksb_b = b.ksb + b.ksb*(b.level - lvl)/10

  if (ksb_a < ksb_b) return -1
  if (ksb_a > ksb_b) return 1
  return 0
}
// n - name
// l - level
// e - eppd
// k - ksb
// d - divinity
// min and max - possible hitpoint range
// sp - spawning spots
// r - race
//function z(n, l, e, k, d, min, max, sp, r)

// seyil area
z("Horned Crab", NaN, NaN, NaN, 'f', '2144', '2417', 'Riverside Path', '?')
z("Aqua Sprite", NaN, NaN, NaN, 'i', '600', '954', 'Seyil River', '?')
z("Water Nymph", NaN, NaN, NaN, 'i', '1506', '1941', 'Seyil River', '?')
z("Angry Tiger", 26, 50, 50000, 'e', '?', '', 'Forest of Seyil', 'Animal')
z("Red Salamander", 26, 20, 50000, 'f', '4059', '4921', 'Forest of Seyil', '?')
z("Forest Troll", 24, 60, 60000, 'n', '1504', '1598', 'Forest of Seyil', 'Troll')
z("Forest Dragon", 24, 83, 71000, 's', '2011', '3951', 'Forest of Seyil - Dragon\'s Den', 'Dragon')
z("Red Speckled Toad", 24, 80, 80000, 'i', '815', '1143', 'Forest of Seyil - Lakeside Path', 'Fish')
z("Skeletal Miner", 24, 80, 80000, 'n', '2002', '2946', 'Mines of Seyil', 'Undead/Demon')
z("Zombie Miner", 24, 80, 80000, 'e', '2138', '2914', 'Mines of Seyil', 'Undead/Demon')

// general areas
z("Kobold Child", 1, 8, 130, 'i', '6', '13', 'Kobold Warrens', 'Kobold')
z("Giant Bat", 2, 10, 250, 'n', '25', '45', 'Arenas', 'Animal')
z("Hell Rabbit", 3, 10, 100, 'f', '6', '12', 'Ruins, Arenas', 'Animal')
z("Kobold", 3, 10, 150, 's', '8', '16', 'Kobold Warrens', 'Kobold')
z("Goblin", 3, 15, 250, 's', '8', '20', 'Arenas, Mountain Path, Sylvan Road, Dark Goblin Village, Forest', 'Goblin')
z("Cave Bat", 4, 20, 700, 'e', '25', '65', 'Kobold Warrens, Sewers', 'Animal')
z("Mushroom Man", 5, 15, 650, 's', '15', '28', 'Arenas', '?')
z("Lizard Woman", 5, 20, 1500, 'i', '20', '50', 'Sewers', '?')
z("Lizard Man", 5, 20, 2000, 'i', '40', '60', 'Sewers', '?')
z("Kobold Merchant", 5, 27, 2500, 'e', '25', '35', 'Kobold Warrens', 'Kobold')
z("Bandit", 6, 25, 1100, 'i', '30', '75', 'Caravan Roads, Forest Path, Mountain Trail, Sylvan Road', 'Human')
z("Orc", 7, 20, 4000, 'f', '75', '155', 'Sylvan Road, Moorish Road, Mountain Path', 'Orc')
z("Kobold Leader", 8, 60, 8000, 's', '250', '300', 'Kobold Warrens', 'Kobold')
z("Goblin Shaman", 9, 30, 1000, 'e', '37', '64', 'Sylvan Road, Forest', 'Goblin')
z("Wolf", 10, 35, 1250, 'f', '45', '75', 'Mountain Path, Hallowed Woods', 'Animal')
z("Ogre", 10, 35, 2000, 'n', '80', '180', 'Sylvan Road, Moorish Road', 'Orc')
z("Orc Chieftain", 10, 50, 10000, 'e', '245', '275', 'Sylvan Road, Forest', 'Orc')
z("Troll", 14, 30, 4500, 's', '65', '140', 'Arenas, Mountain Path, Caravan Road, Moors, Maze', 'Troll') // kinar Sep10,'03
z("Bear", 12, 40, 2000, 'n', '100', '200', 'Mountain Trail', 'Animal')
z("Goblin Chieftain", 12, 40, 8000, 'e', '115', '165', 'Dark Goblin Village, Sylvan Road', 'Goblin')
z("Forest Snake", 16, 55, 40000, 'n', '375', '640', 'Forest Path, Caravan Road, Sylvan Road, Elven Forest', 'Animal')
z("Dracolisk", 16, 60, 8000, 'e', '240', '340', 'Maze, Ruins, Mines', 'Dragon')
z("Troll Mage", 16, 45, 10000, 'n', '350', '600', 'Caravan Road', 'Troll')
z("Hill Giant", 15, 40, 12000, 'f', '240', '300', 'Mountain Path', 'Giant')
z("Mountain Giant", 17, 37, 8000, 'e', '280', '350', 'Mountain Path', 'Giant')
z("Thief", 17, 50, 50000, 'n', '500', '750', 'Caravan Roads, Arenas', 'Human')
z("Green Giant", 18, 50, 26400, 'e', '1050', '1300', 'Forest Path', 'Giant')
z("Rogue", 18, 55, 15000, 'f', '700', '950', 'Caravan Roads', 'Human')
z("Brigadier", 18, 60, 15000, 'i', '900', '1150', 'North Caravan Road', 'Human')
z("Lurker", 18, 60, 52000, 'n', '950', '1400', 'Mountain Areas', 'Dragon')
z("Garden Snake", 18, 65, 40000, 'f', '400', '850', 'Forest Path, Caravan Road, Sylvan Road, Elven Forest', 'Animal')
z("Assassin", 18, 50, 13333, 'e', '1200', '1650', 'North Caravan Road', 'Human')
z("Demon Hound", 19, 65, 50000, 'n', '750', '850', 'Caves of the Ancients, Caravan Road', '?')
z("Demon Spectre", 19, 65, 25000, 'i', '500', '800', 'Caves of the Ancients, Caravan Road', '?') // hps by Shadak
z("Vulture", 19, 70, 35000, 's', '600', '800', 'Mountain Area', 'Animal')
z("Crocodile", 24, 80, 53333, 'n', '600', '1200', 'Lake Tarnok', 'Animal')
z("Head Bandit", 24, 100, 25000, 's', '1525', '2235', 'North Caravan Road', '?')
z("Fisherman", 24, 75, 40000, 'n', '500', '1000', 'Lake Tarnok', 'Human')
z("Bullfrog", 24, 80, 60000, 'i', '800', '1000', 'Lake Tarnok, Lake Salpua', 'Animal')
z("Snapping Turtle", 24, 85, 50000, 's', '1000', '1300', 'Lake Tarnok', 'Animal')
z("Piranha", 24, 90, 50000, 'f', '500', '800', 'Lake Tarnok', 'Fish')
z("Orc Shaman", NaN, NaN, NaN, 'e', '45', '65', 'Sylvan Road, Forest, Mountain Tunnels', 'Orc')
z("Training Dummy", NaN, NaN, NaN, '-', '225', '625', 'Various Arenas', '?')
z("Bridge Troll", NaN, NaN, NaN, 'e', '?', '', 'Bridge on the road to Elmarae', 'Troll')
z("Cougar", NaN, NaN, NaN, 'f', '?', '', 'Mountain Path north of Elmarae', '?')
z("Bludberry Bush", NaN, NaN, NaN, '?', '?', '', 'Barbarian Alley', '?')
z("Barbarian", 12, 35, 12000, '-', '300', '400', 'Barbarian Road', 'Human')
z("Pickpocket", NaN, NaN, NaN, '?', '200', '250', 'Balzhaar\'s Tower', '?')
z("Stone Giant", 16, 33, 8, 'e', '500', '640', 'Hermit\'s Mountain', 'Giant')
z("Lake Beast", 24, NaN, NaN, '-', '8500', '12500', 'Lake Tarnok', '?')
z("Elven Guard", NaN, NaN, NaN, 'e', '200', '', 'Elven Forest', 'Elf') // Shadak
z("Elven Scout", NaN, NaN, NaN, 'e', '200', '', 'Elven Forest', 'Elf') // Shadak
z("Elven Warrior", NaN, NaN, NaN, 'e', '350', '400', 'Elven Forest', 'Elf') // Shadak

//vetra
z("Flying Fish", 3, 25, 1000, 'i', '15', '25', 'Vetra Beach', 'Fish')
z("Leopard", 4, 25, 2500, 'i', '30', '50', 'Vetra Island', 'Animal')
z("Crab", 5, 30, 2000, 'f', '25', '40', 'Vetra Island', '?')
z("King Crab", 8, 100, 10000, 'i', '400', '500', 'Vetra Island', '?')
z("Goblin Rogue", 9, 30, 1500, 'n', '25', '35', 'Dark Goblin Village', 'Goblin')
z("Goblin Jailer", NaN, NaN, NaN, '?', '135', '140', 'Dark Goblin Village', 'Goblin')

// moors / dense & terra forest
z("Swamp Rat", 12, 30, 1800, 'e', '55', '65', 'Moors', 'Animal')
z("Sylvan Witch", 12, 30, 4000, 'n', '50', '150', 'Arenas, Dense Forest', '?')
z("Hobgoblin", 13, 35, 2500, 's', '75', '125', 'Dense Forest', 'Goblin')
z("Swamp Worm", 13, 50, 20000, 'e', '?', '', 'Moors', '?')
z("Giant Spider", 14, 55, 2000, 'e', '400', '500', 'Abandoned Outpost, Hallowed Woods', 'Animal')
z("Strider", 14, 55, 2250, 'f', '300', '500', 'Abandoned Outpost, Caravan Road, Hallowed Woods', '?')
z("Serpent", 14, 60, 10000, 'e', '180', '280', 'Hyssa\'s Shrine', '?')
z("Vampyre Spider", 17, 60, 16000, 'n', '500', '750', 'Access Tunnels', '?')
z("Snake Priestess", 18, 45, 12000, 'e', '200', '300', 'Hyssa\'s Shrine', '?')
z("Hyssa", 19, 100, 50000, 'e', '?', '', 'Hyssa\'s Shrine', '?')

// vale
z("Druid", 15, 50, 15000, 'i', '500', '800', 'Arenas, Vale of Mist, Great Tree', 'Elf')
z("Treant", NaN, NaN, NaN, 'e', '?', '', 'Vale of Mist', '?')
z("Treant Lord", NaN, NaN, NaN, 'e', '?', '', 'Vale of Mist', '?')
z("Faery", NaN, NaN, NaN, 's', '?', '', 'Vale of Mist', '?')
z("Faery Guardian", NaN, NaN, NaN, 's', '?', '', 'Vale of Mist', '?')
z("Unicorn", NaN, NaN, NaN, 'i', '?', '', 'Vale of Mist', '?')
z("Sprite", NaN, NaN, NaN, 'f', '?', '', 'Vale of Mist', '?')
z("Brownie", NaN, NaN, NaN, 'e', '?', '', 'Vale of Mist', '?')
z("Brownie Enforcer", NaN, NaN, NaN, '?', '?', '', 'Vale of Mist', '?')

// circus
z("Juggler", 17, 50, 26666, 'e', '600', '1150', 'Circus', 'Human')
z("Crazed Fan", 17, 76, 50000, 'f', '800', '1450', 'Circus', 'Human')
z("Magician", 17, 80, 120000, 'n', '800', '1450', 'Circus', 'Human')
z("Acrobat", 19, 80, 50000, 's', '600', '1250', 'Circus', 'Human')
z("Clown", 19, 82, 55000, 'i', '500', '1500', 'Circus', 'Human')

// ruins, cats, graveyard
z("Zombie", 15, 80, 50000, 's', '1000', '2000', 'Graveyard, Crypt, Ruins', 'Undead/Demon')
z("Ghoul", 15, 80, 14000, 'n', '?', '', 'Catacombs, Graveyard', 'Undead/Demon')
z("Skeleton", 16, 70, 15000, 'i', '350', '800', 'Dark Castle, Ruins, Graveyard, Catacombs', 'Undead/Demon')
z("Skeleton Guard", 17, 50, 20000, 'e', '500', '1000', 'Ruins, Dark Castle', 'Undead/Demon')
z("Dracolich", 24, 66, NaN, 'n', '?', '', 'Ruins, Catacombs', '?')
z("Death Knight", 24, 85, 70000, 's', '?', '', 'Catacombs', 'Undead/Demon')
z("Shade", 24, 85, 42500, 's', '?', '', 'Catacombs', 'Undead/Demon')
z("Undertaker", 24, 87, 140000, 'n', '2400', '2600', 'Catacombs', '?')
z("Disrupter", 24, 90, 80000, 's', '2200', '2700', 'Catacombs', 'Undead/Demon')
z("Skeletal Beast", 24, 95, 90000, 'i', '?', '', 'Catacombs', 'Undead/Demon')
z("Wraith", 24, 100, 50000, 'i', '?', '?', 'Catacombs', 'Undead/Demon')
z("Wisp", NaN, NaN, NaN, 'f', '?', '', 'North Coastal Road', '?')
z("Ghost", NaN, NaN, NaN, 'n', '?', '', 'North Coastal Road', '?')
z("Beholder", NaN, NaN, NaN, '?', '8325', '8525', 'Ruins', '?')

// chessboard & castle
z("Black Pawn", 19, 23, 26666, 'e', '1300', '', 'Chess Board', 'Chess') // hps by Shadak
z("White Rook", 19, 50, 33333, 'e', '?', '', 'Chess Board', 'Chess')
z("White Pawn", 19, 70, 40000, 's', '1300', '', 'Chess Board', 'Chess') // hps by Shadak
z("White Bishop", 19, 75, 50000, 'i', '1500', '1700', 'Chess Board', 'Chess')
z("Black Bishop", 19, 75, 100000, 'n', '1500', '1700', 'Chess Board', 'Chess')
z("Black Rook", 19, 75, 100000, 'n', '?', '', 'Chess Board', 'Chess')
z("Skeleton Prisoner", 19, 75, 15000, '-', '600', '1250', 'Dark Castle', 'Undead/Demon')
z("Bone Rat", 19, 80, 15000, 's', '300', '500', 'Dark Castle', 'Undead/Demon')
z("Undead Prince", 19, 80, 50000, 'n', '?', '', 'Dark Castle', 'Undead/Demon')
z("Undead Princess", 19, 80, 20000, 'f', '?', '', 'Dark Castle', 'Undead/Demon')
z("Black Knight", 19, 80, 60000, 'f', '3000', '3500', 'Chess Board', 'Chess') // hps by Alidius
z("White Knight", 19, 80, 60000, 'f', '3000', '3500', 'Chess Board', 'Chess')
z("Lich", 20, 80, 40000, 'f', '2000', '2500', 'Catacombs, Dark Castle, Ruins', 'Undead/Demon') // hps by Shadak
z("White King", 20, 80, 60000, 'i', '?', '', 'Chess Board', 'Chess')
z("Black King", 20, 80, 60000, 's', '?', '', 'Chess Board', 'Chess')
z("Black Queen", 20, 90, 60000, 'i', '?', '', 'Chess Board', 'Chess')
z("White Queen", 20, 90, 120000, 'n', '?', '', 'Chess Board', 'Chess')
z("Skeleton Lord", 23, 100, 50000, 'i', '?', '', 'Dark Castle', 'Undead/Demon')

// under the mountain
z("Cave Dweller", 21, 56, 26666, 'e', '1200', '1500', 'Dwarven Mines', '?')
z("Minotaur", 19, 100, 15000, 'f', '350', '500', 'Maze, Mines', '?')
z("Dwarven Miner", 22, 83, 90000, 'n', '1200', '1500', 'Dwarven Mines', 'Dwarf')
z("Crazed Miner", 23, 85, 50000, 'i', '1400', '1700', 'Dwarven Mines', 'Dwarf')
z("Mining Supervisor", 24, 90, 65000, 's', '2000', '2500', 'Mines (Newest Excavations)', 'Dwarf')
z("Minotaur Guard", NaN, NaN, NaN, '?', '1300', '1500', 'Mines', '?')

// anthill
z("Worker Ant", 20, 70, 40000, 'i', '1000', '1500', 'Ant\'s Nest', 'Ant')
z("Soldier Ant", 21, 53, 33000, 'e', '1250', '1800', 'Ant\'s Nest', 'Ant')
z("Ant Shaman", 22, 90, NaN, 's', '1500', '2000', 'Ant\'s Nest', 'Ant')
z("Ant Queen", NaN, NaN, NaN, '?', '?', '', 'Ant\'s Nest', 'Ant')
z("Ant Pup", NaN, NaN, NaN, '?', '?', '', 'Ant\'s Nest', 'Ant')
z("Scavenger Ant", NaN, NaN, NaN, '?', '1050', '1350', 'North Coastal Road', '?')

// north of duskan
z("Harpy", 21, 75, 35000, 's', '?', '', 'Low Pass Trail', '?')
z("Lesser Gnoll", 21, 75, 40000, '-', '800', '1000', 'Low Pass Trail', '?')
z("Sand Raider", 23, 65, 50000, '-', '1050', '1750', 'Wastelands, Iffrin Road, Low Pass Trail', '?')
z("Dire Wolf", 23, 77, 45000, 'e', '1250', '1500', 'Low Pass Trail', 'Animal')
z("Greater Gnoll", 23, 80, 55000, '-', '1500', '1750', 'Low Pass Trail', '?')
z("Shadow Spider", 24, 65, 106000, 'n', '1535', '1986', 'Wastelands', '?') // hps by Shadak
z("Sand Scarab", 24, 67, 56000, '-', '2002', '2821', 'North Iffrin Road', '?')
z("Nomad Spectre", 24, 70, 58000, 'i', '2544', '3083', 'Wastelands', 'Undead/Demon')
z("Pyrosaur", 24, 75, 60000, 'f', '4036', '4857', 'Wastelands', 'Dragon')
z("Sand Cat", 24, 75, 68000, 'e', '2519', '2936', 'Wastelands', 'Animal')
z("Winter Wolf", 24, 80, 40000, 'i', '1500', '1700', 'Low Pass Area', 'Animal')
z("Yeti", 24, 80, 45000, 'i', '1625', '1925', 'Low Pass Area', '?')
z("Vampyre Wolf", 24, 80, 106000, 'n', '1500', '1750', 'Access Tunnels, Arenas', 'Animal')
z("Gargoyle", 24, 85, 50000, 's', '?', '', 'Low Pass Trail', '?')
z("Griffon", 24, 90, 95000, 's', '1508', '2948', 'Low Pass Trail, Winding Mountain Path', '?')
z("Cenobite", NaN, NaN, NaN, '-', '?', '', 'Acheron\'s Temple', 'Undead/Demon')
z("Hell Cat", NaN, NaN, NaN, 'f', '?', '', 'Low Path Area', '?')
z("Sabre Cat", NaN, NaN, NaN, 'f', '2505', '3095', 'Low Path Area', '?')
z("Imp", NaN, NaN, NaN, '-', '?', '', 'Wastelands', 'Undead/Demon')
z("Magus", NaN, NaN, NaN, 'f', '?', '', 'Magus Perch', 'Undead/Demon')

// happy land
z("Bloody Beaten Elf", 24, 40, 25000, 'n', '?', '', 'Happy Land', '?')
z("Poisonous Daisy", 24, 65, 60000, '-', '?', '', 'Happy Lands', '?')
z("Headless Gnome", 24, 70, 40000, 's', '?', '', 'Happy Lands', '?')
z("Sparrow", 24, 70, 65000, 's', '?', '', 'Happy Lands', 'Animal')
z("Demon Faerie", 24, 80, 100000, 'n', '800', '1000', 'Happy Land', 'Elemental')
z("Twisted Tulip", 24, 100, 300000, 'f', '?', '', 'Happy Forest', '?')
z("Keeper of the Underworld", 24, 105, 100000, 'f', '6000', '8000', 'Dwarven Mines: Trial of the Underworld', 'Undead/Demon')

// dire mist marsh
z("Dire Rat", NaN, NaN, NaN, 'i', '50', '100', 'Dire Mist Marsh', 'Animal') // or f?
z("Dire Wyrm", NaN, NaN, NaN, 'f', '?', '', 'Dire Mist Marsh', 'Dragon') // or n?
z("Bog Wolf", NaN, NaN, NaN, 's', '100', '200', 'Dire Mist Marsh', 'Animal')
z("Carnivorous Vine", NaN, NaN, NaN, 'e', '?', '', 'Dire Mist Marsh', '?')
z("Shadow Spectre", NaN, NaN, NaN, 's', '?', '', 'Dire Mist Marsh', '?')
z("Marsh Boar", NaN, NaN, NaN, 'i', '?', '', 'Dire Mist Marsh', '?')
z("Dire Panther", NaN, NaN, NaN, 'e', '475', '800', 'Dire Mist Marsh', 'Animal')

// terrruh
z("Human", NaN, NaN, NaN, '?', '10', '11', 'Arenas', 'Human')
z("Human Scholar", NaN, NaN, NaN, '?', '3000', '', 'Terruh Arena', 'Human')

// hides
z("Dark Backstabbing Dummy", NaN, NaN, NaN, 'n', '1500', '', 'Cloak and Dagger', '?')
z("Dirty Backstabbing Dummy", NaN, NaN, NaN, 'e', '1500', '', 'Cloak and Dagger', '?')
z("Flaming Backstabbing Dummy", NaN, NaN, NaN, 'f', '1500', '', 'Cloak and Dagger', '?')
z("Freezing Backstabbing Dummy", NaN, NaN, NaN, 'i', '1500', '', 'Cloak and Dagger', '?')
z("Lightning Backstabbing Dummy", NaN, NaN, NaN, 's', '1500', '', 'Cloak and Dagger', '?')

// tuskon swamp
z("Spitting Cricket", 29, 30, 30000, 'e', '?', '', 'Tuskon Area', '?')
z("Water Moccasin", 24, 66, 55000, 's', '?', '', 'Tuskon Area', 'Animal')
z("Gray Bear", 35, 50, 70000, 'e', '?', '', 'Tuskon Area', 'Animal')
z("Tuskon", NaN, NaN, NaN, '-', '?', '', 'Tuskon Area', '?')

// coven
z("Lesser Vampire", NaN, NaN, NaN, 'f', '?', '', 'Vampire Coven', 'Vampire')
z("Vampire Sentinel", NaN, NaN, NaN, 'n', '?', '', 'Vampire Coven', 'Vampire')
z("Apprentice Vampire", NaN, NaN, NaN, 'e', '?', '', 'Vampire Coven', 'Vampire')
z("Vampire Priest", NaN, NaN, NaN, 's', '?', '', 'Vampire Coven', 'Vampire')
z("Vampire Siren", NaN, NaN, NaN, 'i', '?', '', 'Vampire Coven', 'Vampire')
z("Vampire Elder", NaN, NaN, NaN, '-', '?', '', 'Vampire Coven', 'Vampire')
z("Vampire Warden", NaN, NaN, NaN, 's', '?', '', 'Vampire Coven', 'Vampire')
z("High Paladin", NaN, NaN, NaN, '-', '?', '', 'Vampire Coven', '?')

// nyx caves
z("Green Dragon", NaN, NaN, NaN, 'e', '?', '', 'Nyx Caves', 'Dragon')
z("Green Dragon Young", NaN, NaN, NaN, 'e', '?', '', 'Nyx Caves', 'Dragon')

// staff spawned
z("Runic Dragon", NaN, NaN, NaN, '-', '?', '', 'Staff Spawned', 'Dragon')
z("Dragon Sprite", NaN, NaN, NaN, '?', '?', '', 'Staff Spawned', 'Dragon')
z("Elder Runic Dragon", NaN, NaN, NaN, '?', '?', '', 'Staff Spawned', 'Dragon')
z("Rune Warlock", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')
z("Rune Priest", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')
z("Rune Warrior", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')
z("Rune Slayer", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')
z("Rune Avatar", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')
z("Rune Anti-Paladin", NaN, NaN, NaN, '-', '?', '', 'Staff spawned', 'Runic')

// other
z("Shadow Dragon", NaN, NaN, NaN, 'n', '?', '?', '', 'Dragon')
z("Storm Elemental", NaN, NaN, NaN, 's', '?', '?', '', 'Elemental')
z("Storm Elemental Young", NaN, NaN, NaN, 's', '?', '?', '', 'Elemental')

// summoned
z("Shadow Monster", NaN, NaN, NaN, 'n', '?', '', 'Summoned', 'Elemental')
z("Rock Monster", NaN, NaN, NaN, 'e', '?', '', 'Summoned', 'Elemental')
z("Lightning Monster", NaN, NaN, NaN, 's', '?', '', 'Summoned', 'Elemental')
z("Ice Monster", NaN, NaN, NaN, 'i', '?', '', 'Summoned', 'Elemental')
z("Lava Monster", NaN, NaN, NaN, 'f', '?', '', 'Summoned', 'Elemental')
z("Midge", NaN, NaN, NaN, '-', '?', '', 'Summoned', 'Undead/Demon')

// topor
z("Erebus Wraith", NaN, NaN, NaN, 'f', '?', '', 'Torpor', 'Elemental')
z("Erebus Guardian", NaN, NaN, NaN, '-', '?', '', 'Torpor', 'Elemental')
z("Shimmerling", NaN, NaN, NaN, 'f', '?', '', 'Torpor', 'Elemental') // or n?
z("Aether Sprite", NaN, NaN, NaN, 's', '?', '', 'Torpor', 'Elemental')
z("Time Grub", NaN, NaN, NaN, 'e', '?', '', 'Torpor', 'Elemental')
z("Apparition", NaN, NaN, NaN, 's', '?', '', 'Torpor', 'Undead/Demon')


// desert
z("Mummy Warrior", NaN, NaN, NaN, '?', '?', '', 'Khofu\'s Pyramid', 'Undead/Demon')
z("Mummy Priest", NaN, NaN, NaN, '?', '?', '', 'Khofu\'s Pyramid', 'Undead/Demon')
z("Khofu", NaN, NaN, NaN, 's', '?', '', 'Khofu\'s Pyramid', 'Undead/Demon')

// fortune
z("Giant Cave Dweller", NaN, NaN, NaN, 'e', '?', '', 'Fortune Island', '?')
z("Giant Snail", NaN, NaN, NaN, 'i', '?', '', 'Fortune Island', '?')
z("Giant Starfish", NaN, NaN, NaN, '?', '1750', '?', 'Fortune Island', '?')
z("Pirate", NaN, NaN, NaN, 'i', '?', '', 'Fortune Island', '?')
z("Drunken Pirate", NaN, NaN, NaN, '?', '?', '', 'Fortune Island', '?')
z("Pirate Necromancer", NaN, NaN, NaN, '?', '?', '', 'Fortune Island', '?')
z("Pirate Captain", NaN, NaN, NaN, 'i', '?', '', 'Fortune Island', '?')
z("Pirate Ghoul", NaN, NaN, NaN, '?', '?', '', 'Fortune Island', '?')
z("Captain\'s Spectre", NaN, NaN, NaN, 'n', '?', '', 'Fortune Island', '?')

// xerus
z("Xerusian Stalker", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Giant Pelican", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Sentinel", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Green Snake", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Army Ants", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Pit Viper", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Howler Monkey", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Tree Spider", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Sting Ray", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Xerusian Troll", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Etropian Ghoul", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Etropian Priest", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Reanimated Corpse", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Great Snapping Turtle", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Firestalker", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Nightstalker", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Earthstalker", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Windstalker", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Impaled Freinyeit Priestess", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Lebin Priest", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Giant Earthworm", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Glass Knight", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Image Guardian", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Cacodaemon", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')
z("Worm Goddess", NaN, NaN, NaN, '?', '?', '', 'Xerus Island', '?')

// coastal and cyprus road
z("Cypruss Tree", 12, 29, 5490, 'i', '?', '', 'Cypruss Road', '?')
z("Cranean Rogue - Male", 27, 5, 1500, 'i', '1444', '1776', 'South Coastal Road', '?')
z("Cranean Rogue - Female", 27, 5, 1500, 'n', '1435', '1719', 'South Coastal Road', '?')
z("Forest Bandit", 27, 2, 1000, 'e', '1736', '1995', 'South Coastal Road', '?')
z("Sea Scorpion", 30, 5, 1500, 'f', '1612', '2091', 'South Coastal Road', '?')
z("Grass Monster", 27, 4.97, 350, 'e', '?', '', 'Great Tree, Dredgewood Forest', '?')
z("Leaf Monster", 29, 10, 500, 'i', '?', '', 'Great Tree, Dredgewood Forest', '?')
z("Tree Monster", 28, 40, 36200, 'n', '?', '', 'Great Tree', '?')
z("Brigand", 34, 2, 1000, 'n', '?', '', 'South Coastal Road', '?')

// great tree
z("Elder Treegula", NaN, NaN, NaN, '?', '?', '', 'Great Tree', '?')

// whytehors
z("Famished Soldier", NaN, NaN, NaN, 'f', '?', '', 'Whytehors Region', '?')
z("Drunken Wizard", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Apple Priest", NaN, NaN, NaN, 'f', '?', '', 'Whytehors Region', '?')
z("Leit", NaN, NaN, NaN, 's', '?', '', 'Whytehors Region', '?')
z("Tzrean Demon", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', 'Undead/Demon')
z("Tzrean Demon Elder", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', 'Undead/Demon')
z("Locust Swarm", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Bog Beast", NaN, NaN, NaN, 'i', '?', '', 'Whytehors Region', '?')
z("Swamp Snake", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("River Witch", NaN, NaN, NaN, 'n', '?', '', 'Whytehors Region', '?')
z("Sand Lizard", NaN, NaN, NaN, 'n', '?', '', 'Whytehors Region', '?')
z("Giant Mosquito", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Water Faery", NaN, NaN, NaN, 'i', '?', '', 'Whytehors Region', '?')
z("Sacred Scarecrow", NaN, NaN, NaN, 'n', '?', '', 'Whytehors Region', '?')
z("Drael Bat", NaN, NaN, NaN, 's', '?', '', 'Whytehors Region', '?')
z("Giant Worm", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Y\'gDril", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Dark Acolyte", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Dark Neophyte", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Seritsa the Atramentous", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Xyze the Torturer", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')
z("Mutated Leviathan", NaN, NaN, NaN, '?', '?', '', 'Whytehors Region', '?')

// Lighthouse
z("Lost Soul", NaN, NaN, NaN, '?', '?', '', 'Lighthouse', '?')
z("Demon of Darkness", NaN, NaN, NaN, 'n', '?', '', 'Lighthouse', '?')
z("Ventos Young", NaN, NaN, NaN, 's', '?', '', 'Lighthouse', '?')
z("Flying Ventos", NaN, NaN, NaN, 's', '?', '', 'Lighthouse', '?')
z("Enraged Ventos", NaN, NaN, NaN, 's', '?', '', 'Lighthouse', '?')
z("Demon of the Flame", NaN, NaN, NaN, 'f', '?', '', 'Lighthouse', '?')
z("Lightswallower", NaN, NaN, NaN, 'n', '?', '', 'Lighthouse', '?')
z("Keeper of the Lighthouse", NaN, NaN, NaN, '?', '?', '', 'Lighthouse', '?')
z("Ocean Current", NaN, NaN, NaN, '?', '?', '', 'Lighthouse', '?')

// manor
z("Demonic Priest", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Spectre", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Werebear", NaN, NaN, NaN, 'e', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Werewolf", NaN, NaN, NaN, 'n', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Banshee", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Spirit of Valest", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', '?')
z("Draishtons Spirit", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Gremlin", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', '?')
z("Undead Butcher", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Maids Spirit", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Butlers Spirit", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')
z("Enchanted Bush", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', '?')
z("Living Statue", NaN, NaN, NaN, '?', '?', '', 'Draishton Manor', 'Undead/Demon')

exp.sort(SortByName)


function MakeList(nSortType, div_mask, nLvl, bRace, bDivinity, bMLevel, bEppd, bKsb, bHps, bMEppd, bMKsb, bLocations)
{
  switch (nSortType)
  {
  case 1:
    szHeader = "Name"
    break
  case 2:
    szHeader = "Race"
    exp.sort(SortByRace)
    break
  case 3:
    szHeader = "Level"
    exp.sort(SortByLevel)
    break
  case 4:
    szHeader = "Base EPPD (Experience Per Point of Damage)"
    exp.sort(SortByBaseEPPD)
    break
  case 5:
    szHeader = "Base KSB (Kill Shot Bonus)"
    exp.sort(SortByBaseKSB)
    break
  case 6:
    szHeader = "EPPD (Experience Per Point of Damage) at level " + nLvl
    exp.sort(SortByEPPD)
    break
  case 7:
    szHeader = "KSB (Kill Shot Bonus) at level " + nLvl
    exp.sort(SortByKSB)
    break
  default:
    alert("Invalid sort type: " + nSortType);
    return;
  }

  var m_count = 0

  width = screen.width * popup_percent_width / 100
  height = screen.height * popup_percent_height / 100
  window_options = 'toolbar=no,scrollbars=yes,resizable=yes,status=no,titlebar=yes,location=no,screenX=0,screenY=0,'+
					'menubar=no,personalbar=no,width=' + width + ',height=' + height
  expTableWin = window.open('',null,window_options)
  expTableWin.moveTo(150,10)
  expTableWin.document.open()
  expTableWin.document.write("Generating...")
  expTableWin.document.close()

  full_list = "<html><head><title>Giakomo's Monster Experience Calculator " + version_num + "</title>"
			+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.rokworld.com/rokworld.css\"></head>"
			+ "<body><script language=\"Javascript1.2\" src=\"exp_calc.js\"></script><h3>Monster List Sorted by " + szHeader + "</h3>"

  // font size = 2
  full_list += "<table cellpadding=2 border=1><tr>" +
    "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "><a href=\"javascript:MakeList(1," + div_mask + "," + nLvl + "," + bRace + "," + bDivinity + "," + bMLevel + "," + bEppd + "," + bKsb + "," + bHps + "," + bMEppd + "," + bMKsb + "," + bLocations + ")\"> Name </a></font></th>"

  if (bRace)
	full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "><a href=\"javascript:MakeList(2," + div_mask + "," + nLvl + "," + bRace + "," + bDivinity + "," + bMLevel + "," + bEppd + "," + bKsb + "," + bHps + "," + bMEppd + "," + bMKsb + "," + bLocations + ")\"> Race </a></font></th>"
  if (bDivinity)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "> Divinity </font></th>"
  if (bMLevel)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "><a href=\"javascript:MakeList(3," + div_mask + "," + nLvl + "," + bRace + "," + bDivinity + "," + bMLevel + "," + bEppd + "," + bKsb + "," + bHps + "," + bMEppd + "," + bMKsb + "," + bLocations + ")\"> Base Level </a></font></th>"
  if (bEppd)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "><a href=\"javascript:MakeList(4," + div_mask + "," + nLvl + "," + bRace + "," + bDivinity + "," + bMLevel + "," + bEppd + "," + bKsb + "," + bHps + "," + bMEppd + "," + bMKsb + "," + bLocations + ")\"> Base EPPD </a></font></th>"
  if (bKsb)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "><a href=\"javascript:MakeList(5," + div_mask + "," + nLvl + "," + bRace + "," + bDivinity + "," + bMLevel + "," + bEppd + "," + bKsb + "," + bHps + "," + bMEppd + "," + bMKsb + "," + bLocations + ")\"> Base KSB </a></font></th>"
  if (bHps)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "> Hitpoints </font></th>"
  if (bMEppd)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + "> EPPD@" + nLvl + " </font></th>"
  if (bMKsb)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + ">KSB@" + nLvl + " </font></th>"
  if (bLocations)
    full_list += "<th valign=top class=border><font size=" + font_size + " color=" + font_color + ">Spawning Spot Locations</font></th>"

  full_list += "</tr>"
  for (i = 0; i < exp.length; i++)
  {
    if (DivinityOn(exp[i].divinity, div_mask))
    {
      var my_ksb = exp[i].ksb + exp[i].ksb*(exp[i].level - nLvl)/10
      var my_eppd = exp[i].eppd + exp[i].eppd*(exp[i].level - nLvl)/10

      my_eppd= Math.round(my_eppd * 10)/10
      if (my_eppd < 1) my_eppd = 1
      my_ksb = Math.floor((my_ksb < 1) ? 1 : my_ksb)

      full_list += "<tr><td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + exp[i].name + "</font></td>"
      if (bRace)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + exp[i].race + "</font></td>"
      if (bDivinity)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + GetDivinity(exp[i].divinity) + "</font></td>"
      if (bMLevel)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + ((isNaN(exp[i].level))?"?":exp[i].level) + "</font></td>"
      if (bEppd)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + ((isNaN(exp[i].eppd))?"?":exp[i].eppd) + "</font></td>"
      if (bKsb)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + ((isNaN(exp[i].ksb))?"?":exp[i].ksb) + "</font></td>"
      if (bHps)
      {   
	  full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + exp[i].min
        if (exp[i].max != '')
	    full_list += ("-" + exp[i].max)
        full_list += "</font></td>"
      }
      if (bMEppd)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + ((isNaN(my_eppd))?"?":my_eppd) + "</font></td>"
      if (bMKsb)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + ((isNaN(my_ksb))?"?":my_ksb) + "</font></td>"
      if (bLocations)
	full_list += "<td valign=top class=border><font size=" + font_size + " color=" + font_color + ">" + exp[i].spawn + "</font></td>"
      full_list += "</tr>"
	m_count++
    }
  }

  full_list += "</table><br>" + m_count + " monsters on the list</body></html>"

  expTableWin.document.open()
  expTableWin.document.write(full_list)
  expTableWin.document.close()
  exp.sort(SortByName)
}

function UpdateMInfo(i)
{
  new_value =
	"Name: " + exp[i].name +
	"\nRace: " + exp[i].race +
	"\nDivinity: " + GetDivinity(exp[i].divinity) +
	"\nBase Level: " + ((isNaN(exp[i].level))?"<Unknown>":exp[i].level) +
	"\nBase eppd: " + ((isNaN(exp[i].eppd))?"<Unknown>":exp[i].eppd) +
	"\nBase ksb: " + ((isNaN(exp[i].ksb))?"<Unknown>":exp[i].ksb) +
	"\nHitpoints: " + exp[i].min
  if (exp[i].max != '')
	new_value += ("-" + exp[i].max)
   
  new_value += "\nLocation(s):\n  " + exp[i].spawn
  document.expform.minfo.value = new_value
}

function calc()
{
  var i = document.expform.midx.selectedIndex
  var lvl = document.expform.level.selectedIndex + 1
  var eppd = exp[i].eppd + exp[i].eppd*(exp[i].level - lvl)/10
  var ksb = exp[i].ksb + exp[i].ksb*(exp[i].level - lvl)/10

  eppd = Math.round(eppd*10)/10
  if (isNaN(eppd))
    document.expform.eppd.value = "<Unknown>"
  else
    document.expform.eppd.value = (eppd < 1) ? "<1" : eppd
  if (isNaN(ksb))
    document.expform.ksb.value = "<Unknown>"
  else
    document.expform.ksb.value = Math.floor((ksb < 1) ? 1 : ksb)
  UpdateMInfo(i)
}

function GenerateList()
{
  // column to sort by
  var sort_type = document.expform.sort_type.selectedIndex + 1

  // divinities to show
  div_mask = 0
  div_mask |= (document.expform.other.checked) ? 1 : 0
  div_mask |= (document.expform.earth.checked) ? 2 : 0
  div_mask |= (document.expform.storm.checked) ? 4 : 0
  div_mask |= (document.expform.ice.checked) ? 8 : 0
  div_mask |= (document.expform.fire.checked) ? 16 : 0
  div_mask |= (document.expform.night.checked) ? 32 : 0

  // what columns to show on the list
  var nLvl = document.expform.level.selectedIndex + 1
  var bRace = (document.expform.race.checked) ? 1 : 0;
  var bDivinity = (document.expform.divinity.checked) ? 1 : 0;
  var bMLevel = (document.expform.m_level.checked) ? 1 : 0;
  var bEppd = (document.expform.base_eppd.checked) ? 1 : 0;
  var bKsb = (document.expform.base_ksb.checked) ? 1 : 0;
  var bHps = (document.expform.hitpoints.checked) ? 1 : 0;
  var bMEppd = (document.expform.m_eppd.checked) ? 1 : 0;
  var bMKsb = (document.expform.m_ksb.checked) ? 1 : 0;
  var bLocations = (document.expform.locations.checked) ? 1 : 0;

  MakeList(sort_type, div_mask, nLvl, bRace, bDivinity, bMLevel, bEppd, bKsb, bHps, bMEppd, bMKsb, bLocations)
}
// -->

