
function SuperNoviceFullWeapon(nSNFW){
	if(nSNFW == 1){
		SuperNoviceFullWeaponCHECK = 1;
		JobASPD[20][7] = 120;
	}else{
		SuperNoviceFullWeaponCHECK = 0;
		JobASPD[20][7] = 0;
	}

	var len = document.calcForm.A_WeaponType.length;
	for(i=0;i<len;i++)
		document.calcForm.A_WeaponType.options[0] = null;
	j = 0;
	for (i=0; i<=21; i++){
		if(JobASPD[20][i] != 0){
			// WeaponName was missing the [Lang]! -- gandi
			document.calcForm.A_WeaponType.options[j] = new Option(WeaponName[i][Lang],i);
			j++;
		}
	}

	with(document.calcForm){
		if(ItemOBJ[n_A_Equip[0]][2] != 7 && JobEquipItemSearch(ItemOBJ[n_A_Equip[0]][2])){
			var BK_BUKI = n_A_Equip[0];
			A_WeaponType.value = ItemOBJ[BK_BUKI][1];
			ClickWeaponType(ItemOBJ[BK_BUKI][1]);

			WeaponSet2();
			A_weapon1.value = BK_BUKI;
		}else{
			ClickWeaponType(0);

			WeaponSet2();
		}
		if(JobEquipItemSearch(ItemOBJ[n_A_Equip[2]][2]))
			A_head1.value = n_A_Equip[2];
		if(JobEquipItemSearch(ItemOBJ[n_A_Equip[3]][2]))
			A_head2.value = n_A_Equip[3];
		if(JobEquipItemSearch(ItemOBJ[n_A_Equip[4]][2]))
			A_head3.value = n_A_Equip[4];
		A_left.value = n_A_Equip[eq_SHIELD];
		A_body.value = n_A_Equip[6];
		A_shoulder.value = n_A_Equip[7];
		A_shoes.value = n_A_Equip[8];
		A_acces1.value = n_A_Equip[9];
		A_acces2.value = n_A_Equip[10];
	}
	if(n_SaveMode == 0)
		SetShortCut();
}

function StAllCalc(){ // stat- & subStatCalc

with(document.calcForm){
	n_A_JobSet();
	
{ // get rid of those variables --------------------
	n_A_WeaponLV_seirenATK = 0;
	n_A_WeaponLV_Minplus = 0;
	n_A_WeaponLV_Maxplus = 0;
	n_A_Weapon2LV_seirenATK = 0;
	n_A_Weapon2LV_Minplus = 0;
	n_A_Weapon2LV_Maxplus = 0;

}
	
{ // SNovi Bonus -----------------------------------------------
	// changed eval(A_Skill9) to eval(A_Skill9.value), srsly wtf! -- gandi
	if(n_A_JOB == 20){
		if(SuperNoviceFullWeaponCHECK == 0 && eval(A_Skill9.value) == 1)
			SuperNoviceFullWeapon(1);
		else if(SuperNoviceFullWeaponCHECK == 1 && eval(A_Skill9.value) == 0)
			SuperNoviceFullWeapon(0);
	}
}

{ // LoadStats -----------------------------------------------
	n_A_BaseLV = eval(A_BaseLV.value);
	n_A_JobLV = eval(A_JobLV.value);

	n_A_STR = eval(A_STR.value);
	n_A_AGI = eval(A_AGI.value);
	n_A_VIT = eval(A_VIT.value);
	n_A_DEX = eval(A_DEX.value);
	n_A_INT = eval(A_INT.value);
	n_A_LUK = eval(A_LUK.value);
	// BaseStats
	SU_STR = n_A_STR;
	SU_AGI = n_A_AGI;
	SU_VIT = n_A_VIT;
	SU_DEX = n_A_DEX;
	SU_INT = n_A_INT;
	SU_LUK = n_A_LUK;
}

	n_A_WeaponType = eval(A_WeaponType.value);	
	n_A_Arrow = eval(A_Arrow.value);

{ // LoadUpgrades -----------------------------------------------
	n_A_HEAD_DEF_PLUS = eval(A_HEAD_DEF_PLUS.value);
	n_A_BODY_DEF_PLUS = eval(A_BODY_DEF_PLUS.value);
	n_A_LEFT_DEF_PLUS = eval(A_LEFT_DEF_PLUS.value);
	n_A_SHOULDER_DEF_PLUS = eval(A_SHOULDER_DEF_PLUS.value);
	n_A_SHOES_DEF_PLUS = eval(A_SHOES_DEF_PLUS.value);
	
	n_A_Weapon_ATKplus = eval(A_Weapon_ATKplus.value);
	n_A_Weapon2_ATKplus = 0;
	if(n_Nitou) // Dual Hand
		n_A_Weapon2_ATKplus = eval(document.calcForm.A_Weapon2_ATKplus.value);
}

{ // LoadActiveSkill -----------------------------------------------
	n_A_ActiveSkill = eval(A_ActiveSkill.value);
	if(n_A_ActiveSkill >= 3000)
		n_A_ActiveSkill = InsertSkill[n_A_ActiveSkill -3000][2];
	else if(n_A_ActiveSkill >= 2000)
		n_A_ActiveSkill = AutoSpellSkill[n_A_ActiveSkill -2000][2];

	n_A_ActiveSkillLV = eval(A_ActiveSkillLV.value);
}

{ // LoadSpeedPot -------------------------------------------------
	n_A_SpeedPOT = eval(A_SpeedPOT.value);
}

{ // LoadEquip ----------------------------------------------------
	n_A_Equip[eq_WEAPON] = eval(A_weapon1.value);
	n_A_Equip[eq_LEFT_WEAPON] = 0;
	if(n_Nitou)
		n_A_Equip[eq_LEFT_WEAPON] = eval(A_weapon2.value);
	n_A_Equip[eq_HEAD_UPPER] = eval(A_head1.value);
	n_A_Equip[eq_HEAD_MIDDLE] = eval(A_head2.value);
	n_A_Equip[eq_HEAD_LOWER] = eval(A_head3.value);
	n_A_Equip[eq_SHIELD] = eval(A_left.value);
	n_A_Equip[eq_ARMOR] = eval(A_body.value);
	n_A_Equip[eq_GARMENT] = eval(A_shoulder.value);
	n_A_Equip[eq_SHOES] = eval(A_shoes.value);
	n_A_Equip[eq_ACCI] = eval(A_acces1.value);
	n_A_Equip[eq_ACCII] = eval(A_acces2.value);

	SetEquip();
}

{ // LoadCards ----------------------------------------------------
	n_A_card[card_loc_WEAPON_I] = eval(A_weapon1_card1.value);
	n_A_card[card_loc_WEAPON_II] = eval(A_weapon1_card2.value);
	n_A_card[card_loc_WEAPON_III] = eval(A_weapon1_card3.value);
	n_A_card[card_loc_WEAPON_IV] = eval(A_weapon1_card4.value);
	if(n_Nitou){ // DualHand
		n_A_card[card_loc_WEAPONII_I] = eval(A_weapon2_card1.value);
		n_A_card[card_loc_WEAPONII_II] = eval(A_weapon2_card2.value);
		n_A_card[card_loc_WEAPONII_III] = eval(A_weapon2_card3.value);
		n_A_card[card_loc_WEAPONII_IV] = eval(A_weapon2_card4.value);
	}else{
		for(var i=4;i<=7;i++)
			n_A_card[i] = 0;
	}
	n_A_card[card_loc_HEAD_UPPER] = eval(A_head1_card.value);
	n_A_card[card_loc_HEAD_MIDDLE] = eval(A_head2_card.value);
	n_A_card[card_loc_SHIELD] = eval(A_left_card.value);
	n_A_card[card_loc_ARMOR] = eval(A_body_card.value);
	n_A_card[card_loc_GARMENT] = eval(A_shoulder_card.value);
	n_A_card[card_loc_SHOES] = eval(A_shoes_card.value);
	n_A_card[card_loc_ACCI] = eval(A_acces1_card.value);
	n_A_card[card_loc_ACCII] = eval(A_acces2_card.value);

	SetCard();
}

{ // Passive & other (optional) Skills ----------------------------
	//n_A_PassSkill = new Array();
	
	// Passive Jobskills
	for(var i=0;JobSkillPassOBJ[n_A_JOB][i] != 999;i++){
		var wOBJ = document.getElementById("A_Skill"+i);
		n_A_PassSkill[i] = eval(wOBJ.value);
	}

	if(n_SkillSW){ // Supportive and Partyskills
		n_A_PassSkill2[pass_II_BLESS] = eval(A2_Skill0.value);
		n_A_PassSkill2[pass_II_AGI] = eval(A2_Skill1.value);
		n_A_PassSkill2[pass_II_IMPO] = eval(A2_Skill2.value);
		n_A_PassSkill2[pass_II_GLORIA] = eval(A2_Skill3.checked);
		n_A_PassSkill2[pass_II_ANGELUS] = eval(A2_Skill4.value);
		n_A_PassSkill2[pass_II_ASSU] = eval(A2_Skill5.checked);
		n_A_PassSkill2[pass_II_ARUSH] = eval(A2_Skill6.value);
		n_A_PassSkill2[pass_II_WEAP_PERFECTION] = eval(A2_Skill7.checked);
		n_A_PassSkill2[pass_II_POWER_THRUST] = eval(A2_Skill8.value);
		n_A_PassSkill2[pass_II_WIND_WALK] = eval(A2_Skill9.value);
		n_A_PassSkill2[pass_II_SPHERES] = eval(A2_Skill10.value);
		n_A_PassSkill2[pass_II_MAGNUM_BREAK] = eval(A2_Skill11.checked);
		n_A_PassSkill2[pass_II_ALOE] = eval(A2_Skill12.checked);
		n_A_PassSkill2[pass_II_SUFF] = eval(A2_Skill13.value);
		n_A_PassSkill2[pass_II_RESISTANT_SOULS] = eval(A2_Skill14.value);
		n_A_PassSkill2[pass_II_SACRAMENT] = eval(A2_Skill15.value);
	}

	if(n_Skill3SW){ // B&D Skills
		n_A_PassSkill3[pass_III_PER_TABULARE] = eval(A3_Skill0_1.value);
		n_A_PassSkill3[pass_III_IMP_RIFF] = eval(A3_Skill1_1.value);
		n_A_PassSkill3[pass_III_STRINGS] = eval(A3_Skill2_1.value);
		n_A_PassSkill3[pass_III_SONG_OF_LUTIE] = eval(A3_Skill3_1.value);
		n_A_PassSkill3[pass_III_FOC_BALLET] = eval(A3_Skill4_1.value);
		n_A_PassSkill3[pass_III_LADY_LUK] = eval(A3_Skill5_1.value);
		n_A_PassSkill3[pass_III_GYPSYS_KISS] = eval(A3_Skill6_1.value);
		n_A_PassSkill3[pass_III_ACO_RHYTHM] = eval(A3_Skill7.value);
		n_A_PassSkill3[pass_III_MEN_SENSING] = eval(A3_Skill8.value);
		n_A_PassSkill3[pass_III_BAT_THEME] = eval(A3_Skill9.value);
		n_A_PassSkill3[pass_III_HAR_LICK] = eval(A3_Skill10.value);
		n_A_PassSkill3[pass_III_MAR_CONTROL] = eval(A3_Skill11.checked);
		if(n_A_PassSkill3[pass_III_MAR_CONTROL]){
			n_A_PassSkill3[pass_III_MAR_CONTROL_STR] = eval(A3_Skill11_STR.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_AGI] = eval(A3_Skill11_AGI.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_VIT] = eval(A3_Skill11_VIT.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_INT] = eval(A3_Skill11_INT.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_DEX] = eval(A3_Skill11_DEX.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_LUK] = eval(A3_Skill11_LUK.value);
			n_A_PassSkill3[pass_III_MAR_CONTROL_CAP] = eval(A3_Skill11a.checked);
		}
		if(n_A_PassSkill3[pass_III_PER_TABULARE]){
			n_A_PassSkill3[pass_III_PER_TABULARE_AGI] = eval(A3_Skill0_2.value);
			n_A_PassSkill3[pass_III_PER_TABULARE_ML] = eval(A3_Skill0_3.value);
		}
		if(n_A_PassSkill3[pass_III_IMP_RIFF]){
			n_A_PassSkill3[pass_III_IMP_RIFF_AGI] = eval(A3_Skill1_2.value);
			n_A_PassSkill3[pass_III_IMP_RIFF_ML] = eval(A3_Skill1_3.value);
		}
		if(n_A_PassSkill3[pass_III_STRINGS]){
			n_A_PassSkill3[pass_III_STRINGS_DEX] = eval(A3_Skill2_2.value);
			n_A_PassSkill3[pass_III_STRINGS_INT] = eval(A3_Skill2_3.value);
			n_A_PassSkill3[pass_III_STRINGS_ML] = eval(A3_Skill2_4.value);
		}
		if(n_A_PassSkill3[pass_III_SONG_OF_LUTIE]){
			n_A_PassSkill3[pass_III_SONG_OF_LUTIE_VIT] = eval(A3_Skill3_2.value);
			n_A_PassSkill3[pass_III_SONG_OF_LUTIE_ML] = eval(A3_Skill3_3.value);
		}
		if(n_A_PassSkill3[pass_III_FOC_BALLET]){
			n_A_PassSkill3[pass_III_FOC_BALLET_DEX] = eval(A3_Skill4_2.value);
			n_A_PassSkill3[pass_III_FOC_BALLET_DL] = eval(A3_Skill4_3.value);
		}
		if(n_A_PassSkill3[pass_III_LADY_LUK]){
			n_A_PassSkill3[pass_III_LADY_LUK_LUK] = eval(A3_Skill5_2.value);
			n_A_PassSkill3[pass_III_LADY_LUK_DL] = eval(A3_Skill5_3.value);
		}
		if(n_A_PassSkill3[pass_III_GYP_KISS]){
			n_A_PassSkill3[pass_III_GYP_KISS_INT] = eval(A3_Skill6_2.value);
			n_A_PassSkill3[pass_III_GYP_KISS_DL] = eval(A3_Skill6_3.value);
		}

	}
	if(n_Skill4SW){ // GuildSkills - should be pass4 ...
		n_A_PassSkill3[pass_III_BAT_ORDER] = eval(A3_Skill40.checked);
		n_A_PassSkill3[pass_III_GRE_LEADER] = eval(A3_Skill41.value);
		n_A_PassSkill3[pass_III_WOU_GLORY] = eval(A3_Skill42.value);
		n_A_PassSkill3[pass_III_SOU_COLD] = eval(A3_Skill43.value);
		n_A_PassSkill3[pass_III_SHA_EYES] = eval(A3_Skill44.value);
	}
	if(n_Skill5SW){ // BattleChant
		n_A_PassSkill5[pass_V_STATS] = eval(A5_Skill0.checked);
		n_A_PassSkill5[pass_V_HP] = eval(A5_Skill1.checked);
		n_A_PassSkill5[pass_V_SP] = eval(A5_Skill2.checked);
		n_A_PassSkill5[pass_V_ATK] = eval(A5_Skill3.checked);
		n_A_PassSkill5[pass_V_HIT_FLEE] = eval(A5_Skill4.checked);
		n_A_PassSkill5[pass_V_DAMAGE] = eval(A5_Skill5.checked);
	}
	if(n_Skill6SW){ // MiscEffects
		n_A_PassSkill6[pass_VI_ELE_FIELD] = eval(A6_Skill0.value);
		n_A_PassSkill6[pass_VI_ELE_FIELD_LVL] = eval(A6_Skill1.value);
		n_A_PassSkill6[pass_VI_MUR_BONUS] = eval(A6_Skill2.value);
		n_A_PassSkill6[pass_VI_IMP_CONC] = eval(A6_Skill3.value);
		n_A_PassSkill6[pass_VI_MIN_BREAKER] = eval(A6_Skill4.value);
		n_A_PassSkill6[pass_VI_PROVOKE] = eval(A6_Skill5.value);
		n_A_PassSkill6[pass_VI_BSS] = eval(A6_Skill6.checked);
	}
	if(n_Skill7SW){ // stauts items & food
		n_A_PassSkill7[pass_VII_SESAME] = eval(A7_Skill0.checked);
		n_A_PassSkill7[pass_VII_HONEY] = eval(A7_Skill1.checked);
		n_A_PassSkill7[pass_VII_RAINBOW] = eval(A7_Skill2.checked);
		n_A_PassSkill7[pass_VII_STR] = eval(A7_Skill3.value);
		n_A_PassSkill7[pass_VII_AGI] = eval(A7_Skill4.value);
		n_A_PassSkill7[pass_VII_VIT] = eval(A7_Skill5.value);
		n_A_PassSkill7[pass_VII_INT] = eval(A7_Skill6.value);
		n_A_PassSkill7[pass_VII_DEX] = eval(A7_Skill7.value);
		n_A_PassSkill7[pass_VII_LUK] = eval(A7_Skill8.value);
		n_A_PassSkill7[pass_VII_RESENTMENT] = eval(A7_Skill9.checked);
		n_A_PassSkill7[pass_VII_DROWSINESS] = eval(A7_Skill10.checked);
		n_A_PassSkill7[pass_VII_COLD] = eval(A7_Skill11.checked);
		n_A_PassSkill7[pass_VII_EARTH] = eval(A7_Skill12.checked);
		n_A_PassSkill7[pass_VII_FIRE] = eval(A7_Skill13.checked);
		n_A_PassSkill7[pass_VII_WIND] = eval(A7_Skill14.checked);
		n_A_PassSkill7[pass_VII_SCROLLS] = eval(A7_Skill15.checked);
	}
	if(n_Skill8SW){ // Additional Effects
		n_A_PassSkill8[pass_VIII_PET] = eval(A8_Skill0.value);
		n_A_PassSkill8[pass_VIII_BAT_MANUAL] = eval(A8_Skill1.value);
		n_A_PassSkill8[pass_VIII_JOB_MANUAL] = eval(A8_Skill2.checked);
		n_A_PassSkill8[pass_VIII_CYPERCAFE] = eval(A8_Skill3.checked);
		n_A_PassSkill8[pass_VIII_ALL_STAT] = eval(A8_Skill4.checked);
		n_A_PassSkill8[pass_VIII_PAR_COUNT] = eval(A8_Skill5.value);
		n_A_PassSkill8[pass_VIII_EXP_TAB] = eval(A8_Skill6.value);
		n_A_PassSkill8[pass_VIII_SER_EXP] = eval(A8_Skill7.value);
		n_A_PassSkill8[pass_VIII_TEMPI] = eval(A8_Skill8.value);
		n_A_PassSkill8[pass_VIII_TEMPII] = eval(A8_Skill9.value);
		n_A_PassSkill8[pass_VIII_TEMPIII] = eval(A8_Skill10.value);
		n_A_PassSkill8[pass_VIII_TEMPIV] = eval(A8_Skill11.value);
		n_A_PassSkill8[pass_VIII_NUM_ENEMY] = eval(A8_Skill12.value);
		
		n_A_PassSkill8[pass_VIII_SPE_ENVIRONMENT] = eval(A8_Skill14.value);
		n_A_PassSkill8[pass_VIII_DEF_INVEST] = eval(A8_Skill15.value);
		n_A_PassSkill8[pass_VIII_NO_CRIT] = eval(A8_Skill16.checked);
		n_A_PassSkill8[pass_VIII_ADV_SPIRIT] = eval(A8_Skill17.checked);
		n_A_PassSkill8[pass_VIII_BUC_NOEL] = eval(A8_Skill18.checked);
		n_A_PassSkill8[pass_VIII_RUN_CAKE] = eval(A8_Skill19.checked);
		n_A_PassSkill8[pass_VIII_SCH_JUBILEE] = eval(A8_Skill20.checked);
		n_A_PassSkill8[pass_VIII_ARU_SANDWINCH] = eval(A8_Skill21.checked);
		n_A_IJYOU[status_QUAG] = eval(A_IJYOU0.value);
		n_A_IJYOU[status_AGI_DOWN] = eval(A_IJYOU1.value);
		n_A_IJYOU[status_POISONED] = eval(A_IJYOU2.checked);
		n_A_IJYOU[status_CURSED] = eval(A_IJYOU3.checked);

	}
}

 // LoadEnemy - -------------------------------------------------
	ClickB_Enemy();

{ // Adopted ------------------------------------------------------
	n_A_Adopted = eval(A_youshi.checked);
}

 // Weap- & ArmorElement --------------------------------------------------
	n_A_Weapon_zokusei = getWeaponElement(n_A_Weapon_zokusei=0);
	//n_A_Weapon2_zokusei // done
	n_A_BodyZokusei = getArmorElement(n_A_BodyZokusei=0);

{ // fill Substats (n_tok[x]) ------------------------------------
	for(i=1;i<=200;i++){
		n_tok[i] = 0;
		n_tok[i] += StPlusCalc2(i);
		n_tok[i] += StPlusCard(i);
	}
	for(i=290;i<=339;i++){
		n_tok[i] = 0;
		n_tok[i] += StPlusCalc2(i);
		n_tok[i] += StPlusCard(i);
	}
	
	if(SU_STR >= 120 && EquipNumSearch(348)) // Megingjard
		n_tok[bon_DMG_BOSS] += 10;
	if(SU_AGI >= 120 && EquipNumSearch(1255)) // Sniper Googles
		n_tok[bon_DMG_RANGE] += 4;
		
	if(SkillSearch(skill_SOR_SPIRIT_CONTROL)==2 && SkillSearch(skill_SOR_SUMMON_LEVEL)==2){
		w = SkillSearch(skill_SOR_SUMMON_TYPE);
		if(w == 0){ // Fire
			n_tok[bon_RED_ELE_FIRE]+=100;
			n_tok[bon_RED_ELE_WATER]-=100;
		}else if(w == 1){ // Wind
			n_tok[bon_RED_ELE_WIND]+=100;
			n_tok[bon_RED_ELE_EARTH]-=100;
		}else if(w == 2){ // Water
			n_tok[bon_RED_ELE_WATER]+=100;
			n_tok[bon_RED_ELE_WIND]-=100;
		}else if(w == 3){ // Earth
			n_tok[bon_RED_ELE_EARTH]+=100;
			n_tok[bon_RED_ELE_FIRE]-=100;
		}
	}
}

	StPlusCalc(); // set bStat + %
 
 // CalcHP --------------------------------------------------------
	n_A_MaxHP = calcHP(n_A_MaxHP=0);
	myInnerHtml("A_MaxHP",n_A_MaxHP,0);
	
 // CalcSP -------------------------------------------------------
	n_A_MaxSP = calcSP(n_A_MaxSP=0);
	myInnerHtml("A_MaxSP",n_A_MaxSP,0);
	
 // CalcDEF -------------------------------------------------------
	n_A_totalDEF = calcHardDef(n_A_totalDEF=0);
 	n_A_VITDEF = calcSoftDef(n_A_VITDEF=0);
	STR = n_A_VITDEF + " + " + n_A_totalDEF + "<BR>(" + Math.floor((1-defReduction(n_A_totalDEF))*1000)/10 + "% Reduction)";
	myInnerHtml("A_totalDEF", STR,0);

 // CalcMDEF -----------------------------------------------
	n_A_MDEF = calcHardMDef(n_A_MDEF=0);
 	n_A_INTMDEF = calcSoftMDef(n_A_INTMDEF=0);
	STR = n_A_INTMDEF + " + " + n_A_MDEF + "<BR>(" + Math.floor((1-mdefReduction(n_A_MDEF))*1000)/10 + "% Reduction)";
	myInnerHtml("A_MDEF", STR,0);

 // CalcHit/Flee/ PDodge -------------------------------------------
	n_A_HIT = calcHit(n_A_HIT=0);
	myInnerHtml("A_HIT",n_A_HIT,0);

 	n_A_FLEE = calcFlee(n_A_FLEE=0);
	myInnerHtml("A_FLEE",n_A_FLEE,0);

	n_A_LUCKY = calcPDodge(n_A_LUCKY=0);
	myInnerHtml("A_LUCKY",n_A_LUCKY,0);

 // CalcCrit ------------------------------------------------------
	n_A_CRI = calcCrit(n_A_CRI=0);
	myInnerHtml("A_CRI",n_A_CRI,0);
	
 // CalcAtk -----------------------------------------------------
	w = calcAtk(0);
	STR = Math.floor(n_A_statATK) +" + "+ w;
	
	w = calcAtk(1);
	STR += "<BR> ("+ Math.floor(n_A_statATK * zokusei[n_B[en_ELEMENT]][ele_NEUTRAL] / 100) +" + "+ Math.floor(w * zokusei[n_B[en_ELEMENT]][n_A_Weapon_zokusei] / 100) +" &plusmn; "+ Math.floor(n_A_ATK_Variance * zokusei[n_B[en_ELEMENT]][n_A_Weapon_zokusei] / 100) +")";
	
	myInnerHtml("A_ATK",STR,0);
	
 // CalcMATK ----------------------------------------------------
	calcMAtk(0);
	STR = n_A_StatMATK +" + "+ n_A_EquipMATK;
	calcMAtk(1);
	STR += "<BR>(" + n_A_StatMATK +" + "+ n_A_EquipMATK + " &plusmn; " + n_A_MATK_Variance + ")";
	
	myInnerHtml("A_MATK", STR,0);
	
 // CalcASPD (Display) ------------------------------------------
	n_A_ASPD = calcASPD(n_A_ASPD=0);
	myInnerHtml("A_ASPD",n_A_ASPD,0);

{ // CalcDelays -----------------------------------------------
	// n_Delay[0] = AL_BOMB/ HeatWall
	// n_Delay[1] = ASPD
	// n_Delay[2] = AfterCast
	// n_Delay[3] = Fixed animation
	// 4 = input limit
	// n_Delay[5] = Heat (s/hit ?)
	// n_Delay[6] = GravField (fixed ?)
	
	for(var i=0;i<=6;i++)
		n_Delay[i] = 0;

	n_A_ASPD = (200 - n_A_ASPD) / 50;

	n_Delay[1] = Math.floor(n_A_ASPD * 1000)/1000;
	if(n_A_ActiveSkill==skill_TH_ENVENOM)
		n_Delay[1] = Math.floor(n_A_ASPD *75)/100;

	sandanDelay = 0;
	if(SkillSearch(skill_MO_RAGING_TRIFECTA_BLOW) && n_A_ActiveSkill == skill_ALL_BASIC_ATTACK){
		sandanDelay = (1000 - n_A_AGI *4 - n_A_DEX *2) /1000;
		if(SkillSearch(301)) // ?
			sandanDelay += 0.3;
	}
}

 // CalcCast -----------------------------------------------
	n_A_VarCast = calcVariableCast(n_A_VarCast=0);
	n_A_FixCast = calcFixedCast(n_A_FixCast=0);
	n_A_CAST = n_A_VarCast *0.8 + n_A_FixCast *0.2;

 // CastDelay -----------------------------------------------
	n_A_CastDelay = calcDelay(n_A_CastDelay=0);

 // CalcRegeneration -----------------------------------------------
	n_A_HPR = calcHPReg(n_A_HPR=0);
	myInnerHtml("A_HPR",n_A_HPR,0);

	n_A_SPR = calcSPReg(n_A_SPR=0);
	myInnerHtml("A_SPR",n_A_SPR,0);
	
	calcRaceElementalReduction();
	
{ // Elemental Modifier ----------------------------------------
	n_A_zokusei = new Array();
	for(i=0;i<=9;i++){
		n_A_zokusei[i] = zokusei[n_A_BodyZokusei * 10 +1][i];
		n_A_zokusei[i] = n_A_zokusei[i] - Math.floor(n_A_zokusei[i] * n_tok[bon_RED_ELE_NEUTRAL+i]) / 100;
	}
}

{ // Inc Damage with Crit -------------------------------------
	if(n_A_Weapon_ATKplus >= 6 && EquipNumSearch(1080))
		n_tok[290] += 5;

	if(n_A_Equip[1] == 1076 && n_A_Weapon2_ATKplus >= 6)

			n_tok[307] += 5;
	if(n_A_Equip[1] == 1077 && n_A_Weapon2_ATKplus >= 6)

			n_tok[307] += 5;
	if(1076<=n_A_Equip[0] && n_A_Equip[0]<=1103)

		if(n_A_Weapon_ATKplus >= 6)
			if(n_A_Equip[0]!=1078 && n_A_Equip[0]!=1079 && n_A_Equip[0]!=1080 && n_A_Equip[0]!=1083 && n_A_Equip[0]!=1084 && n_A_Equip[0]!=1085 && n_A_Equip[0]!=1091 && n_A_Equip[0]!=1095)
				n_tok[307] += 5;

	if(EquipNumSearch(645))
		n_tok[295] += 10 + n_A_Weapon_ATKplus;
	if(n_A_WeaponType==9)
		n_tok[295] += 2 * CardNumSearch(466);
	if(n_B[en_BOSS]==1 && CardNumSearch(425))
		n_tok[297] += 30 * CardNumSearch(425);
	if(EquipNumSearch(936))
		n_tok[295] += (n_A_Weapon_ATKplus * 1);
	if(n_B[en_BOSS]==1 && EquipNumSearch(1228)){
		if(n_A_HEAD_DEF_PLUS >= 6)
			n_tok[297] += (n_A_HEAD_DEF_PLUS - 5);
	}

	if(n_B[en_BOSS] == 1)
		n_tok[295] += n_tok[297];

	if(n_A_Weapon_ATKplus >= 6 && EquipNumSearch(1084))
		n_tok[317] += 5;
	if(n_A_Weapon_ATKplus >= 6 && EquipNumSearch(1095))
		n_tok[317] += 5;

n_tok[bon_DMG_CRIT] += n_tok[bon_CRIT_DMG_RC_FORMLESS+n_B[en_RACE]];

	if(EquipNumSearch(535)){
		var wVM = n_A_JobSearch();
		if(wVM==1 || wVM==2 || wVM==6){
			n_tok[bon_REFLECT_PHY_DMG] += 5 + n_A_SHOULDER_DEF_PLUS * 2;
		}
	}
}

	KakutyouKansuu();
}}

function DamageCut(w_num,w_ch){ // floor some [w_num], ignore [w_ch]
	
	var w = n_tok[50+n_B[en_RACE]];
	if(w != 0)
		w_num -= Math.floor(w_num * w / 100);

	w = n_tok[60];
	if(w != 0)
		w_num -= Math.floor(w_num * w / 100);

	if(EquipNumSearch(957))
		w_num -= Math.floor(w_num * 30 / 100);

	w = n_tok[190+n_B[en_SIZE]];
	if(w != 0)
		w_num -= Math.floor(w_num * w / 100);

	w = n_tok[79];
	if(w != 0 && n_B[en_BOSS] == 0)
		w_num -= Math.floor(w_num * w / 100);

	w = n_tok[77];
	if(w != 0 && n_B[en_BOSS] == 1)
		w_num -= Math.floor(w_num * w / 100);

	w = n_tok[78];
	if(w != 0 && n_B[20])
		w_num -= Math.floor(w_num * w / 100);

	w = n_tok[330 + Math.floor(n_B[en_ELEMENT] / 10)];
	if(w != 0)
		w_num -= Math.floor(w_num * w / 100);

	return w_num;
}

function StPlusCalc(){ // recalc non-base stats (bStat + %)
	n_A_JobSet();	
	n_A_JobLV = eval(document.calcForm.A_JobLV.value);

	var w2 = [0,0,0,0,0,0]; // bonus stats
	
	w2 = calcJobStats(n_A_JOB,n_A_JobLV,w2);
	
	var wSPC_STR = w2[bon_STR-1];
	var wSPC_AGI = w2[bon_AGI-1];
	var wSPC_VIT = w2[bon_VIT-1];
	var wSPC_INT = w2[bon_INT-1];
	var wSPC_DEX = w2[bon_DEX-1];
	var wSPC_LUK = w2[bon_LUK-1];

	
	wSPCall = StPlusCalc2(bon_ALL_STATS);
	wSPC_STR += StPlusCalc2(bon_STR) + wSPCall;
	wSPC_AGI += StPlusCalc2(bon_AGI) + wSPCall;
	wSPC_VIT += StPlusCalc2(bon_VIT) + wSPCall;
	wSPC_VIT += StPlusCalc2(bon_SET_VIT); // SetBoni
	wSPC_INT += StPlusCalc2(bon_INT) + wSPCall;
	wSPC_INT += StPlusCalc2(bon_SET_INT); // SetBoni
	wSPC_DEX += StPlusCalc2(bon_DEX) + wSPCall;
	wSPC_LUK += StPlusCalc2(bon_LUK) + wSPCall;

	wSPC_DEX += SkillSearch(skill_AR_OWL_EYE);
	if(SkillSearch(skill_ME_CRAZY_UPROAR) || TimeItemNumSearch(17)) // ?
		wSPC_STR += 4;
	wSPC_STR += SkillSearch(skill_BS_HILT_BINDING);
	wSPC_STR += SkillSearch(skill_NIN_NINJA_AURA);
	wSPC_INT += SkillSearch(skill_NIN_NINJA_AURA);
	if(SkillSearch(skill_SA_DRAGONOLOGY))
		wSPC_INT += Math.round(SkillSearch(skill_SA_DRAGONOLOGY) /2);
	if(SkillSearch(skill_ST_STEALTH)){
		if(SkillSearch(skill_ST_STEALTH)==5) wSPC_STR +=16;
		if(SkillSearch(skill_ST_STEALTH)==4) wSPC_STR +=8;
		if(SkillSearch(skill_ST_STEALTH)==3) wSPC_STR +=4;
		if(SkillSearch(skill_ST_STEALTH)==2) wSPC_STR +=2;
		if(SkillSearch(skill_ST_STEALTH)==1) wSPC_STR +=1;
	}
	
	var w = SkillSearch(skill_AR_IMPROVE_CONCENTRATION);
	if(w){
		w += 102;
		wSPC_DEX = Math.floor((n_A_DEX + wSPC_DEX) * w / 100) - n_A_DEX;
		wSPC_AGI = Math.floor((n_A_AGI + wSPC_AGI) * w / 100) - n_A_AGI;
	}else if(n_A_PassSkill6[pass_VI_IMP_CONC]){
		wSPC_DEX = Math.floor((n_A_DEX + wSPC_DEX) * (102 + n_A_PassSkill6[pass_VI_IMP_CONC]) / 100) - n_A_DEX;
		wSPC_AGI = Math.floor((n_A_AGI + wSPC_AGI) * (102 + n_A_PassSkill6[pass_VI_IMP_CONC]) / 100) - n_A_AGI;
	}else if(TimeItemNumSearch(31)){
		wSPC_DEX = Math.floor((n_A_DEX + wSPC_DEX) * 104 / 100) - n_A_DEX;
		wSPC_AGI = Math.floor((n_A_AGI + wSPC_AGI) * 104 / 100) - n_A_AGI;
	}else if(TimeItemNumSearch(4)){
		wSPC_DEX = Math.floor((n_A_DEX + wSPC_DEX) * 103 / 100) - n_A_DEX;
		wSPC_AGI = Math.floor((n_A_AGI + wSPC_AGI) * 103 / 100) - n_A_AGI;
	}
		
	wSPC_AGI += StPlusCalc2(bon_SET_AGI);
	wSPC_DEX += StPlusCalc2(bon_SET_DEX);
	if(n_A_JobSearch()==cls_TKK && EquipNumSearch(672))
		wSPC_AGI += 1;
	if(n_A_JobSearch()==cls_TKK && EquipNumSearch(673))
		wSPC_INT += 1;
	if(n_A_JobSearch()==cls_TKK && EquipNumSearch(675))
		wSPC_LUK += 2;
	if(n_A_JobSearch()==cls_TKK && EquipNumSearch(676))
		wSPC_DEX += 2;
	if(n_A_JobSearch()==cls_TKK && EquipNumSearch(678))
		wSPC_LUK += 1;
	if(n_A_SHOES_DEF_PLUS >= 9 && EquipNumSearch(717))
		wSPC_AGI += 2;
	if(n_A_HEAD_DEF_PLUS >= 5 && EquipNumSearch(1069))
		wSPC_LUK += (n_A_HEAD_DEF_PLUS - 4);
	if(n_A_Weapon_ATKplus >= 6 && EquipNumSearch(1168))
		wSPC_INT += (n_A_Weapon_ATKplus - 5);
	if(EquipNumSearch(1171) && SkillSearch(skill_SA_DRAGONOLOGY) == 5)
		wSPC_INT += 3;
	if(EquipNumSearch(1172))
		wSPC_INT += Math.floor(n_A_Weapon_ATKplus / 2);

	if(n_A_Equip[eq_WEAPON]==1078 || n_A_Equip[eq_WEAPON]==1079)
		wSPC_INT += (n_A_Weapon_ATKplus -5);
	if(n_A_Weapon_ATKplus >= 9 && n_A_Equip[eq_WEAPON]==1078)
		wSPC_INT += 5;
	if(n_A_Weapon_ATKplus >= 10 && n_A_Equip[eq_WEAPON]==1079)
		wSPC_INT += 5;

	if(n_A_Equip[eq_WEAPONII]==1078 || n_A_Equip[eq_WEAPONII]==1079)
		wSPC_INT += (n_A_Weapon2_ATKplus -5);
	if(n_A_Weapon2_ATKplus >= 9 && n_A_Equip[eq_WEAPONII]==1078)
		wSPC_INT += 5;
	if(n_A_Weapon2_ATKplus >= 10 && n_A_Equip[eq_WEAPONII]==1079)
		wSPC_INT += 5;

	if(EquipNumSearch(649)) // BerserkGuitar ?
		wSPC_DEX -= SU_DEX;

	if(n_A_WeaponType==weapTyp_ROD)
		wSPC_INT += CardNumSearch(466);

	wSPCall = StPlusCard(bon_ALL_STATS);
	wSPC_STR += StPlusCard(bon_STR) + wSPCall;
	wSPC_AGI += StPlusCard(bon_AGI) + wSPCall;
	wSPC_VIT += StPlusCard(bon_VIT) + wSPCall;
	wSPC_INT += StPlusCard(bon_INT) + wSPCall;
	wSPC_DEX += StPlusCard(bon_DEX) + wSPCall;
	wSPC_LUK += StPlusCard(bon_LUK) + wSPCall;

	
	if(n_A_JobSearch()==cls_ACO)
		wSPC_INT += CardNumSearch(383);
	if(CardNumSearch(173)) wSPC_INT += n_A_LEFT_DEF_PLUS;
	if(CardNumSearch(402)) wSPC_LUK += n_A_SHOULDER_DEF_PLUS;
	if(CardNumSearch(406)) wSPC_AGI += n_A_SHOES_DEF_PLUS;
	if(CardNumSearch(198)) wSPC_VIT += n_A_BODY_DEF_PLUS;
	if(n_A_card[card_loc_HEAD_UPPER] == 180) wSPC_STR += n_A_HEAD_DEF_PLUS;

	if(CardNumSearch(185)) wSPC_VIT += Math.floor(SU_DEX /18);
	if(CardNumSearch(187)) wSPC_STR += Math.floor(SU_INT /18);
	if(CardNumSearch(189)) wSPC_LUK += Math.floor(SU_AGI /18);
	if(CardNumSearch(191)) wSPC_AGI += Math.floor(SU_LUK /18);
	if(CardNumSearch(196)) wSPC_INT += Math.floor(SU_STR /18);
	if(CardNumSearch(197)) wSPC_DEX += Math.floor(SU_VIT /18);
	
	if(CardNumSearch(405)){
		if(n_A_JobSearch()==cls_SWO || n_A_JobSearch()==cls_THI || n_A_JobSearch()==cls_MER)
			wSPC_STR += 2;
		if(n_A_JobSearch()==cls_ACO || n_A_JobSearch()==cls_ARC || n_A_JobSearch()==cls_MAG)
			wSPC_INT += 2;
	}
	
	if(EquipNumSearch(348)) // Megingjard
		wSPC_STR += Math.floor(n_A_BaseLV/5);
	
	wSPC_STR += n_A_PassSkill2[pass_II_BLESS];
	wSPC_INT += n_A_PassSkill2[pass_II_BLESS];
	wSPC_DEX += n_A_PassSkill2[pass_II_BLESS];
	if(n_A_PassSkill2[pass_II_AGI] > 0 && n_A_IJYOU[status_QUAG] == 0 && n_A_IJYOU[status_AGI_DOWN] == 0)
		wSPC_AGI += n_A_PassSkill2[pass_II_AGI] +2;
	wSPC_LUK += (n_A_PassSkill2[pass_II_GLORIA] * 30);
	if(SkillSearch(skill_SN_TRUE_SIGHT)){
		wSPC_STR += 5;
		wSPC_AGI += 5;
		wSPC_VIT += 5;
		wSPC_DEX += 5;
		wSPC_INT += 5;
		wSPC_LUK += 5;
	}
	if(SkillSearch(skill_TK_SPRINT_STR_STATE) && n_A_WeaponType==weapTyp_NONE)
		wSPC_STR += 10;
	if(SkillSearch(skill_GS_INCREASE_ACCURACY)){
		wSPC_DEX += 4;
		wSPC_AGI += 4;
	}
	if(SkillSearch(skill_RUN_GIANT_GROWTH))
		wSPC_STR += 30;
	if(SkillSearch(skill_RAN_RESEARCH_TRAP))
		wSPC_INT += SkillSearch(skill_RAN_RESEARCH_TRAP);
	if(SkillSearch(skill_ROY_INSPIRATION)){
		wSPC_STR += 12 + Math.floor(n_A_JobLV/10)*2;
		wSPC_AGI += 12 + Math.floor(n_A_JobLV/10)*2;
		wSPC_VIT += 12 + Math.floor(n_A_JobLV/10)*2;
		wSPC_DEX += 12 + Math.floor(n_A_JobLV/10)*2;
		wSPC_INT += 12 + Math.floor(n_A_JobLV/10)*2;
		wSPC_LUK += 12 + Math.floor(n_A_JobLV/10)*2;
	}
	
	if(n_A_PassSkill3[pass_III_BAT_ORDER]){
		wSPC_STR += 5;
		wSPC_DEX += 5;
		wSPC_INT += 5;
	}
	wSPC_STR += n_A_PassSkill3[pass_III_GRE_LEADER];
	wSPC_VIT += n_A_PassSkill3[pass_III_WOU_GLORY];
	wSPC_AGI += n_A_PassSkill3[pass_III_SOU_COLD];
	wSPC_DEX += n_A_PassSkill3[pass_III_SHA_EYES];

	if(n_A_PassSkill5[pass_V_STATS]){ // BattleChant
		wSPC_STR += 20;
		wSPC_AGI += 20;
		wSPC_VIT += 20;
		wSPC_DEX += 20;
		wSPC_INT += 20;
		wSPC_LUK += 20;
	}

	if(n_A_PassSkill6[pass_VI_MUR_BONUS] == 1){
		wSPC_STR += 3;
		wSPC_AGI += 3;
		wSPC_VIT += 3;
		wSPC_DEX += 3;
		wSPC_INT += 3;
		wSPC_LUK += 3;
	}
	if(n_A_PassSkill6[pass_VI_MUR_BONUS] == 2){
		wSPC_STR += 5;
		wSPC_AGI += 5;
		wSPC_VIT += 5;
		wSPC_DEX += 5;
		wSPC_INT += 5;
		wSPC_LUK += 5;
	}
	if(n_A_PassSkill8[pass_VIII_ALL_STAT]){
		wSPC_STR += 1;
		wSPC_AGI += 1;
		wSPC_VIT += 1;
		wSPC_DEX += 1;
		wSPC_INT += 1;
		wSPC_LUK += 1;
	}
	if(SkillSearch(skill_ALL_MARRIAGE_STATUS)){
		wSPC_STR -= 1;
		wSPC_AGI -= 1;
		wSPC_VIT -= 1;
		wSPC_DEX -= 1;
		wSPC_INT -= 1;
		wSPC_LUK -= 1;
	}

	// Stat-Food
	if(n_A_PassSkill7[pass_VII_STR])
		wSPC_STR += n_A_PassSkill7[pass_VII_STR];
	if(n_A_PassSkill7[pass_VII_AGI])
		wSPC_AGI += n_A_PassSkill7[pass_VII_AGI];
	if(n_A_PassSkill7[pass_VII_VIT])
		wSPC_VIT += n_A_PassSkill7[pass_VII_VIT];
	if(n_A_PassSkill7[pass_VII_INT])
		wSPC_INT += n_A_PassSkill7[pass_VII_INT];
	if(n_A_PassSkill7[pass_VII_DEX])
		wSPC_DEX += n_A_PassSkill7[pass_VII_DEX];
	if(n_A_PassSkill7[pass_VII_LUK])
		wSPC_LUK += n_A_PassSkill7[pass_VII_LUK];

	var wHSE = eval(document.calcForm.A_HSE.value); // Hidden SocketEnch
	if(wHSE){
		var w = wHSE % 10;
		if(1 <= wHSE && wHSE <= 9)
			wSPC_STR += w;
		if(11 <= wHSE && wHSE <= 19)
			wSPC_AGI += w;
		if(21 <= wHSE && wHSE <= 29)
			wSPC_VIT += w;
		if(31 <= wHSE && wHSE <= 39)
			wSPC_INT += w;
		if(41 <= wHSE && wHSE <= 49)
			wSPC_DEX += w;
		if(51 <= wHSE && wHSE <= 59)
			wSPC_LUK += w;
	}
	var wHSE2 = eval(document.calcForm.A_HSE_HEAD1.value); // Hidden SocketEnch
	if(wHSE2){
		var w = wHSE2 % 10;
		if(1 <= wHSE2 && wHSE2 <= 9)
			wSPC_STR += w;
		if(11 <= wHSE2 && wHSE2 <= 19)
			wSPC_AGI += w;
		if(21 <= wHSE2 && wHSE2 <= 29)
			wSPC_VIT += w;
		if(31 <= wHSE2 && wHSE2 <= 39)
			wSPC_INT += w;
		if(41 <= wHSE2 && wHSE2 <= 49)
			wSPC_DEX += w;
		if(51 <= wHSE2 && wHSE2 <= 59)
			wSPC_LUK += w;
	}
	if(Math.floor(wHSE / 10) == Math.floor(wHSE2 / 10)){ // no double Enchant
		var w1 = wHSE % 10;
		var w2 = wHSE2 % 10;
		if(w1 > w2)
			w1 = w2;
		if(1 <= wHSE && wHSE <= 9)
			wSPC_STR -= w1;
		if(11 <= wHSE && wHSE <= 19)
			wSPC_AGI -= w1;
		if(21 <= wHSE && wHSE <= 29)
			wSPC_VIT -= w1;
		if(31 <= wHSE && wHSE <= 39)
			wSPC_INT -= w1;
		if(41 <= wHSE && wHSE <= 49)
			wSPC_DEX -= w1;
		if(51 <= wHSE && wHSE <= 59)
			wSPC_LUK -= w1;
	}

	if(n_A_PassSkill8[13]){ // not used ? - old socket enchant
		var w = ((n_A_PassSkill8[13] - 1) % 3) + 1;
		if(1 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 3)
			wSPC_STR += w;
		if(4 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 6)
			wSPC_AGI += w;
		if(7 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 9)
			wSPC_VIT += w;
		if(10 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 12)
			wSPC_INT += w;
		if(13 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 15)
			wSPC_DEX += w;
		if(16 <= n_A_PassSkill8[13] && n_A_PassSkill8[13] <= 18)
			wSPC_LUK += w;
	}

	if(n_A_PassSkill8[pass_VIII_ADV_SPIRIT]){
		 if(cls_HSWO <= n_A_JOB && n_A_JOB <= cls_HMER && n_A_BaseLV < 70){
			if(n_A_STR + wSPC_STR <= 50)
					wSPC_STR = 50 - n_A_STR;
			if(n_A_AGI + wSPC_AGI <= 50)
					wSPC_AGI = 50 - n_A_AGI;
			if(n_A_VIT + wSPC_VIT <= 50)
					wSPC_VIT = 50 - n_A_VIT;
			if(n_A_INT + wSPC_INT <= 50)
					wSPC_INT = 50 - n_A_INT;
			if(n_A_DEX + wSPC_DEX <= 50)
					wSPC_DEX = 50 - n_A_DEX;
			if(n_A_LUK + wSPC_LUK <= 50)
					wSPC_LUK = 50 - n_A_LUK;
		}
	}

	if(n_A_PassSkill3[pass_III_MAR_CONTROL] && n_A_PassSkill3[pass_III_MAR_CONTROL_CAP]==0){
		if(n_A_STR + wSPC_STR < 99){
			if(n_A_STR + wSPC_STR + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_STR] /2) < 99)
				wSPC_STR += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_STR] /2);
			else
				wSPC_STR = (99 - n_A_STR);
		}
		if(n_A_AGI + wSPC_AGI < 99){
			if(n_A_AGI + wSPC_AGI + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_AGI] /2) < 99)
				wSPC_AGI += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_AGI] /2);
			else
				wSPC_AGI = (99 - n_A_AGI);
		}
		if(n_A_VIT + wSPC_VIT < 99){
			if(n_A_VIT + wSPC_VIT + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_VIT] /2) < 99)
				wSPC_VIT += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_VIT] /2);
			else
				wSPC_VIT = (99 - n_A_VIT);
		}
		if(n_A_INT + wSPC_INT < 99){
			if(n_A_INT + wSPC_INT + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_INT] /2) < 99)
				wSPC_INT += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_INT] /2);
			else
				wSPC_INT = (99 - n_A_INT);
		}
		if(n_A_DEX + wSPC_DEX < 99){
			if(n_A_DEX + wSPC_DEX + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_DEX] /2) < 99)
				wSPC_DEX += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_DEX] /2);
			else
				wSPC_DEX = (99 - n_A_DEX);
		}
		if(n_A_LUK + wSPC_LUK < 99){
			if(n_A_LUK + wSPC_LUK + Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_LUK] /2) < 99)
				wSPC_LUK += Math.floor(n_A_PassSkill3[pass_III_MAR_CONTROL_LUK] /2);
			else
				wSPC_LUK = (99 - n_A_LUK);
		}
	// no statcap for marioControll. Direct adding of stats
	}else if(n_A_PassSkill3[pass_III_MAR_CONTROL] && n_A_PassSkill3[pass_III_MAR_CONTROL_CAP]){
		wSPC_STR += n_A_PassSkill3[pass_III_MAR_CONTROL_STR];
		wSPC_AGI += n_A_PassSkill3[pass_III_MAR_CONTROL_AGI];
		wSPC_VIT += n_A_PassSkill3[pass_III_MAR_CONTROL_VIT];
		wSPC_INT += n_A_PassSkill3[pass_III_MAR_CONTROL_INT];
		wSPC_DEX += n_A_PassSkill3[pass_III_MAR_CONTROL_DEX];
		wSPC_LUK += n_A_PassSkill3[pass_III_MAR_CONTROL_LUK];
	}

	//CUSTOM (1st Transcendent Spirit)
	if(SkillSearch(392) && (n_Tensei == 1) && (n_A_BaseLV > 10) && (n_A_BaseLV < 70)){
		var linkboni = n_A_BaseLV - 10;
		if(wSPC_STR > 50);
		else if((wSPC_STR + linkboni) > 50)
			wSPC_STR = 50;
		else
			wSPC_STR += linkboni;
		if(wSPC_AGI > 50);
		else if((wSPC_AGI + linkboni) > 50)
			wSPC_AGI = 50;
		else
			wSPC_AGI += linkboni;
		if(wSPC_VIT > 50);
		else if((wSPC_VIT + linkboni) > 50)
			wSPC_VIT = 50;
		else
			wSPC_VIT += linkboni;
		if(wSPC_INT > 50);
		else if((wSPC_INT + linkboni) > 50)
			wSPC_INT = 50;
		else
			wSPC_INT += linkboni;
		if(wSPC_DEX > 50);
		else if((wSPC_DEX + linkboni) > 50)
			wSPC_DEX = 50;
		else
			wSPC_DEX += linkboni;
		if(wSPC_LUK > 50);
		else if((wSPC_LUK + linkboni) > 50)
			wSPC_LUK = 50;
		else
			wSPC_LUK += linkboni;
	}
	//END CUSTOM

	if(n_A_IJYOU[status_QUAG]){
		var w1 = Math.floor((n_A_AGI + wSPC_AGI) / 2);
		var w2;
		if(Taijin)
			w2 = 5 * n_A_IJYOU[status_QUAG];
		else
			w2 = 10 * n_A_IJYOU[status_QUAG];
		if(w1 > w2)
			wSPC_AGI -= w2;
		else
			wSPC_AGI -= w1;
		w1 = Math.floor((n_A_DEX + wSPC_DEX) / 2);
		if(w1 > w2)
			wSPC_DEX -= w2;
		else
			wSPC_DEX -= w1;
	}
	if(n_A_IJYOU[status_AGI_DOWN])
		wSPC_AGI -= (n_A_IJYOU[status_AGI_DOWN] + 2);
	if(n_A_IJYOU[status_CURSED])
		wSPC_LUK = -1 * n_A_LUK;

	n_A_STR += wSPC_STR;
	n_A_AGI += wSPC_AGI;
	n_A_VIT += wSPC_VIT;
	n_A_INT += wSPC_INT;
	n_A_DEX += wSPC_DEX;
	n_A_LUK += wSPC_LUK;

	// Display Stats
	if(wSPC_STR >= 0)
		myInnerHtml("A_STRp","+"+wSPC_STR + " (" + StCalc2(SU_STR+1) + ")",0);
	else
		myInnerHtml("A_STRp",wSPC_STR + " (" + StCalc2(SU_STR+1) + ")",0);
	if(wSPC_AGI >= 0)
		myInnerHtml("A_AGIp","+"+wSPC_AGI + " (" + StCalc2(SU_AGI+1) + ")",0);
	else
		myInnerHtml("A_AGIp",wSPC_AGI + " (" + StCalc2(SU_AGI+1) + ")",0);
	if(wSPC_VIT >= 0)
		myInnerHtml("A_VITp","+"+wSPC_VIT + " (" + StCalc2(SU_VIT+1) + ")",0);
	else
		myInnerHtml("A_VITp",wSPC_VIT + " (" + StCalc2(SU_VIT+1) + ")",0);
	if(wSPC_INT >= 0)
		myInnerHtml("A_INTp","+"+wSPC_INT + " (" + StCalc2(SU_INT+1) + ")",0);
	else
		myInnerHtml("A_INTp",wSPC_INT + " (" + StCalc2(SU_INT+1) + ")",0);
	if(wSPC_DEX >= 0)
		myInnerHtml("A_DEXp","+"+wSPC_DEX + " (" + StCalc2(SU_DEX+1) + ")",0);
	else
		myInnerHtml("A_DEXp",wSPC_DEX + " (" + StCalc2(SU_DEX+1) + ")",0);
	if(wSPC_LUK >= 0)
		myInnerHtml("A_LUKp","+"+wSPC_LUK + " (" + StCalc2(SU_LUK+1) + ")",0);
	else
		myInnerHtml("A_LUKp",wSPC_LUK + " (" + StCalc2(SU_LUK+1) + ")",0);
}

function StPlusCalc2(nSTP2){ // Additional [Stats] by equip
	var w=bon_NONE;
	for(var i=0;i<=20;i++){	 // for each equip/ card
		for(var j=0;ItemOBJ[n_A_Equip[i]][j +itm_BONUS_START] != bon_NONE;j += 2){
			if(nSTP2 == ItemOBJ[n_A_Equip[i]][j +itm_BONUS_START])
				w += ItemOBJ[n_A_Equip[i]][j +itm_BONUS_START+1];
		}
	}
	return w;
}

function StPlusCard(nSTP2){ // Additional [Stats] by cards
	var w=0;
	for(var i=0;i<=25;i++){
		for(var j=0;cardOBJ[n_A_card[i]][j +4] != 0;j += 2){
			if(nSTP2 == cardOBJ[n_A_card[i]][j +4])
				w += cardOBJ[n_A_card[i]][j +5];
		}
	}

	for(var j=0;PET_OBJ[n_A_PassSkill8[0]][j +3] != 0;j += 2){
		if(nSTP2 == PET_OBJ[n_A_PassSkill8[0]][j +3])
			w += PET_OBJ[n_A_PassSkill8[0]][j +4];
	}

	var w_num = [0,0,0,0];
	for(i=0;i<=3;i++)
		w_num[i] = n_A_PassSkill8[8+i];
	for(i=0;i<=2;i++)
		for(j=i+1;j<=3;j++)
			if(w_num[i] == w_num[j])
				w_num[j] = 0;
	for(i=0;i<=3;i++){
		for(var j=0;ITEM_SP_TIME_OBJ[w_num[i]][5 + j] != 0;j += 2){
			if(nSTP2 == ITEM_SP_TIME_OBJ[w_num[i]][5 + j])
				w += ITEM_SP_TIME_OBJ[w_num[i]][6 + j];
		}
	}
	return w;
}

function StPlusWeapon(nSTP2){ // Additional [Stats]/ MAtk by Weapon
	var w=bon_NONE;
	for(var j=0;ItemOBJ[n_A_Equip[eq_WEAPON]][j +itm_BONUS_START] != bon_NONE;j += 2){
		if(nSTP2 == ItemOBJ[n_A_Equip[eq_WEAPON]][j +itm_BONUS_START])
			w += ItemOBJ[n_A_Equip[eq_WEAPON]][j +itm_BONUS_START+1];
	}
	return w;
}

function WeaponSet(){ // generate WeaponList
	n_A_JobSet();
	n_A_WeaponType = eval(document.calcForm.A_WeaponType.value);
	var len = document.calcForm.A_weapon1.length;
	for(var i=0;i<len;i++)
		document.calcForm.A_weapon1.options[0] = null;

	work = new Array();
	j = 0;
	for (i=0;i<=ItemMax; i++)	{
		if(ItemOBJ[i][1] == n_A_WeaponType && JobEquipItemSearch(ItemOBJ[i][2]) == 1){
			work[j] = i;
			j++;
		}else if(ItemOBJ[i][4] == 4 && ItemOBJ[i][1] == n_A_WeaponType && SuperNoviceFullWeaponCHECK){
			work[j] = i;
			j++;
		}
	}
	work[j] = "EOF";

	
	work = sort(work);
	for (i=0;i<j; i++)
		document.calcForm.A_weapon1.options[i] = new Option(ITEM_NAME[work[i]][1+ Lang*2],ItemOBJ[work[i]][0]);

}

function WeaponSetLeft(){ // generate left weaponlist
	n_A_JobSet();
	n_A_Weapon2Type = eval(document.calcForm.A_Weapon2Type.value);
	var len = document.calcForm.A_weapon2.length;
	for(var i=0;i<len;i++)
		document.calcForm.A_weapon2.options[0] = null;
	work = new Array();
	j = 0;
	for (i=0;i<=ItemMax; i++){
		if(ItemOBJ[i][1] == n_A_Weapon2Type && JobEquipItemSearch(ItemOBJ[i][2]) == 1)
		{
			work[j] = i;
			j++;
		}
	}
	work[j] = "EOF";
	work = sort(work);
	for (i=0;i<j; i++)
		document.calcForm.A_weapon2.options[i] = new Option(ITEM_NAME[work[i]][1+ Lang *2],ItemOBJ[work[i]][0]);
}

function WeaponSet2(){ // generate EquipList
with(document.calcForm){
	n_A_JobSet();

	// reset equips ------------------
	var len = A_head1.length;
	for(var i=0;i<len;i++)
		A_head1.options[0] = null;
	var len = A_head2.length;
	for(i=0;i<len;i++)
		A_head2.options[0] = null;
	var len = A_head3.length;
	for(i=0;i<len;i++)
		A_head3.options[0] = null;
	var len = A_left.length;
	for(i=0;i<len;i++)
		A_left.options[0] = null;
	var len = A_body.length;
	for(i=0;i<len;i++)
		A_body.options[0] = null;
	var len = A_shoulder.length;
	for(i=0;i<len;i++)
		A_shoulder.options[0] = null;
	var len = A_shoes.length;
	for(i=0;i<len;i++)
		A_shoes.options[0] = null;
	var len = A_acces1.length;
	for(i=0;i<len;i++){
		A_acces1.options[0] = null;
		A_acces2.options[0] = null;
	}
	// insert first time ? -----------
	var nx = 1 + Lang*2;
	if(first_check == 0){ // insert "empty" labels
		first_check = 1;
		A_head1.options[0] = new Option(ITEM_NAME[142][nx],ItemOBJ[142][0]);
		A_head2.options[0] = new Option(ITEM_NAME[243][nx],ItemOBJ[243][0]);
		A_head3.options[0] = new Option(ITEM_NAME[268][nx],ItemOBJ[268][0]);
		A_left.options[0] = new Option(ITEM_NAME[305][nx],ItemOBJ[305][0]);
		A_body.options[0] = new Option(ITEM_NAME[279][nx],ItemOBJ[279][0]);
		A_shoulder.options[0] = new Option(ITEM_NAME[311][nx],ItemOBJ[311][0]);
		A_shoes.options[0] = new Option(ITEM_NAME[317][nx],ItemOBJ[317][0]);
		A_acces1.options[0] = new Option(ITEM_NAME[326][nx],ItemOBJ[326][0]);
		A_acces2.options[0] = new Option(ITEM_NAME[326][nx],ItemOBJ[326][0]);
		return;
	}
	first_check = 2;

	var workB = new Array(); // itemlist[equiptyp][accu number]
	for(i=0;i<=7;i++)
		workB[i] = new Array();
	var wsj = new Array(); // amount of items
	for(i=0;i<=7;i++)
		wsj[i]=0;
	for(i=0;i<=ItemMax; i++){ // check all items for type & jobReq
		
		if(ItemOBJ[i][itm_TYPE] == itm_type_HEAD_UPPER && (JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1 || SuperNoviceFullWeaponCHECK)){
				workB[0][wsj[0]] = i;
				wsj[0]++;
					
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_HEAD_MIDDLE && (JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1 || SuperNoviceFullWeaponCHECK)){
				workB[1][wsj[1]] = i;
				wsj[1]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_HEAD_LOWER && (JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1 || SuperNoviceFullWeaponCHECK)){
				workB[2][wsj[2]] = i;
				wsj[2]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_SHIELD && JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1){
				workB[3][wsj[3]] = i;
				wsj[3]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_ARMOR && JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1){
				workB[4][wsj[4]] = i;
				wsj[4]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_GARMENT && JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1){
				workB[5][wsj[5]] = i;
				wsj[5]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_SHOES && JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1){
				workB[6][wsj[6]] = i;
				wsj[6]++;
		
		}else if(ItemOBJ[i][itm_TYPE] == itm_type_ACCESSORY && JobEquipItemSearch(ItemOBJ[i][itm_REQ_JOB]) == 1){
				workB[7][wsj[7]] = i;
				wsj[7]++;
		}
		
	}
	
	for(i=0;i<=7;i++)
		workB[i][wsj[i]] = "EOF";

	for(var m=0;m<=7;m++) // sort
		workB[m] = sort(workB[m]);

	var z = 0;
	for(i=0;i<wsj[0];i++){ // Upper Head - fill dropdown
		z = workB[0][i];
		if(z < ITEM_NAME.length)
			A_head1.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_head1.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[1];i++){ // middle head - fill dropdown
		z = workB[1][i];
		if(z < ITEM_NAME.length)
			A_head2.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_head2.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[2];i++){ // lower head - fill dropdown
		z = workB[2][i];
		if(z < ITEM_NAME.length)
			A_head3.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_head3.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[3];i++){ // shield - fill dropdown
		z = workB[3][i];
		if(z < ITEM_NAME.length)
			A_left.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_left.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[4];i++){ // armor - fill dropdown
		z = workB[4][i];
		if(z < ITEM_NAME.length)
			A_body.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_body.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[5];i++){ // garment - fill dropdown
		z = workB[5][i];
		if(z < ITEM_NAME.length)
			A_shoulder.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_shoulder.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[6];i++){ // shoes - fill dropdown
		z = workB[6][i];
		if(z < ITEM_NAME.length)
			A_shoes.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		else
			A_shoes.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
	}
	for(i=0;i<wsj[7];i++){ // accessory - fill dropdown
		z = workB[7][i];
		if(z < ITEM_NAME.length){
			A_acces1.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
			A_acces2.options[i] = new Option(ITEM_NAME[z][nx],ItemOBJ[z][0]);
		}else{
			A_acces1.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
			A_acces2.options[i] = new Option("[missing name]",ItemOBJ[z][0]);
		}
	}
}}

function FirstNovis(){
	if(first_check == 1){
		first_check = 2;
		WeaponSet2();
	}
}

{ // JobEquipmItemOBJ[n_A_JOB][i] != ReqJob --> allowed
//   0 = all
//   1 = all axc novi
//  50 = novis
//  51~54 = Swo~Arc Cls
//  55 = Mag Cls & SL
//  56 = Mer Cls
//  58 = Nin
//  59 = GS
//  61~66 = Swo~Arc 2nd Cls
//  65 = Wiz & Sage Cls & SLi
//  66 = Mer 2nd Cls
//  70 = Swo & Merc Cls
//  71 = Swo & Aco & Mage & Merc Cls & SLi
//  72 = Swo & Thi & Merc Cls
//  73 = Aco & Merc
//  74 = Swo & Thi & Aco & Merc Cls & Ba/Da
//  75 = Swo & Thi & Arc & Merc Cls
//  76 = Arc & Rog Cls
//  77 = Aco & Mage Cls & SLi
//  78 = Swo & Thi & Aco & Merc Cls
//  79 = 2nd Cls
//  80 = Thi & Rog Cls & Hunter Cls
//  81 = Ass & Prie Cls
//  82 = 2n trans Cls
//  83 = Swo & Thi & Arc & Merc Cls & TKK & TKM & GS
//  84 = Swo & Thi & Merc Cls & TKK & TKM
//  85 = Swo & Thi & Aco & Merc Cls & TKK & TKM
//  86 = Swo & Merc Cls & TKK & TKM
//  87 = Swo Cls & TKM
//  88 = Hun & Rog Cls
//  89 = Aco & Arc & Mag Cls & SLi
//  90 = Nov & Swo & Mer & Ass Cls & Thi
//  91 = Swo & Thi & Merc Cls & TKM & SLi
// 100 = Novi & HNovi
// 101 = Swo & HSwo
// 102 = Thi & HThi
// 103 = Aco & HAco
// 104 = Arc & HArc
// 105 = Mag & HMag
// 106 = Mer & HMer
// 107 = Kni Cls
// 108 = Ass Cls
// 109 = Pri Cls
// 110 = Hun Cls
// 111 = Wiz Cls
// 112 = Bla Cls
// 113 = Cru Cls
// 114 = Rog Cls
// 115 = Mon Cls
// 116 = Bar Cls
// 117 = Dan Cls
// 118 = Sag Cls
// 119 = Alc Cls
// 120 = SNov
// 121 = LK Cls
// 122 = AX Cls
// 123 = HP Cls
// 124 = Sni Cls
// 125 = HW Cls
// 126 = BS Cls
// 127 = PA Cls
// 128 = Sta Cls
// 129 = Cha Cls
// 130 = Clo Cls
// 131 = Gyp Cls
// 132 = Pro Cls
// 133 = Bio Cls
// 141 = TKK
// 142 = TKM
// 143 = SLi
// 144 = Nin
// 145 = GS (also 58)
// >1000 -> Rebi & Sub
// >2000 -> 3rd  & Sub

JobEquipItemOBJ = [
/* Nov */[0,    50, 90,100,999],
/* Swo */[0, 1, 51,101, 70, 71, 72, 74, 75, 78, 83, 84, 85, 86, 87, 90, 91,999],
/* Thi */[0, 1, 52,102, 72, 74, 75, 78, 80, 83, 84, 85, 90, 91,999],
/* Aco */[0, 1, 53,103, 71, 73, 74, 77, 78, 85, 89,999],
/* Arc */[0, 1, 54,104, 75, 76, 83, 89,999],
/* Mag */[0, 1, 55,105, 71, 77, 89,999],
/* Mer */[0, 1, 56,106, 70, 71, 72, 73, 74, 75, 78, 83, 84, 85, 86, 90, 91,999],

/* Kni */[0, 1, 51, 61,107, 70, 71, 72, 74, 75, 78, 79, 83, 84, 85, 86, 87, 90, 91,999],
/* Ass */[0, 1, 52, 62,108, 72, 74, 75, 78, 79, 81, 83, 84, 85, 90, 91,999],
/* Pri */[0, 1, 53, 63,109, 71, 73, 74, 77, 78, 79, 81, 85, 89,999],
/* Hun */[0, 1, 54, 64,110, 75, 76, 79, 80, 83, 88, 89,999],
/* Wiz */[0, 1, 55, 65,111, 71, 77, 79, 89,999],
/* Bla */[0, 1, 56, 66,112, 70, 71, 72, 73, 74, 75, 78, 79, 83, 84, 85, 86, 90, 91,999],

/* Cru */[0, 1, 51, 61,113, 70, 71, 72, 74, 75, 78, 79, 83, 84, 85, 86, 87, 90, 91,999],
/* Rog */[0, 1, 52, 62,114, 72, 74, 75, 76, 78, 79, 80, 83, 84, 85, 88, 91,999],
/* Mon */[0, 1, 53, 63,115, 71, 73, 74, 77, 78, 79, 85, 89,999],
/* Bar */[0, 1, 54, 64,116, 74, 75, 76, 79, 83, 89,999],
/* Dan */[0, 1, 54, 64,117, 74, 75, 76, 79, 83, 89,999],
/* Sag */[0, 1, 55, 65,118, 71, 77, 79, 89,999],
/* Alc */[0, 1, 56, 66,119, 70, 71, 72, 73, 74, 75, 78, 79, 83, 84, 85, 86, 90, 91,999],

/* Sno */[0,    50, 90,120,999],
/* Lor */[0, 1, 51, 61,107,121, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* ASX */[0, 1, 52, 62,108,122, 72, 74, 75, 78, 79, 81, 82, 83, 84, 85, 90, 91,999],
/* HPr */[0, 1, 53, 63,109,123, 71, 73, 74, 77, 78, 79, 81, 82, 85, 89,999],
/* Sni */[0, 1, 54, 64,110,124, 75, 76, 79, 80, 82, 83, 88, 89,999],
/* HWi */[0, 1, 55, 65,111,125, 71, 77, 79, 82, 89,999],
/* Mas */[0, 1, 56, 66,112,126, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999],

/* Pal */[0, 1, 51, 61,113,127, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* Sta */[0, 1, 52, 62,114,128, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 88, 91,999],
/* Cha */[0, 1, 53, 63,115,129, 71, 73, 74, 77, 78, 79, 82, 85, 89,999], 
/* Clo */[0, 1, 54, 64,116,130, 74, 75, 76, 79, 82, 83, 89,999],
/* Gyp */[0, 1, 54, 64,117,131, 74, 75, 76, 79, 82, 83, 89,999],
/* Sch */[0, 1, 55, 65,118,132, 71, 77, 79, 82, 89,999],
/* Bio */[0, 1, 56, 66,119,133, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999],

/* HNo */[0,    50, 90,100,999],
/* HSw */[0, 1, 51,101, 70, 71, 72, 74, 75, 78, 83, 84, 85, 86, 87, 90, 91,999],
/* HTh */[0, 1, 52,102, 72, 74, 75, 78, 80, 83, 84, 85, 90, 91,999],
/* HAc */[0, 1, 53,103, 71, 73, 74, 77, 78, 85, 89,999],
/* HAr */[0, 1, 54,104, 75, 76, 83, 89,999],
/* HMa */[0, 1, 55,105, 71, 77, 89,999],
/* HMe */[0, 1, 56,106, 70, 71, 72, 73, 74, 75, 78, 83, 84, 85, 86, 90, 91,999],

/* TKK */[0, 1,141, 83, 84, 85, 86,999],
/* TKM */[0, 1,142, 79, 83, 84, 85, 86, 87, 91,999],
/* SLi */[0, 1,143, 55, 65,111, 71, 77, 79, 89,999],
/* Nin */[0, 1,144, 58, 52, 91,999],
/* GSl */[0, 1,145, 59, 83,999],

/* Run */[0, 1, 51, 61,107,121, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* Run */[0, 1, 51, 61,107,121, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* GlX */[0, 1, 52, 62,108,122, 72, 74, 75, 78, 79, 81, 82, 83, 84, 85, 90, 91,999],
/* GlX */[0, 1, 52, 62,108,122, 72, 74, 75, 78, 79, 81, 82, 83, 84, 85, 90, 91,999],
/* ABi */[0, 1, 53, 63,109,123, 71, 73, 74, 77, 78, 79, 81, 82, 85, 89,999],
/* ABi */[0, 1, 53, 63,109,123, 71, 73, 74, 77, 78, 79, 81, 82, 85, 89,999],
/* Ran */[0, 1, 54, 64,110,124, 75, 76, 79, 80, 82, 83, 88, 89,999],
/* Ran */[0, 1, 54, 64,110,124, 75, 76, 79, 80, 82, 83, 88, 89,999],
/* WLo */[0, 1, 55, 65,111,125, 71, 77, 79, 82, 89,999],
/* WLo */[0, 1, 55, 65,111,125, 71, 77, 79, 82, 89,999],
/* Mec */[0, 1, 56, 66,112,126, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999],
/* Mec */[0, 1, 56, 66,112,126, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999],

/* RGu */[0, 1, 51, 61,113,127, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* RGu */[0, 1, 51, 61,113,127, 70, 71, 72, 74, 75, 78, 79, 82, 83, 84, 85, 86, 87, 90, 91,999],
/* SCh */[0, 1, 52, 62,114,128, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 88, 91,999],
/* SCh */[0, 1, 52, 62,114,128, 72, 74, 75, 76, 78, 79, 80, 82, 83, 84, 85, 88, 91,999],
/* Sur */[0, 1, 53, 63,115,129, 71, 73, 74, 77, 78, 79, 82, 85, 89,999],
/* Sur */[0, 1, 53, 63,115,129, 71, 73, 74, 77, 78, 79, 82, 85, 89,999],
/* Min */[0, 1, 54, 64,116,130, 74, 75, 76, 79, 82, 83, 89,999],
/* Min */[0, 1, 54, 64,116,130, 74, 75, 76, 79, 82, 83, 89,999],
/* Wan */[0, 1, 54, 64,117,131, 74, 75, 76, 79, 82, 83, 89,999],
/* Wan */[0, 1, 54, 64,117,131, 74, 75, 76, 79, 82, 83, 89,999],
/* Sor */[0, 1, 55, 65,118,132, 71, 77, 79, 82, 89,999],
/* Sor */[0, 1, 55, 65,118,132, 71, 77, 79, 82, 89,999],
/* Gen */[0, 1, 56, 66,119,133, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999],
/* Gen */[0, 1, 56, 66,119,133, 70, 71, 72, 73, 74, 75, 78, 79, 82, 83, 84, 85, 86, 90, 91,999]
];

}

function JobEquipItemSearch(nJEIS){ // [Equip] matches current job ?
	
	if(nJEIS >= 2000){
		if(n_Sanji) // 3rd cls
			nJEIS -= 2000;
		else
			return 0;
	}
	if(nJEIS >= 1000){
		if(n_Tensei || n_Sanji) // rebirth or 3rd cls
			nJEIS -= 1000;
		else
			return 0;
	}
	for(var j=0;JobEquipItemOBJ[n_A_JOB][j] != 999;j++){
		if(JobEquipItemOBJ[n_A_JOB][j] == nJEIS)
			return 1;
	}
	return 0;
}

function EquipNumSearch(nENS){ // Search equipCount
	var wENS=0;
	for(var ENSi=0;ENSi<=20;ENSi++)
	{
		if(nENS == n_A_Equip[ENSi])
			wENS += 1;
	}
	return wENS;
}

function CardNumSearch(nCNS){ // Search cardCount
	var wCNS=0;
	for(var CNSi=0;CNSi<=25;CNSi++)
	{
		if(nCNS == n_A_card[CNSi])
			wCNS += 1;
	}
	return wCNS;
}

function TimeItemNumSearch(n){ // TemporaryEffects
	var w=0;
	for(var i=0;i<=3;i++)
	{	if(n == n_A_PassSkill8[8+i])
			w += 1;
	}
	return w;
}

w_ASSP0bk=new Array();
for(i=0;i<20;i++)
	w_ASSP0bk[i]=999;

function ActiveSkillSetPlus(){ // generate skillList ?
	w_ASSP0=new Array();
	w_ASSP9=new Array();
	for(i=0;i<20;i++){
		w_ASSP0[i]=999;
		w_ASSP9[i]=0;
	}

	j=0;
	for(i=0;i<=20;i++){
		for(j2=0;ItemOBJ[n_A_Equip[i]][8+j2] != 0;j2 += 2){
			if(ItemOBJ[n_A_Equip[i]][8+j2] == 220){
				if(InsertSkill[ItemOBJ[n_A_Equip[i]][9+j2]][1] == 1){
					w_ASSP0[j] = InsertSkill[ItemOBJ[n_A_Equip[i]][9+j2]][2];
					w_ASSP9[j] = InsertSkill[ItemOBJ[n_A_Equip[i]][9+j2]][0] + 3000;
					j++;
				}
			}else if(ItemOBJ[n_A_Equip[i]][8+j2] == 221){
				if(AutoSpellSkill[ItemOBJ[n_A_Equip[i]][9+j2]][1] == 1){
					w_ASSP0[j] = AutoSpellSkill[ItemOBJ[n_A_Equip[i]][9+j2]][2];
					w_ASSP9[j] = AutoSpellSkill[ItemOBJ[n_A_Equip[i]][9+j2]][0] + 2000;
					j++;
				}
			}
		}
	}

	for(i=0;i<=25;i++){
		for(j2=0;cardOBJ[n_A_card[i]][4+j2] != 0;j2 += 2){
			if(cardOBJ[n_A_card[i]][4+j2] == 220){
				if(InsertSkill[cardOBJ[n_A_card[i]][5+j2]][1] == 1){
					w_ASSP0[j] = InsertSkill[cardOBJ[n_A_card[i]][5+j2]][2];
					w_ASSP9[j] = cardOBJ[n_A_card[i]][5+j2] + 3000;
					j++;
				}
			}else if(cardOBJ[n_A_card[i]][4+j2] == 221){
				if(AutoSpellSkill[cardOBJ[n_A_card[i]][5+j2]][1] == 1){
					w_ASSP0[j] = AutoSpellSkill[cardOBJ[n_A_card[i]][5+j2]][2];
					w_ASSP9[j] = cardOBJ[n_A_card[i]][5+j2] + 2000;
					j++;
				}
			}
		}
	}
	if(CardNumSearch(164) && (n_A_JOB == 9 || n_A_JOB == 23)){
		w_ASSP0[j] = 162;
		w_ASSP9[j] = 2095;
		j++;
	}
	if(CardNumSearch(277) && n_A_JobSearch()==1){
		w_ASSP0[j] = 76;
		w_ASSP9[j] = 2096;
		j++;
	}
	if(EquipNumSearch(1096) && n_A_JobSearch2() != 9){
		w_ASSP0[j] = 193;
		w_ASSP9[j] = 2108;
		j++;
	}
	if(n_A_PassSkill7[15]){
		var wSC = [33,34,35,36,13,37,38,39,7];
		for(var i=0;i<=8;i++){
			w_ASSP0[j] = InsertSkill[wSC[i]][2];
			w_ASSP9[j] = wSC[i] + 3000;
			j++;
		}
		w_ASSP0[j] = InsertSkill[40][2];

		w_ASSP9[j] = 3040;
		j++;
	}

	w_ASSPch=0;
	for(i=0;i<20;i++){
		if(w_ASSP0bk[i] != w_ASSP0[i])
			w_ASSPch = 1
	}
	if(w_ASSPch){
		
		for(k=0;JobSkillActiveOBJ[n_A_JOB][k]!=999;k++);
		for(i=k+20;i>=k;i--)
			document.calcForm.A_ActiveSkill.options[i] = null;
		j=0;
		for(i=k;w_ASSP0[j] != 999;i++,j++){
			if(w_ASSP9[j] >= 3000)
				document.calcForm.A_ActiveSkill.options[i] = new Option(SkillOBJ[w_ASSP0[j]][2],w_ASSP9[j]);
			else
				document.calcForm.A_ActiveSkill.options[i] = new Option(SkillOBJ[w_ASSP0[j]][2]+"(Temp As)",w_ASSP9[j]);
		}
	}
	for(i=0;i<20;i++)
		w_ASSP0bk[i] = w_ASSP0[i];

	if(eval(document.calcForm.A_ActiveSkill.value) == 0)
		document.calcForm.A_ActiveSkillLV.style.visibility = "hidden";
}

function KakutyouKansuu(){ // calc top-right menu
	wKK = eval(document.calcForm.A_Kakutyou.value);
	if(wKK == 0){
		myInnerHtml("A_KakutyouData","",0);
		return;
	}
	Heal = new Array();
	if(wKK == 1){ // Heal Amount
		for(i=0;i<=10;i++)
			Heal[i] = HealCalc(i,1);
		w = "";
		for(i=1;i<=9;i++)
			w += "Lv"+i +" "+ Heal[i] +"<br>";
		w += "Lv10 "+ Heal[10] +"<br>";

		w += "<Font size=2>" + Word(141) + "</Font>+"+ (5 -(n_A_BaseLV + n_A_INT) %5);
		myInnerHtml("A_KakutyouData",w,0);
	}
	else if(wKK == 2){ // Increase HP recovery
		if(n_A_JobSearch() == 1 || n_A_JOB==20){
			HPRLV = eval(document.calcForm.A_KakutyouSelNum.value);
			w = Math.floor((5 + n_A_MaxHP / 500) * HPRLV);
			myInnerHtml("A_KakutyouData","<br>"+ Word(145) + ": "+w,0);
		}else
			myInnerHtml("A_KakutyouData","",0);
	}
	else if(wKK == 3){ // Increase SP recovery
		if(n_A_JobSearch() == 5 || n_A_JobSearch() == 9 || n_A_JOB==20 || n_A_JOB==44){			SPRLV = eval(document.calcForm.A_KakutyouSelNum.value);
			w = Math.floor((3 + n_A_MaxSP / 500) * SPRLV);
			myInnerHtml("A_KakutyouData","<br>"+ Word(145) + ": "+w,0);
		}else
			myInnerHtml("A_KakutyouData","",0);
	}
	else if(wKK == 4){ // Spiritual Cadence
		if(n_A_JobSearch2() == 15){
			SPRLV = eval(document.calcForm.A_KakutyouSelNum.value);
			w1 = Math.floor((4 + n_A_MaxHP / 500) * SPRLV);
			w2 = Math.floor((2 + n_A_MaxSP / 500) * SPRLV);
			myInnerHtml("A_KakutyouData","<br>HP "+ Word(145) + ": "+w1+"<br>SP "+ Word(145) + ": "+w2,0);
		}else
			myInnerHtml("A_KakutyouData","",0);
	}
	else if(wKK == 5){ // Weight Limit
		var syozijob =[0,800,400,400,600,200,800,800,400,600,700,400,1000,800,400,600,700,700,400,1000,0,800,400,600,700,400,1000,800,400,600,700,700,400,1000,0,800,400,400,600,200,800,800,800,400,600,800
		,800,800,400,400,600,600,700,700,400,400,1000,1000,800,800,400,400,600,600,700,700,700,700,400,400,1000,1000];
		syoziryou = 2000 + syozijob[n_A_JOB];
		if(eval(document.calcForm.A_youshi.checked))
			syoziryou = 2000;
		syoziryou += eval(document.calcForm.A_STR.value) * 30;
		if(SkillSearch(78))
			syoziryou += 1000;
		if(n_A_JobSearch() == 6 || n_A_JOB==20)
			syoziryou += eval(document.calcForm.A_KakutyouSelNum.value) * 200;
		EquipKG = 0;
		for(i=0;i<=10;i++)
			EquipKG += ItemOBJ[n_A_Equip[i]][6];
		myInnerHtml("A_KakutyouData",Word(146) +": "+syoziryou+"<BR>"+ Word(147) +": "+EquipKG,0);
	}
	else if(wKK == 6){ // Elemental Resistance
		CBIstr = "<Font size=2><B>";
		// Neutral, Water, Earth, Fire, Wind, Poison, Holy, Dark, Ghost, Undead
		for(i=0;i <= 9;i++){
			if(n_A_zokusei[i]==100){
				wkk6a = "";
				wkk6b = "";
			}
			if(n_A_zokusei[i]<100){
				wkk6a = "<Font color=blue>";
				wkk6b = "</Font>";
			}
			if(n_A_zokusei[i]>100){
				wkk6a = "<Font color=red>";
				wkk6b = "</Font>";
			}

			CBIstr += wkk6a + ZokuseiOBJ[i][Lang] +" "+n_A_zokusei[i] +" %" + wkk6b +"<BR>";
		}
		CBIstr += "</B></Font>";
		myInnerHtml("A_KakutyouData",CBIstr,0);
	}
	else if(wKK == 7){ // Race Resistance
		CBIstr = "<Font size=2><B>";
		// Formless, Undead, Brute, Plant, Insect, Fish, Demon, Demi-Human, Angel, Dragon
		for(i=50;i <= 59;i++){
			if(n_tok[i]==0){
				wkk6a = "";
				wkk6b = "";
			}
			if(n_tok[i]>0){
				wkk6a = "<Font color=blue>";
				wkk6b = "</Font>";
			}
			if(n_tok[i]<0){
				wkk6a = "<Font color=red>";
				wkk6b = "</Font>";
			}
			CBIstr += wkk6a + SyuzokuOBJ[i-50][Lang] +" "+ n_tok[i] +" %" + wkk6b +"<BR>";
		}
		CBIstr += "</B></Font>";
		myInnerHtml("A_KakutyouData",CBIstr,0);
	}
	else if(wKK == 8){ // Status Resistance
		var JyoutaiTaisei = new Array();
		var GensanTaisei = (n_A_BaseLV + n_A_LUK) / 10; // Average
		JyoutaiTaisei[0] = Math.floor(n_A_VIT * 100) / 100; // Poison
		JyoutaiTaisei[1] = JyoutaiTaisei[0]; // Stun
		JyoutaiTaisei[2] = Math.floor(n_A_MDEF * 100) / 100; // Freeze
		JyoutaiTaisei[3] = Math.floor(n_A_LUK * 100) / 100; // Curse
		JyoutaiTaisei[4] = Math.floor(n_A_INT * 100) / 150; // Blind
		JyoutaiTaisei[5] = Math.floor(n_A_INT * 100) / 100; // Sleep
		JyoutaiTaisei[6] = JyoutaiTaisei[0]; // Silence
		JyoutaiTaisei[7] = JyoutaiTaisei[4]; // Chaos
		JyoutaiTaisei[8] = JyoutaiTaisei[0]; // Bleeding
		JyoutaiTaisei[9] = JyoutaiTaisei[2]; // Stone
		if(n_A_LUK == 0)
			JyoutaiTaisei[3] = 100;
		if(n_A_BodyZokusei == 9){
			JyoutaiTaisei[2] = 100;
			JyoutaiTaisei[8] = 100;
			JyoutaiTaisei[9] = 100;
		}
		for(var i=0;i<=9;i++){
			JyoutaiTaisei[i] += Math.floor((100 - JyoutaiTaisei[i]) *  n_tok[150+i]) /100;
			JyoutaiTaisei[i] = Math.floor(JyoutaiTaisei[i] * 100) / 100;
		}

		CBIstr = "<Font size=2><B>"
		for(i=0;i <= 9;i++){
			CBIstr += IjyouOBJ[i][Lang] + " "; // Text
			CBIstr += JyoutaiTaisei[i] + "%<BR>"; // Value
		}
		var w = Math.floor((GensanTaisei -9.9) * 100) / 100;
		if(w < 0)
			w = 0;
		CBIstr += Word(148) +": "+ w +"~"+ GensanTaisei;
		CBIstr += "</B><BR>"+ Word(149) +"</Font>";
		myInnerHtml("A_KakutyouData",CBIstr,0);
	}
	else if(wKK == 9){ // Other Resistance
		CBIstr = "<Font size=2><B>";
		for(i=77;i <= 79;i++){ // Boss, LongRange, Normal
			if(n_tok[i]==0){
				wkk6a = "";
				wkk6b = "";
			}
			if(n_tok[i]>0){
				wkk6a = "<Font color=blue>";
				wkk6b = "</Font>";
			}
			if(n_tok[i]<0){
				wkk6a = "<Font color=red>";
				wkk6b = "</Font>";
			}
			CBIstr += wkk6a + Word(150 + i - 77) + Word(153) +": "+ n_tok[i] +"%" + wkk6b +"<BR>";
		}

		for(i=190;i <= 192;i++){ // Small, Medium, Large
			if(n_tok[i]==0){
				wkk6a = "";
				wkk6b = "";
			}
			if(n_tok[i]>0){
				wkk6a = "<Font color=blue>";
				wkk6b = "</Font>";
			}
			if(n_tok[i]<0){
				wkk6a = "<Font color=red>";
				wkk6b = "</Font>";
			}
			CBIstr += wkk6a + SizeOBJ[i-190][Lang] + Word(153) +": "+ n_tok[i] +"%" + wkk6b +"<BR>";
		}
		CBIstr += "</B></Font>";
		myInnerHtml("A_KakutyouData",CBIstr,0);
	}
	else if(wKK == 10){ // Cast time and Delay
		var wkk10;
		wkk10 = Word(154) +": "+ Math.round(n_A_CAST *10000)/100+"%<BR>";
		wkk10 += Word(155) +": "+ Math.round((100 - n_tok[74]) *100)/100 +"%";
		myInnerHtml("A_KakutyouData",wkk10,0);
	}
	else if(wKK == 11){ // Experience
		var NowBaseExp = eval(document.calcForm.A_KakutyouSelNum.value);
		var NowJobExp = eval(document.calcForm.A_KakutyouSelNum2.value);
		var JobType=0; // Novi
		if(n_A_JOB == cls_HNOV)
			JobType = 1; // HNovi
		if((1 <= n_A_JOB && n_A_JOB <= 6) || n_A_JOB == 41 || n_A_JOB == 20)
			JobType = 2; // First Jobs (non GS/Nin)
		else if((35 <= n_A_JOB && n_A_JOB <= 40))
			JobType = 3; // First Trans Jobs
		else if((7 <= n_A_JOB && n_A_JOB <= 19) || n_A_JOB == 43)
			JobType = 4; // 2nd jobs
		else if(21 <= n_A_JOB && n_A_JOB<=33)
			JobType = 5; // 2nd trans jobs
		else if(n_A_JOB == 42)
			JobType = 7; // TKM
		else if(n_A_JOB == 44 || n_A_JOB == 45)
			JobType = 6; // Nin & GS
		else if(46 <= n_A_JOB && n_A_JOB <= 71)
			JobType = 8; // 3rd Cls
		
		NowBaseExp = Math.floor(PC_BaseExp[n_Tensei][n_A_BaseLV] * NowBaseExp / 100);

		var wkk11;
		wkk11 = "<Font size=2>"+Word(156)+"<B>"+ Kanma(PC_BaseExp[n_Tensei][n_A_BaseLV] - NowBaseExp) +" </B>exp<BR>";

		var MonsterNum=0;
		var OneCheck = 0;
		if(n_B[en_BASEEXP] != 0){
			for(i=n_A_BaseLV;i<99 && JobType != 8;i++){
				var LvUpExp = PC_BaseExp[n_Tensei][i];
				
				var w1 = Math.floor((LvUpExp - NowBaseExp) / n_B[en_BASEEXP] / expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]));
				MonsterNum += w1;
				NowBaseExp += w1 * n_B[en_BASEEXP] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);

				while(NowBaseExp < LvUpExp){
					NowBaseExp += n_B[en_BASEEXP] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);
					MonsterNum += 1
				}
				if(OneCheck==0){
					OneCheck = 1;
					wkk11 += "(<B>"+ MONSTER_NAME[n_B[en_ID]][Lang] +" </B>gives<B> "+ Kanma(MonsterNum) +"</B>"+Word(159)+")<BR>";
					//wkk11 += "(Equals <B>"+ MONSTER_NAME[n_B[en_ID]][Lang] +"</B> "+ n_B[1] +" kill"+(Kanma(MonsterNum)!=1?"s":"")+")<BR>";
				}
				NowBaseExp -= LvUpExp;
				if(NowBaseExp > LvUpExp -1)
					NowBaseExp = LvUpExp -1;
			}
			if (JobType != 8)
				wkk11 += "BaseLv99"+ Word(158) + "<B> "+ Kanma(MonsterNum) +"</B> "+ MONSTER_NAME[n_B[en_ID]][Lang] + "s" +Word(159)+"<BR><BR>";
			//wkk11 += "Until BaseLv99: <B>"+ Kanma(MonsterNum) +"</B> more "+ n_B[1] +" kill"+(Kanma(MonsterNum)!=1?"s":"")+"<BR><BR>";
			for(i=n_A_BaseLV;i<150 && JobType == 8;i++){
				var LvUpExp = PC_BaseExp[n_Tensei][i];
				
				var w1 = Math.floor((LvUpExp - NowBaseExp) / n_B[en_BASEEXP] / expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]));
				MonsterNum += w1;
				NowBaseExp += w1 * n_B[en_BASEEXP] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);

				while(NowBaseExp < LvUpExp){
					NowBaseExp += n_B[en_BASEEXP] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);
					MonsterNum += 1
				}
				if(OneCheck==0){
					OneCheck = 1;
					wkk11 += "(<B>"+ MONSTER_NAME[n_B[en_ID]][Lang] +" </B>gives<B> "+ Kanma(MonsterNum) +"</B>"+Word(159)+")<BR>";
				}
				NowBaseExp -= LvUpExp;
				if(NowBaseExp > LvUpExp -1)
					NowBaseExp = LvUpExp -1;
			}
			if (JobType == 8)
				wkk11 += "BaseLv150"+ Word(158) + "<B> "+ Kanma(MonsterNum) +"</B> "+ MONSTER_NAME[n_B[en_ID]][Lang] + "s" +Word(159)+"<BR><BR>";
			//wkk11 += "Until BaseLv99: <B>"+ Kanma(MonsterNum) +"</B> more "+ n_B[1] +" kill"+(Kanma(MonsterNum)!=1?"s":"")+"<BR><BR>";
		}


		NowJobExp = Math.floor(PC_JobExp[JobType][n_A_JobLV] * NowJobExp / 100);
		if((JobType == 0 || JobType == 1) && n_A_JobLV == 10)
			NowJobExp = 0;
		else if((JobType == 2 || JobType == 3 || JobType == 4 || JobType == 7 || JobType == 8) && n_A_JOB != cls_SNOVI && n_A_JobLV == 50)
			NowJobExp = 0;
		else if((JobType == 5 || JobType == 6) && n_A_JobLV == 70)
			NowJobExp = 0;
		else if(n_A_JOB == cls_SNOVI && n_A_JobLV == 99)
			NowJobExp = 0;

		wkk11 += Word(157)+"<B>"+ Kanma(PC_JobExp[JobType][n_A_JobLV] - NowJobExp) +"</B> exp<BR>";

		MonsterNum=0;
		OneCheck = 0;
		if(n_B[17] != 0){
			for(i=1;PC_JobExp[JobType][i]!=0;i++);
			var MaxJobLV = i;
			if((1 <= n_A_JOB && n_A_JOB <= 6) || n_A_JOB == 41)
				MaxJobLV = 50;
			for(i=n_A_JobLV;i<MaxJobLV;i++){
				var LvUpExp = PC_JobExp[JobType][i];

				var w1 = Math.floor((LvUpExp - NowJobExp) / n_B[17] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]));
				MonsterNum += w1;
				NowJobExp += w1 * n_B[17] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);

				while(NowJobExp < LvUpExp){
					NowJobExp += n_B[17] * expModByLevelDiff(n_A_BaseLV,n_B[en_LEVEL]);
					MonsterNum += 1
				}
				if(OneCheck==0){
					OneCheck = 1;
					wkk11 += "(<B>"+ MONSTER_NAME[n_B[en_ID]][Lang] +" </B>gives<B> "+ Kanma(MonsterNum) +"</B>"+Word(159)+")<BR>";
					//wkk11 += "(Equals <B>"+MONSTER_NAME[n_B[en_ID]][Lang] +" "+ Kanma(MonsterNum) +"</B> "+ n_B[1] +" kill"+(Kanma(MonsterNum)!=1?"s":"")+Word(159)+")<BR>";
				}
				NowJobExp -= LvUpExp;
				if(NowJobExp > LvUpExp -1)
					NowJobExp = LvUpExp -1;
			}
			wkk11 += "JobLv"+ MaxJobLV +Word(158)+"<B> "+ Kanma(MonsterNum)+"</B> "+ MONSTER_NAME[n_B[en_ID]][Lang] + "s" +Word(159)+"<BR>";
			//wkk11 += "Until JobLv"+ MaxJobLV +": <B>"+ Kanma(MonsterNum) +"</B> more "+ n_B[1] +" kill"+(Kanma(MonsterNum)!=1?"s":"")+"<BR><BR>";
		}

		wkk11 += "</Font>";

		myInnerHtml("A_KakutyouData",wkk11,0);
	}
}

function Kanma(num){ // Round - floating point
	var str = "";
	var x = new Array();
	if(num < 0){
		num = num * -1;
		str += "-";
	}
	for(var i=0;Math.floor(num / 1000) != 0;i++){
		var w = (num % 1000);
		if(w == 0){
			x[i] = ",000";
		}else if(w < 10){
			x[i] = ",00" + w;
		}else if(w < 100){
			x[i] = ",0" + w;
		}else{
			x[i] = "," + w;
		}
		num = Math.floor(num / 1000);
	}
	x[i] = num;
	while(i>=0){
		str += x[i];
		i--;
	}
	return str;
}

function KakutyouKansuu2(){ // SetUp top-right menu
	wKK = eval(document.calcForm.A_Kakutyou.value);
	if(wKK == 2){
		if(n_A_JobSearch() == 1 || n_A_JOB==20){
			myInnerHtml("A_KakutyouSel",SKILL_NAME[5][Lang]+ " Lvl: " + '<select name="A_KakutyouSelNum"onChange="StAllCalc()"></select>',0);
			for(i=0;i<=10;i++)
				document.calcForm.A_KakutyouSelNum.options[i] = new Option(i,i);
			document.calcForm.A_KakutyouSelNum.value=10;
			return;
		}else{
			myInnerHtml("A_KakutyouSel",Word(142),0);
			return;
		}
	}
	if(wKK == 3){
		if(n_A_JobSearch() == 5 || n_A_JobSearch2() == 9 || n_A_JOB==20 || n_A_JOB==44){
			SPRname = SKILL_NAME[45][Lang] +" Lvl: ";
			if(n_A_JOB==44)
				SPRname = SKILL_NAME[406][Lang] +" Lvl: ";
			myInnerHtml("A_KakutyouSel",SPRname + '<select name="A_KakutyouSelNum"onChange="StAllCalc()"></select>',0);
			for(i=0;i<=10;i++)
				document.calcForm.A_KakutyouSelNum.options[i] = new Option(i,i);
			document.calcForm.A_KakutyouSelNum.value=10;
			return;
		}else{
			myInnerHtml("A_KakutyouSel",Word(142),0);
			return;
		}
	}
	if(wKK == 4){
		if(n_A_JobSearch2() == 15){
			myInnerHtml("A_KakutyouSel",SKILL_NAME[184][Lang] +" Lvl: " + '<select name="A_KakutyouSelNum"onChange="StAllCalc()"></select>',0);
			for(i=0;i<=5;i++)
				document.calcForm.A_KakutyouSelNum.options[i] = new Option(i,i);
			document.calcForm.A_KakutyouSelNum.value=5;
			return;
		}else{
			myInnerHtml("A_KakutyouSel",Word(142),0);
			return;
		}
	}
	if(wKK == 5){
		if(n_A_JobSearch() == 6 || n_A_JOB==20){
			myInnerHtml("A_KakutyouSel",SKILL_NAME[59][Lang] +" Lvl: " + '<select name="A_KakutyouSelNum"onChange="StAllCalc()"></select><BR>',0);
			for(i=0;i<=10;i++)
				document.calcForm.A_KakutyouSelNum.options[i] = new Option(i,i);
			if(n_A_JOB==20)
				document.calcForm.A_KakutyouSelNum.value=0;
			else
				document.calcForm.A_KakutyouSelNum.value=5;
		}else{
			myInnerHtml("A_KakutyouSel","",0);
		}
		return;
	}
	if(wKK == 11){
		var w;
		w = '<Font size="2">'+ Word(143) +'<input type="text" name="A_KakutyouSelNum" value="0" size=4 onChange="StAllCalc()" style="text-align : right;">%<BR>';
		w += Word(144) +'<input type="text" name="A_KakutyouSelNum2" value="0" size=4 onChange="StAllCalc()" style="text-align : right;">%<BR></Font>';
		myInnerHtml("A_KakutyouSel",w,0);
		return;
	}
	myInnerHtml("A_KakutyouSel","",0);
}

function SetEquipShortCut(){ // 
with(document.calcForm){
	w = eval(A_EQUIP_SET_SHORT.value);
	if(EquipShortCutData[w][0] == 10000){
		if(EquipShortCutData[w][1] != 0)
			A_weapon1_card1.value = EquipShortCutData[w][1];
		if(EquipShortCutData[w][2] != 0)
			A_head1_card.value = EquipShortCutData[w][2];
		if(EquipShortCutData[w][3] != 0 && n_Nitou == 0)
			A_left_card.value = EquipShortCutData[w][3];
		if(EquipShortCutData[w][4] != 0)
			A_body_card.value = EquipShortCutData[w][4];
		if(EquipShortCutData[w][5] != 0)
			A_shoulder_card.value = EquipShortCutData[w][5];
		if(EquipShortCutData[w][6] != 0)
			A_shoes_card.value = EquipShortCutData[w][6];
		if(EquipShortCutData[w][7] != 0)
			A_acces1_card.value = EquipShortCutData[w][7];
		if(EquipShortCutData[w][8] != 0)
			A_acces2_card.value = EquipShortCutData[w][8];
	}
	if(EquipShortCutData[w][0] == 9999){
		A_HEAD_DEF_PLUS.value = 0;
		A_BODY_DEF_PLUS.value = 0;
		A_LEFT_DEF_PLUS.value = 0;
		A_SHOULDER_DEF_PLUS.value = 0;
		A_SHOES_DEF_PLUS.value = 0;
	
		A_head1.value = 142;
		A_head2.value = 243;
		A_head3.value = 268;
		A_left.value = 305;
		A_body.value = 279;
		A_shoulder.value = 311;
		A_shoes.value = 317;
		A_acces1.value = 326;
		A_acces2.value = 326;


		A_head1_card.value = 0;
		A_head2_card.value = 0;
		A_left_card.value = 0;
		A_body_card.value = 0;
		A_shoulder_card.value = 0;
		A_shoes_card.value = 0;
		A_acces1_card.value = 0;
		A_acces2_card.value = 0;
	}
	StAllCalc();
	ActiveSkillSetPlus();
}}

function SetCardShortLeft(){ // ActivateShortlist (left)
with(document.calcForm){
	w = eval(A_cardshortLeft.value);

	A_weapon2_card1.value = CardShort[w][1];
	A_weapon2_card2.value = CardShort[w][2];
	A_weapon2_card3.value = CardShort[w][3];
	A_weapon2_card4.value = CardShort[w][4];


	if(w == 9 || w == 10){
		w = MonsterOBJ[eval(B_Enemy.value)][3];

		if(10 <= w && w <= 14)
			A_weapon2_card1.value = 204;
		if((20 <= w && w <= 24) || (80 <= w && w <= 94))
			A_weapon2_card1.value = 203;
		if(30 <= w && w <= 34)
			A_weapon2_card1.value = 201;
		if(40 <= w && w <= 44)
			A_weapon2_card1.value = 202;
	}
}}

wESx = new Array();
for(i=0;i<=EnemyNum;i++)
	wESx[i]=new Array();

function EnemySort(){ // Sort Monsters by order
	var len = document.calcForm.B_Enemy.length; // EnemyList
	for(var i=0;i<len;i++) // clear
		document.calcForm.B_Enemy.options[0] = null;

	ESNum= [1,3,2,5,21,22,16,17,13,100]; // SortOrder

	var wES2 = eval(document.calcForm.ENEMY_SORT.value); // SortOrder

	if(wES2==0){ // Alphabetical
		var x = new Array();
		for(var i=0;i<=EnemyNum;i++)
			x[i] = MonsterABC[i];
		x = SZ(x);
		var j=0;
		for(var i=0;i<=EnemyNum;i++){
			if(x[i] != -1){
				document.calcForm.B_Enemy.options[j] = new Option(MONSTER_NAME[x[i]][Lang] + " (Lvl " + MonsterOBJ[x[i]][en_LEVEL] + ")",x[i]);
				//document.calcForm.B_Enemy.options[j] = new Option(MonsterOBJ[x[i]][1],x[i]); // old
				j++;
			}
		}
		return;
	}

	wES = ESNum[eval(document.calcForm.ENEMY_SORT.value)];
	wESx[0][0] = "S";
	wESx[0][1] = "E";
	STERTw = 0;
	ENDw = 0;
	for(i=1;i<=EnemyNum;i++){
		j=ENDw;
		if(MonsterOBJ[i][wES] >= MonsterOBJ[j][wES]){
			wESx[j][1] = i;
			wESx[i][0] = j;
			wESx[i][1] = "E";
			ENDw=i;
		}else{
			j=STERTw;
			if(MonsterOBJ[i][wES] <= MonsterOBJ[j][wES]){
				wESx[j][0] = i;
				wESx[i][0] = "S";
				wESx[i][1] = j;
				STERTw=i;
			}else{
				j=STERTw;
				jbk=STERTw;
				while(MonsterOBJ[i][wES] > MonsterOBJ[j][wES]){
					jbk=j;
					j = wESx[j][1];
				}
				wESx[jbk][1] = i;
				wESx[i][0] = jbk;
				wESx[i][1] = j;
				wESx[j][0] = i;
			}
		}
	}

	var x = new Array();
	var i;
	x[0] = i = STERTw;
	for(var j=1;wESx[i][1]!="E";j++){
		x[j] = wESx[i][1];
		i = wESx[i][1];
	}
	x = SZ(x);

	ESwork2 = new Array();
	if(wES==21||wES==22){ // PerfHit/ Dodge
		for(i=0;i<=EnemyNum;i++)
			ESwork2[i] = MonsterOBJ[i][wES] +") ";
	}
	else if(wES==2){ // Race
		for(i=0;i<=EnemyNum;i++)
			ESwork2[i] = SyuzokuOBJ[MonsterOBJ[i][en_RACE]][Lang] +") ";
	}
	else if(wES==3){ // Element
		for(i=0;i<=EnemyNum;i++)
			ESwork2[i] = ZokuseiOBJ[Math.floor(MonsterOBJ[i][en_ELEMENT] /10)][Lang] + MonsterOBJ[i][en_ELEMENT] % 10 +") ";
	}
	else{ // rest ?
		for(i=0;i<=EnemyNum;i++)
			ESwork2[i] = "";
	}

	var j=0;
	for(i=0;i<=EnemyNum;i++){
		if(x[i] != -1){
			document.calcForm.B_Enemy.options[j] = new Option(ESwork2[x[i]] + MONSTER_NAME[x[i]][Lang] + " (Lvl " + MonsterOBJ[x[i]][en_LEVEL] + ")",x[i]);
			//document.calcForm.B_Enemy.options[j] = new Option(ESwork2[x[i]] + MonsterOBJ[x[i]][1],x[i]);
			j++;
		}
	}
}

function SZ(wSTR){ // MonsterMapFilter Event
	var w = document.calcForm.ENEMY_SORT2.value;
	if(w != 0){
		for(var i=0;i<=EnemyNum;i++){
			if(wSTR[i] != -1){
				for(var j=0;MonMap[w][j] != "N";j++){
					if(wSTR[i] == MonMap[w][j])
						break;
				}
				if(MonMap[w][j] == "N")
					wSTR[i] = -1;
			}
		}
	}
	return wSTR;
}

Init();

function Init(){

	// Language ---
	var wurl = location.href.match("lan");
	Lang=1;
	if(wurl){
		var w_URLData = new Array();
		w_URLData = location.href.split("?");
		if(w_URLData[1] == "lan=jp"){
			Lang = 0;
			document.calcForm.A_LANGUAGE.value = 0;
		}
	}

	myInnerHtml("PR1","",0);
	myInnerHtml("set",'<A Href="http://translate.google.com/translate?hl=en&amp;ie=UTF-8&amp;u=http%3A%2F%2Froratorio.2-d.jp%2Fro%2Fother%2Fset.html&amp;sl=ja&amp;tl=en" target="_blank">Description</A>',0);
	myInnerHtml("DELHTML",' <Font size=2><A Href="del.html">[delete saved data]</A></Font>',0);
	
	for(var i=1;i<=99;i++){ // Fill BLvl and stats
	with(document.calcForm){
		A_BaseLV.options[i-1] = new Option(i,i);
		A_STR.options[i-1] = new Option(i,i);
		A_AGI.options[i-1] = new Option(i,i);
		A_VIT.options[i-1] = new Option(i,i);
		A_INT.options[i-1] = new Option(i,i);
		A_DEX.options[i-1] = new Option(i,i);
		A_LUK.options[i-1] = new Option(i,i);
	}}

	n_A_JOB = 0; // novi
	
	n_Nitou=0; // Dual Hand
	n_Tensei=0; // Rebirth
	n_Sanji=0; // 3rd Cls
	n_Ses=0;
	n_Enekyori=0; // Ranged
	
	// reset passive skills ---
	n_A_PassSkill = new Array();
	for(i=0;i<=32;i++)
		n_A_PassSkill[i] = 0;
	n_A_PassSkill2 = new Array();
	for(i=0;i<=15;i++)
		n_A_PassSkill2[i] = 0;
	n_A_PassSkill3 = new Array();
	for(i=0;i<=45;i++)
		n_A_PassSkill3[i] = 0;
	/*n_A_PassSkill3[20] = 100;
	n_A_PassSkill3[21] = 100;
	n_A_PassSkill3[22] = 130;
	n_A_PassSkill3[29] = 80;
	n_A_PassSkill3[23] = 100;
	n_A_PassSkill3[24] = 130;
	n_A_PassSkill3[25] = 50;
	n_A_PassSkill3[26] = 50;
	n_A_PassSkill3[30] = 10;
	n_A_PassSkill3[31] = 10;
	n_A_PassSkill3[32] = 10;
	n_A_PassSkill3[33] = 10;
	n_A_PassSkill3[34] = 10;
	n_A_PassSkill3[35] = 10;
	n_A_PassSkill3[36] = 10;
	*/
	n_A_PassSkill5 = new Array();
	for(i=0;i<=5;i++)
		n_A_PassSkill5[i] = 0;
	n_A_PassSkill6 = new Array();
	for(i=0;i<=6;i++)
		n_A_PassSkill6[i] = 0;
	n_A_PassSkill7 = new Array();
	for(i=0;i<=15;i++)
		n_A_PassSkill7[i] = 0;
	n_A_PassSkill8 = new Array();
	for(i=0;i<=21;i++)
		n_A_PassSkill8[i] = 0;
	
	n_A_IJYOU = new Array(); // Debuffs
	for(i=0;i<=3;i++)
		n_A_IJYOU[i] = 0;
	
	n_B_IJYOU = new Array();
	for(i=0;i<=24;i++)
		n_B_IJYOU[i] = 0;
	
	n_B_KYOUKA = new Array();
	for(i=0;i<=9;i++)
		n_B_KYOUKA[i] = 0;
	
	SYOKIKA_SWITCH(); // reset passive skills (again?)
	
	wBCEDPch=0;
	wLAch=0;
	wCriTyuu=0;
	wBTw1=0;
	n_TAKA_DMG=0; // Falcon
	TyouEnkakuSousa3dan = 0;
	not_use_card = 0;
	str_bSUBname = "";
	str_bSUB = "";
	SuperNoviceFullWeaponCHECK = 0;
	cast_kotei = 0;
	b = 0;
	n_PerHIT_DMG = 0;
	n_Delay = [0,0,0,0,0,0,0];
	wDelay = 0;
	n_tok = new Array(); // stats & substats
	for(var i=0;i<=450;i++)
		n_tok[i] = 0;
	first_check = 0;
	n_B = new Array();
	Last_DMG_A = [0,0,0];
	Last_DMG_B = [0,0,0];
	InnStr = new Array();

	SG_Special_HITnum = 0;
	SG_Special_DMG = [0,0,0];

	Item_or_Card = "Item";
	ItemCardNumberCheck = 142;
	
	// Cookies ?
	n_SaveMode = 1;
	n_LastSaveNum = 0;
//	if(location.href.match("file:/")){
//		document.calcForm.A_SaveType.value = 1;
//	}else{
//		var w_iech=0;
//		for(var i=8;i<=15;i++){
//			var w_ie = "MSIE " +i;
//			if(window.navigator.userAgent.indexOf(w_ie) != -1){
//				w_iech = 1;
//				break;
//			}
//		}
//		if(w_iech){
//			document.calcForm.A_SaveType.value = 0;
//			n_SaveMode = 0;
//		}
//		if(window.navigator.userAgent.indexOf("Firefox") != -1){
//			document.calcForm.A_SaveType.value = 0;
//			n_SaveMode = 0;
//		}
//		if(window.navigator.userAgent.indexOf("Safari") != -1){
//			if(window.navigator.userAgent.indexOf("Version/4") != -1 || window.navigator.userAgent.indexOf("Version/5") != -1){
//				document.calcForm.A_SaveType.value = 0;
//				n_SaveMode = 0;
//			}
//		}
//	}

//	if(n_SaveMode == 0){
//		var w = "";
//		w = '<input type="button" value="S" onClick="SaveShortCut()">'
//		w += '<input type="button" value="L" onClick="LoadShortCut()">';
//		myInnerHtml("ID_A_SHORTCUT_SAVE_BUTTON",w,0);
//	}

	LoadDataMain = new Array();
	LoadDataName = new Array();
	DataShortCut = new Array();
	for(i=0;i<=99;i++){
		DataShortCut[i] = new Array();
		for(j=0;j<=49;j++){
			DataShortCut[i][j] = new Array();
			DataShortCut[i][j][0] = 0;
			DataShortCut[i][j][1] = 0;
			DataShortCut[i][j][2] = 0;
			DataShortCut[i][j][3] = 0;
			DataShortCut[i][j][4] = 0;
			DataShortCut[i][j][5] = 0;
			DataShortCut[i][j][6] = 0;
		}
	}
	document.calcForm.ITEM_SW.checked = 0;
	Click_Item_Data();

	// -----------
	
	for (i=0;i<=71;i++) // Jobs
		document.calcForm.A_JOB.options[i] = new Option(JobName[i][Lang],i);
	
	// SpeedPots
	document.calcForm.A_SpeedPOT.options[0] = new Option(SpeedPotName[0][Lang],0);
	document.calcForm.A_SpeedPOT.options[1] = new Option(SpeedPotName[1][Lang],1);

	for (i=0;i<=16;i++) // Arrows
		document.calcForm.A_Arrow.options[i] = new Option(ArrowOBJ[i][Lang+2],i);

	// WeapElement
	document.calcForm.A_Weapon_zokusei.options[0] = new Option("-",0);
	for(i=1;i<=9;i++)
		document.calcForm.A_Weapon_zokusei.options[i] = new Option(ZokuseiOBJ[i][Lang],i);

	for(i=0;i<=20;i++){ // Upgrades
		document.calcForm.A_Weapon_ATKplus.options[i] = new Option("+"+i,i);
		document.calcForm.A_HEAD_DEF_PLUS.options[i] = new Option("+"+i,i);
		document.calcForm.A_BODY_DEF_PLUS.options[i] = new Option("+"+i,i);
		document.calcForm.A_LEFT_DEF_PLUS.options[i] = new Option("+"+i,i);
		document.calcForm.A_SHOULDER_DEF_PLUS.options[i] = new Option("+"+i,i);
		document.calcForm.A_SHOES_DEF_PLUS.options[i] = new Option("+"+i,i);
	}
	
	var wLang = Lang * 2;
	
	for(i=0;CardSortOBJ[0][i]!="NULL";i++) // WeaponSlot1
		document.calcForm.A_weapon1_card1.options[i] = new Option(CARD_NAME[CardSortOBJ[0][i]][wLang],CardSortOBJ[0][i]);
	for(i=0;CardSortOBJ[1][i]!="NULL";i++){ // WeaponSlot2-4
		document.calcForm.A_weapon1_card2.options[i] = new Option(CARD_NAME[CardSortOBJ[1][i]][wLang],CardSortOBJ[1][i]);
		document.calcForm.A_weapon1_card3.options[i] = new Option(CARD_NAME[CardSortOBJ[1][i]][wLang],CardSortOBJ[1][i]);
		document.calcForm.A_weapon1_card4.options[i] = new Option(CARD_NAME[CardSortOBJ[1][i]][wLang],CardSortOBJ[1][i]);
	}
	document.calcForm.A_weapon1_card4.options[4] = new Option(Word(91),106); // "Top10Rank"
	
	for(i=0;CardSortOBJ[2][i]!="NULL";i++){ // HeadCard
		document.calcForm.A_head1_card.options[i] = new Option(CARD_NAME[CardSortOBJ[2][i]][wLang],CardSortOBJ[2][i]);
		document.calcForm.A_head2_card.options[i] = new Option(CARD_NAME[CardSortOBJ[2][i]][wLang],CardSortOBJ[2][i]);
	}
	for(i=0;CardSortOBJ[3][i]!="NULL";i++) // Shield-/ LeftHandCard
		document.calcForm.A_left_card.options[i] = new Option(CARD_NAME[CardSortOBJ[3][i]][wLang],CardSortOBJ[3][i]);
	for(i=0;CardSortOBJ[4][i]!="NULL";i++) // ArmorCard
		document.calcForm.A_body_card.options[i] = new Option(CARD_NAME[CardSortOBJ[4][i]][wLang],CardSortOBJ[4][i]);
	for(i=0;CardSortOBJ[5][i]!="NULL";i++) // GarmentCard
		document.calcForm.A_shoulder_card.options[i] = new Option(CARD_NAME[CardSortOBJ[5][i]][wLang],CardSortOBJ[5][i]);
	for(i=0;CardSortOBJ[6][i]!="NULL";i++) // ShoesCard
		document.calcForm.A_shoes_card.options[i] = new Option(CARD_NAME[CardSortOBJ[6][i]][wLang],CardSortOBJ[6][i]);
	for(i=0;CardSortOBJ[7][i]!="NULL";i++){ // AccessoryCards
		document.calcForm.A_acces1_card.options[i] = new Option(CARD_NAME[CardSortOBJ[7][i]][wLang],CardSortOBJ[7][i]);
		document.calcForm.A_acces2_card.options[i] = new Option(CARD_NAME[CardSortOBJ[7][i]][wLang],CardSortOBJ[7][i]);
	}
	
	for(i=0;i<CardShort.length;i++) // CardShortcuts
		document.calcForm.A_SHORTCUT_R.options[i] = new Option(CardShort[i][Lang+4],i);
	
	for(i=0;i<EquipShortCutData.length;i++) // Sets
		document.calcForm.A_cardshort.options[i] = new Option(EquipShortCutData[i][Lang+9],i);
		//document.calcForm.A_EQUIP_SET_SHORT.options[i] = new Option(EquipShortCutData[i][9 + Lang],i);
		
	n_A_Equip = new Array();
	for(i=0;i<=20;i++)
		n_A_Equip[i] = 0;
	
	n_A_card = new Array();
	for(i=0;i<=25;i++)
		n_A_card[i] = 0;

	tPlusTaiseiSyokia();
	
	// Hidden Slot enchant
	var HSEname = ["STR","AGI","VIT","INT","DEX","LUK"];
	document.calcForm.A_HSE.options[0] = new Option("(Hidden Slot Enchant, Armor)",0);
	var iHSE=1;
	for(i=0;i<=5;i++){
		for(var j=1;j<=3;j++){
			document.calcForm.A_HSE.options[iHSE] = new Option(HSEname[i] + "+"+ j,(i * 10) + j);
			iHSE++;
		}
	}
	document.calcForm.A_HSE_HEAD1.options[0] = new Option("(Hidden Slot Enchant, Headgear)",0);
	var iHSE=1;
	for(i=0;i<=5;i++){
		for(var j=1;j<=3;j++){
			document.calcForm.A_HSE_HEAD1.options[iHSE] = new Option(HSEname[i] + "+"+ j,(i * 10) + j);
			iHSE++;
		}
	}
	
	// insert temporary descriptions into item (card) descs ---------------
	for(i=0;i<ITEM_SP_TIME_OBJ.length;i++){
		if(ITEM_SP_TIME_OBJ[i][3] == 1){
			var str = "<Font size='2'><B>(Special Effect: [" + ITEM_SP_TIME_OBJ[i][2] +"] can be activated under 'Additional Effects' at the bottom of the page!)</B></Font>";
			if(ITEM_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] == 0)
				ITEM_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] = str;
				if (Lang == 1)
					ITEM_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+2] = 0;
			else
				ITEM_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] += "<BR>"+ str;
		}
	}

	for(i=0;i<ITEM_SP_TIME_OBJ.length;i++){
		if(ITEM_SP_TIME_OBJ[i][3] == 2){
			var str = "<Font size='2'><B>(Special Effect: [" + ITEM_SP_TIME_OBJ[i][2] +"] can be activated under 'Additional Effects' at the bottom of the page!)</B></Font>";
			if(CARD_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] == 0)
				CARD_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] = str;
				if (Lang == 1)
					CARD_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+2] = 0;
			else
				CARD_NAME[ITEM_SP_TIME_OBJ[i][4]][Lang*3+1] += "<BR>"+ str;
		}
	}
	// -------------------------------------------------
	
	document.calcForm.A_JOB.value = 0;
	ClickJob(0);
	
	if(Taijin==0){ // not human
	// fill labels
		for(i=1;i<=30;i++)
			myInnerHtml("nm0"+i,Word(i),0);
		for(i=36;i<=49;i++)
			myInnerHtml("nm0"+i,Word(i),0);
		for(i=52;i<=68;i++)
			myInnerHtml("nm0"+i,Word(i),0);		
		myInnerHtml("nm077",Word(77),0);
		myInnerHtml("nm078",Word(78),0);
		myInnerHtml("nm080",Word(80),0);
		myInnerHtml("nm085",Word(40),0);
		
		myInnerHtml("nm100","<B>NOTHING below this line will be saved!</B>",0);
		
		for(var i=0;i<KAKUTYOU_NAME.length;i++) // ExtendedInfoList
			document.calcForm.A_Kakutyou.options[i] = new Option(KAKUTYOU_NAME[i][1 + Lang],KAKUTYOU_NAME[i][0]);
		for(var i=0;i<SORT_NAME.length;i++) // EnemySortList
			document.calcForm.ENEMY_SORT.options[i] = new Option(SORT_NAME[i][Lang],i);
		for(var i=0;i<MAP_NAME.length;i++) // MapList
			document.calcForm.ENEMY_SORT2.options[i] = new Option(MAP_NAME[i][Lang],i);
		for(var i=0;i<ATKTIME_NAME.length;i++) // MinDelayList (Bottom)
			document.calcForm.Conf01.options[i] = new Option(ATKTIME_NAME[i][1 + Lang],ATKTIME_NAME[i][0]);
/*		document.calcForm.ID_X0.value = Word(165); // SaveCookieConf
*/		document.calcForm.ID_X1.value = Word(166); // Save as URL
		document.calcForm.ID_X2.value = Word(167); // Calc
		
		EnemySort();
	}

	StCalc();
	calc();
	LoadCookie3(); // shall be del
	LoadCookieConf();
	URLIN();	
	//document.calcForm.A_SaveName.value = Word(84);
	
	LoadDataINIT();
}

function HOJYO_SYOKIKA(){ // refresh all subTables
	//Click_PassSkillSW();	
	Click_SkillSW();
	Click_Skill3SW();
	Click_Skill4SW();
	Click_Skill5SW();
	Click_Skill6SW();
	Click_Skill7SW();
	Click_Skill8SW();
	Click_IjyouSW();
	Click_EnemyKyoukaSW();
}

function SYOKIKA_SWITCH(){ // reset passive skills
	var i;
	
	for(i=0;i<n_A_PassSkill.length;i++)
		n_A_PassSkill[i] = 0;
/*	for(i=0;i<n_A_PassSkill2.length;i++)
		n_A_PassSkill2[i] = 0;
	for(i=0;i<n_A_PassSkill3.length;i++)
		n_A_PassSkill3[i] = 0;
	for(i=0;i<n_A_PassSkill5.length;i++)
		n_A_PassSkill5[i] = 0;
	for(i=0;i<n_A_PassSkill6.length;i++)
		n_A_PassSkill6[i] = 0;
	for(i=0;i<n_A_PassSkill7.length;i++)
		n_A_PassSkill7[i] = 0;
	for(i=0;i<n_A_PassSkill8.length;i++)
		n_A_PassSkill8[i] = 0;
	for(i=0;i<n_A_IJYOU.length;i++)
		n_A_IJYOU[i] = 0;
	for(i=0;i<n_B_IJYOU.length;i++)
		n_B_IJYOU[i] = 0;
	for(i=0;i<n_B_KYOUKA.length;i++)
		n_B_KYOUKA[i] = 0;
*/
	/*
	document.calcForm.A1_SKILLSW.checked = 0;
	document.calcForm.A2_SKILLSW.checked = 0;
	document.calcForm.A3_SKILLSW.checked = 0;
	document.calcForm.A4_SKILLSW.checked = 0;
	document.calcForm.A5_SKILLSW.checked = 0;
	document.calcForm.A6_SKILLSW.checked = 0;
	document.calcForm.A7_SKILLSW.checked = 0;
	document.calcForm.A8_SKILLSW.checked = 0;
	document.calcForm.B_IJYOUSW.checked = 0;
	document.calcForm.B_KYOUKASW.checked = 0;
*/
	n_SkillSW=0;
	n_Skill1SW=0;
	n_Skill2SW=0;
	n_Skill3SW=0;
	n_Skill4SW=0;
	n_Skill5SW=0;
	n_Skill6SW=0;
	n_Skill7SW=0;
	n_Skill8SW=0;
	n_IjyouSW=0;
	n_KyoukaSW=0;

	HOJYO_SYOKIKA();
}


