
/* ローンシミュレーションフォーム01 */

	var d1,d2,d3,d4,d5,d6;
	var a1,a2,a3,a4,a5;
	RatePer = d6;
       Rate    = RatePer / 100;
	// フォーム入力項目をクリアする
	function Clear(Text)
	{
		Text.D1.value = "";
		Text.D2.value = "";
		Text.D3.value = "";
		Text.D4.value = "";
		Text.D5.value = "";
              Text.D6.value = "";
		Text.A1.value = "";
		Text.A2.value = "";
		Text.A3.value = "";
		Text.A4.value = "";
              Text.A5.value = "";
	}
	
	// 入力項目を半角数字かチェックするための関数
	function isNum(txt)
	{
		for (var i = 0; i < txt.length; i++) {
			var oneChar = txt.substring(i, i+1);
			if (oneChar < "0" || oneChar > "9") {
				alert("半角数字を入力してください。");
				return false;
			}
		}
		return true;
	}
	
	// 借入れ期間の月換算
	function mTimes()
	{
		return d3*12+d4;
	}
	
	// 借入れ期間中のボーナス分支払回数
       function bTimes()
	{
		var X = mTimes() / 6;
		
		if (d5 >= 6) {                                                          
              return X-1;
              }else{
		return X;
	}                                                                               　
	}                         
	function goError(errNo)
	{
		if (errNo == 0) {
			alert("「お借り入れ総額」を正しく入力してください");
			return false;
		}
		if (errNo == 1) {
			alert("「内ボーナス返済分」を正しく入力してください");
			return false;
		}
		if (errNo == 2) {
			alert("「お借り入れ期間」の「年」を正しく入力してください");
			return false;
		}
		if (errNo == 3) {
			alert("「お借り入れ期間」の「月」入力は１２ヵ月未満にしてください");
			return false;
		}
		if (errNo == 4) {
			alert("「お借り入れ期間」を正しく入力してください");
			return false;
		}
		if (errNo == 5) {
			alert("「初回ボーナス月までの期間」を正しく入力してください");
			return false;
		}
		if (errNo == 10) {
			alert("「お借り入れ期間」の「ヵ月」を正しく入力してください");
			return false;
		}
              if (error == 11) {
                     alert("「金利を正しく入力してください。");
              }
		return true;
	}
	
	// Get values from the form
	// 処理：初期化処理
	function getValues(Text)
	{
	
		// 入力データをチェックしてグローバル変数へ代入。
		// もし、間違いならばエラー処理ルーチンへgoError()
		if (Text.D1.value == "" || isNum(Text.D1.value)==false || Text.D1.value > 5000) {	// 入力データチェック
			return goError(0);	// 借入れ総額の値エラー
		} else {
			d1 = eval(Text.D1.value);
		}
		if (Text.D2.value == "" || isNum(Text.D2.value)==false ||Text.D2.value > Text.D1.value/2)	// 入力データチェック
			return goError(1);	// 内ボーナス返済分の値エラー
		else
			d2 = eval(Text.D2.value);
　　　　　　　if (Text.D3.value == "" || isNum(Text.D3.value) ==false || Text.D3.value <1 || Text.D3.value >35){
		       return goError(2);
              }else{
                     d3 = eval(Text.D3.value);
             }
             //if (isNum(Text.D3.value) == true) {
		//	if (eval(Text.D3.value == ""))
		//		d3 = 0;
		//	else
		//		d3 = eval(Text.D3.value);
		//} else {
		//	return goError(2);
		//}
		if (Text.D4.value >= "12" || isNum(Text.D4.value)==false) {	// 入力データチェック
			return goError(3);	// 12ヶ月以上はおかしい
		} else {
			if (Text.D4.value != "")
				d4 = eval(Text.D4.value);
			else
				d4 = 0;
		}
		
		if (Text.D4.value == "" && Text.D3.value == "")
			return goError(4);	// 年の入力がないのに月の入力が無いのもおかしい
		if (Text.D5.value == "" || isNum(Text.D5.value) == false)
			return goError(5);
		else
			d5 = eval(Text.D5.value);
              if (Text.D6.value == "" ) 
                    return goError(11);
              else
			d6 = eval(Text.D6.value);

		// 結果を零で初期化しておく
		a1 = 0;
		a2 = 0;
		a3 = 0;
		a4 = 0;
		a5 = 0;
		return true;
	}

	// 処理：毎月のご返済額を計算
	// parameters:
	//		rMoney	-- 返済額
	//		rTime	-- 返済期間(月で入力)
	function calculate0(rMoney, rTime)
	{
		var temp;

		var result;				// 計算結果
		var timeOfRet = eval(rTime);		// 回数（timeOfRetヵ月）
		var moneyOfRet = eval(rMoney);		// 返済額
		var Rate = d6/100;                // 金利

		temp   =
		 Math.pow(1+eval(Rate/12),
		  eval(timeOfRet));
		result = (eval(moneyOfRet) * eval(temp))
			/ ((eval(temp)-1) / eval(Rate/12));
		
		return result;
	}
	
	function calculate1(rMoney, rTime)
	{
		var tempR0,tempR1;
		var result0,result1;			// 計算結果
		var timeOfRet = eval(rTime);		// 回数（timeOfRetヵ月）
		var moneyOfRet = eval(rMoney);		// 返済額
		var Rate = d6/100;                // 金利

		tempR0  =
		 Math.pow(1+eval(Rate/2),
		  eval(timeOfRet));
		tempR1  =
		 Math.pow(1+eval(Rate/2),
		  eval(timeOfRet-1));
		tempBr  =
		 1+eval(Rate*d5/12);
		
		result0 = eval(moneyOfRet) * eval(tempR1) * eval((Rate/2)*(tempBr));
		result1 = result0/(eval(tempR0)-1);
		return result1;
	}
	
	
	function setValues(Text)
	{
		Text.A1.value = Math.round(a1);	// 毎月のご返済金額
		Text.A2.value = Math.round(a2);	// ボーナス分のご返済額
		Text.A4.value = Math.round(a4);	// ボーナス月のご返済額
		Text.A3.value = Math.round(a3);	// ご返済総額
　　　　　　　Text.A5.value = Math.round(a5);   // 1年間のご返済額
	}
	
	function cMain(Test)
	{
		if (getValues(Test) == true) {
			// 月々のご返済額を計算。ここで第１引数は(借入れ総額-内ボーナス返済分)で、
			// 第２引数に(借入れ期間を月換算した値)を渡しています。
			a1 = calculate0(d1*10000-d2*10000, mTimes());
			
			// ボーナス分のご返済額。ここで第１引数は(ボーナス返済分)で、第２引数は
			// (借入れ期間を月換算した値)を渡しています。
			a2 = calculate1(d2*10000, bTimes());
			
			//ボーナス月の返済額＝毎月返済額＋ボーナス分返済額です。
			a4= a1+a2
			
　　　　　　　　　　//1年間のご返済額=毎月返済額 * 10 + ボーナス分返済額 * 2 です。
　　　　　　　　　　a5 = a1 * 10+a4 * 2　　
　
			// 総ご返済額
			a3 = a1 * mTimes()+a2 * bTimes();
			
			// 上の処理で求められた各値（月々返済額、ボーナス月返済額、総返済額）を
			// フォームへ出力する
                     setValues(Test);
 //各返済額の出力
      　　　Test.A1.value = kanma(Test.A1.value);
	     Test.A2.value = kanma(Test.A2.value);
	     Test.A3.value = kanma(Test.A3.value);
	     Test.A4.value = kanma(Test.A4.value);
            Test.A5.value = kanma(Test.A5.value);
      　　　Test.A1.value = rhensyu(Test.A1.value,14);
	     Test.A2.value = rhensyu(Test.A2.value,14);
	     Test.A3.value = rhensyu(Test.A3.value,14);
	     Test.A4.value = rhensyu(Test.A4.value,14);
            Test.A5.value = rhensyu(Test.A5.value,14);
		}
	}
       //カンマ
       function kanma(n){
             cnt=0;
             ans="";
             len=n,length;
             for(i=0; i<n.length;i++){
                 t=n.substring(i,i+1);
                 ans=ans+t
                 cnt=cnt+1;
             if(n.length-cnt == 9 || n.length-cnt == 6 || n.length-cnt == 3){
                ans=ans+",";
                }
             }
             return(ans);
       }
//右寄せ
function rhensyu(n,len){
  ans = n;
  cnt = len - n,length;
  t = "";
  if (cnt > 0){
     for (i=1; i <= cnt; i++){
          t = t + " ";
}
ans = t + n;
}
return(ans);
}
