//シミュレーションメインルーチン
function sim_main(f){
	f.i_m_siha.value = k_delete(f.i_m_siha.value);
	f.i_b_siha.value = k_delete(f.i_b_siha.value);
	f.i_y_syuu.value = k_delete(f.i_y_syuu.value);
	f.i_kikan.value = k_delete(f.i_kikan.value);
	f.i_sikin.value = k_delete(f.i_sikin.value);
	if (!(i_m_siha_chk(f) && i_b_siha_chk(f) && i_y_syuu_chk(f) && i_sikin_chk(f) && i_kinri_chk(f)))
	{
		return;
	}
//	各返済額の計算
//	bukken_kakaku = Math.ceil(bukken_kakaku_calc(f));
	bukken_kakaku = bukken_kakaku_calc(f);
	hiritu = hiritu_calc(f);
//預入金変換
	f.i_m_siha.value = k_hensyu(f.i_m_siha.value);
	f.i_b_siha.value = k_hensyu(f.i_b_siha.value);
	f.i_y_syuu.value = k_hensyu(f.i_y_syuu.value);
	f.i_sikin.value = k_hensyu(f.i_sikin.value);
//	各返済額の出力
	f.bukken_kakaku.value = bukken_kakaku;
	f.KakakuFrom.value = bukken_kakaku - 500;
	f.KakakuTo.value = bukken_kakaku + 500;

	if (f.KakakuFrom.value <= 0){
		f.KakakuFrom.value = 0;
	}

	f.hiritu.value = hiritu;
	f.bukken_kakaku.value = k_hensyu(f.bukken_kakaku.value);

}
//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" ||
		t == "." || t == ","){
 			continue;
			}
		else{
			return false;
		}
	}
	return true;
}
//カンマ編集

function k_hensyu(x) {
    var s = "" + x;
    var p = s.indexOf(".");
    if (p < 0) {
        p = s.length;
    }
    var r = s.substring(p, s.length);
    for (var i = 0; i < p; i++) {
        var c = s.substring(p - 1 - i, p - 1 - i + 1);
        if (c < "0" || c > "9") {
            r = s.substring(0, p - i) + r;
            break;
        }
        if (i > 0 && i % 3 == 0) {
            r = "," + r;
        }
        r = c + r;
    }
    return r;
}

//カンマ編集(削除)
function k_delete(n) {
		ans = "";
		len = n.length;
		for(i = 0; i < n.length; i++){
			t = n.substring(i,i+1);
			if(t == ","){
				t = "";
			}
			ans = ans + t;
		}
		return(ans);
}
//お借入額の入力チェック
function i_m_siha_chk(f) {
	wk = f.i_m_siha.value;
	if (wk == ""){
		alert("月々お支払い可能額が入力されていません。");
		f.i_m_siha.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("月々お支払い可能額は半角数字で入力してください。");
		f.i_m_siha.focus();
		return false;
	}
	if (wk < 1){
		alert ("月々お支払い可能額は１円〜で入力して下さい。");
		f.i_m_siha.focus();
		return false;
	}
	if (wk % 1 != 0){
		alert ("月々お支払い可能額は１円単位で入力して下さい。");
		return false;
	}
	return true;
}
//ボーナス返済額の入力チェック
function i_b_siha_chk(f) {
	wk_b = f.i_b_siha.value;
	if (wk_b == ""){
		f.i_b_siha.value = "0";
		return true;
	}
	if (!com_num_chk(wk_b)){
		alert ("ボーナス返済額は半角数字で入力してください。");
		f.i_b_siha.focus();
		return false;
	}
	return true;
}
function i_y_syuu_chk(f) {
	wk = f.i_y_syuu.value;
	if (wk == ""){
		alert("年収が入力されていません。");
		f.i_y_syuu.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("年収は半角数字で入力してください。");
		f.i_y_syuu.focus();
		return false;
	}
	return true;
}
//借入期間の入力チェック
function i_kikan_chk(f) {
	wk = f.i_kikan.value;
	if (wk == ""){
		alert("返済期間が入力されていません。");
		f.i_kikan.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("返済期間は半角数字で入力してください。");
		f.i_kikan.focus();
		return false;
	}
	if(wk < 5 || wk > 50){
		alert ("返済期間は５〜５０年の間で入力して下さい。");
		f.i_kikan.focus();
		return false;
	}
	return true;
}
function i_sikin_chk(f){
	wk = f.i_sikin.value;
	if (wk == "")
	{
		f.i_sikin.value = "0";
		return true;
	}
	if (!com_num_chk(wk))
	{
		alert ("自己資金は半角数字で入力してください。");
		f.i_sikin.focus();
		return false;
	}
	return true;
}
//金利の入力チェック
function i_kinri_chk(f) {
	wk = f.i_kinri.value;
	if (wk == ""){
		alert("金利が入力されていません。");
		f.i_kinri.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("金利は半角数字で入力してください。");
		f.i_kinri.focus();
		return false;
	}
	if(wk < 0.001 || wk > 99.999){
		alert ("金利は0.001〜99.999%の間で入力して下さい。");
		f.i_kinri.focus();
		return false;
	}
	return true;
}
//ブラウザのチェック
function br_chk(m){
	e_lit = "";
	ee_lit = "";
	msg = "";
	e_msg = "";
	ee_msg = "";
	flg = "off";
	if(navigator.appName == "Netscape" && navigator.appVersion.substring(0,3) == "3.0"){
		for(i=0; i<m.length; i++){
			lit = m.substring(i,i+1);
			e_lit = escape(lit);
			e_len = e_lit.length;
			for(j=0; j<e_lit.length; j++){
				ee_lit = e_lit.substring(j,j+1);
				if(ee_lit == "%" && e_len == 3){
					ee_lit = e_lit.substring(j,j+3);
					j = j + 3;
				}
				if(ee_lit == "%8E"){
					e_msg = e_msg + "%8E%8E";
				}
				e_msg = e_msg + e_lit;
			}
			msg = unescape(e_msg);
		}
		return(msg);
	}else{
		return(m);
	}
}
//計算
function bukken_kakaku_calc(f){
	wk_rate = eval(f.i_kinri.value) / 100;
	wk_nper = eval(f.i_kikan.value) * 12;
	wk_bunbo = Math.pow((1 + (wk_rate / 12)),wk_nper);

	wk_pmt = (-1) * ((eval(f.i_m_siha.value) * 12 + (eval(f.i_b_siha.value)*10000) * 2) / 12);
	wk_bunsi = wk_pmt / (wk_rate/12) * (1 - wk_bunbo);
	kingaku = Math.round((wk_bunsi / wk_bunbo + (eval(f.i_sikin.value)*10000)) / 10000);

	return(kingaku);
}
function hiritu_calc(f){
	wk_rat = (eval(f.i_m_siha.value) * 12 + (eval(f.i_b_siha.value)*10000) *2)/eval(f.i_y_syuu.value)/10000*100;
	wk_rat = Math.round(wk_rat*10);
	wk_rat = wk_rat/10
	return(wk_rat);
}


