function SUM () {
var JOB_SUM = 0;
	for ( var i = 0; i < jobNUM; i++ ) {
		JOB_SUM += eval(SSIM.elements[SKILL_NAME[i] + '_LV'].value);
	}
	if ( JOB_SUM > maxSP ) {			//超過した場合
		if ( maxLV != 200 ) {
			if ( JOB_SUM % 3 == 0) {
				SSIM.formLV.value = (JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 2;
			} else if (JOB_SUM % 3 == 1) {
				SSIM.formLV.value = Math.floor(JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 1;
			} else {
				SSIM.formLV.value = Math.floor(JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 0;
			}
			SSIM.formATTENTION.value = "超過!!";
			SSIM.formTOPIC.value = "余分に配布しているSP";
			SSIM.formSP.value = JOB_SUM - maxSP;
		} else {
			SSIM.formATTENTION.value = "超過!!";
			SSIM.formTOPIC.value = "配布不可能";
			SSIM.formLV.value = 200;
		}
	} else {					//していない場合
		if (minSP != 3) {
			if ( JOB_SUM % 3 == 0) {
				SSIM.formLV.value = (JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 1;
			} else if (JOB_SUM % 3 == 1) {
				SSIM.formLV.value = Math.floor(JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 0;
			} else {
				SSIM.formLV.value = Math.ceil(JOB_SUM / 3) + minLV;
				SSIM.formSP.value = JOB_SUM % 3;
			}
		} else {
			if ( JOB_SUM == 0 ) {
				SSIM.formLV.value = minLV;
				SSIM.formSP.value = 3;
			} else if (JOB_SUM % 3 == 0){
				SSIM.formLV.value = (JOB_SUM / 3) + minLV - 1;
				SSIM.formSP.value = 0;
			} else if (JOB_SUM % 3 == 1) {
				SSIM.formLV.value = Math.floor(JOB_SUM / 3) + minLV;
				SSIM.formSP.value = 2;
			} else {
				SSIM.formLV.value = Math.ceil(JOB_SUM / 3) + minLV - 1;
				SSIM.formSP.value = 1;
			}
		}
			SSIM.formATTENTION.value = "";
			SSIM.formTOPIC.value = "残りSkill Point";
	}
}


function SUP (NAME , CON ) {		//各SKILLの上ボタン
COUNT = 0;
	if ( window.event.ctrlKey ) {
		var Reverse = 30;
	} else if ( window.event.shiftKey ) {
		var Reverse = 10;
	} else if ( window.event.altKey ) {
		var Reverse = 3;
	} else {
		var Reverse = 1;
	}
		for ( var i = 0; i < Reverse; i++ ) {
			if ( SSIM.elements[SKILL_SA[CON] + '_LV'].value >= SKILL_SQ[CON] || SKILL_SQ[CON] == 0) {
				if (SSIM.elements[SKILL_NAME[CON] + '_LV'].value < SKILL_MAX[CON]) {
					SSIM.elements[NAME + '_LV'].value++;
					COUNT++;
				}
			}
		}
	if ( COUNT != 0 ) {
		Gray (NAME,CON);
		SUM ();
	}
}


function SDOWN (NAME , CON) {		//各SKILLの下ボタン
COUNT = 0;
	if ( window.event.ctrlKey ) {
		var Reverse = 30;
	} else if ( window.event.shiftKey ) {
		var Reverse = 10;
	} else if ( window.event.altKey ) {
		var Reverse = 3;
	} else {
		var Reverse = 1;
	}
		for ( var i = 0; i < Reverse; i++ ) {
			if ( SSIM.elements[NAME + '_LV'].value > 0 ) {		//SKILLが0以上の時
				SSIM.elements[NAME + '_LV'].value--;
				COUNT++;
			}
		}
	if ( SKILL_CON1[CON] != 0) {
		if ( SSIM.elements[SKILL_A1[CON] + '_LV'].value >= 1 && SSIM.elements[SKILL_NAME[CON] + '_LV'].value < SKILL_CON1[CON]) {
			SSIM.formSP.value = eval(SSIM.formSP.value) + eval(SSIM.elements[SKILL_A1[CON] + '_LV'].value);
			SSIM.elements[SKILL_A1[CON] + '_LV'].value = 0;
		}

		if ( SKILL_CON2[CON] != 0) {
			if ( SSIM.elements[SKILL_A2[CON] + '_LV'].value >= 1 && SSIM.elements[SKILL_NAME[CON] + '_LV'].value < SKILL_CON2[CON]) {
				SSIM.formSP.value = eval(SSIM.formSP.value) + eval(SSIM.elements[SKILL_A2[CON] + '_LV'].value);
				SSIM.elements[SKILL_A2[CON] + '_LV'].value = 0;
			}
		}
	}
	if ( COUNT != 0 ) {
		Gray (NAME,CON);
		SUM ();
	}
}

function BALL ( NAME , CON , NUM ) {	//玉の処理
COUNT = 0;
	if ( SSIM.elements[NAME + '_LV'].value == NUM || SSIM.elements[SKILL_SA[CON] + '_LV'].value < SKILL_SQ[CON] ) {
		return	//玉に変化がない、または条件を満たしていない場合はキャンセル
	} else {
		COUNT = 1;
		SSIM.elements[NAME + '_LV'].value = 0;			//現在のスキルレベルを一度初期化
			for ( var i = 0; i < NUM; i++ ) {
				SSIM.elements[NAME + '_LV'].value++;	//押された玉の番号だけループ
			}

		if ( SKILL_CON1[CON] != 0) {
			if ( SSIM.elements[SKILL_A1[CON] + '_LV'].value >= 1 && SSIM.elements[SKILL_NAME[CON] + '_LV'].value < SKILL_CON1[CON]) {
				SSIM.formSP.value = eval(SSIM.formSP.value) + eval(SSIM.elements[SKILL_A1[CON] + '_LV'].value);
				SSIM.elements[SKILL_A1[CON] + '_LV'].value = 0;
			}

			if ( SKILL_CON2[CON] != 0) {
				if ( SSIM.elements[SKILL_A2[CON] + '_LV'].value >= 1 && SSIM.elements[SKILL_NAME[CON] + '_LV'].value < SKILL_CON2[CON]) {
					SSIM.formSP.value = eval(SSIM.formSP.value) + eval(SSIM.elements[SKILL_A2[CON] + '_LV'].value);
					SSIM.elements[SKILL_A2[CON] + '_LV'].value = 0;
				}
			}
		}

		if ( COUNT != 0 ) {
			Gray (NAME,CON);
			SUM ();
		}
	}
}

function Gray ( NAME, CON ) {
	if (NAME != "START") {
		if ( SSIM.elements[SKILL_NAME[CON] + '_LV'].value >= SKILL_MAX[CON] ) {		//MAXの時は上が黒
			document.images[NAME + '_UP'].style.filter="gray()";
			document.images[NAME + '_DOWN'].style.filter="";
		} else if (SSIM.elements[SKILL_NAME[CON] + '_LV'].value < 1 ) {			//0のお時は下が黒
			document.images[NAME + '_UP'].style.filter="";
			document.images[NAME + '_DOWN'].style.filter="gray()";
		} else {
			document.images[NAME + '_UP'].style.filter="";				//そうでない上を場合クリア
			document.images[NAME + '_DOWN'].style.filter="";			//そうでない下を場合クリア
		}

		if ( SKILL_CON1[CON] != 0) {							//もしも条件がある場合。
			if ( SSIM.elements[SKILL_NAME[CON] + '_LV'].value >= SKILL_CON1[CON]) {
				if ( SSIM.elements[SKILL_A1[CON] + '_LV'].value == 0) {
					document.images[SKILL_A1[CON] + '_UP'].style.filter="";		//条件先の上をクリア
					document.images[SKILL_A1[CON] + '_ICON'].style.filter="";	//条件先のアイコンをクリア
				}
			} else {
					document.images[SKILL_A1[CON] + '_UP'].style.filter="gray()";	//条件先の上を黒
					document.images[SKILL_A1[CON] + '_DOWN'].style.filter="gray()";	//条件先の上を黒
					document.images[SKILL_A1[CON] + '_ICON'].style.filter="gray()";	//条件先のアイコンを黒
						for (i = 1; i <= SKILL_A1_MAX[CON]; i++) {	//玉の処理
								document.images[SKILL_A1[CON] + i].style.filter="gray()";
						}
			}

			if ( SKILL_CON2[CON] != 0) {
				if ( SSIM.elements[SKILL_NAME[CON] + '_LV'].value >= SKILL_CON2[CON]) {
					if ( SSIM.elements[SKILL_A2[CON] + '_LV'].value == 0) {
						document.images[SKILL_A2[CON] + '_UP'].style.filter="";		//条件先の上をクリア
						document.images[SKILL_A2[CON] + '_ICON'].style.filter="";	//条件先のアイコンをクリア
					}
				} else {
						document.images[SKILL_A2[CON] + '_UP'].style.filter="gray()";	//条件先の上を黒
						document.images[SKILL_A2[CON] + '_DOWN'].style.filter="gray()";	//条件先の上を黒
						document.images[SKILL_A2[CON] + '_ICON'].style.filter="gray()";	//条件先のアイコンを黒
							for (i = 1; i <= SKILL_A2_MAX[CON]; i++) {	//玉の処理
									document.images[SKILL_A2[CON] + i].style.filter="gray()";
							}
				}
				if ( SKILL_NAME[CON] == "COMBO_ATTACK" ) {					//例外条件（ナイト）
					if ( SSIM.elements[SKILL_NAME[CON] + '_LV'].value >= SKILL_CON2[CON]) {
						if ( SSIM.elements['COMA_SWORD_LV'].value == 0 && SSIM.elements['COMA_AXE_LV'].value == 0) {
							document.images['COMA_SWORD_UP'].style.filter="";	//条件先の上をクリア
							document.images['COMA_SWORD_ICON'].style.filter="";	//条件先のアイコンをクリア
							document.images['COMA_AXE_UP'].style.filter="";		//条件先の上をクリア
							document.images['COMA_AXE_ICON'].style.filter="";	//条件先のアイコンをクリア
						}
					} else {
							SSIM.elements['COMA_SWORD_LV'].value = 0;
							document.images['COMA_SWORD_UP'].style.filter="gray()";		//条件先の上を黒
							document.images['COMA_SWORD_DOWN'].style.filter="gray()";	//条件先の上を黒
							document.images['COMA_SWORD_ICON'].style.filter="gray()";	//条件先のアイコンを黒
								for (i = 1; i <= 30; i++) {	//玉の処理
										document.images['COMA_SWORD' + i].style.filter="gray()";
								}
							SSIM.elements['COMA_AXE_LV'].value = 0;
							document.images['COMA_AXE_UP'].style.filter="gray()";		//条件先の上を黒
							document.images['COMA_AXE_DOWN'].style.filter="gray()";		//条件先の上を黒
							document.images['COMA_AXE_ICON'].style.filter="gray()";		//条件先のアイコンを黒
								for (i = 1; i <= 30; i++) {	//玉の処理
										document.images['COMA_AXE' + i].style.filter="gray()";
								}
					}
				}
			}
		}
		for (i = 1; i <= SKILL_MAX[CON]; i++) {	//玉の処理
				document.images[NAME + i].style.filter="gray()";
		}
		for (i = 1; i <= eval(SSIM.elements[NAME + '_LV'].value); i++) {
			document.images[NAME + i].style.filter="";
		}
		SSIM.elements[NAME + '_TEXT'].value = SKILL_TEXT[NAME][SSIM.elements[NAME + "_LV"].value];
		TEXT_OUT();
	} else {
		for (i = 0; i < jobNUM; i++ ) {
			SSIM.elements[SKILL_NAME[i] + '_LV'].value = 0;
		}
		SSIM.formSP.value = minSP;
	}
}

var now_window = "JOB_SIMULATOR";
function JOB_SLIDE ( BTN ) {
	if ( now_window == BTN ) {
		return
	} else {
		if (typeof document.body.style.maxHeight != "undefined") { 
			if ( now_window == "JOB_SIMULATOR") {
				document.getElementById('JOB_SIMULATOR').style.display='none';
				document.getElementById('TEXT').style.display='block';
				now_window = "TEXT";
			} else {
				document.getElementById('TEXT').style.display='none';
				document.getElementById('JOB_SIMULATOR').style.display='block';
				now_window = "JOB_SIMULATOR";
			}
		} else { 
			if ( now_window == "JOB_SIMULATOR") {
				SlideEffect ('JOB_SIMULATOR','close');
				setTimeout("document.getElementById('JOB_SIMULATOR').style.display='none';", 380);
				setTimeout("SlideEffect('TEXT','open');", 400);
				setTimeout("document.getElementById('TEXT').style.display='block';", 600);
				now_window = "TEXT";
			} else {
				SlideEffect ('TEXT','close');
				setTimeout("document.getElementById('TEXT').style.display='none';", 380);
				setTimeout("SlideEffect('JOB_SIMULATOR','open');", 400);
				setTimeout("document.getElementById('JOB_SIMULATOR').style.display='block';", 600);
				now_window = "JOB_SIMULATOR";
			}
		} 
	}
}

function SlideEffect ( win_job , win_do ) {
	if ( win_job == "JOB_SIMULATOR" ) {
			Spry.Effect.Slide(win_job, {
				duration: 400,
				from: "100%", to: "0%",
				horizontal : false,
				toggle: true
			});
	} else {
		if ( win_do == "open" ) {
			Spry.Effect.Slide(win_job, {
				duration: 400,
				from: "0%", to: "100%",
				horizontal : false,
				toggle: false
			});
		} else {
			Spry.Effect.Slide(win_job, {
				duration: 400,
				from: "100%", to: "0%",
				horizontal : false,
				toggle: false
			});
		}
	}
}
