
function maxOneOfWep( unit, optionName, count ) {
	return maxOneOf( unit, optionName, count, maxOneOfWep );
}

function maxOneOfMWep( unit, optionName, count ) {
	return maxOneOf( unit, optionName, count, maxOneOfMWep );
}

function maxOneMount( unit, optionName, count ) {
	return maxOneOf( unit, optionName, count, maxOneMount );
}

function maxOneOfMArm( unit, optionName, count ) {
	return maxOneOf( unit, optionName, count, maxOneOfMArm );
}

function throwerDeployment( unit, positions ) {

  var men = ["archer01.gif", "archer02.gif"];
  normalDeployment( unit, positions );

  for( var i=0; i<unit.count; i++ ) {
    positions.front.push( men );
    positions.back.push( men );
  }

  return positions;
}

var optionsMagicWep = [
["mLeapGold", "Blade of Leaping Gold", 60, {changeFunction: maxOneOfMWep}],
  ["mBowSea", "Bow of the Seafarer", 60, {changeFunction: maxOneOfMWep}],
  ["mSwdHoeth", "Sword of Hoeth", 60, {changeFunction: maxOneOfMWep}],
  ["mImrLance", "Star Lance", 40, {changeFunction: maxOneOfMWep}],
  ["mReavBow", "Reaver Bow", 40, {changeFunction: maxOneOfMWep}],
  ["mWhiteS", "The White Sword", 40, {changeFunction: maxOneOfMWep}],
  ["mSeaGold", "Blade of Sea Gold", 40, {changeFunction: maxOneOfMWep}],
  ["mSwordStr", "Sword of Striking", 25, {changeFunction: maxOneOfMWep}],
  ["mFoeBane", "Foe Bane", 25, {changeFunction: maxOneOfMWep}],
  ["mSwMight", "Sword of Might", 15, {changeFunction: maxOneOfMWep}]
  ].concat(commonMagicWep).optSort();


var optionsMagicArm = [
  ["mArmProte", "Armour of Protection", 45, {changeFunction: maxOneOfMArm}],
  ["mGoldShld", "Golden Shield", 35, {changeFunction: maxOneOfMArm}],
  ["mArmStars", "Armour of Stars", 30, {changeFunction: maxOneOfMArm}],
  ["mArmHeros", "Armour of Heroes", 30, {changeFunction: maxOneOfMArm}],
  ["mGaunt", "Temakador's Gauntlets", 30, {changeFunction: maxOneOfMArm}],
  ["mShadArm", "Shadow Armour", 25, {changeFunction: maxOneOfMArm}],
  ["mArmourCaledor", "Armour of Caledor", 25, {changeFunction: maxOneOfMArm}],
  ["mHelmFort", "Helm of Fortune", 25, {changeFunction: maxOneOfMArm}],
  ["mDragonSh", "Dragonscale Shield", 20, {changeFunction: maxOneOfMArm}],
  ["mMask", "Mask of the Merlord", 10, {changeFunction: maxOneOfMArm}]
  ].concat(commonMagicArm).optSort();

var optionsMagicTal = [
  ["mVamDef", "Vambraces of Defense", 55.],
  ["mGoldCrwn", "Golden Crown of Atrazar", 40.],
  ["mLoreClk", "Loremaster's Cloak", 40.],
  ["mTalisSap", "Talisman of Saphery", 35.],
  ["mSacIncen", "Sacred Incense", 30.],
  ["mGuardPho", "Guardian Phoenix", 25.],
  ["mAmuFire", "Amulet of Fire", 20.]
  ].concat(commonMagicTal).optSort();

var optionsMagicBan = [
  ["mBattleBan", "Battle Banner", 80., {changeFunction: maxOneOfBanner}],
  ["mBanDragon", "Banner of the World Dragon", 60., {changeFunction: maxOneOfBanner}],
  ["mBanSorce", "Banner of Sorcery", 50., {changeFunction: maxOneOfBanner}],
  ["mStdBalan", "Standard of Balance", 45., {changeFunction: maxOneOfBanner}],
  ["mBanArcan", "Banner of Arcane Protection", 25., {changeFunction: maxOneOfBanner}],
  ["mLionStd",  "Lion Standard", 25., {changeFunction: maxOneOfBanner}],
	["mStdWar",   "War Banner", 20., {changeFunction: maxOneOfBanner}],
	["mBanEllyr", "Banner of Ellyrion", 15., {changeFunction: maxOneOfBanner}]
  ].concat(commonMagicBan).optSort();

var optionsMagicArc = [
  ["mBkHoeth", "Book of Hoeth", 100., {changeFunction: maxOneOfMArc}],
	["mVortex", "The Vortex Shard", 75., {changeFunction: maxOneOfMArc}],
	["mAnnulCrs", "Annulian Crystal", 40., {changeFunction: maxOneOfMArc}],
	["mSigAsur", "Sigil of Asuryan", 40., {changeFunction: maxOneOfMArc}],
	["mStarStf", "Starwood Staff", 40., {changeFunction: maxOneOfMArc}],
	["mSeer", "The Seerstaff of Saphery", 30., {changeFunction: maxOneOfMArc}],
	["mTrick", "The Trickster's Pendant", 30., {changeFunction: maxOneOfMArc}],
	["mSunfire", "The Gem of Sunfire", 25., {changeFunction: maxOneOfMArc}],
	["mArcDispel", "Dispel Scroll", 20, {changeFunction: maxOneOfMArc}],
	["mArcPowerSt", "Power Stone", 20, {changeFunction: maxOneOfMArc}],
	["mRngCorin", "Ring of Corin", 20., {changeFunction: maxOneOfMArc}],
	["mStfSolid", "Staff of Solidity", 20., {changeFunction: maxOneOfMArc}],
	["mJewelDsk", "Jewel of the Dusk", 15., {changeFunction: maxOneOfMArc}],
	["mSilverWn", "Silver Wand", 10., {changeFunction: maxOneOfMArc}]
  ].concat(commonMagicArc).optSort();

var optionsMagicEnc = [
["mNullStn", "Null Stone", 100.],
	["mRadiantG", "Radiant Gem of Hoeth", 45.],
	["mRobe", "Folariath's Robe", 45.],
	["mRingFury", "Ring of Fury", 40.],
	["mClkBeard", "Cloak of Beards", 35.],
	["mPenRune", "Pendant of Vengeance", 35.],
	["mImrHorn", "Dragonhorn", 25.],
	["mSkein", "The Skeinsliver", 25.],
	["mAmLight", "The Amulet of Light", 15.],
	["mCourage", "The Gem of Courage", 10.],
	["mTalLoec", "Talisman of Loec", 10.]
  ].concat(commonMagicEnc).optSort();

var iconFolder = "../elves/image/";

var baseDefinition = {
name: "Highelves",
      maxsize: 1,
      noSpecialName: 1,
      subDefinitions: {

tyrion: {
name:       "Tyrion",
            fullName:   "Tyrion, The Defender of Ulthuan",
            points:     400.,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["dragonprince01.gif"],
            basicText:  "Dragon Armour of Aenarion, Heart of Avelorn, Sunfang, Malhandir",
            options:    []
        },

teclis: {
name:       "Teclis",
            fullName:   "Teclis, High Loremaster of the White Tower",
            points:     475,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["elfchamp01.gif", "elfchamp02.gif"],
            basicText:  "Sword of Teclis, Scroll of Hoeth, Moon Staff of Lileath, War Crown of Saphery"
        },


eltharion: {
name:       "Eltharion",
            fullName:   "Eltharion the Grim, Warden of Tor Yvresse",
            points:     285.,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["elfchamp01.gif", "elfchamp02.gif"],
            basicText:  "Talisman of Hoeth, Nagarythe Hatred, Longbow, Heavy Armour, The Fangsword of Eltharion, Helm of Yvresse",
            options:    []
           },

Alith: {
name:       "Alith Anar",
            fullName:   "Alith Anar, The Shadow King",
            points:     245.,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["archer01.gif"],
            basicText:  "Moonbow, Scouts, Nagarythe Hatred, Shadow Crown, Light Armour ",
            options:    []
       },

prince: {
name:       "Prince",
            points:     150.,
            itemPoints: 100,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["noble01.gif", "elfchamp02.gif"],
            options:    [
              [
              ["iLance", "Lance", 6, {changeFunction: maxOneOfWep } ],
            ["iSpear", "Spear", 3, {changeFunction: maxOneOfWep } ],
            ["iGreatWep", "Great Weapon", 12, {changeFunction: maxOneOfWep } ],
            ["iHalberd", "Halberd", 6, {changeFunction: maxOneOfWep } ],
            ["iExtraHand", "Extra Hand Weapon", 6, {changeFunction: maxOneOfWep} ],
            null,
            ["iLightArmor", "Light Armour", 3.],
            ["iHeavyArmor", "Heavy Armour", 6.],
            ["iDragArmr", "Dragon Armour", 9.],
            null,
            ["iShield", "Shield", 3.],
            ["iLongbow", "Longbow", 10.]
              ],
            [
              ["iElvenStd", "Elven Steed", 18, {changeFunction: maxOneMount,
                icons: ["borderrider01.gif"] } ],
            ["iElvenStdBrd", "Elven Steed with barding", 24, {changeFunction: maxOneMount, 
              icons: ["dragonprincechamp01.gif"] } ],
            ["iGreatEag", "Great Eagle", 50, {changeFunction: maxOneMount,
              icons: ["eaglerider01.gif"] } ],
            ["iGriffon", "Griffon", 200, {changeFunction: maxOneMount, 
              icons: ["griffon01.gif"] } ],
            ["iSunDrag", "Sun Dragon", 230, {changeFunction: maxOneMount,
              icons: ["whitedragon02.gif"] } ],
            ["iMoonDrag", "Moon Dragon", 300, {changeFunction: maxOneMount,
              icons: ["whitedragon02.gif"] } ],
            ["iStarDrag", "Star Dragon", 370, {changeFunction: maxOneMount,
              icons: ["whitedragon02.gif"] } ],
            ["iChariot", "Tiranoc Chariot", 85, {changeFunction: maxOneMount,
              icons: ["chariot01.gif"] } ],
            ],
            optionsMagicWep,
            optionsMagicArm,
            optionsMagicTal,
            optionsMagicEnc
              ]
        },

archmage: {
name:       "Archmage",
            points:     225.,
            itemPoints: 100,
            maxsize:    1,
            slot:       "Lord",
            icons:      ["elfmage01.gif", "elfmage02.gif", "elfmage03.gif"],
            options:    [
              [
              ["iElvenStd", "Elven Steed", 18, {changeFunction: maxOneMount,
                icons: ["elfmage04.gif"] } ],
            ["iElvenStdBrd", "Elven Steed with barding", 24, {changeFunction: maxOneMount,
              icons: ["elfmage04.gif"] } ],
            ["iGreatEag", "Great Eagle", 50, {changeFunction: maxOneMount,
              icons: ["eaglerider01.gif"] } ],
            ["iSunDrag", "Sun Dragon", 230, {changeFunction: maxOneMount, 
              icons: ["whitedragon02.gif"] } ],
            ["iMoonDrag", "Moon Dragon", 300, {changeFunction: maxOneMount,
              icons: ["whitedragon02.gif"] } ],
            ["iChariot", "Tiranoc Chariot", 85, {changeFunction: maxOneMount,
              icons: ["chariot01.gif"] } ],
            null,
            ["iLvl4", "Mage lvl 4", 35]
              ],
            optionsMagicWep,
            optionsMagicTal,
            optionsMagicEnc,
            optionsMagicArc,
            ]
          },

cara: {
name:       "Caradryan",
            fullName:   "Caradryan, Captain of the Phoenix Guard",
            points:     175.,
            maxsize:    1,
            slot:       "Hero",
            icons:      ["elfchamp01.gif", "elfchamp02.gif"],
            basicText:  "Magic Resistance (3), Causes Fear, The Phoenix Blade, Heavy Armour",
            options:    []
      },

korhil: {
name:       "Korhil",
            fullName:   "Korhil, Captain of the White Lions",
            points:     140.,
            maxsize:    1,
            slot:       "Hero",
            icons:      ["noble01.gif", "elfchamp02.gif"],
            basicText:  "Chayal, Stubborn, Pelt of Charandis, Heavy Armour",
            options:    [
              [
              ["iWLChar", "Lion Chariot of Chrace", 130, ["chariot02.gif"] ]
              ]
              ]
        },

noble: {
name:       "Noble",
            points:     85.,
            itemPoints: 50,
            maxsize:    1,
            slot:       "Hero",
            icons:      ["noble01.gif", "elfchamp02.gif"],
            options:    [
              [
              ["iLance", "Lance", 4, {changeFunction: maxOneOfWep } ],
            ["iSpear", "Spear", 2, {changeFunction: maxOneOfWep } ],
            ["iGreatWep", "Great Weapon", 8, {changeFunction: maxOneOfWep } ],
            ["iHalberd", "Halberd", 4, {changeFunction: maxOneOfWep } ],
            ["iExtraHand", "Extra Hand Weapon", 4, {changeFunction: maxOneOfWep} ],
            null,
            ["iLightArmor", "Light Armour", 2.],
            ["iHeavyArmor", "Heavy Armour", 4.],
            ["iDragArmr", "Dragon Armour", 6.],
            null,
            ["iShield", "Shield", 2.],
            ["iLongbow", "Longbow", 10.]
              ],
            [
              ["iElvenStd", "Elven Steed", 12, {changeFunction: maxOneMount,
                icons: ["borderrider01.gif"] } ],
            ["iElvenStdBrd", "Elven Steed with barding", 16, {changeFunction: maxOneMount,
              icons: ["dragonprincechamp01.gif"] } ],
            ["iGreatEag", "Great Eagle", 50, {changeFunction: maxOneMount,
              icons: ["eaglerider01.gif"] } ],
            ["iChariot", "Tiranoc Chariot", 85, {changeFunction: maxOneMount, icons: ["chariot01.gif"] } ],
            null,
            ["iBSBSaur", "Battle Standard Bearer", 25, { icon: ["archer_std01.gif"] } ]
              ],
            optionsMagicWep.optSort(50),
            optionsMagicArm.optSort(50),
            optionsMagicTal.optSort(50),
            optionsMagicEnc.optSort(50),
            optionsMagicBan.optSort(50)
              ]
       },

mage: {
name:       "Mage",
            points:     100.,
            itemPoints: 50,
            maxsize:    1,
            slot:       "Hero",
            icons:      ["elfmage01.gif", "elfmage02.gif", "elfmage03.gif"],
            options:    [
              [
              ["iElvenStd", "Elven Steed", 12, {changeFunction: maxOneMount,
                icons: ["elfmage04.gif"] } ],
            ["iElvenStdBrd", "Elven Steed with barding", 16, {changeFunction: maxOneMount,
              icons: ["elfmage04.gif"] } ],
            ["iChariot", "Tiranoc Chariot", 85, {changeFunction: maxOneMount, 
              icons: ["chariot01.gif"] } ],
            null,
            ["iLvl2", "Mage lvl 2", 35]
              ],
            optionsMagicWep.optSort(50),
            optionsMagicTal.optSort(50),
            optionsMagicArc.optSort(50),
            optionsMagicEnc.optSort(50)
              ]
      },

dragMage: {
name:       "Dragon Mage of Caledor",
            points:     350.,
            itemPoints: 50,
            maxsize:    1,
            slot:       "Hero",
            icons:      ["whitedragon02.gif"],
            options:    [
              [["iLvl2", "Mage lvl 2", 35]],
            optionsMagicWep.optSort(50),
            optionsMagicTal.optSort(50),
            optionsMagicArc.optSort(50),
            optionsMagicEnc.optSort(50)
              ]
          },
archers: {
name:       "Archers",
            points:     11.,
            minsize:    10,
            slot:       "Core",
            icons:      ["archer01.gif", "archer02.gif"],
            basicText:  "Longbow",
            options:    [
              [
              ["iLightArmor", "Light Armour", 1.],
            ["Std", "Standard Bearer", 10, {icons: ["archer_std01.gif"] }],
            ["Music", "Musician", 5, {icons: ["archer_music01.gif"] }],
            ["Champ", "Hawkeye", 10, {icons: ["elfchamp01.gif"] }],
            ],
            optionsMagicBan.optSort(25)
            ]
         },

spearmen: {
name:       "Spearmen",
            points:     9.,
            minsize:    10,
            slot:       "Core",
            icons:      ["spearmen01.gif", "spearmen02.gif"],
            basicText:  "Spear, Shield, Light Armour",
            options:    [
              [
              ["Champ", "Sentinel", 10],
            ["Std", "Standard Bearer", 10, {icons: ["spear_std01.gif"] }],
            ["Music", "Musician", 5, {icons: ["spear_music01.gif"] }],
            ],
            optionsMagicBan.optSort(25)
            ]
          },

lothernS: {
name:       "Lothern Sea Guard",
            points:     12.,
            itemPoints: 0,
            minsize:    10,
            slot:       "Core",
            icons:      ["spearmen01.gif", "spearmen02.gif"],
            basicText:  "Bow, Spear, Light Armour",
            options:    [
              [
              ["iShield", "Shield", 1.],
            ["Champ", "Sea Master", 10],
            ["Std", "Standard Bearer", 10, {icons: ["spear_std01.gif"] }],
            ["Music", "Musician", 5, {icons: ["spear_music01.gif"] }],
            ],
            optionsMagicBan.optSort(25)
              ]
          },

swordmaster: {
name:       "Sword Masters of Hoeth",
            points:     15.,
            itemPoints: 50,
            minsize:    5,
            slot:       "Special",
            icons:      ["swordmaster01.gif"],
            basicText:  "Heavy Armour, Great Weapon",
            options:    [
              [
              ["Champ", "Bladelord", 12],
            ["Music", "Musician", 6.],
            ["Stand", "Standard Bearer", 12, {icons: ["swordmaster_std01.gif"]}]
              ],
            optionsMagicBan.optSort(50)
            ]
             },

phoenGrd: {
name:       "Phoenix Guard",
            points:     15.,
            itemPoints: 50,
            minsize:    5,
            slot:       "Special",
            icons:      ["spearmen01.gif", "spearmen02.gif"],
            basicText:  "Halberd, Causes Fear, Heavy Armour",
            options:    [
              [
              ["Music", "Musician", 6.],
            ["Champ", "Keeper of the Flame", 12],
            ["Std", "Standard Bearer", 12.]
              ],
            optionsMagicBan.optSort(50)
            ]
          },

whitLion: {
name:       "White Lions of Chrace",
            points:     15.,
            itemPoints: 0,
            minsize:    5,
            slot:       "Special",
            icons:      ["archer01.gif", "archer02.gif"],
            basicText:  "Stubborn, Great Weapon, Heavy Armour",
            options:    [
              [
              ["Champ", "Guardian", 12],
            ["Music", "Musician", 6.],
            ["Std", "Standard Bearer", 12.]
              ],
            optionsMagicBan.optSort(50)
            ]
          },

silverHl: {
name:       "Silver Helms",
            points:     21.,
            itemPoints: 0,
            minsize:    5,
            slot:       "Special",
            icons:      ["silverhelm01.gif", "silverhelm02.gif"],
            basicText:  "Barding, Lance, Elven Steeds, Heavy Armour",
            options:    [
              [
              ["Shield", "Shield", 2.],
            ["Champ", "High Helm", 16],
            ["Std", "Standard Bearer", 16.],
            ["Music", "Musician", 8.],
            ]
            ]
          },

dragPrin: {
name:       "Dragon Princes of Caledor",
            points:     30.,
            itemPoints: 0,
            minsize:    5,
            slot:       "Special",
            icons:      ["dragonprince01.gif"],
            basicText:  "Barding, Lance, Dragon Armour, Shield, Elven Steeds",
            options:    [
              [
              ["Std", "Standard Bearer", 20.],
            ["Music", "Musician", 10.],
            ["Champ", "Drakemaster", 20, { icons: ["dragonprincechamp01.gif"] } ],
            ],
            optionsMagicWep.optSort(25),
            optionsMagicArm.optSort(25),
            optionsMagicTal.optSort(25),
            optionsMagicEnc.optSort(25),
            optionsMagicBan.optSort(50)
            ]
          },

ellyReav: {
name:       "Ellyrian Reavers",
            points:     17.,
            minsize:    5,
            slot:       "Special",
            icons:      ["borderrider01.gif", "borderrider02.gif"],
            basicText:  "Fast Cavalry, Elven Steeds, Light Armour",
            options:    [
              [
              ["iSpear", "Spear", 0, {oneOf:"handWeapon"}],
            ["iBowSpear", "Spear and Bow", 4, {oneOf:"handWeapon"}],
            ["iBow", "Bow", 2, {oneOf:"handWeapon"}]
              ],
            [
              ["Champ", "Harbinger", 7],
            ["Music", "Musician", 7.],
            ["Std", "Standard Bearer", 14.]
              ]
              ]
          },

shadowWr: {
name:       "Shadow Warriors",
            points:     16.,
            minsize:    5,
            maxsize:    16,
            slot:       "Special",
            icons:      ["archer01.gif", "archer02.gif"],
            basicText:  "Scouts, Nagarythe Hatred, Longbow, Skirmishers, Light Armour",
            options:    [
              [
              ["Champ", "Shadow-Walker", 12]
            ],
            ]
          },

tiarocChar: {
name:       "Tiranoc Chariot",
            points:     85.,
            maxsize:    10,
            slot:       "Special",
            icons:      ["chariot01.gif"],
            options:    []
            },

characeChar: {
name:       "Lion Chariot of Charace",
            points:     140.,
            maxsize:    10,
            slot:       "Special",
            icons:      ["chariot02.gif"],
            options:    []
             },

repBolt: {
name:       "Repeater Bolt Thrower",
            points:     100.,
            maxsize:    10,
            slot:       "Rare",
            icons:      ["boltthrower.gif"],
            basicText:  "Repeater Bolt Thrower",
            deployment: throwerDeployment,
            options:    []
         },

eagle: {
name:       "Great Eagle",
            points:     50.,
            maxsize:    10,
            slot:       "Rare",
            icons:      ["eaglerider01.gif"],
            options:    []
       }
      }
};

var baseUnit = new Unit( null, null );

