//**********************************************
// シミュレーション計算
//**********************************************
function calc( theform )
{
	var base_upper = 10000;		// お借入金額上限
	var bonus_rate_upper = 50;	// お借入金額に対するボーナス返済額の割合上限
	var year_upper = 35;		// 返済期間上限

	// 借入額チェック
	if( theform.base.value == "" )
	{				// 借入額が入力されているかチェック
		alert( "お借入金額を入力して下さい" );
		return;
	}
	else if( isNaN( theform.base.value ) )
	{				// 借入額に数値が入力されているかチェック
		alert( "お借入金額は数値を入力して下さい" );
		return;
	}
	else if( ( theform.base.value < 0 ) || ( theform.base.value > base_upper ) )
	{
		alert("お借入金額は1〜" + base_upper + "（単位：万円）で入力して下さい");
		return;
	}

	// ボーナスチェック
	if( theform.bonus.value == "" )
	{				// ボーナス支払が入力されているかチェック
		alert( "ボーナス時の元金を入力して下さい" );
		return;
	}
	else if( isNaN( theform.bonus.value ) )
	{				// ボーナス支払に数値が入力されているかチェック
		alert( "ボーナス時の元金は数値を入力して下さい" );
		return;
	}
	else if( ( theform.bonus.value < 0 ) || ( theform.bonus.value > ( theform.base.value * bonus_rate_upper / 100 ) ) )
	{
		alert("ボーナス時の元金はお借入金額の0〜50%以内で入力して下さい");
		return;
	}

	// 金利チェック
	if( theform.rate.value == "" )
	{				// 適用金利が入力されているかチェック
		alert( "適用金利を入力して下さい" );
		return;
	}
	else if( isNaN( theform.rate.value ) )
	{				// 適用金利に数値が入力されているかチェック
		alert( "適用金利は数値を入力して下さい" );
		return;
	}

	// 適用金利チェック
	if( theform.rate.value == "" )
	{				// 適用金利が入力されているかチェック
		alert( "適用金利を入力して下さい" );
		return;
	}
	else if( isNaN( theform.rate.value ) )
	{				// 適用金利に数値が入力されているかチェック
		alert( "適用金利は数値を入力して下さい" );
		return;
	}

	// 返済期間（年）
	if( theform.year.value == "" )
	{				// 返済期間が入力されているかチェック
		alert( "返済期間を入力して下さい" );
		return;
	}
	else if( isNaN( theform.year.value ) )
	{				// 返済期間に数値が入力されているかチェック
		alert( "返済期間は数値を入力して下さい" );
		return;
	}
	else if( ( theform.year.value <= 0 ) || ( theform.year.value > year_upper ) )
	{
		alert( "返済期間は1〜" + year_upper +  "年以内で入力して下さい" );
		return;
	}

	// 借入額
	var base = theform.base.value * 10000;

	// ボーナス支払
	var bonus = theform.bonus.value * 10000;

	// 金利
	var rate = theform.rate.value * 0.01;

	// 返済期間（年）
	var yyy = theform.year.value;

	// 返済期間（月単位）
	var term = (yyy*12);

	//返済期間-ボーナス用（月単位）
	var b_term = (yyy*2);

	// 月々の返済額
	var wk1 = base - bonus;
	var wk2 = rate / 12;
	var wk3 = Math.pow( 1 + wk2, 0 - term );
	var m_payment = ( wk1 * wk2 / ( 1 - wk3 ));
	theform.m_payment.value = comma( Math.round( m_payment ) );

	// ボーナス加算額
	var wk4 = bonus;
	var wk5 = rate / 2;
	var wk6 = Math.pow( 1 + wk5, b_term );
	var b_payment = ( ( wk4 * wk5 * wk6 ) / ( wk6 - 1 ) );
	theform.b_payment.value = comma( Math.round( m_payment + b_payment ) );

	// 年間支払額
	var y_payment = (m_payment*12)+(b_payment*2);
	theform.y_payment.value = comma( Math.round( y_payment ) );

	// 総支払額
	var t_payment = y_payment * yyy;
	theform.t_payment.value = comma( Math.round( t_payment ) );

	// 利息分
	var interest = t_payment - base;
	theform.interest.value = comma( Math.round( interest ) );
}

//**********************************************
// 桁合わせ
//**********************************************
function comma(num)
{
// 2006.05.08 IE5対応に変更
//	return num.toString().replace(/([\d]+?)(?=(?:\d{3})+$)/g, function (t) { return t+","; });
	num = String( num );
	while( num != ( num = num.replace( /^(\d+)(\d{3})/ , "$1,$2" ) ) ){};
	return num;
}

