//*********************************************
// ローン計算(エンドユーザ版)
//   概要:フォームの値のチェック処理および
//　　　　ローンの計算を行う
//*********************************************

//*********************************************
// Ulng_check_init()
// 概要 : フォーム出力値初期化
//*********************************************
function Ulng_check_init()
{
	com_print_html("id_year", "--年");
	com_print_html("id_payMonth", "---,---円");
	com_print_html("id_payBonus", "---,---円");
	com_print_html("id_payYear2", "-,---,---,---円");
	com_print_html("id_payAll2", "-,---,---,---円");
	com_print_html("id_hensai2", "--%");
	com_print_html("id_kariirekinFull", "--,---万円");
	com_print_html("id_errmsg", "　");
}


//*********************************************
// Ulng_calc_loan(form)
// 概要 : 自動計算
// 引数 :
//  form : (IN)フォーム入力値
//	val_errflg	: (IN)アラートフラグ
//					0 アラート表示
//					1 アラート表示なし
//					2 エラーテキスト出力
//
// 戻り値:
//  なし
//*********************************************
function Ulng_calc_loan(form, val_errflg)
{
	var	val_inpRate;	//金利入力値取得用
	var	val_inpYear;	//返済年数入力値取得用
	var	val_inpBonus;	//ボーナス返済金額計入力値取得用
	var	val_inpNensyu;	//年収入力値取得用
	var	val_kariirekin;	//借入金算出用
	var	val_monthAll;	//月返済金額計計算用
	var	val_payMonth;	//月返済金額計算用
	var	val_payBonus;	//ボーナス返済金額計算用
	var	val_payYear2;	//年間返済金額計算用
	var	val_payAll;		//総返済金額計算用
	var	val_hensai;		//返済比率計算用

	//チェック処理がエラーであった場合、処理を中断する。
	if(Ulng_check_errorAll(form, val_errflg) == false)
	{
		return;
	}

	//フォームより計算に必要な値を取得
	val_inpRate = form.inp_rate.value;
	val_inpYear = form.inp_years.value;
	val_kariirekin = form.inp_kariirekin.value;

	val_inpBonus = Common_txtboxNullCheck(form, form.inp_priceBonus.value);
	val_inpNensyu = Common_txtboxNullCheck(form, form.inp_nennsyuu.value);

	//借入金の計算
//	val_kariirekin = com_str2val(form.inp_bukkenPrice.value) - com_str2val(form.inp_jikoshikin.value);

	//月返済額計の算出
	val_monthAll = val_kariirekin - val_inpBonus;

	//月あたり返済額の計算
	val_payMonth = com_calc_payMonth(val_kariirekin * 10000, val_inpRate, val_inpYear * 12, val_inpBonus * 10000);
	if(val_payMonth == -1)
	{
		return;
	}

	//ボーナス返済分の計算
	val_payBonus = com_calc_payBonus(val_kariirekin * 10000, val_inpRate, val_inpYear * 2, val_inpBonus * 10000);
	if(val_payBonus == -1)
	{
		return;
	}

	//一年の支払額の計算
	val_payYear2  = Math.round(val_payMonth) * 12 + Math.round(val_payBonus) * 2;

	//総支払額の計算
//	val_payAll	 = val_payYear2 * val_inpYear;
	val_payAll	 = (((val_payMonth * 12) + (val_payBonus * 2)) * val_inpYear);

	//返済比率の計算
	val_hensai	 = Math.floor(val_payYear2 / (val_inpNensyu * 10000) * 100);

	com_print_html("id_year", val_inpYear + "年");
	com_print_html("id_payMonth", com_add_kanma(com_val2str(Math.round(val_payMonth))) + "円");
	com_print_html("id_payBonus", com_add_kanma(com_val2str(Math.round(val_payBonus))) + "円");
	com_print_html("id_payYear2", com_add_kanma(com_val2str(Math.round(val_payYear2))) + "円");
	com_print_html("id_payAll2", com_add_kanma(com_val2str(Math.round(val_payAll))) + "円");
	com_print_html("id_kariirekinFull", com_add_kanma(com_val2str(val_kariirekin)) + "万円");

	if (val_inpNensyu < 1)
	{
		com_print_html("id_hensai2", "--%");
		com_print_html("id_errmsg", "現在の年収に入力なさると、返済比率を試算します。");
	}
	else
	{
		com_print_html("id_hensai2", com_add_kanma(val_hensai) + "%");
	}
}

//*********************************************
// Ulng_check_errorAll(form)
// 概要 : フォームエラー全体チェック処理
//        (メッセージ出力なし版)
// 引数 :
//  form : (IN)フォーム入力値
//	val_errflg	: (IN)アラートフラグ
//					0 アラート表示
//					1 アラート表示なし
//					2 エラーテキスト出力
//
// 戻り値:
//  正常終了   : TRUE
//  異常終了   : FALSE
//*********************************************
function Ulng_check_errorAll(form, val_errflg)
{

	//借入金チェック
	if(com_check_valueObj(form.inp_kariirekin, 31, 7, "借入金", val_errflg) == false)
	{
		return false;
	}

	//値チェック(借入金==0)
	if(form.inp_kariirekin.value == 0)
	{
		com_out_alert(form.inp_kariirekin, "借入金：0だと試算できません。1[万円]以上の数を入力してください。", val_errflg);
		return false;
	}

	//値チェック(ボーナス借入額)
	if(com_check_valueObj(form.inp_priceBonus, 30, 7, "ボーナス返済分", val_errflg) == false)
	{
		return false;
	}

	//ボーナスチェック
	if(com_str2val(form.inp_kariirekin) < com_str2val(form.inp_priceBonus.value))
	{
		com_out_alert(form.inp_priceBonus, "ボーナス返済分が借入金を上回っています", val_errflg);
		return false;
	}

	//借入金 < ボーナスの場合の処理
	if(parseFloat(form.inp_kariirekin.value) < parseFloat(form.inp_priceBonus.value))
	{
		Ulng_check_init();
		return false;
	}

	//値チェック(金利)
	if(com_check_valueObj(form.inp_rate, 15, 6, "金利", val_errflg) == false)
	{
		return false;
	}
	//範囲チェック(金利)
	if(com_check_valueRange(form.inp_rate, 0.001, 50, "金利", val_errflg) == false)
	{
		return false;
	}
	//値チェック(返済年数)
	if(com_check_valueObj(form.inp_years, 15, 2, "返済年数", val_errflg) == false)
	{
		return false;
	}
	//範囲チェック(返済年数)
	if(com_check_valueRange(form.inp_years, 1, 100, "返済年数", val_errflg) == false)
	{
		return false;
	}

	//値チェック(年収)
	if(com_check_valueObj(form.inp_nennsyuu, 30, 7, "年収", val_errflg) == false)
	{
		return false;
	}

	return true;
}


//*********************************************
// Ulng_check_error(form)
// 概要 : フォームエラー個別チェック処理
//
// 引数 :
//  obj_form 		: (IN)フォーム入力値(全体)
//	obj_input		: (IN)チェックする個別データ
//	val_item  		: (IN)内部でcom_check_valueObjに渡す値
//	val_keta 		: (IN)ケタチェックの値
//	str_errflg		: (IN)エラーテキスト出力
//
//	val_errflg		 : (IN)アラートフラグ
//						0 アラート表示
//						1 アラート表示なし
//						2 エラーテキスト出力
//
// 戻り値:
//  正常終了   : TRUE
//  異常終了   : FALSE
//*********************************************
function Ulng_check_error(obj_form, obj_input, val_item, val_keta, str_errflg, val_errflg)
{
	//エラーメッセージを初期化
	com_print_html("id_errmsg", "　");

	//出力部が初期化されていない場合
	if(com_get_html("id_year") != "--年")
	{
		Ulng_check_init()
	}

	//個別項目チェック
	if(com_check_valueObj(obj_input, val_item, val_keta, str_errflg, val_errflg) == false)
	{
		return false;
	}

	//返済金利が0%の場合
	if ((obj_input.name == "inp_rate") && (parseFloat(obj_input.value) == 0))
	{
		com_out_alert(obj_input, "返済金利：0では試算できません。0.001～50％の数値を入力してください。",val_errflg);
		return false;
	}

	//返済金利が50%超の場合
	if ((obj_input.name == "inp_rate") && (parseFloat(obj_input.value) > 50))
	{
		com_out_alert(obj_input, "返済金利：0.001～50％の数値を入力してください。", val_errflg);
		return false;
	}

	//返済年数が0年の場合
	if((obj_input.name == "inp_years") && (parseFloat(obj_input.value) == 0))
	{
		com_out_alert(obj_input, "返済年数：0では試算できません。1～99年の数値を入力してください。",val_errflg);
		return false;
	}

	//チェックOKの場合、計算ルーチンをコールする。
	Ulng_calc_loan(obj_form, val_errflg);

}

//*********************************************
// Ulng_view_shokan(obj_form, val_idNum)
// 概要 : 償還表コール処理
// 引数 :
//  obj_form : (IN)フォーム入力値
//
// 戻り値:
//  なし
//*********************************************
function Ulng_view_shokan(obj_form)
{
	var	i;				//カウンタ用
	var str_filename;	//ファイル名取得用
	var str_CorB;		//C版B版判定用
	var val_payedAll;	//総額取得用

	//出力部が初期化されていた場合
	if(com_get_html("id_year") == "--年")
	{
		return;
	}

	//総額を取得
	val_payedAll = com_get_htmlNum("id_payAll2", "　");

	
	str_filename = com_get_fileName(location.href);
	if(str_filename.charAt(0) == 'C')
	{
		str_CorB = 'C';
	}
	else if(str_filename.charAt(0) == 'B')
	{
		str_CorB = 'B2';
	}
	else
	{
		str_CorB = 'B';
	}

	location.href="../php/loan/shoukanhyou.php?" +
	              "inp_kariirekin=" + (obj_form.inp_kariirekin.value * 10000) +
				  "&inp_bonus=" + (obj_form.inp_priceBonus.value * 10000) + 
				  "&inp_rate10=" + obj_form.inp_rate.value +
				  "&inp_splitYear=-1" +
				  "&inp_term=" + obj_form.inp_years.value +
				  "&inp_payedAll=" + val_payedAll + 
				  "&inp_CorB=" + str_CorB + 
				  "&inp_printYear=0000&inp_printMonth=1" + 
				  "&inp_calc_start=0&inp_calc_end=5&inp_page=5&inp_UorP=0&inp_mode=0";
}


