var costm=new Array(0,0,0,0,0,0,0);
var costred = 0;
var costyellow = 0;
var costwhite = 0;
var lplv = 0;
var pharmacylv = 0;
var joblv = 0;
var int_val = 0;
var dex_val = 0;
var luk_val = 0;
var slimtype = 3;
var sikou = 3;	// 総試行回数
var sikoulimit = 9999999;	// 試行回数上限
var targetnum = 1;	// 何ポイントを目指すか?
var costtotalzeny = 0;	// 最終的に投じた費用
var famepoint = 0;
var sucnum = new Array(6);	// 成功数
var kakuritsu = 0;

function calcgo1(){

	costm[0] = parseInt(document.forms.sphacalc001.elements["txtmaterial"].value);
	costm[1] = parseInt(document.forms.sphacalc001.elements["txtred"].value);
	costm[2] = parseInt(document.forms.sphacalc001.elements["txtredm"].value);
	costm[3] = parseInt(document.forms.sphacalc001.elements["txtyellow"].value);
	costm[4] = parseInt(document.forms.sphacalc001.elements["txtyellowm"].value);
	costm[5] = parseInt(document.forms.sphacalc001.elements["txtwhite"].value);
	costm[6] = parseInt(document.forms.sphacalc001.elements["txtwhitem"].value);
	costred = costm[1] + costm[2] + costm[0];
	costyellow = costm[3] + costm[4] + costm[0];
	costwhite = costm[5] + costm[6] + costm[0];

	lplv = parseInt(document.forms.sphacalc001.elements["selelplv"].value);
	pharmacylv = parseInt(document.forms.sphacalc001.elements["selepharmacylv"].value);
	joblv = parseInt(document.forms.sphacalc001.elements["selejoblv"].value);
	int_val = parseInt(document.forms.sphacalc001.elements["seleint"].value);
	dex_val = parseInt(document.forms.sphacalc001.elements["seledex"].value);
	luk_val = parseInt(document.forms.sphacalc001.elements["seleluk"].value);
	slimtype = parseInt(document.forms.sphacalc001.elements["seleslim"].value);

	if(document.forms.sphacalc001.radiocharenge[0].checked == true){
		sikou = document.forms.sphacalc001.elements["txtcharengenum"].value;
	}else if(document.forms.sphacalc001.radiocharenge[1].checked == true){
		targetnum = document.forms.sphacalc001.elements["txtcharengenum2"].value;
		sikou = sikoulimit;
	}else{
		targetnum = 1;
		sikou = sikoulimit;
	}
	// 入力完了、次は初期化。
	costtotalzeny = 0;
	famepoint = 0;
	kakuritsu = 0;

	for (i = 0 ; i < 6; i++){
		sucnum[i] = 0;
	}
	document.forms.sphacalc001.elements["info1"].value = "";
	// 初期化完了。

	if (sikou < 1){
		document.forms.sphacalc001.elements["info1"].value ="製薬されないようでしたら、別の場所へ御行きになられたらいかが？\n";
	} else {
		document.forms.sphacalc001.elements["info1"].value ="";
		for (i = 0 ; i < sikou; i++){
			if (pharmacy(slimtype) == 1){
				sucnum[0] = sucnum[0] + 1;
				sucnum[5] = sucnum[5] + 1;
				if(sucnum[0] == 3){
					sucnum[1] = sucnum[1] + 1;
					famepoint = famepoint + 1;
				}
				if(sucnum[0] == 5){
					sucnum[2] = sucnum[2] + 1;
					famepoint = famepoint + 3;
				}
				if(sucnum[0] == 7){
					sucnum[3] = sucnum[3] + 1;
					famepoint = famepoint + 10;
				}
				if(sucnum[0] >= 10){
					sucnum[4] = sucnum[4] + 1;
					famepoint = famepoint + 50;
					sucnum[0] = 0;	// 連続成功数のリセット
				}
				// 規定ポイント達成したら
				if((document.forms.sphacalc001.radiocharenge[1].checked == true) && (famepoint >= targetnum)){
					sikou = i + 1;
				}
			} else {
				sucnum[0] = 0;
			}
		}
		if(slimtype == 1) {
			costtotalzeny = sikou * costred;
		} else if(slimtype == 2) {
			costtotalzeny = sikou * costyellow;
		} else if(slimtype == 3) {
			costtotalzeny = sikou * costwhite;
		}
		// この時点で製薬完了
		// 結果書き込み...
		if((document.forms.sphacalc001.radiocharenge[1].checked == true) && (famepoint < targetnum)){
			document.forms.sphacalc001.elements["info1"].value = document.forms.sphacalc001.elements["info1"].value + kiro(sikou) + "回数行っても目標に到達しなかったので計算を止めます。\n";
		}
		// 基本結果(費用算出版と非算出版あり)
		if (document.forms.sphacalc001.chktankacalc1.checked == true){
			document.forms.sphacalc001.elements["info1"].value = document.forms.sphacalc001.elements["info1"].value + "貴方は" + kiro(sikou) + "回分の材料(相場価格" + kiro(costtotalzeny) + "z)を投じました。\nその結果、" + kiro(sucnum[5]) + "本の製薬品を得ました。（成功確率 " + (sucnum[5]/sikou * 100) + "％）";
		}else{
			document.forms.sphacalc001.elements["info1"].value = document.forms.sphacalc001.elements["info1"].value + "貴方は" + kiro(sikou) + "回分の材料を投じました。\nその結果、" + kiro(sucnum[5]) + "本の製薬品を得ました。（成功確率 " + (sucnum[5]/sikou * 100) + "％）";
		}

		document.forms.sphacalc001.elements["info1"].value = document.forms.sphacalc001.elements["info1"].value + "\n3回連続で成功した回数：" + kiro(sucnum[1]) + "回\n5回連続で成功した回数：" + kiro(sucnum[2]) + "回\n7回連続で成功した回数：" + kiro(sucnum[3]) + "回\n10回連続で成功した回数：" + kiro(sucnum[4]) + "回\nその結果、名声ポイントを " + kiro(famepoint) + " 得ました。";

		if ((famepoint > 0) && (document.forms.sphacalc001.chktankacalc1.checked == true)){
			document.forms.sphacalc001.elements["info1"].value = document.forms.sphacalc001.elements["info1"].value + "\n名声ポイント1を得るのに" + kiro(Math.floor(costtotalzeny / famepoint)) + "zを費やしたことになります。\n";
		}
	}
}

// ファーマシー関数/成功時1を返す
function pharmacy(slimtype){
	kakuritsu = (lplv * 100) + (pharmacylv * 300) + (joblv * 20) + ((dex_val + luk_val) * 10) + (int_val * 5);
	if (slimtype == 1){
		kakuritsu = kakuritsu - 500;
	} else if (slimtype == 2){
		kakuritsu = kakuritsu - 750;
	} else if (slimtype == 3){
		kakuritsu = kakuritsu - 1000;
	}

	if (kakuritsu >= Math.floor(Math.random() * 10000)){
		return(1);
	} else {
		return(0);
	}
}

// 数字に,をつけます。 1234567→1,234,567
function kiro(intin){
	var tmp = "";	// intin入れ
	var tmp2 = "";	// 作業用
	if(Number(intin) == NaN){
		return(intin);
	}else if(intin < 1000){
		return(intin);
	}else{
		tmp = String(Math.floor(intin));
		while((tmp.length) >= 4){
			tmp2 = "," + tmp.slice(tmp.length - 3) + tmp2;
			tmp = tmp.slice(0,tmp.length - 3);
		}
		tmp2 = tmp + tmp2;
		return(tmp2);
	}
}

