var co = new Object;
function recalc_onclick(ctl)
{
  if (ctl=='')
  {

    co.p1D5=eeparseFloatTh(document.mform.p1D5.value);
    co.p1D6=eeparsePercent(document.mform.p1D6.value);
    co.p1D7=eeparsePercent(document.mform.p1D7.value);
    co.p1D8=eeparsePercent(document.mform.p1D8.value);
    calc(co);
    document.mform.p1D14.value=eedisplayFloatNDTh(co.p1D14,2);
    document.mform.p1D15.value=eedisplayFloatNDTh(co.p1D15,2);
    document.mform.p1D16.value=eedisplayFloatNDTh(co.p1D16,2);
    document.mform.p1D19.value=eedisplayFloatNDTh(co.p1D19,2);
    document.mform.p1D20.value=eedisplayFloatNDTh(co.p1D20,2);
    document.mform.p1D21.value=eedisplayFloatNDTh(co.p1D21,2);
    document.mform.p1D24.value=eedisplayFloatNDTh(co.p1D24,2);
    document.mform.p1D25.value=eedisplayFloatNDTh(co.p1D25,2);
    document.mform.p1D26.value=eedisplayFloatNDTh(co.p1D26,2);
  };
};


var eeisus=1;
var eetrue="TRUE";
var eefalse="FALSE";
var eedec=".";
var eeth=",";
var eedecreg=new RegExp("[.]","g");
var eethreg=new RegExp(",","g");
var fmtdaynamesshort=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var fmtdaynameslong=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var fmtmonthnamesshort=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var fmtmonthnameslong=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var fmtstrings=new Array(","," ","$");
var fmtdate5=new Array(34,25,2);

function calc(data)
{
  var c1D5=data.p1D5;
  var c1D6=data.p1D6;
  var c1D7=data.p1D7;
  var c1D8=data.p1D8;
  var c1D14=(pmt((((c1D6)/(12))),(((15)*(12))),(((c1D5)*(-1))),(0),(0)));
  var c1D15=(pmt((((c1D7)/(12))),(((20)*(12))),(((c1D5)*(-1))),(0),(0)));
  var c1D16=(pmt((((c1D8)/(12))),(((30)*(12))),(((c1D5)*(-1))),(0),(0)));
  var c1D19=(((((c1D14)*(12)))*(15)));var c1D20=(((((c1D15)*(12)))*(20)));
  var c1D21=(((((c1D16)*(12)))*(30)));var c1D24=(((c1D19)-(c1D5)));
  var c1D25=(((c1D20)-(c1D5)));
  var c1D26=(((c1D21)-(c1D5)));
  data.p1D14=c1D14;
  data.p1D15=c1D15;
  data.p1D16=c1D16;
  data.p1D19=c1D19;
  data.p1D20=c1D20;
  data.p1D21=c1D21;
  data.p1D24=c1D24;
  data.p1D25=c1D25;
  data.p1D26=c1D26;
}

function myIsNaN(x)
{
  return(isNaN(x)||(typeof x=='number'&&!isFinite(x)));
}

function mod(n,d)
{
  return n-d*Math.floor(n/d);
}

function round(n,nd)
{
  if(isFinite(n)&&isFinite(nd))
  {
    var sign_n=(n<0)?-1:1;
    var abs_n=Math.abs(n);
    var factor=Math.pow(10,nd);
    return sign_n*Math.round(abs_n*factor)/factor;
  }
  else{
    return NaN;
  }
}

function eeparsePercent(str)
{
  var parts=String(str).split('%');
  var tmp=String(parts[0]).replace(eedecreg,".");
  var res=parseFloat(tmp)/100;
  if(isNaN(res))
  {
    return 0;
  }
  else
  {
    return res;
  }
}

function eedisplayFloat(x)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else{
    return String(x).replace(/\./g,eedec);
  }
}

function eedisplayScientific(x,nd)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    var str=String(x.toExponential(nd));
    return str.replace(/\./g,eedec);
  }
}

function eedisplayFloatND(x,nd)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    var res=round(x,nd);
    if(nd>0)
    {
      var str=String(res);
      if(str.indexOf('e')!=-1)return str;
      if(str.indexOf('E')!=-1)return str;
      var parts=str.split('.');
      if(parts.length<2)
      {
        var decimals=('00000000000000').substring(0,nd);
        return(parts[0]).toString()+eedec+decimals;
      }
      else
      {
        var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);
        return(parts[0]).toString()+eedec+decimals;
      }
    }
    else{
      return res;
    }
  }
}

function eedisplayPercent(x)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    var tmp=(x*100).toString();
    return tmp.replace(/\./g,eedec);
  }
}

function eedisplayPercentND(x,nd)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    return eedisplayFloatND(x*100,nd);
  }
}

function eeparseFloatTh(str)
{
  str=String(str).replace(eethreg,"");
  str=String(str).replace(eedecreg,".");
  var res=parseFloat(str);
  if(isNaN(res))
  {
    return 0;
  }
  else
  {
    return res;
  }
}

function eedisplayFloatNDTh(x,nd)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    var res=round(x,nd);
    if(nd>0)
    {
      var str=String(res);
      if(str.indexOf('e')!=-1)return str;
      if(str.indexOf('E')!=-1)return str;
      var parts=str.split('.');
      var res2=eeinsertThousand(parts[0].toString());
      if(parts.length<2)
      {
        var decimals=('00000000000000').substring(0,nd);
        return(res2+eedec+decimals);
      }
      else
      {
        var decimals=((parts[1]).toString()+'00000000000000').substring(0,nd);
        return(res2+eedec+decimals);
      }
    }
    else
    {
      return(eeinsertThousand(res.toString()));
    }
  }
}

function eedisplayPercentNDTh(x,nd)
{
  if(myIsNaN(x))
  {
    return Number.NaN;
  }
  else
  {
    return eedisplayFloatNDTh(x*100,nd);
  }
}

function eeinsertThousand(whole)
{
  if(whole==""||whole.indexOf("e")>=0)
  {
    return whole;
  }
  else
  {
    var minus_sign="";
    if(whole.charAt(0)=="-")
    {
      minus_sign="-";whole=whole.substring(1);
    };
    var res="";
    var str_length=whole.length-1;
    for(var ii=0;ii<=str_length;ii++)
    {
      if(ii>0&&ii%3==0)
      {
        res=eeth+res;
      };
      res=whole.charAt(str_length-ii)+res;
    };
    return minus_sign+res;
  }
}

function eedatefmt(fmt,x)
{
  if(!isFinite(x))return Number.NaN;
  var tmp=0;
  var res="";
  var len=fmt.length;
  for(var ii=0;ii<len;ii++)
  {
    if(fmt[ii]>31)
    {
      res+=fmtstrings[fmt[ii]-32];
    }
    else
    {
      switch(fmt[ii])
      {
        case 2:res+=eemonth(x);
          break;
        case 3:tmp=eemonth(x);
          if(tmp<10)
          {
            res+="0";
          };
          res+=tmp;
          break;
        case 4:res+=fmtmonthnamesshort[eemonth(x)-1];
          break;
        case 5:res+=fmtmonthnameslong[eemonth(x)-1];
          break;
        case 6:res+=eeday(x);
          break;
        case 7:tmp=eeday(x);
          if(tmp<10)
          {
            res+="0";
          };
          res+=tmp;
          break;
        case 8:res+=fmtdaynamesshort[weekday(x,1)-1];
          break;
        case 9:res+=fmtdaynameslong[weekday(x,1)-1];
          break;
        case 10:tmp=year(x)%100;if(tmp<10){
          res+="0";
        };
        res+=tmp;
        break;
        case 11:res+=year(x);
          break;
        case 12:res+=hour(x);
          break;
        case 13:tmp=hour(x);
          if(tmp<10){
            res+="0";
          };
          res+=tmp;
          break;
        case 14:tmp=hour(x)%12;
          if(tmp==0)
          {
            res+="12";
          }
          else
          {
            res+=tmp%12;
          };
          break;
        case 15:tmp=hour(x)%12;
          if(tmp==0)
          {
            res+="12";
          }
          else
          {
            if(tmp<10)
            {
              res+="0";
            };
            res+=tmp;
          };
          break;
        case 16:res+=minute(x);
          break;
        case 17:tmp=minute(x);
          if(tmp<10)
          {
            res+="0";
          };
          res+=tmp;
          break;
        case 18:res+=second(x);
          break;
        case 19:tmp=second(x);
          if(tmp<10){
            res+="0";
          };
          res+=tmp;
          break;
        case 21:
        case 22:if(hour(x)<12)
        {
          res+="AM";
        }
        else
        {
          res+="PM";
        };
        break;
        case 23:res+=eedisplayFloat(x);
          break;
        case 24:tmp=fmt[++ii];
          res+=eedisplayFloatND(x,tmp);
          break;
        case 25:tmp=fmt[++ii];
          res+=eedisplayFloatNDTh(x,tmp);
          break;
        case 26:res+=eedisplayPercent(x);
          break;
        case 27:tmp=fmt[++ii];
          res+=eedisplayPercentND(x,tmp);
          break;
        case 28:tmp=fmt[++ii];
          res+=eedisplayPercentNDTh(x,tmp);
          break;
        case 29:tmp=fmt[++ii];
          res+=eedisplayScientific(x,tmp);
          break;
      };
    };
  };
  return res;
}

function leap_gregorian(year)
{
  return((year%4)==0)&&(!(((year%100)==0)&&((year%400)!=0)));
}
var GREGORIAN_EPOCH=1721425;

function gregorian_to_jd(year,month,day)
{
  return(GREGORIAN_EPOCH-0)+(365*(year-1))+Math.floor((year-1)/4)+(-Math.floor((year-1)/100))+Math.floor((year-1)/400)+Math.floor((((367*month)-362)/12)+((month<=2)?0:(leap_gregorian(year)?-1:-2))+day);
}

function jd_to_gregorian(jd)
{
  var wjd,depoch,quadricent,dqc,cent,dcent,quad,dquad,yindex,year,yearday,leapadj;
  wjd=Math.floor(jd);
  depoch=wjd-GREGORIAN_EPOCH-1;
  quadricent=Math.floor(depoch/146097);
  dqc=mod(depoch,146097);
  cent=Math.floor(dqc/36524);
  dcent=mod(dqc,36524);
  quad=Math.floor(dcent/1461);
  dquad=mod(dcent,1461);
  yindex=Math.floor(dquad/365);
  year=(quadricent*400)+(cent*100)+(quad*4)+yindex;
  if(!((cent==4)||(yindex==4)))
  {
    year++;
  }
  yearday=wjd-gregorian_to_jd(year,1,1);
  leapadj=((wjd<gregorian_to_jd(year,3,1))?0:(leap_gregorian(year)?1:2));
  var month=Math.floor((((yearday+leapadj)*12)+373)/367);
  var day=(wjd-gregorian_to_jd(year,month,1))+1;
  return new Array(year,month,day);
}

function eeday(serial_number)
{
  if(!isFinite(serial_number))
    return Number.NaN;
  if(serial_number<1)
  {
    return 0;
  }
  if(serial_number>60)serial_number--;
  var res=jd_to_gregorian(serial_number+2415020);
  return res[2];
}

function hour(serial_number)
{
  if(!isFinite(serial_number))return Number.NaN;
  var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);
  return Math.floor(res/3600);
}
function minute(serial_number)

{
  if(!isFinite(serial_number))return Number.NaN;
  var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);
  return Math.floor(res/60)%60;
}


function eemonth(serial_number)
{
  if(!isFinite(serial_number))return Number.NaN;
  if(serial_number<1){
    return 1;
  }
  if(serial_number>60)serial_number--;
  var res=jd_to_gregorian(serial_number+2415020);
  return res[1];
}

function second(serial_number)
{
  if(!isFinite(serial_number))return Number.NaN;
  var res=Math.floor((serial_number-Math.floor(serial_number))*86400+0.5);
  return res%60;
}

function weekday(serial_number,return_type)
{
  if(!isFinite(return_type)||!isFinite(serial_number))return Number.NaN;
  if(return_type<1||return_type>3)return Number.NaN;
  var res=Math.floor(serial_number+6)%7;
  switch(Math.floor(return_type))
  {
    case 1:return res+1;
    case 2:return(res+6)%7+1;
    case 3:return(res+6)%7;
  };
  return "hej";
}

function year(serial_number)
{
  if(!isFinite(serial_number))
    return Number.NaN;
  if(serial_number<1)
  {
    return 1900;
  }
  if(serial_number>60)serial_number--;
  var res=jd_to_gregorian(serial_number+2415020);
  return res[0];
};

function pmt(rate,nper,pv,fv,type)
{
  if(rate==0){
    return-pv/nper;
  }
  else
  {
    var pvif=Math.pow(1+rate,nper);
    var fvifa=(Math.pow(1+rate,nper)-1)/rate;
    var type1=(type!=0)?1:0;
    return((-pv*pvif-fv)/((1+rate*type1)*fvifa));
  }
}

function explain(value){
  if(document.getElementById("unit").value=="US Dollars")
  {
    document.getElementById("cu1").value="US Dollars"
    document.getElementById("mon1").value="US Dollars / Month"
    document.getElementById("cu2").value="US Dollars"
    document.getElementById("cu3").value="US Dollars"
    document.getElementById("mon2").value="US Dollars / Month"
    document.getElementById("mon3").value="US Dollars / Month"
    document.getElementById("cu4").value="US Dollars"
    document.getElementById("cu5").value="US Dollars"
    document.getElementById("cu6").value="US Dollars"
    document.getElementById("cu7").value="US Dollars"
  }
  if(document.getElementById("unit").value=="Canadian Dollars")
  {
    document.getElementById("cu1").value="Canadian Dollars"
    document.getElementById("mon1").value="Canadian Dollars / Month"
    document.getElementById("cu2").value="Canadian Dollars"
    document.getElementById("cu3").value="Canadian Dollars"
    document.getElementById("mon2").value="Canadian Dollars / Month"
    document.getElementById("cu4").value="Canadian Dollars"
    document.getElementById("cu5").value="Canadian Dollars"
    document.getElementById("cu6").value="Canadian Dollars"
    document.getElementById("mon3").value="Canadian Dollars / Month"
    document.getElementById("cu7").value="Canadian Dollars"
  }
  if(document.getElementById("unit").value=="Pounds")
  {
    document.getElementById("cu1").value="Pounds"
    document.getElementById("mon1").value="Pounds / Month"
    document.getElementById("cu2").value="Pounds"
    document.getElementById("cu3").value="Pounds"
    document.getElementById("mon2").value="Pounds / Month"
    document.getElementById("cu4").value="Pounds"
    document.getElementById("cu5").value="Pounds"
    document.getElementById("cu6").value="Pounds"
    document.getElementById("mon3").value="Pounds / Month"
    document.getElementById("cu7").value="Pounds"
  }
  if(document.getElementById("unit").value=="Euro")
  {
    document.getElementById("cu1").value="Euro"
    document.getElementById("mon1").value="Euro / Month"
    document.getElementById("cu2").value="Euro"
    document.getElementById("cu3").value="Euro"
    document.getElementById("mon2").value="Euro / Month"
    document.getElementById("cu4").value="Euro"
    document.getElementById("cu5").value="Euro"
    document.getElementById("cu6").value="Euro"
    document.getElementById("mon3").value="Euro / Month"
    document.getElementById("cu7").value="Euro"
  }
  if(document.getElementById("unit").value=="Australian Dollars")
  {
    document.getElementById("cu1").value="Australian Dollars"
    document.getElementById("mon1").value="Australian Dollars / Month"
    document.getElementById("cu2").value="Australian Dollars"
    document.getElementById("cu3").value="Australian Dollars"
    document.getElementById("mon2").value="Australian Dollars / Month"
    document.getElementById("cu4").value="Australian Dollars"
    document.getElementById("cu5").value="Australian Dollars"
    document.getElementById("cu6").value="Australian Dollars"
    document.getElementById("mon3").value="Australian Dollars / Month"
    document.getElementById("cu7").value="Australian Dollars"
  }
}

function codename() {

  if(document.mform.unit.selected)
  {
    document.mform.p1D5.disabled=true;
    document.mform.p1D6.disabled=true;
    document.mform.p1D7.disabled=true;
    document.mform.p1D8.disabled=true;

  }

  else
  {
    document.mform.p1D5.disabled=false;
    document.mform.p1D6.disabled=false;
    document.mform.p1D7.disabled=false;
    document.mform.p1D8.disabled=false;

  }
}