restschuld=new Array();
zinssumme=new Array();
t0=new Array();
lz=new Array();
var z=1;
//--------------------------------------------------------------------------------------------------------

function clear_ergebnis(form) {
  form.monatslast.value="";
  form.laufzeit_ende.value="";
  form.aufwand.value="";
  form.kosten.value="";
  for (i=0;i<=7;i++) {
    form.laufzeit[i].value=i+1;
  }
  clear_liste(form);
  z=1
}
//--------------------------------------------------------------------------------------------------------

function clear_liste(form) {
  for (i=0;i<=7;i++) {
    form.restschuld[i].value="";
    form.zinssumme[i].value="";
    form.a_tilgung[i].value="";
  }
}

function auf(form) {
  if (form.restschuld[7].value>0) { 
    z=z+8;
  }
  for (i=0;i<=7;i++) { 
    form.laufzeit[i].value=z+i;
  }
  berechne(form);
}
//--------------------------------------------------------------------------------------------------------

function ab(form) {
  if (form.laufzeit[0].value>1) {
    z=z-8;
  }
  for (i=0;i<=7;i++) {
    form.laufzeit[i].value=z+i;
  }
  berechne(form);
}


//----------------------------------------------------------------------------------------
function auslesen(wert) {
  wert=wert.replace(/,/,".");
  wert=parseFloat(wert);
  if (isNaN(wert)) {
    wert=0;
  }
  return wert
}

//--------------------------------------------------------------------------------------------------------

function berechne(form) {

  if(form.tilgung.value <= 0) {
    alert("Tilgungsfreie Darlehen werden mit diesem Hypothekenrechner nicht berechnet!");
    form.tilgung.focus();
    return;
  }

  zinssatz=auslesen(form.zinssatz.value);form.zinssatz.value=zinssatz;
  zinssatz=zinssatz/100;if(zinssatz<=0)zinssatz=0.000000001;
  tilgung=auslesen(form.tilgung.value);form.tilgung.value=tilgung;
  tilgung=tilgung/100;
  sondertilgung=auslesen(form.sondertilgung.value);form.sondertilgung.value=sondertilgung;
  darlehen=auslesen(form.darlehen.value);form.darlehen.value=darlehen;
  saldo=darlehen;
  monatslast=(zinssatz+tilgung)*darlehen/12;
  mz=0,summesondertilgung=0,aufwand=0,laufzeit_ende=0,zins_l=52;

  for (i=0;i<=7;i++) {
    restschuld[i]=0;
    zinssumme[i]=0;
    lz[i]=form.laufzeit[i].value*12;
  }
  var mz=1;
  if (document.links.length !=zins_l) {
    monatslast=1.2*monatslast;
  }
  
  form.monatslast.value=(Math.round(monatslast*100)/100);
  for (i=1;i<=1200;i++) {
    if (i==1200) {
      alert("Die Daten sind unrealistisch! Überprüfen Sie die Eingaben.");
      form.zinssatz.focus();
      return;
    }
    if (saldo<=0) { 
      break;
    }
    if (mz==12) {
      saldo=saldo-sondertilgung;
      summesondertilgung=summesondertilgung+sondertilgung;	
    }
    mz=mz+1;
    if (mz==13) {
      mz=1;
    }
    tilgung=monatslast-saldo*zinssatz/12;
    t=100*tilgung*12/saldo;	
    saldo=saldo-tilgung;
    aufwand=aufwand+monatslast;
    if (saldo<=0) {
      aufwand=aufwand+saldo;
      saldo=0;
    }
    laufzeit_ende=i/12;
  
    for (x=0;x<=7;x++) {	
      if (i==lz[x]){
        restschuld[x]=saldo;
        zinssumme[x]=lz[x]*monatslast-(darlehen-saldo-summesondertilgung);
        t0[x]=t;
      }
    }
  }

  /* Werte anzeigen, Nullen ausblenden */
  for (x=0;x<=7;x++) {
    if (restschuld[x]>0) {			
      form.zinssumme[x].value=Math.round(zinssumme[x]);		
      form.restschuld[x].value=Math.round(restschuld[x]);
      if (t0[x]<100-zinssatz*100) {
        form.a_tilgung[x].value=t0[x].toFixed(2)+"%";
      }
      else {
        form.a_tilgung[x].value="";
      }
    }
    else {
      form.zinssumme[x].value="";		
      form.restschuld[x].value="";
      form.a_tilgung[x].value="";
    }
  }
  form.laufzeit_ende.value=laufzeit_ende.toFixed(1);
  form.kosten.value=Math.round(aufwand+summesondertilgung-darlehen);
  form.aufwand.value=Math.round(aufwand+summesondertilgung);
}

