// JavaScript Document
function getInput(form) {
	//	入力された値をそれぞれ取得する。
	a_kingaku = form.b_kingaku.value;
	a_riritu = form.b_riritu.value; 
	a_bwari = form.b_bwari.value;
	a_kikan = form.b_kikan.value;
	//	入力されていない項目があるかチェックする。
		if (inputChk(form)) {
		a_kingaku *= 10000;
		if (a_kikan <= 0){
			n = 0;
		} else if (a_kikan > 0) {
			n = Math.ceil(a_kikan / 6 ) -1;
		}
		//	入力項目の範囲をチェックする。
		if (itemChk(form)) {
			answer(form);
		}
	}
}

function inputChk(form) {
	//	入力値のいずれかが未入力の時エラーメッセージの表示
	if ((a_kingaku == "" ) ||
		(a_bwari == "" ) ||
		(a_kikan =="") ||
		(a_riritu =="")) {
		alert("入力されていない項目があります。");
		return false;
	//	入力値のいずれかが入力範囲外の時エラーメッセージの表示
	} else {
		if ((isNaN(a_kingaku)) ||
			(isNaN(a_bwari)) ||
			(isNaN(a_kikan)) ||
			(isNaN(a_riritu))) {
			alert("入力範囲外の項目があります。");
			return false;
		}
	}
	return true;
}

function itemChk(form) {
	//	利用金額のチェック
	if ((a_kingaku < 100000) || (a_kingaku	>99999999)) {
		alert("利用額は10万円以上、1億円未満です。");
		return false;
	}
	//	ボーナス返済割合のチェック
		if ((a_bwari < 0) || (a_bwari > 50)) {
				alert("ボーナス返済割合は0％～50％です。");
				return false;
		}
	//	ご利用利率のチェック
		if (a_riritu == 0) {
				alert("ご利用利率を入力して下さい。");
				return false;
		}
	//	利用期間のチェック
		if ((a_kikan > 420) || (a_kikan < 6)) {
				alert("利用期間は6～420カ月です。");
				return false;
		}
	return true;
}

function answer(form){
	// 融資金額の分配（毎月とボーナス）
	yusi_bmonth = a_kingaku * a_bwari / 100;
	yusi_month = a_kingaku - yusi_bmonth;
	// 毎月とボーナス月の各支払い回数
	month = a_kikan;
	bmonth = Math.floor(a_kikan / 6);
	// 毎月の月利計算
	month_ritu_a = a_riritu / (100 * 12);
	month_ritu_b = Math.pow(1 + month_ritu_a,month);
	// 毎月の割賦金の計算
	k_month =yusi_month * month_ritu_a * month_ritu_b / (month_ritu_b -1);
	// ボーナス月の月利計算
	bmonth_ritu_a = a_riritu / (100 * 2);
	bmonth_ritu_b = Math.pow(1 + bmonth_ritu_a, bmonth);
	// ボーナス月の加算額
	k_bmonth =yusi_bmonth * bmonth_ritu_a * bmonth_ritu_b / (bmonth_ritu_b -1);
	form.b_month.value = Math.floor(k_month);
	form.b_bmonth.value = Math.floor(k_bmonth);
	// 計算後のチェックを行う。
	answerChk(form);
}

function answerChk(form) {
	// 割賦金の少数点以下は切り捨てたものを利用した。
	if (a_kikan < 12) {
		form.b_year.value = form.b_month.value * month
				+ form.b_bmonth.value * bmonth;
	}
	if (a_kikan >= 12) {
		form.b_year.value = form.b_month.value * 12
				+ form.b_bmonth.value * 2;
	}
	//	計算結果を画面に表示
	form.b_month.value = commaSet(form.b_month.value);
	form.b_bmonth.value = commaSet(form.b_bmonth.value);
	form.b_year.value = commaSet(form.b_year.value);
}

function allClr(form) {
	//	利用金額
	form.b_kingaku.value="";
	//	ボーナス返済割合
	form.b_bwari.value="";
	//	利用期間
	form.b_kikan.value="";
	//	利用利率
	form.b_riritu.value="";
	//	毎月の返済額
	form.b_month.value="";
	//	ボーナス返済額
	form.b_bmonth.value="";
	//	1年間の返済額合計
	form.b_year.value="";
}

function nullSet(n) {
		this.length = n;
		for (i=1;i<=n; i++){
				this[i] = null;
		}
}

function commaSet(n)
{
	//	nullをセットする。
	var a = new nullSet(12);
	var b = new nullSet(12);
	a[1] = n / 10;
	i = 1;
	while (a[i] != 0) {
		b[i] = a[i] - Math.floor(a[i]);
		a[i+1] = Math.floor(a[i])/10;
		i++;
	}
	colm = i-1;
	for (i = 1; i <= colm; i++) {
		 b[i] *= 10;
		 b[i] = Math.floor(b[i] + 0.1);
	}
	//	計算結果が0円
	if (a[1] == 0) {
		str = "            0";
	//	計算結果が0円以外
	} else {
		for (i = colm+1; i <= 10; i++) {
			b[i] = " ";
		}
		//	計算結果にコンマを設定する。
		switch(colm) {
			//１桁～３桁
			case 1:
			case 2:
			case 3:
				str = "          " + b[3] + b[2] + b[1];
				break;
			//４桁～６桁
			case 4:
			case 5:
			case 6:
				str = "      " + b[6] +b[5] + b[4] + "," + b[3] + b[2] + b[1];
				break;
			//７桁～９桁
			case 7:
			case 8:
			case 9:
				str = "  " + b[9] + b[8] + b[7] + "," +b[6] +b[5] + b[4] + "," + b[3] + b[2] + b[1];
				break;
			//１０桁
			defalt:
				str = b[10] + "," + b[9] + b[8] + b[7] + "," +b[6] +b[5] + b[4] + "," + b[3] + b[2] + b[1];
				break;
		}
	}
	return str;
}