﻿var job = new Array("Class", "Gladiator", "Templar", "Assassin", "Ranger", "Sorcerer", "Spirit Master", "Cleric", "Chanter");
var job_rare = new Array();
var gemstoneAllea = new Array(0, 6, 7, 9, 12, 14, 15, 18, 21, 24, 27, 28, 30, 33, 35, 36, 39, 42);
var gemstoneAllea_rare = new Array(30, 33, 35, 36, 39, 42);
var gemstoneEa = new Array(0, 6, 7, 9, 12, 14, 15, 18, 21, 24, 27, 28, 30, 33, 35, 36, 39, 42);
var gemstoneEa_rare = new Array(30, 33, 35, 36, 39, 42);
var gemstone_1 = new Array(0, 20, 30, 40, 50, 55, 60, 65, 75, 85);
var gemstone_1_rare = new Array(55, 65, 75, 85);
var gemstone_2 = new Array(0, 20, 30, 40, 50, 55, 60, 65, 75, 85);
var gemstone_2_rare = new Array(55, 65, 75, 85);
var gemstone_3 = new Array(0, 12, 14, 16, 18, 19, 20, 21, 23, 25);
var gemstone_3_rare = new Array(19, 21, 23, 25);
var gemstone_4 = new Array(0, 12, 14, 16, 18, 19, 20, 21, 23, 25);
var gemstone_4_rare = new Array(19, 21, 23, 25);
var gemstone_5 = new Array(0, 4, 6, 8, 9, 10 , 11, 12, 13, 15);
var gemstone_5_rare = new Array(9, 11, 13, 15);
var gemstone_6 = new Array(0, 4, 5, 6);
var gemstone_6_rare = new Array(4, 5, 6);
var gemstone_7 = new Array(0, 12, 14, 16, 18, 19, 20, 21, 23, 25);
var gemstone_7_rare = new Array(19, 21, 23, 25);
var gemstone_8 = new Array(0, 3, 4, 5, 6, 7, 8, 9, 10, 12);
var gemstone_8_rare = new Array(6, 8, 10, 12);
var gemstone_9 = new Array(0, 4, 6, 8, 9, 10, 11, 12, 13, 15);
var gemstone_9_rare = new Array(9, 11, 13, 15);
var gemstone_10 = new Array(0, 3, 4, 5, 6, 7, 8, 9, 10, 12);
var gemstone_10_rare = new Array(6, 8, 10, 12);
var gemstone_11 = new Array(0, 12, 14, 16, 18, 19, 20, 21, 23, 25);
var gemstone_11_rare = new Array(19, 21, 23, 25);
var gemstone_12 = new Array(0, 1, 2, 3, 4, 5);
var gemstone_12_rare = new Array(4, 5);

var stat_gemstone = new Array(0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 9, 11, 4, 8, 12, 7, 5, 0, 0, 0, 0, 6, 3, 10);

var gemstone_remark = new Array(
"Bitte wähle einen Manastein",
"Erhöht die HP",
"Erhöht die MP", 
"Erhöht die magische Angriffskraft",
"Erhöht die Chance zu parieren",
"Erhöht die kritische Trefferchance",
"Erhöht die Flugzeit",
"Erhöht die Trefferchance",
"Erhöht die Magieresistenz",
"Erhöht die Chance Angriffen auszuweichen",
"Erhöht die Chance mit Magischen Zaubern zu treffen",
"Erhöht die Chance einen Angriff zu blocken",
"Erhöht die Angrifskraft"
);

var statDefault = new Array();
statDefault[0] = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
statDefault[1] = new Array(0, 5813, 3612, 115, 115, 100, 100, 90, 0, 1138, 1125, 682, 1330, 879, 188, 1262, 52, 158, 1236, 52, 1.137, 60, 0, 749 );
statDefault[2] = new Array(0, 6008, 3672, 115, 100, 100, 100, 90, 0, 1224, 1182, 1428, 1391, 1052, 198, 1354, 52, 0, 0, 0, 1.05, 60, 0, 784 );
statDefault[3] = new Array(0, 4702, 3612, 110, 100, 110, 110, 90, 0, 846, 1390, 713, 1370, 1063, 163, 1295, 53, 158, 1295, 53, 0.875, 60, 0, 754 );
statDefault[4] = new Array(0, 3547, 3542, 100, 100, 155, 155, 90, 0, 741, 1331, 716, 716, 944, 234, 1310, 53, 0, 0, 0, 2.208, 60, 0, 748 );
statDefault[5] = new Array(0, 2680, 5327, 90, 90, 100, 100, 120, 0, 396, 1223, 657, 657, 1052, 0, 574, -22, 0, 0, 0, 2.2, 60, 740, 857 );
statDefault[6] = new Array(0, 2924, 5357, 90, 90, 100, 100, 115, 0, 358, 1209, 657, 657, 987, 0, 574, -29, 0, 0, 0, 2.2, 60, 680, 817 );
statDefault[7] = new Array(0, 4212, 5538, 105, 110, 90, 90, 105, 0, 975, 1173, 1255, 972, 149, 1226, 11, 0, 0, 0, 1.38, 60, 570, 803 );
statDefault[8] = new Array(0, 4579, 5379, 110, 105, 90, 90, 105, 0, 916, 1126, 1208, 1303, 885, 179, 1310, 11, 0, 0, 0, 1.395, 60, 650, 828 );

function writeStat() {
	var form = eval("document.gemstoneForm");
	var job = form.job.selectedIndex;
	var count = statDefault[job].length;
	for(var i = 1; i < count ; i++) {
		eval("form.stat_"+i+"_1").value = statDefault[job][i];
	}
	viewResult();
}

function modifyStat(num) {
	var number = new RegExp(/[^0-9]/);
	var form = eval("document.gemstoneForm");
	var job = form.job.selectedIndex;
	var stat_1 = eval("form.stat_"+num+"_1").value;
	if(true == number.test(stat_1)) { 
		alert("Please enter a number.");
		eval("form.stat_"+num+"_1").value = statDefault[job][num]; 
	}
	viewResult();
}

function viewResult() {
	var form = eval("document.gemstoneForm");
	var count = 24;
	var stat, gemstoneEa, gemstoneNum, gemstone, num;

	for(var i = 1; i < count ; i++) {
		stat = 1
		gemstoneEa = 0;
		gemstone = 0;
        num = stat_gemstone[i];
		if( 0 != num ) {
			gemstoneNum = eval("form.gemstone_"+num).selectedIndex;
			gemstone = Math.floor(eval("form.gemstone_"+num).options[gemstoneNum].value);
			gemstoneEa = Math.floor(eval("form.view_gemstoneEa_"+num).value);
		}
		stat = Math.floor(eval("form.stat_"+i+"_1").value);
		eval("form.stat_"+i+"_2").value = (gemstone*gemstoneEa)+stat;
		if(0 < gemstoneEa) { eval("form.stat_"+i+"_2").style.fontWeight = "bold"; }
		else { eval("form.stat_"+i+"_2").style.fontWeight = "normal"; }
	}
}

function writeSelect(kind) {
	var select = eval(kind);
	var select_rare = eval(kind+"_rare");
	var rareNum = 0;
	var count = select.length;
	var view, selectValue, selectStyle;
	
	if("job" == kind) { view = "<select name=\""+kind+"\" style=\"margin-top:2px; width:80px;\" onChange=\"writeStat();\" >"; } 
	else if("gemstoneAllea" == kind) { view = "<select name=\""+kind+"\" style=\"margin-top:4px; width:80px;\" onChange=\"checkSelect('"+kind+"');\" >"; } 
	else {view = "<select name=\""+kind+"\" style=\"width:71px;\" onChange=\"checkSelect('"+kind+"');\" >"; }

	for(var i = 0 ; i < count ; i++) {
		selectValue = select[i];
		view += "<option value=\""+selectValue+"\"";
		if(selectValue == select_rare[rareNum]) { view += "class=\"fontGreen\""; rareNum = rareNum + 1; }
		view += ">" + selectValue+"</option>";
	}
	view += "</select>";

	return view;
}

function viewRemark(num) {
	var remark = document.getElementById('remark');
	remark.innerHTML = gemstone_remark[num];
}

function checkSelect(kind) {
	var form = eval("document.gemstoneForm");

	if("gemstoneAllea" == kind) { checkSelect_allea(form, kind, '');} 
	else { checkSelect_gemstone(form, kind); }
}

function checkSelect_allea(form, kind, calculation) {
	var gemstoneNum = eval("form."+kind).selectedIndex;
	var gemstoneValue = eval("form."+kind).options[gemstoneNum].value;
	
	form.allEA_0.value = gemstoneValue;

	var returnValue = eaCalculation(kind, calculation);
	if(false != returnValue) { 	form.nowAlleaNum.value = gemstoneNum; }
}

function checkSelect_gemstone(form, kind) {
	var gemstoneNum = eval("form."+kind).selectedIndex;
	var gemstoneValue = eval("form."+kind).options[gemstoneNum].value;
	eaCalculation(kind, '');
}

function eaCalculation(kind, calculation) {
	var form = eval("document.gemstoneForm");
	var job = form.job.selectedIndex;
	var nowAlleaNum = Math.floor(form.nowAlleaNum.value);
	var allEA_0 = Math.floor(form.allEA_0.value);
	var allEA = Math.floor(form.allEA.value);
	var useEA = 0;
	var gemstoneValue, remainderEA;

	/* 마석수량 선택 : (-)일 경우 해당마석의 수량이 0일경우 아무런 동작도 하지 않음 */
	if("minus" == calculation && 0 >= Math.floor(eval("form."+kind).value)) { return false; }

	/* 마석수량 선택 : 마석수량 계산 & 출력 */
	var kindName = kind.split("_", 2);
	if("view" == kindName[0]) {
		if("minus" == calculation) { eval("form."+kind).value = Math.floor(eval("form."+kind).value) - 1; } 
		else { eval("form."+kind).value = Math.floor(eval("form."+kind).value) + 1; }
	}

	/* 사용한 마석개수 계산 */
	for(var i = 1 ; i <= 12 ; i++) {
		gemstoneValue = eval("form.view_gemstoneEa_"+i).value;
		useEA = useEA + Math.floor(gemstoneValue);
	}
	remainderEA = allEA_0 - useEA;

	if( 0 > remainderEA) { 
		alert("Nicht genug Manasteine verfügbar"); 
		if("gemstoneAllea" == kind) { 	form.gemstoneAllea.options[nowAlleaNum].selected = true; }
		else { eval("form."+kind).value = Math.floor(eval("form."+kind).value) - 1; }
		return false; 
	} else {
		form.allEA.value = form.allEA_0.value;
		form.useEA.value = useEA;
		form.remainderEA.value = allEA_0 - useEA;
	}

	viewResult();
}