
function onLoad()
{
	createWeaponSelector();
}

function createWeaponSelector()
{
	var obj = document.getElementById('weapon');

	var html = "";

	html += '<select name="weapon">';
	html += '<option value="1">Sword (One Hand)</option>';
	html += '<option value="1">Sword (Two Hands)</option>';
	html += '<option value="2">Axe (One Hand)</option>';
	html += '<option value="2">Axe (Two Hands)</option>';
	html += '<option value="3">Stick</option>';
	html += '<option value="4">Knuckle</option>';
	html += '<option value="6">Wand</option>';
	html += '<option value="5">Staff</option>';
	html += '<option value="20">Yoyo</option>';
	html += '<option value="21">Bow</option>';
	html += '</select>';

	obj.innerHTML = html;
}

function onCalc()
{
	var lv = parseInt(document.form.lv.value);
	var str = parseInt(document.form.str.value);
	var vit = parseInt(document.form.vit.value);
	var dex = parseInt(document.form.dex.value);
	var int = parseInt(document.form.int.value);
	var weapon = parseInt(document.form.weapon.value);
	var min = parseInt(document.form.min.value);
	var max = parseInt(document.form.max.value);
	var refine = parseInt(document.form.refine.value);
	var adjAtk = parseInt(document.form.adjAtk.value);

	document.form.minAtk.value =
		calcAtk(lv, str, vit, dex, int, weapon, min, refine, adjAtk);
	document.form.maxAtk.value =
		calcAtk(lv, str, vit, dex, int, weapon, max, refine, adjAtk);
}

function calcAtk(lv, str, vit, dex, int, weapon, baseAtk, refine, adjAtk)
{
	var a = baseAtk << 1;
	var b = calcWeaponAtk(lv, str, vit, dex, int, weapon);
	var c = calcMultiplier(refine);
	var d = (a + b + adjAtk) * c + Math.pow(refine, 1.5);

	return Math.floor(d);
}

function calcWeaponAtk(lv, str, vit, dex, int, weapon)
{
	switch (weapon)
	{
	case  1: return (str - 12) * 4.5 + lv * 1.1;
	case  2: return (str - 12) * 5.5 + lv * 1.2;
	case  5: return (str - 10) * 0.8 + lv * 1.1;
	case  3: return (str - 10) * 3.0 + lv * 1.3;
	case  4: return (str - 10) * 5.0 + lv * 1.2;
	case  6: return (int - 10) * 6.0 + lv * 1.2;
	case 20: return (str - 12) * 4.2 + lv * 1.1;
	case 21: return ((dex - 14) * 4.0 + str * 0.2 + lv * 1.3) * 0.7;
	}
}

function calcMultiplier(refine)
{
	var table = new Array(0, 2, 4, 6, 8, 10, 13, 16, 19, 21, 24);

	return (table[refine] + 100) * 0.01;
}