////base.js////

/* jQuery
-------------------------------------------*/

jQuery.noConflict()(function($){
	
	/* fontsize.js initialize
	-------------------------------------------*/
	fscRef();

	/* Hover image
	-------------------------------------------*/

	// Arguments are image paths relative to the current page.
	var cache = [];
	$.preLoadImages = function() {  
		var args_len = arguments.length;  
		for (var i = args_len; i--;) {  
			var cacheImage = document.createElement('img');  
			cacheImage.src = arguments[i];  
			cache.push(cacheImage);  
		}  
	}

	// Hover action
	$(function(){
		
		var myObj = $("img.hover");
		
		myObj.each(function() {
			if($(this).attr("src").lastIndexOf("_f2") == -1) {
				   
				$(this).mouseover(function(){
					$(this).attr("src",$(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_f2$2"));
				}).mouseout(function(){
					$(this).attr("src",$(this).attr("src").replace(/^(.+)_f2(\.[a-z]+)$/, "$1$2"));
				}).each(function(){
					$("<img>").attr("src",$(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_f2$2"));
				});
				
			}
			
		});
	});
	
	// Preload image
	$("img.hover").each(function(){
		$.preLoadImages($(this).attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1_f2$2"));
	});


	/* CSS supporter
	-------------------------------------------*/

	// Text margin mandatory control
	/*
	$("#mainContents p + h2").css("margin", "20px 0 12px 0");
	$("#mainContents ul + h2").css("margin", "20px 0 12px 0");
	$("#mainContents div + h2").css("margin", "20px 0 12px 0");
	
	$("#mainContents p + h3").css("margin", "20px 0 12px 0");
	$("#mainContents ul + h3").css("margin", "20px 0 12px 0");
	$("#mainContents div + h3").css("margin", "20px 0 12px 0");
	*/

	/* Blank page icon
	-------------------------------------------*/
	if($('#news').size() > 0 || $('#juyo').size() > 0) {
		$('#news a[href$="pdf"]').addClass('blank');
		$('#juyo a[href$="pdf"]').addClass('blank');
	} else if($('#leftBlock').size() > 0) {
		$('#leftBlock a[href$="pdf"]').addClass('blank');
	} else {
		$('#mainContents a[href$="pdf"]').addClass('blank');
	}

	/* 範囲指定印刷
	--------------------------------------------------------*/
	var myTarget = $("#printPage");
	pathHash = getUrlVars();
	
	myTarget.each(function() {
		//$(this).load("new_mycard/index.html #printArea");
		window.print();
	});
	
	
	
	function getUrlVars() { 
		var vars = [], hash; 
		var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
		for(var i = 0; i < hashes.length; i++) { 
			hash = hashes[i].split('='); 
			vars.push(hash[0]); 
			vars[hash[0]] = hash[1]; 
		} 
		return vars;
	}
	
	
	/* 返済シミュレーション
	--------------------------------------------------------*/

	//計算ボタンをクリックした時
	$("#cal01").click(function(event) {
		
		//ユーザ入力変数
		var money = Number($("#借入希望額").val());
		var bonus = Number($("#ボーナス返済分").val());
		var rate =  Number($("#利率").val());
		var year =  Number($("#返済期間").val());
		//エラーメッセージ
		var errorMsg = "";
		
		//数値外エラー
		if(IsNotNum(money)||IsNotNum(bonus)||IsNotNum(rate)||IsNotNum(year)) {
			errorMsg += "数値以外が入力されている項目がございます。\n";
		}
		//※借入希望<ボーナス返済分
		if(money<bonus) {
			errorMsg += "「ボーナス返済分」が「借入希望額」より大きな金額となっています。\n";
		}
		
		//毎月のご返済額
		var hensaiM = pmt(money-bonus,rate,year,12);
		//ボーナス月のご返済額
		var hensaiB = pmt(bonus,rate,year,2);
		//毎月のご返済総額
		var hensaiMsum = hensaiM*12*year;
		//ボーナス月のご返済総額
		var hensaiBsum = hensaiB*2*year;
		//毎月の利息総額
		var rateMsum = hensaiM*12*year-(money-bonus);
		//ボーナス月の利息総額
		var rateBsum = hensaiB*2*year-bonus;
		
		if(isNaN(hensaiM)||isNaN(hensaiB)) {
			errorMsg += "計算エラーが発生しました。入力項目をご確認ください。\n";
		}
			
		if(errorMsg == "") {
			//代入
			$("#毎月のご返済額").text(addFigure(Math.round(hensaiM)));
			$("#ボーナス月のご返済額").text(addFigure(Math.round(hensaiB)));
			$("#毎月返済").text(addFigure(Math.round(hensaiM*12)));
			$("#ボーナス返済").text(addFigure(Math.round(hensaiB*2)));
			$("#年間のご返済額").text(addFigure(Math.round(hensaiM*12+hensaiB*2)));
			$("#毎月返済（総額）").text(addFigure(Math.round(hensaiMsum)));
			$("#ボーナス返済（総額）").text(addFigure(Math.round(hensaiBsum)));
			$("#ご返済額の総額").text(addFigure(Math.round(hensaiMsum+hensaiBsum)));
			$("#毎月返済（利息）").text(addFigure(Math.round(rateMsum)));
			$("#ボーナス返済（利息）").text(addFigure(Math.round(rateBsum)));
			$("#お利息の総額").text(addFigure(Math.round(rateMsum+rateBsum)));
			
			$("#calResult").show();
			
			$(this).val("再計算する");
		
		} else {
			
			alert(errorMsg);
			
			$("#calResult").hide();
			
			$(this).val("計算する");
			
		}
		
		//移動無効化
		event.preventDefault();
		event.returnValue = false;
		
	});
	
	/* 借金可能額シミュレーション
	--------------------------------------------------------*/
	
	//計算ボタンをクリックした時
	$("#cal02").click(function(event) {
		
		//ユーザ入力変数
		var money = Number($("#毎月のご返済額").val());
		var bonus = Number($("#ボーナス月のご返済額").val());
		var rate  = Number($("#利率").val());
		var year  = Number($("#返済期間").val());
		//エラーメッセージ
		var errorMsg = "";
		
		//数値外エラー
		if(IsNotNum(money)||IsNotNum(bonus)||IsNotNum(rate)||IsNotNum(year)) {
			errorMsg += "数値以外が入力されている項目がございます。\n";
		}
			
			//毎月返済部分
		var hensaiMsum = pv(money,rate,year,12);
		
		//ボーナス月のご返済総額
		var hensaiBsum = pv(bonus,rate,year,2);
		
		if(isNaN(hensaiMsum)||isNaN(hensaiBsum)) {
			errorMsg += "計算エラーが発生しました。入力項目をご確認ください。\n";
		}
		
		if(errorMsg == "") {
			
			//代入
			$("#毎月返済部分").text(addFigure(Math.round(hensaiMsum)));
			$("#ボーナス返済部分").text(addFigure(Math.round(hensaiBsum)));
			$("#お借入可能額").text(addFigure(Math.round(hensaiMsum + hensaiBsum)));
			
			$("#calResult").show();
			
			$(this).val("再計算する");
			
		} else {
			
			alert(errorMsg);
			
			$("#calResult").hide();
			
			$(this).val("計算する");
			
		}
		
		//移動無効化
		event.preventDefault();
		event.returnValue = false;
		
	});
	
	/* シミュレーション関連関数
	--------------------------------------------------------*/
	
	//PMT関数（金額,利率,返済期間,返済回数）
	function pmt(money,rate,year,t) {
		var r=rate/100/t;//alert(r);
		var g=Math.pow((1+r),(year*t));//alert(g);
		var c=money*r*g;//alert(c);
		var p=g-1;//alert(p);
		var result=c/p;//alert(result);
		return result;
	}
	
	//PV関数（金額,利率,返済期間,返済回数）
	function pv(money,rate,year,t) {
		
		money = money/10000;
		rate = rate/100;
		year = year * t;	
		var result = (money * Math.pow((1 + rate / t),year)-money) / (rate / t * Math.pow((1 + rate / t),year));
		return result*10000;
		
	}
	
	//数値にカンマを付ける
	function addFigure(str) {
		var num = new String(str).replace(/,/g, "");
		while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
		return num + "円";
	}
	
	//入力数値の最適化
	function cleanNum(src) {
		if(!src){
			src="0";
		}
		src = src.replace(/[．０-９]/g, function (wc){var zen="．。０１２３４５６７８９",han = "..0123456789";return han[zen.indexOf(wc)];});
		return src;
	}
	
	//数値以外の処理
	function IsNotNum(value) {
		// 文字列に変換
		var str = value.toString();
		// 正の整数以外
		var regex = /[^0-9\.]/;
		if (str.match(regex)) {
			return true;
		} else {
			return false;
		}
	}
	
	//入力欄にフォーカス
	$("#calInput input:eq(0)").focus();
	
	//入力最適化
	$("#calInput input").blur( function() {
		$(this).val(cleanNum($(this).val()));
	});
	
	//結果画面を一時非表示
	$("#calResult").hide();
	
	/* Processing on Timeline
	-------------------------------------------*/
	
	// Second-scale interval
	var INTERVAL = 1000 * 1;
	// Timeline
	setInterval(function ()
	{
		//processing
		
	}, INTERVAL);


});


/*Analytics
----------------------------------------------------------------------*/
/*
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
*/
