function loanSimulation(){

	var fm = document.form1;

	//加盟店契約で定めた初回以降支払金額
	var defineMoney = 3000;

	//加盟店契約で定めた最終支払金額
	var defineLastMoney = 3000;

	//実質金利
	var rate = 4.5;

	//所要資金（バイク価格）
	var expense = makerPrice;

	//支払回数
	var intVal1 = fm.select1.options[fm.select1.selectedIndex].value;
	//ボーナス加算月
	var intVal2 = fm.select2.options[fm.select2.selectedIndex].value;
	//ボーナス加算希望金額
	if( fm.text1.disabled == true ){
		var intVal3 = "0";
	}else{
		var intVal3 = fm.text1.value;
	}

	//-------------	2-1	------------------------------------------------------------------
	var intVal1Remainder = intVal1 % 6;
	var err_msg = '';
	var valBonusMonth = new Array();

	if( intVal1 == '' ){
		err_msg += "分割支払い回数を選択してください\n";
	}else if( intVal1 < 6 || intVal1 > 150 ){
		err_msg += "分割支払い回数を正しく選択してください\n";
	}else if( intVal1Remainder != 0 ){
		err_msg += "分割支払い回数を正しく選択してください\n";
	}

	if( intVal2 == '' ){
		err_msg += "初回ボーナス加算月を選択してください\n";
	}
	/*
	else if( intVal2 < 0 || intVal2 > 12 ){
		err_msg += "初回ボーナス加算月を正しく選択してください\n";
	}
	*/
	else if( intVal2 == "6_12" || intVal2 == "7_1" || intVal2 == "8_2" )
	{
		// update sj ボーナス加算月が選択されている
		if ( intVal3 < 3 )
		{
			err_msg += "ボーナス加算希望金額は3000円以上を入力してください\n";
		}
	}

 	var regex = /[^0-9]/;
	if( intVal2 != 0 && intVal3 == "" ){
		err_msg += "ボーナス加算希望金額を入力してください\n";
	}else if( intVal3.match(regex) ){
		err_msg += "ボーナス加算希望金額は整数を入力してください\n";
	}

	if( err_msg != '' ){
		alert(err_msg);
		return true;
	}

	//支払回数
	intVal1 = parseInt(intVal1);
	//ボーナス加算月
	//intVal2 = parseInt(intVal2);
	//val50 ボーナス支払い回数
	if (intVal2 == 0 || intVal2 == "")
	{
		val50 = 0;
	}
	else
	{
		val50 = 2;
		valBonusMonth = intVal2.split("_");
	}
	//ボーナス加算金額
	intVal3 = parseInt(intVal3) * 1000;

	//-------------	2-1	------------------------------------------------------------------


	//［合算月利］
	var sumodd = Math.floor( ( rate / 12 ) * 100000 ) / 100000;

	//［計算月利］
	var val1 = sumodd / 100;

	//-------------	2-2	------------------------------------------------------------------

	var nowdate = new Date();

	//初回支払月
	var val2 = nowdate.getMonth() + 2;
	if( val2 == 13 ){
		val2 = 1;
	}

	//ボーナス初回支払い月
	if (valBonusMonth.length > 1)
	{
		if (valBonusMonth[0] < val2)
		{
			valBonusFirstPay = parseInt(valBonusMonth[1]);
		}
		else
		{
			valBonusFirstPay = parseInt(valBonusMonth[0]);
		}
	}

	//［ボーナス加算希望金額］に入力がない場合、当項番でセットする各項目をゼロとして2-7へ進む。
	if( intVal3 != "" ){

		//［初回支払年月］=システム日付の翌月
		var val3 = val2;

		//［ボーナス据置月数
		var val4 = 1;
		
		//［ボーナス初回加算金額
		var val5 = intVal3;

		//ボーナス加算月の方が大きい場合
		if( val3 <= valBonusFirstPay ){
			val4 = val4 + ( valBonusFirstPay - val3 );
		}else{
			val4 = val4 + 12 - val3 + valBonusFirstPay;
		}

		//据置率
		var val6 = Math.floor( ( val4 / 6 ) * 1000000000 ) / 1000000000;

		//ボーナス加算回数
		var val7 = intVal1 / 6;

		var val8 = Math.floor( ( val1 * 6 ) * 100000000000 ) / 100000000000;
		var val9 = val8 + 1;

		var val10 = val9;
		for(var i = 1; i < val7; i++ ){
			val10 = Math.floor( ( val10 * val9 ) * 100000000000 ) / 100000000000;
		}

		var val11 = Math.floor( ( val8 * (1 + val8 * val6) ) * 100000000000 ) / 100000000000;
		var val12 = val10 - 1;
		var val13 = Math.floor( ( val12 * val9 ) * 100000000000 ) / 100000000000;
		var val14 = Math.floor( ( val11 * val10 ) * 100000000000 ) / 100000000000;
		var val15 = Math.floor( ( val13 / val14 ) * 100000000000 ) / 100000000000;
		var val16 = Math.floor( intVal3 * val15 );

		//ボーナス払元本
		var val17 = val16 + 1;
		
		//［ボーナス払元本］/［所要資金］>0.5のとき、エラーとする。
		if( ( val17 / expense ) > 0.5 ){
			alert('ボーナス返済比率は、クレジット元本に対して50％を超えることはできません。\nボーナス加算希望金額を減らしてください。');
			return true;
		}

	}else{
		var val3 = 0;
		var val4 = 0;
		var val5 = 0;
		var val6 = 0;
		var val7 = 0;
		var val17 = 0;
	}

	//-------------	2-3	------------------------------------------------------------------

	//毎月払元本
	var val18 = expense - val17;

	//-------------	2-4	------------------------------------------------------------------

	//
	var val19 = 1 + val1;
	
	//
	var val20 = val19;
	for(var i=1;i<intVal1;i++ ){
		val20 = Math.floor( ( val20 * val19 ) * 100000000000 ) / 100000000000;
	}
	
	//
	var val21 = Math.floor( ( val20 * val1 ) * 100000000000 ) / 100000000000;
	
	//
	var val22 = val20 - 1;
	
	//
	var val23 = Math.floor( ( val21 / val22 ) * 100000000000 ) / 100000000000;

	//
	var val24 = Math.floor( val18 * val23 );


	//
	if( val24 < defineMoney ){
		alert('計算中にエラーが発生致しました。お手数ですが、再度入力し直して下さい。');
		return true;
	}

	//-------------	2-5	------------------------------------------------------------------


	//毎月払元本残
	var val25 = val18;

	//毎月払月利合計
	var val26 = 0;


	for(i=0;i<intVal1;i++){
		//毎月払月利
		var val27 = Math.floor( val25 * val1 );

		//［毎月払月利合計
		val26 = val26 + val27;

		//［毎月払元本残
		val25 = val25 + val27 - val24;
	}

	//［最終回支払金額
	var val28 = val24 + val25;

	//［最終回支払金額］が加盟店契約で定めた金額に満たないとき、エラーとする。
	if( val28 < defineLastMoney ){
		alert('計算中にエラーが発生致しました。お手数ですが、再度入力し直して下さい。');
		return true;
	}

	//-------------	2-6	------------------------------------------------------------------

	//［ボーナス加算希望金額］に入力がない場合、当項番でセットする各項目をゼロとして2-7へ進む。
	if( intVal3 != "" ){

		//［初回ボーナス月利
		var val29 = Math.floor( val17 * val1 * val4 );
		
		//［ボーナス払元本残
		var val30 = val17 + val29 - val5;

		//［ボーナス払月利合計
		var val31 = val29;

		var i = val7;
		while( i > 1 ){

			val32 = Math.floor( val30 * val1 * 6 );

			val31 = val31 + val32;

			val30 = val30 + val32 - val5;

			i--;
		}

		var val34 = ( val17 + val31 ) - (val5 * ( val7 - 1 ));

	}else{

		var val29 = 0;
		var val30 = 0;
		var val31 = 0;
		var val32 = 0;
		var val33 = 0;
		var val34 = 0;

	}

	//-------------	2-7	------------------------------------------------------------------

	//［分割払手数料
	var val35 = val26 + val31;

	//［分割支払金合計
	var val36 = expense + val35;


	//-------------	3-1	------------------------------------------------------------------
	
	var buff = '<table width="100%">';
	buff += '<tr>';
	buff += '<th>■現金販売価格</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(expense) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■頭金</th>';
	buff += '<td><span class="hdj_bold">0</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■支払回数</th>';
	buff += '<td><span class="hdj_bold">' + intVal1 + ' 回</span></td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■実質年率</th>';
	buff += '<td><span class="hdj_bold">' + rate + ' %</span></td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■支払期間</th>';
	buff += '<td><span class="hdj_bold">' + intVal1 + '</span> ヶ月</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■金利負担額</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val35) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■お支払総額</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val36) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■月払い元本</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val18) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■ボーナス元本</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val17) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th><span class="hdj_bold hdj_red3">■初回以降支払月額<span></th>';
	buff += '<td><span class="hdj_bold hdj_red3">' + intToPrice(val24) + '</span> <span class="hdj_red3">円</span></td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■最終回支払額</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val28) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■ボーナス支払</th>';
	buff += '<td>年 <span class="hdj_bold">' + val50 + '</span> 回</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■初回以降ボーナス加算額</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(intVal3) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■最終回ボーナス加算額</th>';
	buff += '<td><span class="hdj_bold">' + intToPrice(val34) + '</span> 円</td>';
	buff += '</tr>';
	buff += '<tr>';
	buff += '<th>■ボーナス支払回数</th>';
	buff += '<td><span class="hdj_bold">' + val7 + '</span> 回</td>';
	buff += '</tr>';
	buff += '</table>';

	document.getElementById('loansimulationAreaRight').innerHTML = buff;

}

function disSwh(){

	var fm = document.form1;

	var disFlg = fm.select2.options[fm.select2.selectedIndex].value;

	if( disFlg == '' || disFlg == 0 ){
		fm.text1.disabled = true;
	}else{
		fm.text1.disabled = false;
	}

}

function intToPrice( int ) {

	var price = new String(int).replace(/,/g, "");

	while(price != (price = price.replace(/^(-?\d+)(\d{3})/, "$1,$2")));

	return price;

}