
function convertMoney(obj,val) {
  var sum=eval('obj.sum'+val);
  var rez=eval('obj.rez'+val);
  var cmb1=eval('obj.cmb1'+val);
  var cmb2=eval('obj.cmb2'+val);
  var krs1=eval('obj.krss1'+val);
  var krs2=eval('obj.krss2'+val);
  var valuta1=cmb1.options[cmb1.selectedIndex].text;
  var valuta2=cmb1.options[cmb2.selectedIndex].text;
  var summa=sum.value;summa=eval(ToFloat(summa,2));sum.value=summa;
  if(val==1) {var idx1=1;var idx2=0;} else {var idx2=1;var idx1=0;}
  if(summa==0) {var result='0';kurss1='0';kurss2='0';}
  else {
    if(valuta1==valuta2) {
      var result=summa;kurss1='1';kurss2='1';
    } else {
      var val1=sc[valuta1][idx1];var val2=sc[valuta2][idx2];
      var kurss1=val1/val2; var kurss2=1/kurss1;
      kurss1=Math.round(kurss1*10000)/10000; kurss2=Math.round(kurss2*10000)/10000;
      var result=Math.round(summa*kurss1*100)/100; result=result.toString();
    }
  }
  krs1.value=valuta1+":"+valuta2+" - "+kurss1;krs2.value=valuta2+":"+valuta1+" - "+kurss2;
  rez.value=result;
}

function ToFloat(val,tp) {
  var FloatSign=new Array('1','2','3','4','5','6','7','8','9','0');
  if(tp==2) {FloatSign[10]='.';}
  var fcnt=FloatSign.length;
  var newval="";val=val+" "; var cnt=val.length;
  for(i=0;i<cnt;i++) {
    sign=val.substr(i,1);
    if(tp==2) {if(sign==",") {sign=".";}}
    for(k=0;k<fcnt;k++) {if(sign==FloatSign[k]) {newval=newval+sign;break;}}
    if(tp==2) {if(sign==".") {FloatSign[10]='';}}
  }
  if (newval=="") {newval=0;}

  newval = newval + "";
  if (newval.charAt(newval.length - 1) == ".") {newval = newval.substr(0,newval.length - 1);}

  return newval;
}

function getZconstant(rate) {
  return 1/(1+(rate/12));
}

function PMT(rate,period,summa,ptype,result)
{
  var mPeriod=parseInt(period.value);
  if(mPeriod == 0 || isNaN(mPeriod)) mPeriod=1;
  period.value=mPeriod;

  var fSumma=eval(ToFloat(summa.value,2));
  if(fSumma=="") {fSumma=0;}
  summa.value=fSumma;

  rate.value=ToFloat(rate.value,2);
  var fRate=eval(rate.value);
  if(fRate=="") {fRate=1;}
  rate.value=fRate;
  fRate=fRate/100;

  if(ptype.options[ptype.selectedIndex].value==2) {mPeriod=mPeriod*12;}
  var Z=getZconstant(fRate);
  fResult=((1-Z)*fSumma)/(Z*(1-Math.pow(Z,mPeriod)));
  result.value=Math.round(fResult*100)/100;
}

function PV(rate,period,summa,ptype,result) {
  var mPeriod=ToFloat(period.value,1);
  if(mPeriod=="") {mPeriod=1;}
  period.value=mPeriod;

  var fSumma=eval(ToFloat(summa.value,2));
  if(fSumma=="") {fSumma=0;}
  summa.value=fSumma;

  rate.value=ToFloat(rate.value,2);
  var fRate=eval(rate.value);
  if(fRate=="") {fRate=1;}
  rate.value=fRate;
  fRate=fRate/100;

  if(ptype.options[ptype.selectedIndex].value==2) {mPeriod=mPeriod*12;}
  var Z=getZconstant(fRate);
  fResult=(fSumma*Z*(1-Math.pow(Z,mPeriod)))/(1-Z);
  result.value=Math.round(fResult*100)/100;
}

function DepozitRate(dtype,summ,ctype,period,ptype,rate) {
  var dep=dtype.options[dtype.selectedIndex].value;

  var floatSumm=eval(ToFloat(summ.value,2));
  if(floatSumm==0) {summ.value='';}

  period.value=ToFloat(period.value,1);

  if(ptype.options[ptype.selectedIndex].value==2) {var intPeriod=period.value*12;}
  else {var intPeriod=period.value;}

  intPeriod=intPeriod*30;
  intYearMode=rts[dep][2];

  if(intPeriod<rts[dep][0]||(intPeriod>=rts[dep][1]&&rts[dep][1]!=0)) {
    period.value=Math.round(rts[dep][0]/30);
    ptype.selectedIndex=0;
    intPeriod=rts[dep][0];
  }

  var min=0;
  var floatMinProc='';
  var floatProc='';
  var arr=eval('rt'+dep);
  var cur=ctype.options[ctype.selectedIndex].value;
  if(typeof(arr[cur])=='object') {
    eval('arr=arr["'+cur+'"];');
    var cnt=arr.length;
    for(i=0;i<cnt;i++) {
      var tmp=arr[i];
      if(typeof(tmp)=='object') {
        if(tmp[0]<min||min==0) {min=tmp[0];floatMinProc=tmp[2];}
        if(floatSumm>=tmp[0]&&(floatSumm<tmp[1]||tmp[1]==0)) {floatProc=tmp[2];}
      }
    }
  }
  if(floatProc!='') {rate.value=floatProc.toString();}
  else {summ.value=min;rate.value=floatMinProc.toString();}
}
function CountDepozit(dtype,summ,period,ptype,rate,rezult) {
  var dep=dtype.options[dtype.selectedIndex].value;
  intYearMode=rts[dep][2];
  rate.value=ToFloat(rate.value,2);

  if(ptype.options[ptype.selectedIndex].value==2) {var intPeriod=period.value*12;}
  else {var intPeriod=period.value;}

  intPeriod=intPeriod*30;

  rezult.value=Math.round((summ.value*intPeriod*(eval(rate.value)/100)/intYearMode)*100)/100;
}

function fundsCalculator (summ, fond, part, number)
{
  summ.value = ToFloat(summ.value,2);
  var tmp = fond.options[fond.selectedIndex].value;

  var res = summ.value / dt[tmp];

  res = Math.floor(res);
  part.value = dt[tmp] * 100 / 100;
  number.value = res;

  if (res == 0) {showAlert (dt[tmp]);}
}

