var arr_ginou_lv_create=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
var arr_ginou_lv_seicho=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
var sum_ginou_lv_create=18;
var sum_ginou_lv_seicho=18;


/* クラスデータ */
var Class=[];
// 初期能力基本値
// index0～4:初期能力基本値、5:初期アガペー、6～15:任意,回避,格闘,白兵,射撃,情報,ｴｰﾃﾙ,話術,軍略,陳情、
//  16:初期技能レベル合計、17:クラス名、18,19:SA,説明、20:特技、21:装備、22:ダーザイン
Class[0]=['','','','','','',0,1,1,1,1,1,1,1,1,1,18,'','','','','',''];
Class[1]=[2,1,1,0,1,600,4,3,1,1,1,1,1,1,1,1,20,'ギアドライバー','接合','シュネルギアの能力値修正を2倍','戦闘・1、任意・1','シュネルギア、パイロットスーツおよび軍制服など、拳銃1丁、携帯電話','ナビゲータからの感情'];
Class[2]=[2,3,2,0,0,580,0,3,2,3,3,1,1,1,1,1,25,'完全機械化兵','高速戦闘モード','【肉体】【感覚】判定で成功したダイスを振り直し、成功数に加える','戦闘・2、任意・1','フライングユニット、アサルトライフル1丁、拳銃1丁、軍制服およびお仕着せなど、携帯電話','小隊からの畏怖'];
Class[3]=[2,2,2,0,1,585,4,3,2,1,1,1,1,1,1,1,21,'機械化兵','リミッター解除','【肉体】【感覚】判定で失敗したダイスを振り直す','戦闘・1、防御・1、任意・1','戦闘機もしくはフライングユニット、軍制服など、拳銃1丁、インプラント任意、携帯電話','上官からの信頼'];
Class[4]=[0,0,2,1,2,550,0,1,1,1,1,1,1,1,4,3,23,'指揮官','集団統率','配下にパトスチットを渡せる','指揮戦術・2、交渉・1','軍制服、拳銃1丁、携帯電話','部下からの期待'];
Class[5]=[0,0,3,2,0,545,0,1,1,1,1,3,3,3,1,1,24,'管制官','感応','対象は即座にアクションを行える','オペレーション・3','軍制服、インカムなど、拳銃1丁、携帯電話','小隊からの信頼'];
Class[6]=[2,1,0,0,2,580,3,1,1,1,1,3,1,1,3,3,24,'情報将校','忠誠','特定のダーザインのレベルを判定の成功数に加える','指揮戦術・1、オペレーション・1、任意・1','軍制服、拳銃1丁、携帯電話','統一帝国からの信頼'];

// ヴィークルデータ
var Vehicle=[];
// index0～3:肉体,感覚,理知,装甲、4～6:負傷ゲージ(軽,重,致,死)、7:名称、8:種別
// Vehicle[ID]=( 肉体,感覚,理知,装甲,軽,重,致,'名称','種別')
Vehicle[0] =['','','','',0,0,0,0,'',''];
Vehicle[1] =[3,3,3,16, 7,4,2,'(初期型)','シュネルギア'];
Vehicle[2] =[2,3,5,20, 9,5,2,'イェーガー','シュネルギア'];
Vehicle[3] =[5,5,2,14, 5,3,2,'ケンプファー','シュネルギア'];
Vehicle[4] =[3,6,3,20, 7,4,2,'シュトルム','シュネルギア'];
Vehicle[5] =[4,4,4,15, 6,3,2,'トラバント','シュネルギア'];
Vehicle[6] =[6,6,2,20, 9,5,3,'マサムネ','シュネルギア'];
Vehicle[7] =[2,6,2,16, 6,4,2,'ヤークト','シュネルギア'];
Vehicle[8] =[3,2,2,25,10,7,4,'リッター','シュネルギア'];
Vehicle[9] =[3,2,1,35,14,6,2,'アペルギア','人間戦車'];
Vehicle[10]=[2,2,1,40,17,8,4,'RFZ-5ハウニブーI','人間戦車'];
Vehicle[11]=[3,3,2,10, 5,3,2,'MeXa663ファルターII','フライングユニット'];
Vehicle[12]=[3,2,1,15, 7,4,3,'MeXa747G','フライングユニット'];
Vehicle[13]=[2,4,2, 8, 4,3,2,'MeSb654','フライングユニット'];
Vehicle[14]=[4,3,2,16, 5,3,2,'九九式強化外骨格“空我”','フライングユニット'];
Vehicle[15]=[4,4,3,14, 7,4,2,'BvP504','戦闘機'];
Vehicle[16]=[4,5,2,24,12,6,3,'参五式迎撃戦闘機“飛影”','戦闘機'];

// ナビゲータデータ
var Navigator=[];
//Navigator[ID]=[ 肉体,感覚,理知,聖霊,階級,'名前']
Navigator[0]=[0,0,0,0,0,''];
Navigator[1]=[2,3,0,0,0,'八坂 凍'];
Navigator[2]=[2,1,2,0,0,'トゥアレタ・クレーリオン'];
Navigator[3]=[3,2,0,0,0,'草薙 伊音'];
Navigator[4]=[0,2,1,0,2,'セラピア・パルマコン'];

//デフォルト値用配列
var a_def=[]
a_def['class']=0;
a_def['wari']=[0,0,0,0,0];
a_def['n_up']=[0,0,0,0,0];
a_def['hp_up']=0;
a_def['vehicle']=0;
a_def['navi']=0;
//a_def['navi_n']=[0,0,0,0,0];
a_def['c_ginou']=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
a_def['s_ginou']=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

//select Index格納用配列
var a_idx=[];

var f=document.MAKING;
var doc=document;

/*** 以下 関数定義 ***/
function onLoadPcMaking() {
	f=document.MAKING;  // onLoad時はこれが必要
	f=doc.MAKING;
	getIndexsSelect();
	var isr=f.is_readed;
	if(isr==undefined){
	}else if(isr.value==0){
		//初期値・保存値設定
		var i,o,s,a,d;
		f.SL_class.selectedIndex=a_idx['class'][a_def['class']];
		d=a_def['wari'];
		a=a_def['n_up'];
		for(i=0;i<5;i++){
			s='NW'+(i+1);
			f.elements[s].selectedIndex=d[i];
			s='NS'+(i+1);
			f.elements[s].selectedIndex=a[i];
		}
		f.HPS.selectedIndex=a_idx['hp_up'][a_def['hp_up']];
		f.SL_vehicle.selectedIndex=a_idx['vehicle'][a_def['vehicle']];
		f.SL_navigator.selectedIndex=a_idx['navi'][a_def['navi']];
//		d=a_def['navi_n'];
//		f.NN1.selectedIndex=d[0];
//		f.NN2.selectedIndex=d[1];
//		f.NN3.selectedIndex=d[2];
//		f.NN4.selectedIndex=d[3];
//		f.NN5.selectedIndex=d[4];
		f.NN1.selectedIndex=f.V_NN1.value-0;
		f.NN2.selectedIndex=f.V_NN2.value-0;
		f.NN3.selectedIndex=f.V_NN3.value-0;
		f.NN4.selectedIndex=f.V_NN4.value-0;
		f.NN5.selectedIndex=f.V_NN5.value-0;
		d=a_def['c_ginou'];
		a=a_def['s_ginou'];
		for(i=0;i<18;i++){
			s='SL_GC'+i;
			f.elements[s].selectedIndex=d[i]-1;
			s='SL_GS'+i;
			f.elements[s].selectedIndex=a[i]-1;
		}
		isr.value=1;
	}
	isDisableCheck();
	chkDisplay('personal');
	chkDisplay('agape');
	setPcMemoRows();
	cE();
}
function getIndexsSelect(){
	//レベルなど値とIndexが一致/計算できるものは不要
	var o,l,i,m,j,a_ar,sn;
	//装備(右・左・腕・頭・胴・装の６つ）
	//下の配列にどんどん足せばいい
	var ao=[f.SL_class,f.HPS,f.SL_vehicle,f.SL_navigator];
	var ain=['class','hp_up','vehicle','navi'];
	m=ao.length;
	for(j=0;j<m;j++){
		sn=ain[j];
		if(a_idx[sn]==undefined){
			o=ao[j].options;
			l=o.length;
			a_ar=a_idx[sn]=[];
			for(i=0;i<l;i++){
				a_ar[o[i].value]=i;
			}
		}
	}
}

function changeClass() {
	var c=Class[f.SL_class.value-0]
	f.NC1.value=c[0];
	f.NC2.value=c[1];
	f.NC3.value=c[2];
	f.NC4.value=c[3];
	f.NC5.value=c[4];
	f.agape_class.value=c[5];
	f.agape_class1.value=c[5];
	f.SA_name.value=c[18];
	f.SA_name1.value=c[18];
	f.SA_text.value=c[19];
	f.tokugi_text.value=c[20];
	f.soubi.value=c[21];
	f.dasein.value=c[22];
	f.class_name.value=c[17];

	calcNoryokuKihonchi();
	calcAgape();
	setGinouAtCreate();
	isDisableCheck();
	cE();
}

function changeNoryokuWarifuri() {
	f.sumNW.value=(f.NW1.value-0)+(f.NW2.value-0)+(f.NW3.value-0)+(f.NW4.value-0)+(f.NW5.value-0);
	
	calcNoryokuKihonchi();
	cE();
}
// 作成時のアガペー使用による能力値上昇
function changeNouryokuCreateUp() {
	f.agape_noryokuup.value=((f.NS1.value-0)+(f.NS2.value-0)+(f.NS3.value-0)+(f.NS4.value-0)+(f.NS5.value-0)) * 10;
//	f.agape_noryokuup1.value=f.agape_noryokuup.value;
	calcNoryokuKihonchi();
	calcAgape();
	cE();
}
// 特徴によるアガペー上昇
function changeAgapeTokucho() {
	calcAgape();
	cE();
}

// 経験点で能力値成長
function changeNouryokuKeikenUp() {
	calcNoryokuKihonchi();
	cE();
}

// ヴィークル
function changeSelectVehicle() {
	var v=f.SL_vehicle.value-0;
	if (v != 0) {
		var h=Vehicle[v];
		f.NV1.value=h[0];
		f.NV2.value=h[1];
		f.NV3.value=h[2];
		f.vehicle_soukou.value=h[3];
		f.vehicle_gauge_1.value=h[4];
		f.vehicle_gauge_2.value=h[5];
		f.vehicle_gauge_3.value=h[6];
		f.vehicle_name.value=h[7];
		f.vehicle_type.value=h[8];
		calcSumNoryoku();
		cE();
	}
}
function changeInputVehicle() {
	calcSumNoryoku();
	cE();
}

// ナビゲータ
function changeSelectNavigator() {
	var n=f.SL_navigator.value-0;
	if (n != 0) {
		f.NN1.value=f.V_NN1.value=Navigator[n][0];
		f.NN2.value=f.V_NN2.value=Navigator[n][1];
		f.NN3.value=f.V_NN3.value=Navigator[n][2];
		f.NN4.value=f.V_NN4.value=Navigator[n][3];
		f.NN5.value=f.V_NN5.value=Navigator[n][4];
		f.navigator_name.value=Navigator[n][5];
		f.sum_navigator.value=(f.NN1.value-0)+(f.NN2.value-0)+(f.NN3.value-0)+(f.NN4.value-0)+(f.NN5.value-0);
		
		calcSumNoryoku();
		cE();
	}else{
		f.navigator_name.value='';
	}
}
function changeNavigatorNoryoku(id) {
	calcSumNoryoku();
	f.elements['V_NN'+id].value=f.elements['NN'+id].value;
	f.sum_navigator.value=(f.NN1.value-0)+(f.NN2.value-0)+(f.NN3.value-0)+(f.NN4.value-0)+(f.NN5.value-0);
	cE();
}

function changeNoryokuMod() {
	calcSumNoryoku();
	cE();
}

// 技能
// 作成時の技能レベル変更時
function changeGinouLvCreate() {
	checkGinouAtCreate();
	checkGinouSeicho();
	calcNinni();
	calcAgape();
	calcKeikentenGinouUp();
	calcKeiken();
	cE();
}
// 成長後の技能レベル変更時
function changeGinouLvSeicho() {
	checkGinouSeicho();
	calcKeikentenGinouUp();
	calcKeiken();
	cE();
}

// アガペー計算欄
function changeAgapeInput() {
	f.agape_tokugi_get.value=(f.num_tokugi_get_create.value-0)*10;
	calcAgape();
	cE();
}
// 経験点計算欄
function changeKeikenInput() {
	f.exp_dasein_get.value=f.num_dasein_get.value-0;
	f.exp_tokugi_get.value=(f.num_tokugi_get_seicho.value-0) * 5;
	calcKeiken();
	cE();
}


// 能力欄 計算
function calcNoryokuKihonchi() {
	f.NBase1.value=(f.NC1.value-0)+(f.NW1.value-0)+(f.NS1.value-0)+(f.NK1.value-0);
	f.NBase2.value=(f.NC2.value-0)+(f.NW2.value-0)+(f.NS2.value-0)+(f.NK2.value-0);
	f.NBase3.value=(f.NC3.value-0)+(f.NW3.value-0)+(f.NS3.value-0)+(f.NK3.value-0);
	f.NBase4.value=(f.NC4.value-0)+(f.NW4.value-0)+(f.NS4.value-0)+(f.NK4.value-0);
	f.NBase5.value=(f.NC5.value-0)+(f.NW5.value-0)+(f.NS5.value-0)+(f.NK5.value-0);
	f.HPBase.value=(f.NBase1.value-0) * 2 +(f.HPS.value-0);
	var v1=f.NBase1.value-0;
	f.sento_ido.value=v1+5;
	f.zenryoku_ido.value=v1*10;
	calcKeikentenNoryokuUp();
	calcKeiken();
	calcSumNoryoku();
}
function calcSumNoryoku() {
	//負傷ゲージ
//	f.fusho_gauge_1.value=f.NSum1.value;
//	f.fusho_gauge_2.value=Math.ceil((f.NSum1.value-0) / 2);
//	f.fusho_gauge_3.value=Math.ceil((f.NSum1.value-0) / 4);
	var v=f.fusho_gauge_1.value=(f.NBase1.value-0)+(f.NM1.value-0);
	f.fusho_gauge_2.value=Math.ceil(v/2);
	f.fusho_gauge_3.value=Math.ceil(v/4);
	//能力値
	var v1=f.NSum1.value=v+(f.NV1.value-0)+(f.NN1.value-0);
	f.NSum2.value=(f.NBase2.value-0)+(f.NV2.value-0)+(f.NN2.value-0)+(f.NM2.value-0);
	f.NSum3.value=(f.NBase3.value-0)+(f.NV3.value-0)+(f.NN3.value-0)+(f.NM3.value-0);
	var v4=f.NSum4.value=(f.NBase4.value-0)+(f.NV4.value-0)+(f.NN4.value-0)+(f.NM4.value-0);
	f.NSum5.value=(f.NBase5.value-0)+(f.NV5.value-0)+(f.NN5.value-0)+(f.NM5.value-0);
	f.HPSum.value=(f.HPBase.value-0)+(f.HPM.value-0);
	if(f.vehicle_type.value=='シュネルギア'){
		if(v4) {
			f.sento_ido_vehicle.value=(v4+5)*100;
			f.zenryoku_ido_vehicle.value=v4*1000;
		}else{
			f.sento_ido_vehicle.value=0;
			f.zenryoku_ido_vehicle.value=0;
		}
	}else{
//		var v1=f.NSum1.value-0;
		f.sento_ido_vehicle.value=v1*5;
		f.zenryoku_ido_vehicle.value=v1*50;
	}
}
// 技能欄

// 作成時の技能 セット
function setGinouAtCreate() {
// index6～15:任意,回避,格闘,白兵,射撃,情報,ｴｰﾃﾙ,話術,軍略,陳情、
	var id=f.SL_class.value-0;
//	alert(Class[id][7]);
	f.SL_GC0.value=1;
	f.SL_GC1.value=Class[id][7];
	f.SL_GC2.value=Class[id][8];
	f.SL_GC3.value=Class[id][9];
	f.SL_GC4.value=Class[id][10];
	f.SL_GC5.value=1;
	f.SL_GC6.value=1;
	f.SL_GC7.value=1;
	f.SL_GC8.value=Class[id][11];
	f.SL_GC9.value=1;
	f.SL_GC10.value=1;
	f.SL_GC11.value=1;
	f.SL_GC12.value=1;
	f.SL_GC13.value=Class[id][12];
	f.SL_GC14.value=1;
	f.SL_GC15.value=Class[id][13];
	f.SL_GC16.value=Class[id][14];
	f.SL_GC17.value=Class[id][15];
	f.GS_ninni.value=Class[id][6];
//	f.GS_ninni_sum.value=0;
	for (var i=0; i<=17; i++) {
		f.elements['SL_GS'+i].value=f.elements['SL_GC'+i].value;
	}
	
	setArrayGinouLv();
	calcNinni();
	calcKeikentenGinouUp();
	calcKeiken();

}
function checkGinouAtCreate() {
	var arr_idx=[1,2,3,4,8,13,15,16,17];
	var l=arr_idx.length;
	var c=f.SL_class.value-0;
	for (var i=0; i<l; i++) {
		if (f.elements['SL_GC'+arr_idx[i]].value < Class[c][i+7]) {
			f.elements['SL_GC'+arr_idx[i]].value=Class[c][i+7];
		}
	}
	setArrayGinouLv();
}
function checkGinouSeicho() {
	for (var i=0; i<=17; i++) {
		if (f.elements['SL_GS'+i].value < f.elements['SL_GC'+i].value) {
			f.elements['SL_GS'+i].value=f.elements['SL_GC'+i].value;
		}
	}
	setArrayGinouLv();
}
function calcNinni() {
	var ob=f.GS_ninni_sum;
	ob.value=sum_ginou_lv_create - Class[f.SL_class.value][16];
	var v1=(ob.value-0)-(f.GS_ninni.value-0);
	if(v1>0) {f.GS_over.value=v1;}else{f.GS_over.value=0;}

//	if ((Class[(f.SL_class.value)][16] - sum_ginou_lv_create) != Class[(f.SL_class.value)][6]) {
//		
//	}
	calcAgapeGinouAtCreate();
}
function calcAgapeGinouAtCreate() {
	if (f.SL_class.value == 0) {
		f.agape_ginou_lvup_min.value=0;
		f.agape_ginou_lvup_max.value=0;
	} else if (f.GS_ninni_sum.value <= f.GS_ninni.value) {
		f.agape_ginou_lvup_min.value=0;
		f.agape_ginou_lvup_max.value=0;
	} else {
		// 各技能のNoに対応するClass配列のインデックス、0はClass配列に無し
		var arr_ginou_idx=[0,7,8,9,10,0,0,0,11,0,0,0,0,12,0,13,14,15];
		var arr_num_lvup=[0,0,0]; // レベルアップ回数、1>2,2>3,3>4
		
		// レベルアップ回数を算出
		var i=start_lv=now_lv=0;
		var c=f.SL_class.value-0;
		for (i in arr_ginou_idx) {
//		for (i=0; i<arr_ginou_idx.length; i++) {
			if (arr_ginou_idx[i] == 0) {
				start_lv=1;
			} else {
				start_lv=Class[c][(arr_ginou_idx[i])];
			}
			now_lv=f.elements['SL_GC'+i].value-0;
			if (now_lv > start_lv) {
				switch (start_lv) {
					case 1:
						if (now_lv >= 2) { arr_num_lvup[0]=arr_num_lvup[0]+1;}
					case 2:
						if (now_lv >= 3) { arr_num_lvup[1]=arr_num_lvup[1]+1;}
					case 3:
						if (now_lv >= 4) { arr_num_lvup[2]=arr_num_lvup[2]+1;}
						break;
				}
			}
//			alert('index:'+i+"\narr_ginou_idx[i]:"+arr_ginou_idx[i]+"\nstart_lv:"+start_lv+"\nnow_lv:"+now_lv);
		}
//		alert(arr_num_lvup.join(' ,'));
		
		if (f.GS_ninni.value == 0) {
		// 任意が0なら、そのままの合計値を最小、最大に代入
			f.agape_ginou_lvup_min.value=(arr_num_lvup[0]*5)+(arr_num_lvup[1]*15)+(arr_num_lvup[2]*20);
			f.agape_ginou_lvup_max.value=f.agape_ginou_lvup_min.value;
		} else {
			// アガペー最小値
			// 任意レベルをアガペー上昇の高い、高レベルアップから引く
			var min_nokori=f.GS_ninni.value-0;
			var max_nokori=f.GS_ninni.value-0;
			var min_arr=[arr_num_lvup[0],arr_num_lvup[1],arr_num_lvup[2]];
			var max_arr=[arr_num_lvup[0],arr_num_lvup[1],arr_num_lvup[2]];
				// min_arr=arr_num_lvup では参照になるため
			for (i=0; i<3; i++) {
				if (min_nokori > 0) {
					if (min_arr[2-i] >= 0) {
						if (min_nokori >= min_arr[2-i]) {
							min_nokori=min_nokori - min_arr[2-i];
							min_arr[2-i]=0;
						} else {
							min_arr[2-i]=min_arr[2-i] - min_nokori;
							min_nokori=0;
						}
					}
				}
				if (max_nokori > 0) {
					if (max_arr[i] >= 0) {
						if (max_nokori >= max_arr[i]) {
							max_nokori=max_nokori - max_arr[i];
							max_arr[i]=0;
						} else {
							max_arr[i]=max_arr[i] - max_nokori;
							max_nokori=0;
						}
					}
				}
			}
			f.agape_ginou_lvup_min.value=(min_arr[0]*5)+(min_arr[1]*15)+(min_arr[2]*20);
			f.agape_ginou_lvup_max.value=(max_arr[0]*5)+(max_arr[1]*15)+(max_arr[2]*20);
		}
		
	}
	f.agape_ginou_lvup.value=f.agape_ginou_lvup_min.value;
}


// 技能レベル格納配列用関数
function setArrayGinouLv() {
	sum_ginou_lv_create=0;
	sum_ginou_lv_seicho=0;
	for (var i=0; i<=17; i++) {
		arr_ginou_lv_create[i]=f.elements['SL_GC'+i].value-0;
		arr_ginou_lv_seicho[i]=f.elements['SL_GS'+i].value-0;
		sum_ginou_lv_create += arr_ginou_lv_create[i];
		sum_ginou_lv_seicho += arr_ginou_lv_seicho[i];
	}
//	alert(arr_ginou_lv_create.join(',')+' : sum '+sum_ginou_lv_create);
//	alert(arr_ginou_lv_seicho.join(',')+' : sum '+sum_ginou_lv_seicho);
}


// アガペー計算
function calcAgape() {
	f.agape_noryokuup_tokucho.value=(f.agape_noryokuup.value-0)+(f.agape5_tokucho.checked?5:0);
	f.sumAgape_at_create.value=
		(f.agape_class.value-0)+
		(f.agape_noryokuup_tokucho.value-0)+
		(f.agape_ginou_lvup.value-0)+
		(f.agape_tokugi_get.value-0)+
		(f.agape_soubi_get.value-0);
}
// 能力値上昇の必要経験点 計算
function calcKeikentenNoryokuUp() {
	var sum_exp=base=nk=j=0
	for (var i=1; i<=5; i++) {
		base=f.elements['NBase'+i].value-0;
		nk=f.elements['NK'+i].value-0;
		if (nk > 0) {
			for (j=(base-nk+1); j<=base; j++) {
				if (j <=10) {
					sum_exp += 10;
				} else if (j <=15) {
					sum_exp += 20;
				} else if (j <=20) {
					sum_exp += 40;
				} else {
					sum_exp += (base-20) * 50;
					j=base;
				}
			}
		}
	}
	f.exp_noryoku.value=sum_exp;
	f.exp_noryoku1.value=sum_exp;
}
function calcKeikentenGinouUp() {
	var arr_num_lvup=[0,0,0,0]; // レベルアップ回数、1>2,2>3,3>4,4>5
	for (var i=0; i<18; i++) {
		var c=f.elements['SL_GC'+i].value-0;
		var s=f.elements['SL_GS'+i].value-0;
		if (c < s) {
			switch (c) {
				case 1:
					if (s >= 2) { arr_num_lvup[0]=arr_num_lvup[0]+1;}
				case 2:
					if (s >= 3) { arr_num_lvup[1]=arr_num_lvup[1]+1;}
				case 3:
					if (s >= 4) { arr_num_lvup[2]=arr_num_lvup[2]+1;}
				case 4:
					if (s >= 5) { arr_num_lvup[3]=arr_num_lvup[3]+1;}
					break;
			}
//			alert(f.elements['SL_GC'+i].value+' -> '+ f.elements['SL_GS'+i].value);
		}
	}
	
	f.exp_ginou.value=
		(arr_num_lvup[0]*5)+(arr_num_lvup[1]*10)+(arr_num_lvup[2]*20)+(arr_num_lvup[3]*40);
	f.exp_ginou1.value=f.exp_ginou.value;

}

function calcKeiken() {
	f.sumExp.value=
		(f.exp_dasein_get.value-0)+
		(f.exp_noryoku.value-0)+
		(f.exp_ginou.value-0)+
		(f.exp_tokugi_get.value-0)+
		(f.exp_soubi_get.value-0);
}



// 入力・選択欄の使用可否の設定
function isDisableCheck() {
	var flg=false;
	// ギアドライバーのみナビゲータ選択可能
	if (f.SL_class.value == 1) {
		flg=false;
		changeSelectNavigator();
	} else {
		flg=true;
		f.NN1.value=f.NN2.value=f.NN3.value=f.NN4.value=f.NN5.value=0;
		f.navigator_name.value=f.sum_navigator.value='';
	}
	f.SL_navigator.disabled=f.NN1.disabled=f.NN2.disabled=f.NN3.disabled=f.NN4.disabled=f.NN5.disabled=f.sum_navigator.disabled=flg;
}
/*** 表示非表示制御 ***/
function chkDisplay(k){
	var flg=f.elements['is_disp_'+k].value-0;
	doc.getElementById(k+'_disp').style.display=(flg?'block':'none');
	doc.getElementById(k+'_nodisp').style.display=(flg?'none':'block');
}
function chgDisplay(flg,k){
	f.elements['is_disp_'+k].value=(flg==0)?0:1;
	chkDisplay(k);
}

// エラーメッセージ関連
function addErrorMsg(str) {
	if (str == '') { return; }
	if (f.message.value == '') {
		f.message.value=str;
	}
	else {
		f.message.value=f.message.value +"\n"+ str;
	}
}
function getErrorMsg() {
	return top.document.MAKING.message.value;
}

function cE() {
	f.message.value='';
	
	// クラス未選択
	if (f.SL_class.value == 0) {
		addErrorMsg('クラスが設定されていません [設定間違い]');
	} else {
	// クラスが設定されていたら以下をチェック
		
		// 能力値割り振りが合計20点になってない
		if (f.sumNW.value != 20) {
			addErrorMsg('能力値の割り振り合計が20点になっていません [ルール違反]');
		}
		
		// 作成時の能力値が0
		// 作成時の能力値上限は10
		var arr_noryoku=new Array ( 0,'肉体','感覚','理知','聖霊','階級');
		var arr_zero=new Array;
		var arr_over=new Array;
		for (i=1 ;i<=5; i++){
			if ((f.elements['NC'+i].value-0)+(f.elements['NW'+i].value-0)+(f.elements['NS'+i].value-0) == 0) {
				arr_zero.push(arr_noryoku[i]);
			} else if ((f.elements['NC'+i].value-0)+(f.elements['NW'+i].value-0)+(f.elements['NS'+i].value-0) > 10) {
				arr_over.push(arr_noryoku[i]);
			}
		}
		if (arr_zero.length > 0) {
			addErrorMsg(arr_zero.join('、')+'の作成時の値が0になっています [ルール違反]');
		}
		if (arr_over.length > 0) {
			addErrorMsg(arr_over.join('、')+'の作成時の値が10を超えています [ルール違反]');
		}
		
		// ナビゲータの能力値合計が5でない
		if (f.SL_class.value == 1 && f.sum_navigator.value != 5) {
			addErrorMsg('ナビゲータの能力値修正合計が5点になっていません [ルール違反]');
		}
		
		
		// 作成時のアガペー上限は660
		if (f.sumAgape_at_create.value > 660) {
			addErrorMsg('作成時のアガペーの値が660を超えています [ルール違反]');
		}
	}
}
