//**************************************************
// クリエ側ステータス計算
//**************************************************
function status_calc(){
	for(i=STR; i<=ALICE; i++){
		cd.param[i]		 = 0;
		cd.equip[i]		 = 0;
		cd.card[i]		 = 0;
		cd.correction[i] = 0;
	}
	cd.correction[CAST]  = 100;
	cd.correction[DELAY] = 100;
	cd.AtkEle = NEUTRAL	// 武器属性

	item_equip( 1 );
	item_card( 1 );

	/**********	ステータスポイント計算 **********/
	var stpoint = 100;
	for(var i=1; i<eval(document.creator.STR.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.creator.AGI.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.creator.VIT.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.creator.INT.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.creator.DEX.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.creator.LUK.value); i++)
		stpoint -= Math.ceil(i/10) + 1;

	/**********	BaseLv計算 **********/
	var baselv = 1;
	while(stpoint < 0 && baselv < 99){
		baselv ++;
		stpoint += Math.ceil(baselv/5) + 2;
	}

	// Jobボーナス
	val = db_JobBonus( Creator, eval(document.creator.JOBLEVEL.value) );
	for(i=STR; i<=LUK; i++)
		cd.correction[i] += val[i];

	// マーダラー
	for(i=STR; i<=LUK; i++)
		cd.correction[i] += eval(document.creator.KP.value);

	// 鋭い視線
	cd.correction[DEX] += cd.HAWKEYES;

	// 集中力向上
	if(cd.CONCENTRATION){
		cd.correction[AGI] += Math.floor((eval(document.creator.AGI.value) + cd.correction[AGI] + cd.equip[AGI]) * 3 /100);
		cd.correction[DEX] += Math.floor((eval(document.creator.DEX.value) + cd.correction[DEX] + cd.equip[DEX]) * 3 /100);
	}

	// マリオネット
	// 素状態にMC→装備・支援で計算
	if( cd.MARIONETTE ){
		if(eval(document.creator.INT.value) + val[INT] + eval(document.creator.KP.value) + Math.floor(eval(document.creator.MC_INT.value)/2) > 99)
			cd.correction[INT] += 99 - eval(document.creator.INT.value);
		else
			cd.correction[INT] += Math.floor(eval(document.creator.MC_INT.value)/2);
		if(eval(document.creator.DEX.value) + val[DEX] + eval(document.creator.KP.value) + Math.floor(eval(document.creator.MC_INT.value)/2) > 99)
			cd.correction[DEX] += 99 - eval(document.creator.DEX.value);
		else
			cd.correction[DEX] += Math.floor(eval(document.creator.MC_DEX.value)/2);
	}

	// ゴスペルALL+20
	if(cd.GOSPEL){
		for(i=STR; i<=LUK; i++)
			cd.correction[i] += 20;
	}

	// 料理
	cd.correction[INT] += cd.status[MEAL_INT];
	cd.correction[DEX] += cd.status[MEAL_DEX];

	// 臨戦態勢
	if(cd.BATTLEORDER){
		cd.correction[STR] += 5;
		cd.correction[INT] += 5;
		cd.correction[DEX] += 5;
	}

	// ブレッシング
	cd.correction[STR] += cd.BREATHING;
	cd.correction[INT] += cd.BREATHING;
	cd.correction[DEX] += cd.BREATHING;

	// クァグマイア

	// あなたに尽くします
	if(cd.WE_FEMALE){
		for(i=STR; i<=LUK; i++)
			cd.correction[i] += 1;
	}

	// ステータス合計
	cd.param[STR] = eval(document.creator.STR.value) + cd.correction[STR] + cd.equip[STR] + cd.card[STR];
	cd.param[AGI] = eval(document.creator.AGI.value) + cd.correction[AGI] + cd.equip[AGI] + cd.card[AGI];
	cd.param[VIT] = eval(document.creator.VIT.value) + cd.correction[VIT] + cd.equip[VIT] + cd.card[VIT];
	cd.param[INT] = eval(document.creator.INT.value) + cd.correction[INT] + cd.equip[INT] + cd.card[INT];
	cd.param[DEX] = eval(document.creator.DEX.value) + cd.correction[DEX] + cd.equip[DEX] + cd.card[DEX];
	cd.param[LUK] = eval(document.creator.LUK.value) + cd.correction[LUK] + cd.equip[LUK] + cd.card[LUK];
	for(i=STR; i<=LUK; i++){
		if(cd.param[i] < 0)
			cd.param[i] = 0;
	}

	calc_time();

	/********** 出力 **********/
	document.getElementById("cdBaseLevel").innerHTML = baselv;
	document.getElementById("cdStPoint").innerHTML = stpoint;
	document.getElementById("cdbSTR").innerHTML = cd.param[STR] - eval(document.creator.STR.value);
	document.getElementById("cdbAGI").innerHTML = cd.param[AGI] - eval(document.creator.AGI.value);
	document.getElementById("cdbVIT").innerHTML = cd.param[VIT] - eval(document.creator.VIT.value);
	document.getElementById("cdbINT").innerHTML = cd.param[INT] - eval(document.creator.INT.value);
	document.getElementById("cdbDEX").innerHTML = cd.param[DEX] - eval(document.creator.DEX.value);
	document.getElementById("cdbLUK").innerHTML = cd.param[LUK] - eval(document.creator.LUK.value);

	return;
}

//**************************************************
// 被弾側ステータス計算
//**************************************************
function status_calc2(){
	for(i=STR; i<=ALICE; i++){
		td.param[i]		 = 0;
		td.equip[i]		 = 0;
		td.card[i]		 = 0;
		td.correction[i] = 0;
	}
	td.correction[NEUTRAL]  = 100;
	td.correction[FIRE]     = 100;
	td.correction[WATER]    = 100;
	td.correction[WIND]	    = 100;
	td.correction[EARTH]    = 100;
	td.correction[HOLY]	    = 100;
	td.correction[DARK]	    = 100;
	td.correction[POISON]   = 100;
	td.correction[GHOST]    = 100;
	td.correction[UNDEAD]   = 100;
	td.correction[DISTANCE] = 100;
	td.correction[RACE]     = 100;
	td.correction[SIZE]     = 100;
	td.correction[ALICE]    = 100;
	td.correction[HPrate]   = 100;
	td.param[ELE]    = NEUTRAL;

	item_equip( 0 );
	item_card( 0 );
	//item_equip_weapon();

	/**********	ステータスポイント計算 **********/
	var stpoint = 48;
	if(eval(document.target.JOB.value) >= LordKnight && eval(document.target.JOB.value) <= Gypsy)
		var stpoint = 100;
	for(var i=1; i<eval(document.target.STR.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.target.AGI.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.target.VIT.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.target.INT.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.target.DEX.value); i++)
		stpoint -= Math.ceil(i/10) + 1;
	for(var i=1; i<eval(document.target.LUK.value); i++)
		stpoint -= Math.ceil(i/10) + 1;

	/**********	BaseLv計算 **********/
	var baselv = 1;
	while(stpoint < 0 && baselv < 99){
		baselv ++;
		stpoint += Math.ceil(baselv/5) + 2;
	}

	// Jobボーナス
	val = db_JobBonus( eval(document.target.JOB.value), eval(document.target.JOBLEVEL.value) );
	for(i=STR; i<=LUK; i++)
		td.correction[i] += val[i];

	// マーダラー
	for(i=STR; i<=LUK; i++)
		td.correction[i] += eval(document.target.KP.value);

	//スパノビ無死亡ボーナス
	if(eval(document.target.JOB.value) == SuperNovice && eval(document.target.JOBLEVEL.value) >= 70 && document.target.NODIE.checked){
		for(i=STR; i<=LUK; i++)
			td.correction[i] += 10;
	}

	// マリオネット
	// 素状態にMC→装備・支援で計算
	if( td.MARIONETTE ){
		if(eval(document.target.VIT.value) + td.correction[VIT] + Math.floor(eval(document.target.MC_VIT.value)/2) > 99)
			td.correction[VIT] += 99 - eval(document.target.VIT.value);
		else
			td.correction[VIT] += Math.floor(eval(document.target.MC_VIT.value)/2);
	}

	// 栄光の傷
	td.correction[VIT] += td.GLORYWOUNDS;

	// ゴスペルALL+20
	if(td.GOSPEL & 1){
		for(i=STR; i<=LUK; i++)
			td.correction[i] += 20;
	}

	// 上位一次職の魂
	// 一次職未実装なのでパス

	// アイテム補正
	td.correction[VIT] += td.MEAL_VIT;

	if(td.RESIST & 1){
		td.correction[FIRE] -= 20;
		td.correction[WATER] += 15;
	}
	if(td.RESIST & 2){
		td.correction[WATER] -= 20;
		td.correction[WIND] += 15;
	}
	if(td.RESIST & 4){
		td.correction[WIND] -= 20;
		td.correction[EARTH] += 15;
	}
	if(td.RESIST & 8){
		td.correction[EARTH] -= 20;
		td.correction[FIRE] += 15;
	}

	// あなたに尽くします
	// ♀スパノビからなのでダンサー、ジプシーは除外
	if(td.WE_FEMALE && (eval(document.target.JOB.value) != Dancer || eval(document.target.JOB.value) != Gupsy)){
		for(i=STR; i<=LUK; i++)
			td.correction[i] += 1;
	}

	// トゥルーサイト
	if(td.TRUESIGHT){
		for(i=STR; i<=LUK; i++)
			td.correction[i] += 5;
	}

	// ディフェンス（ホムスキル）
	td.correction[VIT] += td.DEFENCE * 2;

	// ステータス合計
	td.param[STR] = eval(document.target.STR.value) + td.correction[STR] + td.equip[STR] + td.card[STR];
	td.param[AGI] = eval(document.target.AGI.value) + td.correction[AGI] + td.equip[AGI] + td.card[AGI];
	td.param[VIT] = eval(document.target.VIT.value) + td.correction[VIT] + td.equip[VIT] + td.card[VIT];
	td.param[INT] = eval(document.target.INT.value) + td.correction[INT] + td.equip[INT] + td.card[INT];
	td.param[DEX] = eval(document.target.DEX.value) + td.correction[DEX] + td.equip[DEX] + td.card[DEX];
	td.param[LUK] = eval(document.target.LUK.value) + td.correction[LUK] + td.equip[LUK] + td.card[LUK];
	for(i=STR; i<=LUK; i++){
		if(td.param[i] < 0)
			td.param[i] = 0;
	}

	// スパノビオーラボーナス
	if(eval(document.target.JOB.value) == SuperNovice && baselv == 99)
		td.param[HP] += Math.floor(2000 * (100 + td.param[VIT]) / 100);

	// フェイス
	td.param[HP] += td.TRUST * 200;
	td.correction[HOLY] -= td.TRUST * 5;

	// HP計算
	var val = Math.floor(db_BaseHP( eval(document.target.JOB.value), baselv ) * (100 + td.param[VIT]) / 100) + td.equip[VIT];
	if(eval(document.target.JOB.value) >= LordKnight && eval(document.target.JOB.value) <= Gypsy)
		td.param[HP] += Math.floor(val * 125/100);
	else if(document.target.BABY.checked && !(eval(document.target.JOB.value) >= LordKnight && eval(document.target.JOB.value) <= Ninja))
		td.param[HP] += Math.floor(val * 70/100);
	else
		td.param[HP] += val;
	if(td.APPLE.Lv)
		td.APPLE.HP = Math.floor(td.param[HP] * (5 + td.APPLE.Lv * 2 + td.LESSON + eval(document.target.BARD_VIT.value) / 10) / 100);
	else
		td.APPLE.HP = 0;
	td.param[HP] += td.correction[MaxHP];
	td.param[HP] = Math.floor(td.param[HP] * td.correction[HPrate]/100);
	td.param[HP] += td.APPLE.HP;

	// バーサーク
	if(td.BERSERK)
		td.param[HP] *= 3;

	// ゴスペルHP2倍
	if(td.GOSPEL & 2)
		td.param[HP] *= 2;

	// デリュージval1*(11-val1)/2;
	if(td.DELUGE && td.param[ELE] == WATER)
		td.param[HP] += Math.floor(td.param[HP] * (td.DELUGE * (11 - td.DELUGE) / 2) / 100);

	// テコンランカーボーナス（テコン未実装）
	//if(document.target.JOB.value == "Taekwon" && baselv >= 90 && document.target.TAEKWONRANK.checked)
	//	td.param[HP] *= 3;

	if(td.param[HP] < 0)
		td.param[HP] = 1;

	// プロヴィデンス
	if(eval(document.target.JOB.value) != Crusader && eval(document.target.JOB.value) != Paladin)
		td.correction[HOLY] -= td.PROVIDENCE * 5;

	// ウォールオブフォグ
	if(td.FOGWALL)
		td.correction[DISTANCE] -= 25;

	// スキンテンパリング
	//	火属性耐性はまた別に
	td.correction[NEUTRAL] -= td.SKIN;
	td.correction[FIRE] -= td.SKIN * 4;

	// 不死身のジークフリード
	if(td.SIEGFRIED){
		td.correction[FIRE]	  -= 55 + 5 * td.SIEGFRIED;
		td.correction[WATER]  -= 55 + 5 * td.SIEGFRIED;
		td.correction[WIND]	  -= 55 + 5 * td.SIEGFRIED;
		td.correction[EARTH]  -= 55 + 5 * td.SIEGFRIED;
		td.correction[HOLY]	  -= 55 + 5 * td.SIEGFRIED;
		td.correction[DARK]	  -= 55 + 5 * td.SIEGFRIED;
		td.correction[POISON] -= 55 + 5 * td.SIEGFRIED;
		td.correction[GHOST]  -= 55 + 5 * td.SIEGFRIED;
		td.correction[UNDEAD] -= 55 + 5 * td.SIEGFRIED;
	}

	/********** ステータス出力 **********/
	document.getElementById("tdBaseLevel").innerHTML = baselv;
	document.getElementById("tdStPoint").innerHTML = stpoint;
	document.getElementById("tdbSTR").innerHTML = td.param[STR] - eval(document.target.STR.value);
	document.getElementById("tdbAGI").innerHTML = td.param[AGI] - eval(document.target.AGI.value);
	document.getElementById("tdbVIT").innerHTML = td.param[VIT] - eval(document.target.VIT.value);
	document.getElementById("tdbINT").innerHTML = td.param[INT] - eval(document.target.INT.value);
	document.getElementById("tdbDEX").innerHTML = td.param[DEX] - eval(document.target.DEX.value);
	document.getElementById("tdbLUK").innerHTML = td.param[LUK] - eval(document.target.LUK.value);
	document.getElementById("tdHP").innerHTML = td.param[HP];
	/********** 耐性出力 **********/
	//document.getElementById("Neutral").innerHTML= 100 - td.correction[NEUTRAL]  + "%";
	//document.getElementById("Fire").innerHTML	= 100 - td.correction[FIRE]     + "%";
	//document.getElementById("Water").innerHTML	= 100 - td.correction[WATER]    + "%";
	//document.getElementById("Wind").innerHTML	= 100 - td.correction[WIND]     + "%";
	//document.getElementById("Earth").innerHTML	= 100 - td.correction[EARTH]    + "%";
	//document.getElementById("Holy").innerHTML	= 100 - td.correction[HOLY]     + "%";
	//document.getElementById("Dark").innerHTML	= 100 - td.correction[DARK]     + "%";
	//document.getElementById("Poison").innerHTML	= 100 - td.correction[POISON]   + "%";
	//document.getElementById("Esp").innerHTML	= 100 - td.correction[GHOST]    + "%";
	//document.getElementById("Dead").innerHTML	= 100 - td.correction[UNDEAD]   + "%";
	//document.getElementById("Dist").innerHTML	= 100 - td.correction[DISTANCE] + "%";
	//document.getElementById("Race").innerHTML	= 100 - td.correction[RACE]     + "%";
	//document.getElementById("Size").innerHTML	= 100 - td.correction[SIZE]     + "%";
	//if(td.param[ELE] == GHOST && cd.AtkEle == NEUTRAL)
	//	document.getElementById("EleRate").innerHTML = "25%";
	//else
	//	document.getElementById("EleRate").innerHTML = "100%";

	return;
}

