//メインルーチン
//シミュレーションメインルーチン
function Mcheck(f){
				var unit=1;
				if (f.kind.value == 'educ') { unit = 6;}  //教育ローンは1ヶ月単位
        f.karikin.value = trim(f.karikin.value);
        wk = f.karikin.value;
        if (wk == ""){
                alert("毎月の返済額が入力されていません。");
                f.karikin.focus();
                return false;
        }
        if (!com_num_chk(wk)){
                alert ("毎月の返済額は半角数字で入力してください。");
                f.karikin.focus();
                return false;
        }

//ボーナス返済額の入力チェック
        f.bonus.value = trim(f.bonus.value);

        if (f.bonus.value == ""){
            f.bonus.value = "0";
        }
        wk_b = f.bonus.value;
        if (!com_num_chk(wk_b)){
                alert ("ボーナス時の加算額は半角数字で入力してください。");
                f.bonus.focus();
                return false;
        }
				if (wk_b /1 > wk /1 * 6) {
                alert ("ボーナス月の加算額は毎月返済額の６倍以内を入力して下さい。");
                f.bonus.focus();
                return false;
        }
//借入期間の入力チェック

        kikan_yy = f.kikan_yy.selectedIndex;
				if (f.kind.value == 'home' || f.kind.value == 'home_kari') { //住宅ローンはselectなし
   			    kikan_mm = f.kikan_mm.value;
				}else {
		        kikan_mm = f.kikan_mm.selectedIndex;
				}
        if (kikan_yy == 0 && kikan_mm == 0){
                alert("返済期間が入力されていません。");
                f.kikan_yy.focus();
                return false;
        }
        kikan = kikan_yy *12 + kikan_mm * unit;
        if(kikan < min_kikan || kikan > max_kikan){
                alert ("返済期間は" + kikanMsg);
                f.kikan_yy.focus();
                return false;
        }
//ボーナス時の加算額と毎月返済額のチェック
        if((wk_b * parseInt(kikan / 6)) > wk * kikan ){
                alert ("ボーナス返済額の合計は毎月返済額合計の50%以下を入力して下さい。");
                f.bonus.focus();
                return false;
        }

//　金利のチェック
       	wk = f.kinri.value;
       	if (wk == ""){
       		alert("金利が入力されていません。");
       		f.kinri.focus();
       		return false;
       	}
       	if (!com_num_chk2(wk)){
       		alert ("金利は半角数字で入力してください。");
       		f.kinri.focus();
       		return false;
       	}
       	if(wk < 0.001 || wk > 99.999){
       		alert ("金利は0.001〜99.999%の間で入力して下さい。");
	      	f.kinri.focus();
		    return false;
	}

				mon_hensai = Math.ceil(tuki_hensai_calc(f));
				bon_hensai = Math.ceil(bon_hensai_calc(f));
				kanou = bon_hensai+mon_hensai;
				if ( kanou > max_kin * 10000) {
						alert("ご指定条件では商品の最大ご融資金額を超えます。" + "\n" + "再指定してください。");
						f.karikin.focus();
						return false;
				}
        return true;
}
// 送信処理
function mySubmit() {
	if (Mcheck(document.loansimu) ) {
			document.loansimu.action="/script/etc/simulate.cgi";
  		document.loansimu.submit();
  		return true;
	}
}

//Numericチェック
function com_num_chk(n) {
        for(i = 0; i <  n.length; i++){
                t = n.substring(i,i+1);
                if (t == "0" || t == "1" || t == "2" || t == "3" || t == "4" ||
                t == "5" || t == "6" || t == "7" || t == "8" || t == "9" ) {
                        continue;
                        }
                else{
                        return false;
                }
        }
        return true;
}
function com_num_chk2(n) {
        for(i = 0; i <  n.length; i++){
                t = n.substring(i,i+1);
                if (t == "0" || t == "1" || t == "2" || t == "3" || t == "4" ||
                t == "5" || t == "6" || t == "7" || t == "8" || t == "9" ||
                t == "."){
                        continue;
                        }
                else{
                        return false;
                }
        }
        return true;
}
function trim(v) {
  return v.replace(/^( |　|\r\n|\r|\n)+/,"").replace(/( |　|\r\n|\r|\n)+$/,"");
}
//毎月返済額からの計算
function tuki_hensai_calc(f){
	wk_kari = eval(f.karikin.value);
	wk_kinri = eval(f.kinri.value / 100);
	wk_kaisu = kikan;
	wk_bunsi = (wk_kinri / 12) * Math.pow((1 + (wk_kinri / 12)),wk_kaisu);
	wk_bunbo = Math.pow((1 + (wk_kinri / 12)),wk_kaisu) - 1;
	kingaku = wk_kari / (wk_bunsi / wk_bunbo);
	return(kingaku);
}

//ボーナス返済額からの計算
function bon_hensai_calc(f){
	wk_b_hen = eval(f.bonus.value);
	wk_kinri = eval(f.kinri.value / 100);
	wk_kaisu = parseInt(kikan / 6); //ボーナス回数
	wk_bunsi = wk_kinri / 12 * 6 * Math.pow((1 + wk_kinri / 12 * 6),wk_kaisu);
	wk_bunbo = Math.pow(1 + (wk_kinri * 6 / 12),wk_kaisu) - 1;
	kingaku = wk_b_hen / (wk_bunsi / wk_bunbo);
		return(kingaku);
}
