function Berakna(pv, fv, ranta, perioder, betalningsmodell, forskott) {
    var sppv;
    var i;
    var s;
    var uspv;
    var n;
    var manadskostnad;
    var belopp_netto;

    if (false) {
    	alert(pv);
    	alert(fv);
    	alert(ranta);
    	alert(perioder);
    	alert(betalningsmodell);
    	alert(forskott);
    }
    
    i=ranta/1200;

    if (betalningsmodell==0) {
      belopp_netto = parseFloat(pv);

      s=forskott;
      
      sppv=Math.pow((1+i), -perioder);
      uspv=(1-(sppv))/i;

      manadskostnad = (belopp_netto - (fv * sppv)) / ((1 + (i * s)) * uspv);
    }
    else {
      manadskostnad = (pv-fv)/perioder;
    }

    return manadskostnad;
}

function Restvarde(pv, manadskostnad, ranta1, perioder1, ranta2, perioder2, betalningsmodell) {
    var sppv;
    var i;
    var s;
    var uspv;
    var n;
    var manadskostnad;
    var belopp_netto;

    if (false) {
      alert(pv);
      alert(manadskostnad);
      alert(ranta1);
      alert(perioder1);
      alert(ranta2);
      alert(perioder2);
      alert(betalningsmodell);
    }
    
    i=ranta1/1200;
    n=perioder1;

    if (betalningsmodell==0) {
      s=0;
      sppv=Math.pow((1+i), -n);
      uspv=(1-(sppv))/i;

      fv = (pv - (manadskostnad * ((1 + (i * s)) * uspv))) / sppv;
    }
    else {
      manadskostnad = (belopp/n) + (belopp * i) + parseFloat(upplaggningsavgift) + parseFloat(admavgift);
    }

    return fv;
}

function EffektivRanta(belopp, upplaggningsavgift, admavgift, ranta, antalperioder, betalningsmodell) {
  var ar;
  var manadskostnad;
  var calcranta;
  var kreditkostnad;
  var kredperar;
  var kredkostproc;
  var effektivranta;

  ar = antalperioder/12;

  manadskostnad = (belopp * Math.pow((1+ranta/120000),antalperioder)*(ranta/120000))/(Math.pow((1+ranta/120000),antalperioder)-1);

  manadskostnad = Math.round(manadskostnad + admavgift);

  calcranta = ranta/120000;

  kreditkostnad = (antalperioder * admavgift) + parseFloat(upplaggningsavgift);
  kredperar = kreditkostnad/ar;
  kredkostproc = (100*kredperar)/(belopp/2);
          
  calcranta = calcranta + kredkostproc/1200
          
  effektivranta = Math.ceil(100*100*(Math.pow(1+calcranta,12)-1))/100;

  return effektivranta;
}

function getfieldandcheck(obj, oblig) {
	var temp;
  temp = 0;
  
  var t = new String(obj.value)
  //alert("val='" + t + "', length=" + t.length);
  
  // Detta bör göras på annat sätt. Netscape skickar två blanktecken som icke satt värde
  if ((getfieldvalue(obj) != "") && (getfieldvalue(obj) != "  ")) {
  	if (isNaN(fixnum(getfieldvalue(obj)))) {
  		return false;
  	}
  	else {
  		temp = getfieldvalue(obj);
  	}
  }
  else {
  	if (oblig == true) {
  		return false;
  	}
  }
  //alert("name=" + obj.name + ", type=" + obj.type + ", value='" + temp + "'");
  return temp;
}