<!--

/******************************************************************************
* 関数名	：	Calculate
* 機能 		：	外貨預金利回りシミュレーション - 計算
* 引数-1	：	PrmForm(オブジェクト)
******************************************************************************/
function Calculate(PrmForm)
{

	var Gaika, InterestBefor, InterestAfter, UketoriGaika, Money, Interest, ProfitLoss, n
	//入力値等の取得
	//預入金額
	StrMoney			= Number(PrmForm.Money.value);
	//通貨
	StrCurrencyRate 	= PrmForm.CurrencyRate.value;
	//期間
	StrDate 			= Number(PrmForm.Date.value);
	//金利(税引前)
	StrInterestRates	= Number(PrmForm.InterestRates.value);
	//預入時為替手数料
	StrRegist			= Number(PrmForm.Regist.value);
	//満期時為替手数料
	StrExpirationRegist	= Number(PrmForm.ExpirationRegist.value);
	//預入時レート
	StrRate				= Number(PrmForm.Rate.value);
	//満期時レート
	StrExpirationRate	= Number(PrmForm.ExpirationRate.value);
	//StrMoney = StrMoney * 10000

	//預入外貨の算出
	Gaika = StrMoney / (StrRate + StrRegist);

	//税引前外貨利息の算出
	InterestBefor = Gaika * (0.01 * StrInterestRates * (StrDate / 12));

	//税引後外貨利息の算出
	InterestAfter = InterestBefor * 0.8;

	//受取外貨の算出
	UketoriGaika = Gaika + InterestAfter;

	//受取金額の算出
	Money = UketoriGaika * (StrExpirationRate - StrExpirationRegist) * 10000;
	//利回りの算出
	Interest = ((Money / 10000 - StrMoney) / StrMoney * (12 / StrDate)) * 100;
	//損益分岐点の算出
	ProfitLoss = StrMoney / UketoriGaika + StrRegist;

	//小数点以下切り捨て
	if (("" + Money).indexOf(".") > -1){
		Money = String(Money).split(".")[0];
	}

	//カンマ区切り
	n=""
	for (i = ("" + Math.abs(Money)).length - 1 ; i >= 0 ; i--)
	{
		n = ("" + Math.abs(Money)).charAt(i) + n;
		if ((((("" + Math.abs(Money)).length - i) % 3) == 0) && (i != 0)){
		n = "," + n
		}
	}
	if(n != ""){
		PrmForm.HidMoney.value = n;
	}
	else{
		PrmForm.HidMoney.value = Money;
	}
	PrmForm.HidInterest.value = ParameterCheck(Interest,"利回り",2);
	PrmForm.HidProfitLoss.value = ParameterCheck(ProfitLoss,"損益分岐点",2);
	PrmForm.submit();
	return true;
}

/******************************************************************************
* 関数名	：	Check
* 機能 		：	外貨預金利回りシミュレーション - 入力値チェック(メイン)
* 引数-1	：	PrmForm(オブジェクト)
******************************************************************************/
function Check(PrmForm)
{

	var StrErrorStr = "";
	var StrRet = "";

	//入力値等の取得
	StrMoney			= PrmForm.Money.value;
	StrCurrencyRate 	= PrmForm.CurrencyRate.value;
	StrDate 			= PrmForm.Date.value;
	StrInterestRates	= PrmForm.InterestRates.value;
	StrRegist			= PrmForm.Regist.value;
	StrExpirationRegist	= PrmForm.ExpirationRegist.value;
	StrRate				= PrmForm.Rate.value;
	StrExpirationRate	= PrmForm.ExpirationRate.value;

	//預入金額のパラメータチェック
	//PrmForm.Money.value = ParameterCheck(StrMoney,"預入金額",0)
	StrRet = ParameterCheck(StrMoney,"預入金額",0);
	if (StrRet == "") {
		StrErrorStr = "預入金額";
	}
	else{
		PrmForm.Money.value = StrRet;
	}

	//金利のパラメータチェック
	//PrmForm.InterestRates.value = ParameterCheck(StrInterestRates,"金利",2)
	StrRet = ParameterCheck(StrInterestRates,"金利",2);
	if (StrRet == "") {
		if (StrErrorStr == "") {
			StrErrorStr = "金利";
		}
		else {
			StrErrorStr = StrErrorStr + " , 金利";
		}
	}
	else{
		PrmForm.InterestRates.value = StrRet;
	}

	//預入時為替手数料のパラメータチェック
	//PrmForm.Regist.value = ParameterCheck(StrRegist,"預入時為替手数料",2)
	StrRet = ParameterCheck(StrRegist,"預入時為替手数料",2);
	if (StrRet == "") {
		if (StrErrorStr == "") {
			StrErrorStr = "預入時為替手数料";
		}
		else {
			StrErrorStr = StrErrorStr + " , 預入時為替手数料";
		}
	}
	else{
		PrmForm.Regist.value = StrRet;
	}

	//満期時為替手数料のパラメータチェック
	//PrmForm.ExpirationRegist.value = ParameterCheck(StrExpirationRegist,"満期時為替手数料",2)
	StrRet = ParameterCheck(StrExpirationRegist,"満期時為替手数料",2);
	if (StrRet == "") {
		if (StrErrorStr == "") {
			StrErrorStr = "満期時為替手数料";
		}
		else {
			StrErrorStr = StrErrorStr + " , 満期時為替手数料";
		}
	}
	else{
		PrmForm.ExpirationRegist.value = StrRet;
	}

	//預入時レートのパラメータチェック
	//PrmForm.Rate.value = ParameterCheck(StrRate,"預入時レート",2)
	StrRet = ParameterCheck(StrRate,"預入時レート",2);
	if (StrRet == "") {
		if (StrErrorStr == "") {
			StrErrorStr = "預入時レート";
		}
		else {
			StrErrorStr = StrErrorStr + " , 預入時レート";
		}
	}
	else{
		PrmForm.Rate.value = StrRet;
	}

	//満期時レートのパラメータチェック
	//PrmForm.ExpirationRate.value = ParameterCheck(StrExpirationRate,"満期時レート",2)
	StrRet = ParameterCheck(StrExpirationRate,"満期時レート",2);
	if (StrRet == "") {
		if (StrErrorStr == "") {
			StrErrorStr = "満期時レート";
		}
		else {
			StrErrorStr = StrErrorStr + " , 満期時レート";
		}
	}
	else{
		PrmForm.ExpirationRate.value = StrRet;
	}

	if (StrErrorStr == "") {
		//計算メソッド呼び出し
		if ((PrmForm.Money.value == "") || (PrmForm.InterestRates.value == "") || (PrmForm.Regist.value == "") || (PrmForm.ExpirationRegist.value == "") || (PrmForm.Rate.value == "") || (PrmForm.ExpirationRate.value == "")){
			PrmForm.HidMoney.value		= ""
			PrmForm.HidInterest.value	= ""
			PrmForm.HidProfitLoss.value	= ""
			PrmForm.submit();
			return false
		}
		else
		{
			Calculate(PrmForm);
		}
		return true
	}
	else {
		alert(StrErrorStr + "に正しい値を入力してください。");
		return false
	}
}

/******************************************************************************
* 関数名	：	ParameterCheck
* 機能 		：	外貨預金利回りシミュレーション - 入力値チェック(サブ)
* 引数-1	：	StrValue(オブジェクト)
* 引数-2	：	StrValueName(オブジェクト名称)
* 引数-3	：	IntDecPoint(小数点)
******************************************************************************/
function ParameterCheck(StrValue,StrValueName,IntDecPoint)
{
	var DecimalFront, DecimalBack, StrDecPoint; 

	if (StrValue == "") {
		//alert(StrValueName + "に値が入力されていません。");
		return "";
	}
	else if(isNaN(StrValue) == true){
		//alert(StrValueName + "は数値で入力して下さい。");
		return "";
	}else if (("" + StrValue).indexOf(".") > -1){
		DecimalFront = (String(StrValue).split(".")[0]);
		DecimalBack = (String(StrValue).split(".")[1]);
		if (IntDecPoint == 0){
			StrValue = DecimalFront;
		}
		else if(DecimalBack.length > IntDecPoint){
			//小数点桁数が指定桁数よりも多い場合...
			StrValue = DecimalFront + "." + DecimalBack.substr(0,IntDecPoint);
		}else if(DecimalBack.length < IntDecPoint){
			//小数点桁数が指定桁数よりも少ない場合...
			StrDecPoint=""
			for (i = 1;i <= IntDecPoint;i++){
				//指定小数桁まで0埋め
				StrDecPoint = StrDecPoint + "0";
			}			
			//0埋め処理
			StrValue = DecimalFront + "." + (DecimalBack + StrDecPoint).substring(0,IntDecPoint);
		}
	}else if ((("" + StrValue).indexOf(".") == -1) && (IntDecPoint > 0)){
		//小数点が存在せず、指定桁数が1以上の場合...
		StrDecPoint=""
		for (i = 1;i <= IntDecPoint;i++){
			//指定小数桁まで0埋め
			StrDecPoint = StrDecPoint + "0";
		}			
		StrValue = StrValue + "." + StrDecPoint;
		//0埋め処理
		StrValue = StrValue.split(".")[0] + "." + (StrValue.split(".")[1] + StrDecPoint).substring(0,IntDecPoint); 
	}
	
	return StrValue;
}

/******************************************************************************
* 関数名	：	ChangeCurrencyRate
* 機能 		：	外貨預金利回りシミュレーション - 通貨切替時処理
* 引数-1	：	なし
******************************************************************************/
function ChangeCurrencyRate()
{

	StrCurrencyRate 	= FrmForeign.CurrencyRate.value;
	StrCurrencyRate 	= "円/" + StrCurrencyRate;

	FrmForeign.lblRegist.value = StrCurrencyRate;
	FrmForeign.lblExpirationRegist.value = StrCurrencyRate;
	FrmForeign.lblRate.value = StrCurrencyRate;
	FrmForeign.lblExpirationRate.value = StrCurrencyRate;

	return;
}
// -->