//*********************************************
// LOAN共通関数
//*********************************************

//*********************************************
// com_calc_payMonth(val_kariirekin, val_rate, val_years, val_bonus)
// 概要 : 一月分の支払額の計算
// 引数 :
//	val_kariirekin : 借入金(円)
//	val_Rate	   : 金利
//	val_Years	  : 返済回数(月)
//	val_bonus	  : うちボーナス返済分(円)
//
// 戻り値:
//   返済額(小数点)
//*********************************************
function com_calc_payMonth(val_kariirekin, val_rate, val_years, val_bonus)
{
	var val_kinriMonth;		//月あたりの金利
	var val_term;			//ローン期間
	var val_ret;			//戻り値用
	var	val_bonusRate;		//ボーナス割合
	var	ret;				//戻り値保存用

	//月あたり金利計算
	val_kinriMonth = val_rate / 100 / 12;
	//ローン期間(月)計算
//	val_term = val_years * 12;
	val_term = val_years;
	//ボーナス割合計算
	val_bonusRate = val_bonus / val_kariirekin;
	//借入金を円単位に変換
//	val_kariirekin = val_kariirekin;

	//月払い額計算
	ret = (Math.pow((1 + val_kinriMonth), val_term) * 
		  (1 - val_bonusRate) * val_kinriMonth) / 
		  (Math.pow((1 + val_kinriMonth), val_term) - 1) * val_kariirekin;

	//月払い額を返却
	return ret;
}


//*********************************************
// com_calc_payBonus(val_kariirekin, val_Rate, val_Years, val_bonus)
// 概要 : ボーナス分の支払額の計算
// 引数 :
//	val_kariirekin : 借入金(円)
//	val_Rate	   : 金利
//	val_Years	  : 返済回数(年2回)
//	val_bonus	  : うちボーナス返済分(円)
//
// 戻り値:
//   返済額(小数点)
//*********************************************
function com_calc_payBonus(val_kariirekin, val_Rate, val_Years, val_bonus)
{
	var val_kinriBonus;		//ボーナスあたりの金利
	var val_term;			//ローン期間
	var val_ret;			//戻り値用
	var val_bonusRate;		//ボーナス割合
	var ret;				//戻り値保存用
	
	//ボーナス割合計算
	val_bonusRate = val_bonus / val_kariirekin;
	//ボーナスあたり金利計算
	val_kinriBonus = val_Rate / 100 / 2;
//	//ローン期間(ボーナス回数)計算
//	val_term = val_Years * 2;
	val_term = val_Years;
	//借入金を円単位に変換
//	val_kariirekin = val_kariirekin * 10000;

	//ボーナス払い額計算
	ret = Math.pow((1 + val_kinriBonus), (val_term - 1)) *
		  val_bonusRate * val_kinriBonus * (1 + val_kinriBonus * 6/6) /
		  (Math.pow((1 + val_kinriBonus), val_term) - 1) * val_kariirekin;

	//ボーナス払い額を返却
	return ret;
}

//*********************************************
// com_set_defaultHensaiPercent()
// 概要 : 返済比率上限デフォルト設定関数
// 引数 :
//	なし
//
// 戻り値:
//	なし
//*********************************************
function com_set_defaultHensaiPercent()
{
	//クッキーデータ生成
	com_put_cookie("cok_repay_under", 30, -1);

	com_put_cookie("cok_repay_over1", 400, -1);
	com_put_cookie("cok_repay_percent1", 35, -1);
	
	com_put_cookie("cok_repay_over2", 700, -1);
	com_put_cookie("cok_repay_percent2", 40, -1);
	
	//最大値保存
	com_put_cookie("cok_repay_max", 2, -1);
}


//*********************************************
// com_calc_remainBonus(val_payAllBonus, val_Rate, val_Years, val_payBonusNum, val_payBonus)
// 概要 : 支払残高(ボーナス返済分)の計算
// 引数 :
//	val_payAllBonus : ボーナス返済分(金利抜き) ex. 8000000
//	val_Rate		: 金利					 ex. 2.35
//	val_Years	   : 返済年数				 ex. 30
//	val_payBonusNum : ボーナス支払い済み回数   ex. 10
//	val_payBonus	: ボーナス支払額		   ex. 258827
//
// 戻り値:
//  ボーナス支払残高
//*********************************************
function com_calc_remainBonus(val_payAllBonus, val_Rate, val_Years, val_payBonusNum, val_payBonus)
{
	var val_payBonusRemain;
	
	//金利算出
 	val_Rate = val_Rate / 100 / 2;
	val_payBonusRemain = Math.pow((1 + val_Rate), val_payBonusNum) * val_payAllBonus;

	for(i = 1; i < (val_payBonusNum + 1); i++)
	{
		val_payBonusRemain = val_payBonusRemain - (Math.pow((1 + val_Rate), (i - 1)) * val_payBonus);
	}
	
	if (val_payBonusRemain < 0)
	{
		val_payBonusRemain = 0;
	}

	return val_payBonusRemain;
}


//*********************************************
// com_calc_remainMonth(val_payAllMonth, val_Rate, val_Years, val_payMonthNum, val_payMonth)
// 概要 : 支払残高(月返済分)の計算
// 引数 :
//	val_payAllMonth : 月返済分(金利抜き) ex. 8000000
//	val_Rate		: 金利			   ex. 2.35
//	val_Years	   : 返済年数		   ex. 30
//	val_payMonthNum : 月支払い済み回数   ex. 10
//	val_payMonth	: 月支払額		   ex. 258827
//
// 戻り値:
//  ボーナス支払残高
//*********************************************
function com_calc_remainMonth(val_payAllMonth, val_Rate, val_Years, val_payMonthNum, val_payMonth)
{
	var val_payMonthRemain;

	//金利算出
 	val_Rate = val_Rate / 100 / 12;
	val_payMonthRemain = Math.pow((1 + val_Rate), val_payMonthNum) * val_payAllMonth;
	
	for(i = 1; i < (val_payMonthNum + 1); i++)
	{
		val_payMonthRemain = val_payMonthRemain - (Math.pow((1 + val_Rate), (i - 1)) * val_payMonth);

	}
	
	if (val_payMonthRemain < 0)
	{
		val_payMonthRemain = 0;
	}

	return val_payMonthRemain;
}


//*********************************************
// com_calc_monthAll(val_PayPerMonth, val_Rate, val_Years)
// 概要 : 月返済金額からの借入額の計算
// 引数 :
//	val_payPerMonth : 月返済金額(金利含む)	 ex. 40000
//	val_rate		: 金利					 ex. 2.35
//	val_term		: 返済期間(返済回数)	   ex. 420
//
// 戻り値:
//  借入金(月)
//*********************************************
function com_calc_monthAll(val_payPerMonth, val_rate, val_term)
{
	var	val_monthAll;	//月返済借入金算出用
	var val_rateMonth;	//月返済金利

	//月返済金利計算
	val_rateMonth = val_rate / 100 / 12;

	//月返済借入金計算
	val_monthAll =
		(Math.pow((1 + val_rateMonth), val_term) - 1)
		/ (Math.pow((1 + val_rateMonth), val_term) * val_rateMonth)
		* val_payPerMonth;

	return val_monthAll;

}


//*********************************************
// com_calc_bounsAll(val_payPerbonus, val_rate, val_term)
// 概要 : ボーナス返済金額からの借入額の計算
// 引数 :
//	val_payPerBonth : ボーナス返済金額(金利含む)  ex. 80000
//	val_rate		: 金利						ex. 2.35
//	val_term		: 返済期間(返済回数)		  ex. 30
//
// 戻り値:
//  借入金(ボーナス)
//*********************************************
function com_calc_bonusAll(val_payPerBonus, val_rate, val_term)
{
	var	val_bonusAll;	//ボーナス返済借入金算出用
	var val_rateBonus;	//ボーナス返済金利

	//ボーナス返済金利計算
	val_rateBonus = val_rate / 100 / 2;

	val_bonusAll = 
		(Math.pow((1 + val_rateBonus), val_term) - 1)
		/ (Math.pow((1 + val_rateBonus), val_term) * val_rateBonus)
		* val_payPerBonus;
		
	return val_bonusAll;
	
}

