//DATA AREA
//								****materials***
//woods
var woods = ["fir", "pine","pine","pine","pine", "cedar","cedar","cedar", "elm","elm", "yew", "oak","oak","oak","oak","oak", "willow","willow", "ironwood", "ebony"];//9 elements
//metals
var weaponMetals = ["copper", "bronze","bronze","iron","iron","iron", "iron","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel","steel", "steel", "adamantine", "mythril", "silversteel", "silversteel", "dragonite"];//9 elements
var preciousMetals = ["brass", "electrum", "gold", "silver", "platinum","mythril", "oracalcum"];//7 elements
//gems
var gems = ["ruby","diamond","opal","rose quartz", "emerald","sapphire", "jade", "amethyst"]; //8 elements



//								***weapons****
//ranged weapons of wood
var wpSetTwo = ["spear", "javelin","arrow", "light crossbow","heavy crossbow","repeater crossbow","hand crossbow","short recurved bow", "short composite bow", "long recurved bow", "long compound bow", "boomerang", "bola"]
//melee weapons of wood
var wpSetOne = ["spear", "quarterstaff", "jo-staff", "nunchucka", "club", "light lance", "medium lance"];
//ranged weapons of metal
var wpSetThree = ["dagger", "throwing axe", "throwing knife","war hatchet", "dart"];
//melee weapons of metal
var wpSetFour = ["poniard", "dagger", "dirk", "main gauche", "stilleto", "gladius", "drusus", "short sword", "wakizashi", "broad sword","long sword","bastard sword","claymore","twohanded sword","katana","no-dachi","mace","morningstar","hand axe", "battle axe","war hatchet","dwarven axe","great axe","war hammer","lucern hammer","glaive","halberd","pike","heavy lance"];
var wpQual = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+3 magical","+3 magical","+3 magical","+3 magical","+4 magical","+4 magical","+5 magical"];
var wpSpecRng = ["","","","","","","","","","","","","","","","","","","(returning)","(returning)","(returning)","(returning)","(returning)","(returning)","(distance)","(distance)","(distance)","(distance)","(flaming)","(frost)","(flaming burst)","(icy burst)","(shocking burst)","(bane)","(holy)","(unholy)","(speed)","(brilliant energy)"];
var wpSpecMel = ["","","","","","","","","","","","","","","","","","","(radiance)","(radiance)","(radiance)","(radiance)","(radiance)","(radiance)","(radiance)","(radiance)","(Light: weight is 25% less)","(Light: weight is 25% less)","(Light: weight is 25% less)","(light: weight is 25% less)","(very light: weight is 50% less)","(ultra light: weight is 75% less)","(defending)","(frost)","(disruption)","(bane)","(thundering)","(wounding)","(icy burst)","(flaming burst)","(mighty cleaving)","(spell storing)","(ghost touch)","(flaming)","(vorpal)","(dancing)","(speed)","(holy)","(unholy)","(keen)"];


//								****Armors****
var armQual = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","masterwork","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+1 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+2 magical","+3 magical","+3 magical","+3 magical","+3 magical","+4 magical","+4 magical","+5 magical"];
var armBase =["padded suit","leather suit","hide suit","studded leather suit","chain shirt","scale mail","chainmail","breastplate","splint mail","banded mail","half-plate","full plate"];
var armSpec = ["","","","","","","","","","","","","","","","","","","","(fortification: 25%)","(fortification: 75%)","(fortification: 100%)","(glamered)","(slick)","(shadow)","(silenced)","(spell resistance:13)","(spell resistance: 15)","(spell resistance: 17)","(spell resistance: 19)","(ghost touch)","(invulnerability)","(acid resistance)","(cold resistance)","(lightning resistance)","(sonic resistance)","(etherealness)"];

//								***Rings****
//common rings (1-6)
var comRingSpec = ["climbing","jumping","protection (+1)","warmth","feather falling","swimming","sustenance","counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)"];
//uncommon rings (7-9)
var uncomRingSpec = ["counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)","counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)","counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)","counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)","counterspells","mind shielding","protection (+2)","force shield","the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (sonic)","protection (+3)","protection (+3)","protection (+3)","protection (+3)","protection (+3)","protection (+3)", "invisibility", "invisibility", "invisibility", "invisibility", "invisibility", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "x-ray vision", "x-ray vision", "evasion", "evasion", "blinking", "blinking", "protection (+4)", "protection (+4)", "wizardry (2* 2nd level arcane spells)", "wizardry (2* 2nd level arcane spells)", "freedom", "freedom", "friend shield", "friend shield",  "protection (+5)",  "protection (+5)","shooting stars","shooting stars", "telekinesis","wizardry (2* 3rd level arcane spells)"];
//rare/exotic rings (10)
var rareRingSpec = ["the ram","animal friendship","chameleon power","waterwalking","minor elemental resistance (fire)","minor elemental resistance (fire)","minor elemental resistance (acid)","minor elemental resistance (acid)","minor elemental resistance (shock)","minor elemental resistance (shock)","minor elemental resistance (cold)","minor elemental resistance (cold)","minor elemental resistance (sonic)","minor elemental resistance (sonic)","protection (+3)","protection (+3)","protection (+3)","protection (+3)", "invisibility", "invisibility", "invisibility", "invisibility", "invisibility","wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "wizardry (2* 1st level arcane spells)", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "major elemental resistance", "x-ray vision", "x-ray vision","x-ray vision", "x-ray vision","x-ray vision", "evasion", "evasion", "evasion", "evasion", "evasion", "blinking", "blinking", "blinking", "blinking", "blinking", "protection (+4)", "protection (+4)","protection (+4)", "protection (+4)","protection (+4)", "wizardry (2* 2nd level arcane spells)", "wizardry (2* 2nd level arcane spells)", "wizardry (2* 2nd level arcane spells)", "wizardry (2* 2nd level arcane spells)", "wizardry (2* 2nd level arcane spells)", "freedom", "freedom", "freedom", "freedom", "freedom","friend shield", "friend shield","friend shield", "friend shield","friend shield",  "protection (+5)",  "protection (+5)", "protection (+5)",  "protection (+5)", "protection (+5)", "shooting stars","shooting stars","shooting stars","shooting stars","shooting stars", "telekinesis", "telekinesis", "telekinesis", "telekinesis", "telekinesis", "telekinesis","wizardry (2* 3rd level arcane spells)","wizardry (2* 3rd level arcane spells)","wizardry (2* 3rd level arcane spells)","wizardry (2* 3rd level arcane spells)","wizardry (2* 3rd level arcane spells)","wizardry (2* 3rd level arcane spells)","spell storing","spell storing","spell storing","spell storing", "regeneration", "regeneration", "regeneration","three wishes","three wishes","three wishes","three wishes","wizardry (2* 4th level arcane spells)","wizardry (2* 4th level arcane spells)","wizardry (2* 4th level arcane spells)","djinni calling","djinni calling", "spell turning", "spell turning", "ring of (air) elemental command", "ring of (earth) elemental command", "ring of (fire) elemental command", "ring of (water) elemental command"];


//Functions AREA
function clearList()
{
	document.getElementById("itemList").innerHTML = "";
	
}
function getNum(range, quantity)
{
   var i=0;
   var die=0;
   var total=0; 
   for(i=0;i<quantity;i++)
   {
         total+=Math.ceil(random()*range);
   }
   return total;
}
function checkForMagicQuality(quality)
{
	return getNum(quality.length-1, 1);
	//return 0;
}
function checkForSpecial(quality, special)
{
	var r = 0;
	if (quality > 155) r = getNum(special.length - 1, 1);
	
	return r;
}
function makeWeapon()
{
	var rangedOrMelee = ["[Ranged Weapon]", "[Melee Weapon]"];
	var r = getNum(2,1) -1; 
	var baseWeaponWood = (r)? wpSetOne : wpSetTwo;
	var baseWeaponMetal = (r)? wpSetFour : wpSetThree;
	var special = (r)? wpSpecMel: wpSpecRng;
	var b = getNum(2,1)-1;
	var material;
	var base;
	var sp=0;
	var ql=0;
	var condition=false;
	if(b)
	{
		var d=getNum(baseWeaponMetal.length-1, 1);
		var e=getNum(weaponMetals.length-1,1);
		base = baseWeaponMetal[d];		
		material = weaponMetals[e];
	}
	else
	{
		
		var d=getNum(baseWeaponWood.length-1,1);
		var e=getNum(woods.length-1,1);
		base = baseWeaponWood[d];
		material = woods[e];
	}
	
	while(!condition)
	{
		ql = checkForMagicQuality(wpQual);
		if(document.getElementById("wpMagicOnly").checked)
		{
			if(ql > 155)
			{
				sp = checkForSpecial(ql, special);
				
				if(document.getElementById("wpSpecOnly").checked)
				{
					if(sp > 17)
					{
						condition=true;
					}
				}
				else
				{
					condition = true;
				}
			}
		}
		else
		{
			condition=true;
		}
	}
	var item = " |*** <span style='color:"+getColor()+"' class='itemSpan' onmouseover=\"this.className='itemSpanOver'\" onmouseout=\"this.className='itemSpan'\">"+wpQual[ql]+" <span style='color:#000000;'>"+ special[sp]+ "</span> "+material+" "+ base +"</span>";
	document.getElementById("itemList").innerHTML += item + "<br>";
}

function makeArmor()
{
	var item;
	var base = armBase[getNum(armBase.length-1, 1)];
	var condition=false;
	var ql=0;
	var sp=0;
	while(!condition)
	{
		ql = checkForMagicQuality(armQual);
		if(document.getElementById("armMagicOnly").checked)
		{
			if(ql > 155)
			{
				sp = checkForSpecial(ql, armSpec);
				
				if(document.getElementById("armSpecOnly").checked)
				{
					if(sp > 17)
					{
						condition=true;
					}
				}
				else
				{
					condition = true;
				}
			}
		}
		else
		{
			condition=true;
		}
	}
	
	item = " |*** <span style='color:"+getColor()+"' class='itemSpan' onmouseover=\"this.className='itemSpanOver'\" onmouseout=\"this.className='itemSpan'\">"+armQual[ql]+" <span style='color:#000000;'>"+ armSpec[sp]+ "</span> "+ base +"</span>";
	document.getElementById("itemList").innerHTML += item+"<br>";
}


function makeRing()
{
	var rarity = getNum(10, 1);
	var special = new Array();
	if (rarity > 7) special = comRingSpec;
	else if(rarity > 10) special = uncomRingSpec;
	else special = rareRingSpec;
	var sp = getNum(special.length-1, 1);
	var gem = (getNum(2, 1) -1) ? " (inset with "+ gems[getNum(gems.length-1, 1)]+") ": " ";
	
	var material = preciousMetals[getNum(preciousMetals.length-1, 1)] + gem + "ring";
	
	var	item = " |*** <span style='color:"+getColor()+"' class='itemSpan' onmouseover=\"this.className='itemSpanOver'\" onmouseout=\"this.className='itemSpan'\">"+material+" of <span style='color:#000000;'>"+ special[sp]+"</span></span>";
	document.getElementById("itemList").innerHTML += item+"<br>";
}


function toggleButtons(boolOnOff)
{
	if (boolOnOff)
	{
		document.getElementById("makeWpButt").disabled=false;
		document.getElementById("makeArmButt").disabled=false;
		document.getElementById("makeRingButt").disabled=false;
	}
	else
	{
		document.getElementById("makeWpButt").disabled=true;
		document.getElementById("makeArmButt").disabled=true;
		document.getElementById("makeRingButt").disabled=true;
	}
}

function make(which)
{
	var arFuncMakers = new Array();
	arFuncMakers[0] = makeWeapon;
	arFuncMakers[1] = makeArmor;
	arFuncMakers[2] = makeRing;
	arFuncMakers[8] = function() {var n = getNum(3, 1) - 1; if (n==1) makeArmor(); else if (n==2) makeRing();else makeWeapon();}
	var num;
	if(document.getElementById("numToMake"+which))
	{
		num = document.getElementById("numToMake" + which).value;
	}
	else num = 1;
	if (num > 50) num = 50;
	toggleButtons(0);
	if(arFuncMakers[which])
	{
		for(var i = 0; i < num; i++)
		{
			arFuncMakers[which]();
		}
	}
	toggleButtons(1);
}


var lastcolor="";
function getColor()
{
   var color = "";
   var colors = [ "#0000FF", "#660099","#FF0000","#DD6600","#0099DD","#009900"];
   var x = 99;
   while (x==99)
   {
      color = colors[getNum(colors.length,1) - 1];
      if (color != lastcolor) 
      {
        x = 0;
      }
   }
   lastcolor=color;
   return color;
}

function toggleControls(id)
{
	if (document.getElementById(id).className=="noshow")document.getElementById(id).className="show"
	else document.getElementById(id).className="noshow";
}












