/* ---------------------------------------------------------------- **
   JavaScript for Mabinogi Simulator ステータス計算用
   
                                                     (c) リムルア
** ---------------------------------------------------------------- */

function ProcessStatus() {

	var i;
	var X_Life = 0; // アタックスキルボーナス除外
	
	// 初期化
	A_Life = 0, A_Mana = 0, A_Stamina = 0, A_Str = 0, A_Int = 0, A_Dex = 0, A_Will = 0, A_Luck = 0;
	
	// フォームからの取得
	// アタックスキルによるＨＰ上昇は除く
	X_Life    = S_Life - Rank_Attack * 10;

	// ステータス算出
	// 初期年齢ステータス計算
	if(CharaType == 0) {
		switch (bAge) {	// 人間
			case 10: B_Life = 20; B_Mana = 20; B_Stamina = 20; B_Str = 10; B_Int = 10; B_Dex = 10; B_Will = 10; B_Luck = 10; break;
			case 11: B_Life = 25; B_Mana = 22; B_Stamina = 23; B_Str = 12; B_Int = 10; B_Dex = 12; B_Will = 13; B_Luck = 13; break;
			case 12: B_Life = 30; B_Mana = 24; B_Stamina = 26; B_Str = 14; B_Int = 10; B_Dex = 15; B_Will = 16; B_Luck = 15; break;
			case 13: B_Life = 34; B_Mana = 26; B_Stamina = 30; B_Str = 16; B_Int = 10; B_Dex = 18; B_Will = 19; B_Luck = 17; break;
			case 14: B_Life = 38; B_Mana = 29; B_Stamina = 34; B_Str = 18; B_Int = 10; B_Dex = 21; B_Will = 22; B_Luck = 18; break;
			case 15: B_Life = 42; B_Mana = 32; B_Stamina = 38; B_Str = 20; B_Int = 11; B_Dex = 23; B_Will = 24; B_Luck = 19; break;
			case 16: B_Life = 46; B_Mana = 36; B_Stamina = 42; B_Str = 22; B_Int = 13; B_Dex = 24; B_Will = 26; B_Luck = 19; break;
			case 17: B_Life = 49; B_Mana = 40; B_Stamina = 46; B_Str = 24; B_Int = 15; B_Dex = 25; B_Will = 28; B_Luck = 19; break;
		}
	} else {
		switch (bAge) {	// エルフ
			case 10: B_Life = 16; B_Mana = 25; B_Stamina = 16; B_Str = 10; B_Int = 12; B_Dex = 14; B_Will = 10; B_Luck = 10; break;
			case 11: B_Life = 18; B_Mana = 29; B_Stamina = 19; B_Str = 11; B_Int = 14; B_Dex = 18; B_Will = 11; B_Luck = 12; break;
			case 12: B_Life = 21; B_Mana = 33; B_Stamina = 21; B_Str = 12; B_Int = 16; B_Dex = 22; B_Will = 12; B_Luck = 14; break;
			case 13: B_Life = 24; B_Mana = 36; B_Stamina = 24; B_Str = 13; B_Int = 18; B_Dex = 26; B_Will = 13; B_Luck = 15; break;
			case 14: B_Life = 27; B_Mana = 40; B_Stamina = 26; B_Str = 14; B_Int = 20; B_Dex = 29; B_Will = 15; B_Luck = 16; break;
			case 15: B_Life = 31; B_Mana = 43; B_Stamina = 29; B_Str = 15; B_Int = 23; B_Dex = 32; B_Will = 17; B_Luck = 17; break;
			case 16: B_Life = 33; B_Mana = 45; B_Stamina = 35; B_Str = 16; B_Int = 26; B_Dex = 35; B_Will = 19; B_Luck = 17; break;
			case 17: B_Life = 38; B_Mana = 47; B_Stamina = 38; B_Str = 17; B_Int = 29; B_Dex = 38; B_Will = 20; B_Luck = 17; break;
		}
	}

	// 加齢上昇ステータス計算
	if(nAge > 10) {
		if(nAge > 25) NAge = 25; else NAge = nAge + 1;
		if(bAge == 10){
			for(i = 11; i < NAge; i++) AAstatus(i);
		} else if(bAge == 11){
			for(i = 12; i < NAge; i++) AAstatus(i);
		} else if(bAge == 12){
			for(i = 13; i < NAge; i++) AAstatus(i);
		} else if(bAge == 13){
			for(i = 14; i < NAge; i++) AAstatus(i);
		} else if(bAge == 14){
			for(i = 15; i < NAge; i++) AAstatus(i);
		} else if(bAge == 15){
			for(i = 16; i < NAge; i++) AAstatus(i);
		} else if(bAge == 16){
			for(i = 17; i < NAge; i++) AAstatus(i);
		} else if(bAge == 17){
			for(i = 18; i < NAge; i++) AAstatus(i);
		}
	}
	
	// レベル上昇ステータス計算
	NLv = Lv - 1;
	if(CharaType == 0) {
		switch (nAge) {		// 人間
			case 10: L_Life = NLv * 100; L_Mana = NLv *  25; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv *   0; L_Dex = NLv *  50; L_Will = NLv *  75; L_Luck = NLv *  75; break;
			case 11: L_Life = NLv * 100; L_Mana = NLv *  25; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv *   0; L_Dex = NLv *  75; L_Will = NLv *  75; L_Luck = NLv *  50; break;
			case 12: L_Life = NLv *  75; L_Mana = NLv *  25; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *   0; L_Dex = NLv *  75; L_Will = NLv *  75; L_Luck = NLv *  50; break;
			case 13: L_Life = NLv *  75; L_Mana = NLv *  50; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *   0; L_Dex = NLv *  75; L_Will = NLv *  75; L_Luck = NLv *  25; break;
			case 14: L_Life = NLv *  75; L_Mana = NLv *  50; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  25; L_Dex = NLv *  50; L_Will = NLv *  50; L_Luck = NLv *  25; break;
			case 15: L_Life = NLv *  75; L_Mana = NLv *  50; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 16: L_Life = NLv *  50; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 17: L_Life = NLv *  50; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  75; L_Dex = NLv *   0; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 18: L_Life = NLv *  50; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  75; L_Dex = NLv *   0; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 19: L_Life = NLv *  50; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  75; L_Dex = NLv *   0; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 20: L_Life = NLv *  25; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  50; L_Int = NLv *  75; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 21: L_Life = NLv *  25; L_Mana = NLv *  50; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv * 100; L_Dex = NLv *  50; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 22: L_Life = NLv *  25; L_Mana = NLv *  50; L_Stamina = NLv *  25; L_Str = NLv *  50; L_Int = NLv *  75; L_Dex = NLv *  75; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 23: L_Life = NLv *  25; L_Mana = NLv *  25; L_Stamina = NLv *  25; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  50; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			default: L_Life = NLv *   0; L_Mana = NLv *  25; L_Stamina = NLv *  25; L_Str = NLv *  50; L_Int = NLv *  25; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
	//		上昇 0 は回避
	//		default: L_Life = NLv *   0; L_Mana = NLv *   0; L_Stamina = NLv *   0; L_Str = NLv *   0; L_Int = NLv *   0; L_Dex = NLv *   0; L_Will = NLv *   0; L_Luck = NLv *   0; break;
		}
		
		// 探検レベル上昇ステータス計算
		ELv = eLv - 1;
		switch (nAge) {
			case 10: E_Life = ELv * 100; E_Mana = ELv *  25; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv *   0; E_Dex = ELv *  50; E_Will = ELv *  75; E_Luck = ELv *  75; break;
			case 11: E_Life = ELv * 100; E_Mana = ELv *  25; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv *   0; E_Dex = ELv *  75; E_Will = ELv *  75; E_Luck = ELv *  50; break;
			case 12: E_Life = ELv *  75; E_Mana = ELv *  25; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *   0; E_Dex = ELv *  75; E_Will = ELv *  75; E_Luck = ELv *  50; break;
			case 13: E_Life = ELv *  75; E_Mana = ELv *  50; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *   0; E_Dex = ELv *  75; E_Will = ELv *  75; E_Luck = ELv *  25; break;
			case 14: E_Life = ELv *  75; E_Mana = ELv *  50; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  25; E_Dex = ELv *  50; E_Will = ELv *  50; E_Luck = ELv *  25; break;
			case 15: E_Life = ELv *  75; E_Mana = ELv *  50; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 16: E_Life = ELv *  50; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 17: E_Life = ELv *  50; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  75; E_Dex = ELv *   0; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 18: E_Life = ELv *  50; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  75; E_Dex = ELv *   0; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 19: E_Life = ELv *  50; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  75; E_Dex = ELv *   0; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 20: E_Life = ELv *  25; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  50; E_Int = ELv *  75; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 21: E_Life = ELv *  25; E_Mana = ELv *  50; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv * 100; E_Dex = ELv *  50; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 22: E_Life = ELv *  25; E_Mana = ELv *  50; E_Stamina = ELv *  25; E_Str = ELv *  50; E_Int = ELv *  75; E_Dex = ELv *  75; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 23: E_Life = ELv *  25; E_Mana = ELv *  25; E_Stamina = ELv *  25; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  50; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			default: E_Life = ELv *   0; E_Mana = ELv *  25; E_Stamina = ELv *  25; E_Str = ELv *  50; E_Int = ELv *  25; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
	//		上昇 0 は回避
	//		default: E_Life = ELv *   0; E_Mana = ELv *   0; E_Stamina = ELv *   0; E_Str = ELv *   0; E_Int = ELv *   0; E_Dex = ELv *   0; E_Will = ELv *   0; E_Luck = ELv *   0; break;
		}
	} else {
		switch (nAge) {		// エルフ
			case 10: L_Life = NLv *  50; L_Mana = NLv * 100; L_Stamina = NLv *  50; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  75; L_Will = NLv *  25; L_Luck = NLv *  50; break;
			case 11: L_Life = NLv *  50; L_Mana = NLv * 100; L_Stamina = NLv *  50; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  75; L_Will = NLv *  25; L_Luck = NLv *  50; break;
			case 12: L_Life = NLv *  75; L_Mana = NLv *  75; L_Stamina = NLv *  50; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  75; L_Will = NLv *  25; L_Luck = NLv *  25; break;
			case 13: L_Life = NLv *  75; L_Mana = NLv *  75; L_Stamina = NLv *  50; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  75; L_Will = NLv *  50; L_Luck = NLv *  25; break;
			case 14: L_Life = NLv *  50; L_Mana = NLv *  75; L_Stamina = NLv *  75; L_Str = NLv *  25; L_Int = NLv *  75; L_Dex = NLv *  50; L_Will = NLv *  50; L_Luck = NLv *  25; break;
			case 15: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  75; L_Str = NLv *  25; L_Int = NLv *  75; L_Dex = NLv *  50; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 16: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  75; L_Str = NLv *  25; L_Int = NLv *  75; L_Dex = NLv *  50; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 17: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  50; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  50; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 18: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  50; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 19: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 20: L_Life = NLv *  50; L_Mana = NLv *  50; L_Stamina = NLv *  50; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 21: L_Life = NLv *  25; L_Mana = NLv *  50; L_Stamina = NLv *  25; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  50; L_Luck = NLv *   0; break;
			case 22: L_Life = NLv *  25; L_Mana = NLv *  50; L_Stamina = NLv *  25; L_Str = NLv *  50; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			case 23: L_Life = NLv *  25; L_Mana = NLv *  25; L_Stamina = NLv *  25; L_Str = NLv *  25; L_Int = NLv *  50; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
			default: L_Life = NLv *  25; L_Mana = NLv *  25; L_Stamina = NLv *   0; L_Str = NLv *  25; L_Int = NLv *  25; L_Dex = NLv *  25; L_Will = NLv *  25; L_Luck = NLv *   0; break;
	//		上昇 0 は回避
	//		default: L_Life = NLv *   0; L_Mana = NLv *   0; L_Stamina = NLv *   0; L_Str = NLv *   0; L_Int = NLv *   0; L_Dex = NLv *   0; L_Will = NLv *   0; L_Luck = NLv *   0; break;
		}
		// 探検レベル上昇ステータス計算
		ELv = eLv - 1;
		switch (nAge) {
			case 10: E_Life = ELv *  50; E_Mana = ELv * 100; E_Stamina = ELv *  50; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  75; E_Will = ELv *  25; E_Luck = ELv *  50; break;
			case 11: E_Life = ELv *  50; E_Mana = ELv * 100; E_Stamina = ELv *  50; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  75; E_Will = ELv *  25; E_Luck = ELv *  50; break;
			case 12: E_Life = ELv *  75; E_Mana = ELv *  75; E_Stamina = ELv *  50; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  75; E_Will = ELv *  25; E_Luck = ELv *  25; break;
			case 13: E_Life = ELv *  75; E_Mana = ELv *  75; E_Stamina = ELv *  50; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  75; E_Will = ELv *  50; E_Luck = ELv *  25; break;
			case 14: E_Life = ELv *  50; E_Mana = ELv *  75; E_Stamina = ELv *  75; E_Str = ELv *  25; E_Int = ELv *  75; E_Dex = ELv *  50; E_Will = ELv *  50; E_Luck = ELv *  25; break;
			case 15: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  75; E_Str = ELv *  25; E_Int = ELv *  75; E_Dex = ELv *  50; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 16: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  75; E_Str = ELv *  25; E_Int = ELv *  75; E_Dex = ELv *  50; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 17: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  50; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  50; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 18: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  50; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 19: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 20: E_Life = ELv *  50; E_Mana = ELv *  50; E_Stamina = ELv *  50; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 21: E_Life = ELv *  25; E_Mana = ELv *  50; E_Stamina = ELv *  25; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  50; E_Luck = ELv *   0; break;
			case 22: E_Life = ELv *  25; E_Mana = ELv *  50; E_Stamina = ELv *  25; E_Str = ELv *  50; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			case 23: E_Life = ELv *  25; E_Mana = ELv *  25; E_Stamina = ELv *  25; E_Str = ELv *  25; E_Int = ELv *  50; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
			default: E_Life = ELv *  25; E_Mana = ELv *  25; E_Stamina = ELv *   0; E_Str = ELv *  25; E_Int = ELv *  25; E_Dex = ELv *  25; E_Will = ELv *  25; E_Luck = ELv *   0; break;
	//		上昇 0 は回避
	//		default: E_Life = ELv *   0; E_Mana = ELv *   0; E_Stamina = ELv *   0; E_Str = ELv *   0; E_Int = ELv *   0; E_Dex = ELv *   0; E_Will = ELv *   0; E_Luck = ELv *   0; break;
		}
	}
	
	// 授業、本によるステータス増加
	if (document.st_form.st_c1.checked == true) B_Str += 1;
	if (document.st_form.st_c2.checked == true) B_Str += 2;
	if (document.st_form.st_c3.checked == true) { B_Str += 2; B_Will += 2; }
	if (document.st_form.st_c4.checked == true) B_Int += 2;
	if (document.st_form.st_b1.checked == true) B_Int += 1;
	if (document.st_form.st_b2.checked == true) B_Int += 1;
	if (document.st_form.st_b3.checked == true) B_Int += 1;
	if (document.st_form.st_b4.checked == true) B_Int += 1;
	if (document.st_form.st_b5.checked == true) B_Int += 1;
	if (document.st_form.st_b6.checked == true) B_Int += 1;
	
	// ステータス合計（ベース）
	BLife    = X_Life    + B_Life    + A_Life    + Math.floor(L_Life    / 100) + Math.floor(E_Life    / 100);
	BMana    = S_Mana    + B_Mana    + A_Mana    + Math.floor(L_Mana    / 100) + Math.floor(E_Mana    / 100);
	BStamina = S_Stamina + B_Stamina + A_Stamina + Math.floor(L_Stamina / 100) + Math.floor(E_Stamina / 100);
	BStr     = S_Str     + B_Str     + A_Str     + Math.floor(L_Str     / 100) + Math.floor(E_Str     / 100);
	BInt     = S_Int     + B_Int     + A_Int     + Math.floor(L_Int     / 100) + Math.floor(E_Int     / 100);
	BDex     = S_Dex     + B_Dex     + A_Dex     + Math.floor(L_Dex     / 100) + Math.floor(E_Dex     / 100);
	BWill    = S_Will    + B_Will    + A_Will    + Math.floor(L_Will    / 100) + Math.floor(E_Will    / 100);
	BLuck    = S_Luck    + B_Luck    + A_Luck    + Math.floor(L_Luck    / 100) + Math.floor(E_Luck    / 100);
	
	// 誤差修正
	if(document.st_form.st_st.checked != true){
		BLife    += PmLife;
		BMana    += PmMana;
		BStamina += PmStamina;
		BStr     += PmStr;
		BInt     += PmInt;
		BDex     += PmDex;
		BWill    += PmWill;
		BLuck    += PmLuck;
	}
	
	// ボーナス関連 計算スタート -----------------------------------------------------------------------------
	balance = maxinju = mininju = critical = defense = protect = 0;
	
	// ステータス合計（ボーナスこみ）
	NLife     = S_Life + B_Life + A_Life + Math.floor(L_Life / 100) + Math.floor(E_Life / 100);
	if((NLife    += T_Life               + En_Life    + Pet_Life    + Fd_Life               + PDLife ) < 0) NLife    = 0;
	if((NMana     = BMana    + T_Mana    + En_Mana    + Pet_Mana    + Fd_Mana               + PDMana ) < 0) NMana    = 0;
	if((NStamina  = BStamina + T_Stamina + En_Stamina + Pet_Stamina + Fd_Stamina            + PDStam ) < 0) NStamina = 0;
	if((NStr      = BStr     + T_Str     + En_Str     + Pet_Str     + Fd_Str     + Msc_Str  + PDStr  ) < 0) NStr     = 0;
	if((NInt      = BInt     + T_Int     + En_Int     + Pet_Int     + Fd_Int     + Msc_Int  + PDInt  ) < 0) NInt     = 0;
	if((NDex      = BDex     + T_Dex     + En_Dex     + Pet_Dex     + Fd_Dex     + Msc_Dex  + PDDex  ) < 0) NDex     = 0;
	if((NWill     = BWill    + T_Will    + En_Will    + Pet_Will    + Fd_Will    + Msc_Will + PDWill ) < 0) NWill    = 0;
	if((NLuck     = BLuck    + T_Luck    + En_Luck    + Pet_Luck    + Fd_Luck    + Msc_Luck          ) < 0) NLuck    = 0;
	
	// 修正がそのままの場合
	if(document.st_form.st_st.checked == true){
		NLife    = BLife    = PmLife;
		NMana    = BMana    = PmMana;
		NStamina = BStamina = PmStamina;
		NStr     = BStr     = PmStr;
		NInt     = BInt     = PmInt;
		NDex     = BDex     = PmDex;
		NWill    = BWill    = PmWill;
		NLuck    = BLuck    = PmLuck;
	}

	// 攻撃性能計算
	S_MaxAtk  += Math.floor((NStr - 10) * 10 / 25);
	S_MinAtk  += Math.floor((NStr - 10) * 10 / 30);
	S_MaxRAtk += Math.floor((NDex - 10) * 10 / 25);
	S_MinRAtk += Math.floor((NDex - 10) * 10 / 35);
	balance   += Math.floor((NDex - 10) / 4);
	critical  += Math.floor(((NWill - 10) / 10) + ((NLuck - 10) / 5) + 0.1);
	maxinju   += Math.floor(((NDex - 10) / 10) + ((NWill - 10) / 6));
	mininju   += Math.floor(((NDex - 10) / 20) + ((NWill - 10) / 20));
	
	// 装備性能
	defense += EQ_Acs1Df + EQ_HeadDf + EQ_Acs2Df + EQ_BodyDf + EQ_ArmDf + EQ_LegDf + EQ_RobeDf;
	protect += EQ_Acs1Pr + EQ_HeadPr + EQ_Acs2Pr + EQ_BodyPr + EQ_ArmPr + EQ_LegPr + EQ_RobePr;
	
	
	if(EQ_Arrow != 0){ // 矢を装備しているとき、攻撃力は弓攻撃力に加算
		S_MinRAtk += EQ_RhMinAtk + Arw_MinRAtk + PDMinDmg
		S_MaxRAtk += EQ_RhMaxAtk + Arw_MaxRAtk + PDMaxDmg
		critical  += EQ_RhCri    + Arw_Critical;
		mininju   += EQ_RhMinInj;
		maxinju   += EQ_RhMaxInj;
		balance   += EQ_RhBala;
	} else if(EQ_LhDf != 0 || EQ_LhPr != 0){
		defense  += EQ_LhDf;
		protect  += EQ_LhPr;
		S_MinAtk += EQ_RhMinAtk + PDMinDmg;
		S_MaxAtk += EQ_RhMaxAtk + PDMaxDmg;
		mininju  += EQ_RhMinInj;
		maxinju  += EQ_RhMaxInj;
		critical += EQ_RhCri;
		balance  += EQ_RhBala;
	} else if(EQ_LhMinAtk != 0 || EQ_LhMaxAtk != 0) { // 左手に武器を持っているとき
		S_MinAtk += (EQ_RhMinAtk + EQ_LhMinAtk) / 2 + PDMinDmg;
		S_MaxAtk += (EQ_RhMaxAtk + EQ_LhMaxAtk) / 2 + PDMaxDmg;
		mininju  += (EQ_RhMinInj + EQ_LhMinInj) / 2;
		maxinju  += (EQ_RhMaxInj + EQ_LhMaxInj) / 2;
		critical += (EQ_RhCri    + EQ_LhCri)    / 2;
		balance  += (EQ_RhBala   + EQ_LhBala)   / 2;
	} else { // 全部が0
		S_MinAtk += EQ_RhMinAtk + PDMinDmg
		S_MaxAtk += EQ_RhMaxAtk + PDMaxDmg
		mininju  += EQ_RhMinInj;
		maxinju  += EQ_RhMaxInj;
		critical += EQ_RhCri;
		balance  += EQ_RhBala;
	}
	
	// 算出値ボーナス加算
	if((defense   += T_Def     + En_Def      + PDDef ) < 0) defense  = 0;
	if((protect   += T_Prot    + En_Protect  + PDProt) < 0) protect  = 0;
	if((critical  +=             En_Critical + Pet_Critical + PDCri   ) < 0) critical  = 0;
	if((balance   +=             En_Balance  + Pet_Balance  + PDBala  ) < 0) balance   = 0;
	if((S_MinAtk  += T_MinAtk  + En_MinAtk   + Pet_MinAtk             ) < 0) S_MinAtk  = 0;
	if((S_MaxAtk  += T_MaxAtk  + En_MaxAtk   + Pet_MaxAtk             ) < 0) S_MaxAtk  = 0;
	if((S_MinRAtk += T_MinRAtk + En_MinRAtk  + Pet_MinRAtk            ) < 0) S_MinRAtk = 0;
	if((S_MaxRAtk += T_MaxRAtk + En_MaxRAtk  + Pet_MaxRAtk            ) < 0) S_MaxRAtk = 0;
	if((mininju   +=             En_mininju  + Pet_mininju  + PDMinInj) < 0) mininju   = 0;
	if((maxinju   +=             En_maxinju  + Pet_maxinju  + PDMaxInj) < 0) maxinju   = 0;
	
	// 100%上限処理（クリには適用しない？）
	if(mininju > 100) mininju = 100;
	if(maxinju > 100) maxinju = 100;
	
	
	// ちょ、スキルボーナス忘れとる
	defense += S_Def;

	// 出力
	document.st_form.blife.value    = BLife;
	document.st_form.bmana.value    = BMana;
	document.st_form.bstamina.value = BStamina;
	document.st_form.bstr.value     = BStr;
	document.st_form.bint.value     = BInt;
	document.st_form.bdex.value     = BDex;
	document.st_form.bwill.value    = BWill;
	document.st_form.bluck.value    = BLuck;
	
	document.st_form.nlife.value    = NLife;
	document.st_form.nmana.value    = NMana;
	document.st_form.nstamina.value = NStamina;
	document.st_form.nstr.value     = NStr;
	document.st_form.nint.value     = NInt;
	document.st_form.ndex.value     = NDex;
	document.st_form.nwill.value    = NWill;
	document.st_form.nluck.value    = NLuck;
	
	document.st_form.minatk.value   = S_MinAtk;
	document.st_form.maxatk.value   = S_MaxAtk;
	document.st_form.minRatk.value  = S_MinRAtk;
	document.st_form.maxRatk.value  = S_MaxRAtk;
	document.st_form.mininju.value  = mininju;
	document.st_form.maxinju.value  = maxinju;
	document.st_form.critical.value = critical;
	document.st_form.balance.value  = balance;
	
	document.st_form.defense.value  = defense;
	document.st_form.protect.value  = protect;
	
	// ステータス戦闘力算出
	B_CPw = (BLife * 10 + BMana * 5 + BStamina * 5 + BStr * 10 + BInt * 2 + BDex * 1 + BWill * 5 + BLuck * 1) / 10;
	document.st_form.nstcp.value = B_CPw;
	document.cp_form.b_cpw.value = B_CPw;
	// エンチャント戦闘力修正値出力
	document.cp_form.en_fixcpw.value = En_CPwFix;
	
}

// 加齢時ステータス上昇計算
function AAstatus(i) {
	if(CharaType == 0) {
		// 人間
		switch (i) {
			case 11: A_Life += 4; A_Mana += 1; A_Stamina += 2; A_Str += 2; A_Int += 0; A_Dex += 2; A_Will += 3; A_Luck += 3; break;
			case 12: A_Life += 4; A_Mana += 1; A_Stamina += 2; A_Str += 2; A_Int += 0; A_Dex += 3; A_Will += 3; A_Luck += 2; break;
			case 13: A_Life += 3; A_Mana += 1; A_Stamina += 3; A_Str += 2; A_Int += 0; A_Dex += 3; A_Will += 3; A_Luck += 2; break;
			case 14: A_Life += 3; A_Mana += 2; A_Stamina += 3; A_Str += 2; A_Int += 0; A_Dex += 3; A_Will += 3; A_Luck += 1; break;
			case 15: A_Life += 3; A_Mana += 2; A_Stamina += 3; A_Str += 2; A_Int += 1; A_Dex += 2; A_Will += 2; A_Luck += 1; break;
			case 16: A_Life += 3; A_Mana += 2; A_Stamina += 3; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 2; A_Luck += 0; break;
			case 17: A_Life += 2; A_Mana += 3; A_Stamina += 3; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 2; A_Luck += 0; break;
			case 18: A_Life += 2; A_Mana += 3; A_Stamina += 3; A_Str += 2; A_Int += 3; A_Dex += 0; A_Will += 1; A_Luck += 0; break;
			case 19: A_Life += 2; A_Mana += 3; A_Stamina += 3; A_Str += 2; A_Int += 3; A_Dex += 0; A_Will += 1; A_Luck += 0; break;
			case 20: A_Life += 2; A_Mana += 3; A_Stamina += 3; A_Str += 2; A_Int += 3; A_Dex += 0; A_Will += 1; A_Luck += 0; break;
			case 21: A_Life += 1; A_Mana += 3; A_Stamina += 3; A_Str += 2; A_Int += 3; A_Dex += 0; A_Will += 1; A_Luck += 0; break;
			case 22: A_Life += 1; A_Mana += 2; A_Stamina += 2; A_Str += 2; A_Int += 4; A_Dex += 2; A_Will += 1; A_Luck += 0; break;
			case 23: A_Life += 1; A_Mana += 2; A_Stamina += 1; A_Str += 2; A_Int += 3; A_Dex += 3; A_Will += 1; A_Luck += 0; break;
			case 24: A_Life += 1; A_Mana += 1; A_Stamina += 1; A_Str += 1; A_Int += 2; A_Dex += 2; A_Will += 1; A_Luck += 0; break;
			case 25: A_Life += 0; A_Mana += 1; A_Stamina += 1; A_Str += 1; A_Int += 1; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			default: A_Life += 0; A_Mana += 0; A_Stamina += 0; A_Str += 0; A_Int += 0; A_Dex += 0; A_Will += 0; A_Luck += 0; break;
		}
	} else {
		// エルフ
		switch (i) {
			case 11: A_Life += 2; A_Mana += 4; A_Stamina += 2; A_Str += 1; A_Int += 2; A_Dex += 3; A_Will += 1; A_Luck += 2; break;
			case 12: A_Life += 2; A_Mana += 4; A_Stamina += 2; A_Str += 1; A_Int += 2; A_Dex += 3; A_Will += 1; A_Luck += 2; break;
			case 13: A_Life += 3; A_Mana += 3; A_Stamina += 2; A_Str += 1; A_Int += 2; A_Dex += 3; A_Will += 1; A_Luck += 1; break;
			case 14: A_Life += 3; A_Mana += 3; A_Stamina += 2; A_Str += 1; A_Int += 2; A_Dex += 3; A_Will += 2; A_Luck += 1; break;
			case 15: A_Life += 2; A_Mana += 3; A_Stamina += 3; A_Str += 1; A_Int += 3; A_Dex += 2; A_Will += 2; A_Luck += 1; break;
			case 16: A_Life += 2; A_Mana += 2; A_Stamina += 3; A_Str += 1; A_Int += 3; A_Dex += 2; A_Will += 2; A_Luck += 0; break;
			case 17: A_Life += 2; A_Mana += 2; A_Stamina += 3; A_Str += 1; A_Int += 3; A_Dex += 2; A_Will += 1; A_Luck += 0; break;
			case 18: A_Life += 2; A_Mana += 2; A_Stamina += 2; A_Str += 1; A_Int += 2; A_Dex += 2; A_Will += 2; A_Luck += 0; break;
			case 19: A_Life += 2; A_Mana += 2; A_Stamina += 2; A_Str += 2; A_Int += 2; A_Dex += 2; A_Will += 2; A_Luck += 0; break;
			case 20: A_Life += 2; A_Mana += 2; A_Stamina += 2; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			case 21: A_Life += 2; A_Mana += 2; A_Stamina += 2; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			case 22: A_Life += 1; A_Mana += 2; A_Stamina += 1; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 2; A_Luck += 0; break;
			case 23: A_Life += 1; A_Mana += 2; A_Stamina += 1; A_Str += 2; A_Int += 2; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			case 24: A_Life += 1; A_Mana += 1; A_Stamina += 1; A_Str += 1; A_Int += 2; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			case 25: A_Life += 1; A_Mana += 1; A_Stamina += 0; A_Str += 1; A_Int += 1; A_Dex += 1; A_Will += 1; A_Luck += 0; break;
			default: A_Life += 0; A_Mana += 0; A_Stamina += 0; A_Str += 0; A_Int += 0; A_Dex += 0; A_Will += 0; A_Luck += 0; break;
		}
	}
}

function StFixRst(){
	document.st_form.pmlife.value = 0;
	document.st_form.pmmana.value = 0;
	document.st_form.pmstamina.value = 0;
	document.st_form.pmstr.value = 0;
	document.st_form.pmint.value = 0;
	document.st_form.pmdex.value = 0;
	document.st_form.pmwill.value = 0;
	document.st_form.pmluck.value = 0;
	
	calc();
}

function St_C_B(){
	if (document.st_form.st_all.checked == true) {
		document.st_form.st_c1.checked = true;
		document.st_form.st_c2.checked = true;
		document.st_form.st_c3.checked = true;
		document.st_form.st_c4.checked = true;
		document.st_form.st_b1.checked = true;
		document.st_form.st_b2.checked = true;
		document.st_form.st_b3.checked = true;
		document.st_form.st_b4.checked = true;
		document.st_form.st_b5.checked = true;
		document.st_form.st_b6.checked = true;
	} else {
		document.st_form.st_c1.checked = false;
		document.st_form.st_c2.checked = false;
		document.st_form.st_c3.checked = false;
		document.st_form.st_c4.checked = false;
		document.st_form.st_b1.checked = false;
		document.st_form.st_b2.checked = false;
		document.st_form.st_b3.checked = false;
		document.st_form.st_b4.checked = false;
		document.st_form.st_b5.checked = false;
		document.st_form.st_b6.checked = false;
	}
	
	calc();
}
