// 融資限度額のシミュレーション

function NumCheck(str) {
	if (str.match(/[^0-9]/)) {
    	return false;
	} else {
		return true;
	}
}

function NullCheck(str) {
	if(str == "") {
   		return false;
	} else {
		return true;
	}
}

function NumCheck2(str) {
	if (str.match(/[^0-9|^.]/)) {
    	return false;
	} else {
		return true;
	}
}

function figout(n) {
	var l, m = '';
	n = '' + n;
	while ( (l = n.length) > 3 ) {
		m = "," + n.substr( l - 3, 3 ) + m;
		n = n.substr( 0, l - 3 );
	}
	n = '' + n + m;
	return n;
}

/*
 -------------------------------------------------
 毎月の返済から、借入可能金額を計算
 -------------------------------------------------
*/
function LoanCalc() {
//htmlのフォームタグから入力された値を取得
	var flag = true;
	var paramFlag = true;
	var alertText = "";
	var money = document.getElementById("money").value;

	var repay1 = document.getElementById("repay1").value;
	
	//var repay2 = document.getElementById("repay2").value;
	
	var bonus = document.getElementById("bonus").value;
	
	var age = document.getElementById("age").value;
	
	var time = document.getElementById("time").value;

	//金利の値をラジオボタンのチェックで分岐。
	if(document.getElementById("kinri").checked) {
		var kinri = document.getElementById("kinri").value;
	} else {
		var kinri = document.getElementById("kinriSelf").value;
	}

	//年収のチェック
	if(NumCheck(money) == false) {
		$("#alertMoney").html('半角数字で入力してください。');
		$("#alertMoney").show();
		flag = false;
	} else if(NullCheck(money) == false) {
		$("#alertMoney").html('年収を入力してください。');
		$("#alertMoney").show();
		flag = false;
	} else {
		$("#alertMoney").hide();
	}
	
	//毎月の返済額のチェック
	if(NumCheck2(repay1) == false) {
		$("#alertRepay").html('半角数字で入力してください。');
		$("#alertRepay").show();			
		flag = false;
	} else if(NullCheck(repay1) == false) {
		$("#alertRepay").html('毎月の返済額を入力してください。');
		$("#alertRepay").show();
		flag = false;
	} else {
		$("#alertRepay").hide();
	}

	//ボーナス返済額のチェック
	if(NumCheck(bonus) == false) {
		$("#alertBonus").html('半角数字で入力してください。');
		$("#alertBonus").show();
		flag = false;
	} else if(NullCheck(bonus) == false) {
		$("#alertBonus").html('ボーナス返済額を入力してください。');
		$("#alertBonus").show();
		flag = false;
	} else {
		$("#alertBonus").hide();
	}
	
	//年齢のチェック
	if(NumCheck(age) == false) {
		$("#alertAge").html('半角数字で入力してください。');
		$("#alertAge").show();
		flag = false;
	} else if(NullCheck(age) == false) {
		$("#alertAge").html('年齢を入力してください。');
		$("#alertAge").show();
		flag = false;
	} else {
		$("#alertAge").hide();
	}
	//金利のチェック
	if(NumCheck2(kinri) == false) {
		$("#alertKinri").html('半角数字で入力してください。');
		$("#alertKinri").show();
		flag = false;
	} else if(NullCheck(kinri) == false) {
		$("#alertKinri").html('金利を入力してください。');
		$("#alertKinri").show();
		flag = false;
	} else {
		$("#alertKinri").hide();
	}
	//入力チェック終了、文字列を数字に変換
	money = parseInt(money,10);
	repay1 = parseFloat(repay1,10);
	//repay2 = parseInt(repay2,10);
	bonus = parseInt(bonus,10);
	age = parseInt(age,10);
	time = parseInt(time,10);
	kinri = parseFloat(kinri,10);
	//値を計算して前提条件のチェック
	var ageCheck = age + time;
	money = money * 10000;
	repay1 = repay1 * 10000;
	//repay2 = repay2 * 1000;
	bonus = bonus * 10000;
	//var repay = repay1 + repay2;
	var repay = repay1;

	//年間の返済額を算出
	var totalRepay = repay * 12 + bonus;
	if (80 <= ageCheck) {
		$("#alertAge2").text('完済年齢が80歳を超えています。');
		$("#alertAge2").show();
		paramFlag = false;
	} else {
		$("#alertAge2").hide();
	}
	if (money <= totalRepay) {
		$("#alertRepay2").text('1年の返済額が年収を超えています。');
		$("#alertRepay2").show();			
		paramFlag = false;
	} else {
		$("#alertRepay2").hide();
	}
	
	//借入可能額を算出
	//式：年鑑返済額 * ((1+利率/100)^期間-1) / (利率/100*(１+利率/100)^期間
	pay1 = 1 + kinri / 100;
	pay1 = Math.pow(pay1,time);
	pay1 = pay1 - 1;

	pay2 = 1 + kinri / 100;
	pay2 = Math.pow(pay2,time);
	pay2a = kinri / 100;
	pay2 = pay2a * pay2;

	var totaldebt = totalRepay * pay1 / pay2;
	totaldebt = totaldebt / 10000;
	totaldebt = Math.ceil(totaldebt);
	
	//年収に対する返済比率を算出
	//式：年間返済額/年収合計*0.01
	var totalpercent = totalRepay / money * 10000;
	totalpercent = Math.floor(totalpercent);
	totalpercent = totalpercent / 100;
	
	
//エラーまたは計算結果を表示
	if(flag == false || paramFlag == false) {
	} else {
		slidePage(450);
		//借入可能額を出力
		$("#totaldebt").html(totaldebt);
		//返済比率を出力
		$("#totalpercent").html(totalpercent);
	}
}


/*
 -------------------------------------------------
 借入可能金額から、毎月の支払いを計算
 -------------------------------------------------
*/
function LoanCalc2() {

//htmlのフォームタグから入力された値を取得
	var flag = true;
	var paramFlag = true;
	var alertText = "";
	var money = document.getElementById("money").value;

	var price = document.getElementById("price").value;
	
	var bonus = document.getElementById("bonus").value;
	
	var age = document.getElementById("age").value;
	
	var time = document.getElementById("time").value;

	//金利の値をラジオボタンのチェックで分岐。
	if(document.getElementById("kinri").checked) {
		var kinri = document.getElementById("kinri").value;
	} else {
		var kinri = document.getElementById("kinriSelf").value;
	}

	//年収のチェック
	if(NumCheck(money) == false) {
		$("#alertMoney").html('半角数字で入力してください。');
		$("#alertMoney").show();
		flag = false;
	} else if(NullCheck(money) == false) {
		$("#alertMoney").html('年収を入力してください。');
		$("#alertMoney").show();
		flag = false;
	} else {
		$("#alertMoney").hide();
	}
	
	//借入額のチェック
	if(NumCheck(price) == false) {
		$("#alertPrice").html('半角数字で入力してください。');
		$("#alertPrice").show();
		flag = false;
	} else if(NullCheck(money) == false) {
		$("#alertPrice").html('ご希望の借入額を入力してください。');
		$("#alertPrice").show();
		flag = false;
	} else {
		$("#alertMoney").hide();
	}

	//ボーナス返済割合
	if(NumCheck(bonus) == false) {
		$("#alertBonus").html('半角数字で入力してください。');
		$("#alertBonus").show();
		flag = false;
	} else if(NullCheck(bonus) == false) {
		$("#alertBonus").html('ボーナス返済割合を入力してください。');
		$("#alertBonus").show();
		flag = false;
	} else {
		$("#alertBonus").hide();
	}
	
	//年齢のチェック
	if(NumCheck(age) == false) {
		$("#alertAge").html('半角数字で入力してください。');
		$("#alertAge").show();
		flag = false;
	} else if(NullCheck(age) == false) {
		$("#alertAge").html('年齢を入力してください。');
		$("#alertAge").show();
		flag = false;
	} else {
		$("#alertAge").hide();
	}
	//金利のチェック
	if(NumCheck2(kinri) == false) {
		$("#alertKinri").html('半角数字で入力してください。');
		$("#alertKinri").show();
		flag = false;
	} else if(NullCheck(kinri) == false) {
		$("#alertKinri").html('金利を入力してください。');
		$("#alertKinri").show();
		flag = false;
	} else {
		$("#alertKinri").hide();
	}
	//入力チェック終了、文字列を数字に変換
	money = parseInt(money,10);
	price = parseInt(price,10);
	bonus = parseInt(bonus,10);
	age = parseInt(age,10);
	time = parseInt(time,10);
	kinri = parseFloat(kinri,10);

	//値を計算して前提条件のチェック
	var ageCheck = age + time;
	money = money * 10000;
	price = price * 10000;
	bonus = bonus * 10000;
	kinri = kinri / 100;
	time_pay1 = time * 12;
	time_pay2 = time * 2;
	var bonus_per = bonus / price  * 100;
	var price_result = price - bonus;


	//alert(money + '/' + price + '/' + bonus +'/'+ kinri +'/'+ time_pay1 +'/'+ time_pay2);

	if (50 < bonus_per) {
		$("#alertBonus2").text('借入額の50%を超えています。');
		$("#alertBonus2").show();
		paramFlag = false;
	} else {
		$("#alertAge2").hide();
	}
	if (80 <= ageCheck) {
		$("#alertAge2").text('完済年齢が80歳を超えています。');
		$("#alertAge2").show();
		paramFlag = false;
	} else {
		$("#alertAge2").hide();
	}
//借入可能金額を算出
	
	var total_pay = eval((price_result * kinri / 12 * Math.pow((1 + (kinri / 12)),time_pay1)) / (Math.pow((1 + (kinri / 12)),time_pay1) - 1));
			   
	var total_pay2 = eval((bonus * kinri / 2 * Math.pow((1 + (kinri / 2)),time_pay2)) / (Math.pow((1 + (kinri / 2)),time_pay2) - 1));

//借入可能金額を算出
//式：年間返済額/年収（合算）
	var oneyear_pay = eval((total_pay * 12)+(total_pay2*2));
	var total_percent = oneyear_pay / money / 0.01;
	total_percent = total_percent * 100;

	total_pay = Math.floor(total_pay);
	total_pay2 = Math.floor(total_pay2);
	total_pay = figout(total_pay);
	total_pay2 = figout(total_pay2);
	total_percent = Math.floor(total_percent);
	total_percent = total_percent / 100;

//エラーまたは計算結果を表示
	if(flag == false || paramFlag == false) {
	} else {
		slidePage(450);
		//借入可能額を出力
		$("#totalpay").html(total_pay);
		//ボーナス返済額を出力
		if(bonus == 0) {
			$("#totalpay2Area").css("display","none");
		} else {
			$("#totalpay2Area").css("display","inline");
			$("#totalpay2").html(total_pay2);
		}
		//返済比率を出力
		$("#totalpercent").html(total_percent);
	}

}

