///////////////////////////////////
//  Deposit simulator            //
//  Copyright (C) Forex Watcher  //
//  All rights reserved          //
/////////////////////////////////// 
function answer(){
  judge=1;
  n=document.form1.startYear.value;
  check(n);

  n=document.form1.startMonth.value;
  check(n);

  n=document.form1.startDay.value;
  check(n);

  n=document.form1.endYear.value;
  check(n);

  n=document.form1.endMonth.value;
  check(n);

  n=document.form1.endDay.value;
  check(n);

  n=document.form1.amount1.value;
  check(n);

  m=document.form1.depoRate.value;
  checkRate(m);

  m=document.form1.fxRate1.value;
  checkRate(m);

  m=document.form1.fxRate2.value;
  checkRate(m);

if(judge==1){
  calc();

  } else {
    document.form1.term.value="(^^;";
    document.form1.yield1.value="@o@?";
    document.form1.fxRate3.value="@o@?";
    alert("数値が不正です");
  }
}
//利回り計算
function calc(){
  yy1=parseFloat(document.form1.startYear.value);
  mm1=parseFloat(document.form1.startMonth.value);
  dd1=parseFloat(document.form1.startDay.value);
  yy2=parseFloat(document.form1.endYear.value);
  mm2=parseFloat(document.form1.endMonth.value);
  dd2=parseFloat(document.form1.endDay.value);

  p=0;
  if(mm1<=2){
    p=12; yy1-=1;
    }
  vDay1=dd1+Math.floor((mm1-3+p)*30.6+0.5)+Math.floor(yy1*365.25)
      -Math.floor(yy1/100)+Math.floor(yy1/400) - 306;

  p=0;
  if(mm2<=2){
    p=12; yy2-=1;
    }
  vDay2=dd2+Math.floor((mm2-3+p)*30.6+0.5)+Math.floor(yy2*365.25)
      -Math.floor(yy2/100)+Math.floor(yy2/400) - 306;

  days=vDay2 - vDay1;
  if(days <= 0){
    alert("日付を確認して下さい");
    document.form1.term.value="??";
    document.form1.yield1.value="@o@?";
    document.form1.fxRate3.value="@o@?";
  } else {
  fx1=parseFloat(document.form1.fxRate1.value);
  fx2=parseFloat(document.form1.fxRate2.value);
  r  =parseFloat(document.form1.depoRate.value);
    j=document.form1.basedays.selectedIndex;
  bs =parseFloat(document.form1.basedays.options[j].value);
  amt=parseFloat(document.form1.amount1.value);

  tmp=((1+r/100*days/bs*0.8)*fx2-fx1)/fx1 * 100 * 365 / days;
  y  =Math.round(tmp*1000)/1000;
  document.form1.term.value=days;
  document.form1.yield1.value=y;
  breakEven=fx1 / (0.8*r*days/(bs*100) + 1);
  document.form1.fxRate3.value=Math.round(breakEven*1000) / 1000;

  interest = Math.round( amt/fx1 * r/100 * 0.8 * days/bs * fx2 );
  prin = Math.round( amt/fx1 * fx2 );
  result= interest + prin - amt;

  int_txt =add_comma(interest);
  dummy =int_txt.length;
  document.form1.risoku.value =add_blank(14) +int_txt;
  prin_txt =add_comma(prin);
  dummy =prin_txt.length;
  document.form1.principal.value =add_blank(18) +prin_txt;
  intprin_txt =add_comma(interest+prin);
  dummy =intprin_txt.length;
  document.form1.amount2.value =add_blank(18) + intprin_txt;
  result_txt =add_comma(result);
  dummy =result_txt.length;
  document.form1.PandL.value = add_blank(14) + result_txt;
  }
}

//整数チェック
function check(n){
  strg=n;
  strgLength=strg.length;

  if(strg==""){
    judge=0;
  } else {

  var i=0;
  while( i<=strgLength - 1){
    letter=strg.charAt(i);
    if(letter=="0" || letter=="1" || letter=="2" || letter=="3" || 
           letter=="4" || letter=="5" || letter=="6" || letter=="7" || 
           letter=="8" || letter=="9"){
      i++;
      }
    else {
      judge=0;
      break;
      }
    }

  if(parseFloat(strg)==0){
    judge=0;
    }
  }
}
//レートチェック
function checkRate(m){
  string=m;
  stringLength=string.length;

  if(string==""){
    judge=0;
  } else {

  var i=0;
  counter=0;
  while( i<=stringLength - 1){
    letter1=string.charAt(i);
    if(letter1=="0" || letter1=="1" || letter1=="2" || letter1=="3" || 
           letter1=="4" || letter1=="5" || letter1=="6" || letter1=="7" || 
           letter1=="8" || letter1=="9" || letter1=="."){
        if(letter1=="."){
          counter+=1;
          if(counter>=2){
            judge=0;
            break;        
            }
          }
    i++;
      }
    else {
      judge=0;
      break;
      }
    }
  if(parseFloat(string)==0){
    judge=0;
    }
  }
}

//カンマ付け
function add_comma(x){
	strg_amt = x + "";
	p= strg_amt.length -1;
	amt_txt = strg_amt.charAt(p);
	k = 1;
  if( x >= 0 ){
	while( p>0 ){
		k += 1;
		if( k % 3 == 1 ){
		amt_txt = "," + amt_txt;
		}
		p = p -1;
		amt_txt = strg_amt.charAt(p) + amt_txt;
	}
	return amt_txt;
  }
  else {
	while( p>1 ){
		k += 1;
		if( k % 3 == 1 ){
		amt_txt = "," + amt_txt;
		}
		p = p -1;
		amt_txt = strg_amt.charAt(p) + amt_txt;
	}
    amt_txt = "-" + amt_txt;
	return amt_txt;
  }
}

function add_blank(y){
  blanks ="";
  q =1;
  while(q<=y-dummy){
    blanks =blanks + " ";
    q +=1;
  }
  return blanks;
}
