//====================================================================
//
// Customize by RAKUZANET Ver.0406.01:21:13
// 2008年04月06日
//
//====================================================================

function k2_hensyu(f,bonus_k){
	bonus_k1 = f.bonus_k.value;
	f.bonus_k.value = k_delete(bonus_k1);
	bonus_k1 = f.bonus_k.value;
	return true;
}


function reset(f){
	f.kariire.value = "";
	f.bonus_k.value = "";
	f.kikan.value  = "";
	}


//シミュレーションメインルーチン
function sim_main(f){
	f.kakaku.value = k_delete(f.kakaku.value);
	f.shikin.value = k_delete(f.shikin.value);
	f.kariire.value = k_delete(f.kariire.value);
	f.bonus_k.value = k_delete(f.bonus_k.value);
	if (!(kakaku_chk(f) && shikin_chk(f) && kariire_chk(f) && bonus_k_chk(f) && kikan_chk(f) && kinri_chk(f))){
		return;
	}


	//諸費用返済用変数宣言
	wk_kariire = eval(f.kariire.value * 10000);


	//	各返済額の計算
	month = Math.ceil(month_calc(f));
	bonus_h = Math.ceil(bonus_h_calc(f));
	total_h = total_h_calc(f);


	//	各返済額の出力
	f.month.value = month;
	f.bonus_h.value = bonus_h + month;
	f.year_h.value = (month * 12) +(bonus_h * 2);
	f.total_h.value = total_h;

	f.month.value = k_hensyu(f.month.value);
	f.bonus_h.value = k_hensyu(f.bonus_h.value);
	f.total_h.value = k_hensyu(f.total_h.value);
	f.year_h.value = k_hensyu(f.year_h.value);
}


//ラジオボタンチェック
function radio(part){
	if(part == "0"){
		document.f.kinri.value = "";
		document.f.kinri.focus();
	}
	return true;
}


//毎月返済利息の計算
function m_risoku_calc(zandaka,f){
	zandaka = 100 * Math.floor(zandaka / 100);
	m_risoku = Math.floor(zandaka * (f.kinri.value) / 100 / 12);
	return(m_risoku);
}


//ボーナス返済利息の計算
function b_risoku_calc(zandaka,f){
	zandaka = 100 * Math.floor(zandaka / 100);
	b_risoku = Math.floor(zandaka * (f.kinri.value) / 100 / 2);
	return(b_risoku);
}


//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 == "."){
			continue;
			}
		else{
			return false;
		}
	}
	return true;
}


//フォーカス喪失時のカンマ編集
function lost_hensyu(obj){
	obj.value = k_delete(obj.value);
}


//カンマ編集
function k_hensyu(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 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 kakaku_chk(f) {
	wk = f.kakaku.value;
	if (wk == ""){
		alert("物件価格が入力されていません。");
		f.kakaku.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("物件価格は半角数字で入力してください。");
		f.kakaku.focus();
		return false;
	}
	if(wk < 100 || wk > 50000){
		alert ("物件価格は100万円～50000万円の間で入力してください。");
		f.kakaku.focus();
		return false;
	}
	return true;
}


//自己資金の入力チェック
function shikin_chk(f) {
	wk = f.shikin.value;
	if (wk == ""){
		alert("自己資金が入力されていません。");
		f.shikin.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("自己資金は半角数字で入力してください。");
		f.shikin.focus();
		return false;
	}
	if(wk < 0 || wk > 50000){
		alert ("自己資金は0万円～50000万円の間で入力してください。");
		f.shikin.focus();
		return false;
	}
	return true;
}


//お借入額の入力チェック
function kariire_chk(f) {
	wk = f.kariire.value;
	if (wk == ""){
		alert("お借入額が入力されていません。");
		f.kariire.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("お借入額は半角数字で入力してください。");
		f.kariire.focus();
		return false;
	}
	if(wk < 100 || wk > 50000){
		alert ("お借入額は100万円～50000万円の間で入力してください。");
		f.kariire.focus();
		return false;
	}
	return true;
}


//ボーナス返済額の入力チェック
function bonus_k_chk(f) {
	wk_n = f.kariire.value;
	wk_b = f.bonus_k.value;
	if (wk_b == ""){
		f.bonus_k.value = "0";
		return true;
	}
	if (!com_num_chk(wk_b)){
		alert ("ボーナス返済額は半角数字で入力してください。");
		f.bonus_k.focus();
		return false;
	}
	if((wk_b * 2) > wk_n){
		alert ("ボーナス返済額はお借入額の半分以下を入力して下さい。");
		f.bonus_k.focus();
		return false;
	}
	return true;
}


//借入期間の入力チェック
function kikan_chk(f) {
	wk = f.kikan.value;
	if (wk == ""){
		alert("返済期間が入力されていません。");
		f.kikan.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("返済期間は半角数字で入力して下さい。");
		f.kikan.focus();
		return false;
	}
	if(wk < 3 || wk > 35){
		alert ("返済期間は３～３５年の間で入力して下さい。");
		f.kikan.focus();
		return false;
	}
	return true;
}


//金利の入力チェック
function kinri_chk(f) {
	wk = f.kinri.value;
	if (wk == ""){
		alert("金利が入力されていません。");
		f.kinri.focus();
		return false;
	}
	if (!com_num_chk(wk)){
		alert ("金利は半角数字で入力してください。");
		f.kinri.focus();
		return false;
	}
	if(wk < 0.001 || wk > 15.00){
		alert ("金利は0.001～15.00%の間で入力して下さい。");
		f.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 month_calc(f){
	wk_kari = eval(f.kariire.value * 10000) - eval(f.bonus_k.value * 10000);
	wk_kinri = eval(f.kinri.value / 100);
	wk_kaisu = eval(f.kikan.value * 12);
	wk_bunsi = wk_kari * (wk_kinri / 12) * Math.pow((1 + (wk_kinri / 12)),wk_kaisu);
	wk_bunbo = Math.pow((1 + (wk_kinri / 12)),wk_kaisu) - 1;
	kingaku = wk_bunsi / wk_bunbo;
	return(kingaku);
}


//ボーナス返済額の計算
function bonus_h_calc(f){
	wk_bonus_k = eval(f.bonus_k.value * 10000);
	wk_kinri = eval(f.kinri.value / 100);
	wk_kaisu = eval(f.kikan.value * 2);
	wk_bunsi = wk_bonus_k * wk_kinri * 6 / 12 * Math.pow((1 + wk_kinri * 6 / 12),wk_kaisu);
	wk_bunbo = Math.pow(1 + (wk_kinri * 6 / 12),wk_kaisu) - 1;
	kingaku = wk_bunsi / wk_bunbo;
	return(kingaku);
}


//総返済額の計算
function total_h_calc(f){
	wk_m_zandaka = (eval(f.kariire.value) - eval(f.bonus_k.value)) * 10000;
	mon_zandaka = 100 * Math.floor(wk_m_zandaka / 100);
	wk_b_zandaka = eval(f.bonus_k.value) * 10000;
	bon_zandaka = 100 * Math.floor(wk_b_zandaka / 100);
	wk_m_zandaka = mon_zandaka;
	wk_b_zandaka = bon_zandaka;
	wk_zandaka = mon_zandaka + bon_zandaka;
	wk_kaisu = eval(f.kikan.value) * 12;
	//	毎月返済元金合計
	tot_m_gankin = (eval(f.kariire.value) - eval(f.bonus_k.value)) * 10000;
	//	ボーナス返済元金合計
	tot_b_gankin = eval(f.bonus_k.value) * 10000;
	//	毎月返済＆ボーナス返済利息合計
	tot_m_risoku = 0;
	tot_b_risoku = 0;
	for (i = 1; i <= wk_kaisu; i++){
		wk_m_risoku = m_risoku_calc(wk_m_zandaka,f);
		tot_m_risoku = tot_m_risoku + wk_m_risoku;
		wk_m_gankin = month - wk_m_risoku;
		wk_m_zandaka = wk_m_zandaka - wk_m_gankin;
		if(i % 6 == 0){
			wk_b_risoku = b_risoku_calc(wk_b_zandaka,f);
			tot_b_risoku = tot_b_risoku + wk_b_risoku;
			wk_b_gankin = bonus_h - wk_b_risoku;
			wk_b_zandaka = wk_b_zandaka - wk_b_gankin;
			wk_m_hensai = month + wk_b_risoku + wk_b_gankin;
			}
		else{
			//wk_b_risoku = "-";
			//wk_b_gankin = "-";
			wk_m_hensai = month;
			}
		}
	//	毎月返済額合計
	kingaku = tot_m_gankin + tot_b_gankin + tot_m_risoku + tot_b_risoku;
	return(kingaku);
}


//フォーカス処理
function init_focus(ff){
	f.shikin.value = 0;//自己資金初期値
	f.kikan.value = 35;//借入期間初期値
	init_focus.string = '';
	init_focus.string = unescape(window.location.search.substring(1));//?をサプレス
	if (!(init_focus.string == '')){
		f.kakaku.value = init_focus.string;
		kariset();
		f.shikin.focus();
		f.shikin.select();
	}else{
		f.kakaku.focus();
	}
}

//ブラウザの判別 
var agent = navigator.userAgent; var nv = 0;
if(agent.indexOf("Mozilla/2") == 0){var nv= 1} 

