function Form_FR_OK()
{

var gk = document.forms[0].grundkosten.value;
while (gk.indexOf(".") >= 0) gk = gk.replace(".","");
var nGK = gk.replace(",",".");
nGK = nGK *1;

  
var bk = document.forms[0].baukosten.value;
while (bk.indexOf(".") >= 0) bk = bk.replace(".","");
var nBK = bk.replace(",",".");
nBK = nBK *1;

var sk = document.forms[0].sonstkosten.value;
while (sk.indexOf(".") >= 0) sk = sk.replace(".","");
var nSK = sk.replace(",",".");
nSK = nSK *1;



if (nGK + nBK + nSK > 0)
  {
  //return true;
  }
else
  {
  alert("Geben Sie bitte gültige Werte bei den Kosten an!");
  document.forms[0].parada.value='NOK'
  return false;
  }
  
// ------- optionale werte ....

var ek = document.forms[0].eigenkap.value;
while (ek.indexOf(".") >= 0) ek = ek.replace(".","");
var nEK = ek.replace(",",".");
nEK = nEK *1;

var el = document.forms[0].eigenleist.value;
while (el.indexOf(".") >= 0) el = el.replace(".","");
var nEL = el.replace(",",".");
nEL = nEL *1;

if (nEK + nEL >= 0)
  {
  //return true;
  }
else
  {
  alert("Geben Sie bitte gültige Werte beim Eigenkapital bzw. bei der Eigenleistung an!");
  document.forms[0].parada.value='NOK'
  return false;
  }

var mi = document.forms[0].miete.value;
while (mi.indexOf(".") >= 0) mi = mi.replace(".","");
var nMI = mi.replace(",",".");
nMI = nMI *1;

if (nMI >= 0)
  {
  //return true;
  }
else
  {
  alert("Geben Sie bitte gültige Werte bei der Miete an!");
  document.forms[0].parada.value='NOK'
  return false;
  }
    
  
  
  
document.forms[0].parada.value='OK'  
return true;  
}





function Trenner(number)
    {
    number = '' + number;
    var nachkomma =",00";
    var vorkomma ;
    if (number.lastIndexOf(",") >= 0)
	  {
	  nachkomma = number.substring(number.lastIndexOf(",")),number.length;
	  nachkomma = nachkomma.substr(0,3);
	  while (nachkomma.length < 3) nachkomma = nachkomma + '0';
	  number = number.substr(0,number.lastIndexOf(","))
	  }


    if (number.length > 3)
	 {
	 var mod = number.length % 3;
	 var output = (mod > 0 ? (number.substring(0,mod)) : '');
	 for (i=0 ; i < Math.floor(number.length / 3); i++)
	   {
	   if ((mod == 0) && (i == 0)) output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
	   else
	   // hier wird das Trennzeichen festgelegt mit '.'
	   output+= '.' + number.substring(mod + 3 * i, mod + 3 * i + 3);
	   }

	 vorkomma = output;
	 }
	 else vorkomma = number;
	return vorkomma; // + nachkomma;
	}



function trim (f) {
    var start = -1;
    var end   = -1;
    var i;
    var len = f.value.length;
    for (i = 0; i < len;  i++) {
      if (f.value.charAt(i) != ' ') {
        start = i;
        break;
      }
    }
    for (i = len-1; i >= 0;  i--) {
      if (f.value.charAt(i) != ' ') {
        end = i;
        break;
      }
    }
    if (start <= end) {
      f.value = f.value.substring (start, end+1);
    }
    if (start == -1 && end == -1) {
      f.value = '';
    }
  }

function checkNumber (v) {
    var start = 0;
    if (v.value && v.value.charAt(0) == '-') start = 1;
    for (i = start; i < v.value.length; i++)
    {
      if (v.value.charAt (i) < '0' || v.value.charAt(i) > '9') return false;
    }
    return true;
  }

  //
  // Monate addieren bzw. subtrahieren
  //

function calc_months(month,year,add_month){

  // a0 Monate und a1 Jahre

    var a = new Object();

    a[0] = 1.0 * month + (add_month % 12);

    a[1] = 1.0 * year + (add_month -(add_month % 12))/12;

    if (a[0] > 12){
      a[0] =  a[0] - 12;
      a[1] =  a[1] + 1;
    }
    if (a[0] <= 0){
      a[0] =  a[0] + 12;
      a[1] =  a[1] - 1;
    } return a;
  }


  //
  // Letzter Tag des Monats (31,30,29,28?)
  //

function lastdayofmonth(month,year){
  // erwartet daten in gueltiger Form !
  // 1<=month<=12, 1583<=year


    var     day = 31;

    if (month == 4 || month == 6 || month == 9 || month == 11){
      day = 30;
    }

    if ( month == 2 && ((year%4)!=0 ||
                        ((year%100 == 0) && (year%400 !=0)) ) ) {
      day = 28;
    }
    else if (month == 2){
      day = 29;
    } return day;
  }
  //
  // Gueltiges Datum ?
  //

function isdate(ds,ms,ys){
  //  the year has to be greater than 1582

    if (ys <= 1582){
            return false;
    }
    if (ms<1 || ms > 12){
      return false;
    }
    if (ds <1 || ds >31){
      return false;
    }
    if ((ms == 4 || ms == 6 || ms == 9 || ms == 11) && ds > 30) {
      return false;
    }
    if ( ms == 2  && (  ds > 29  ||
                        ((ys%4)!=0 && (ds>28)) ||
                        ((ys%100 == 0) &&  (ys%400 !=0) && (ds>28))
                        )
         ) {
      return false;
    }     return true;
  }

  //
  // Die Eingabe des Datums in t m jjjj zerlegen und
  // die Eingabe uebepruefen
  //

function checkDate(DatumName,field){
    s=new String(field.value);
    a=new Array();

//    if (s.length==0) {
//      return true;
//    }

    if (s.length > 10) {
                 alert(DatumName + ": Geben Sie bitte das Datum im Format t.m.jjjj ein.");

      return false;
    }

    a=s.split('.');


    if (a.length!=3) {
                alert(DatumName + ": Geben Sie bitte das Datum im Format t.m.jjjj ein.");

          // field.value="";
      field.focus();
      return false;           }

    for (var i=0;i<a.length;i++){
      var v=parseFloat(a[i]);

      if (isNaN(v)) {

                  alert(DatumName + ": Fehlerhafte Eingabe!\nNur Ziffern sind als Datumsang abe erlaubt.\n" + a[i] + " ist keine Ziffer!");
                // field.value="";
        field.focus();
        return false;               }
    }

    s=a.join('.');

    if(!isdate(a[0],a[1],a[2])){

      if (a[2]< 100){
             alert( DatumName + ": Das Jahr bitte vierstellig angeben");
      }
      else if  (parseFloat(a[2]) < 1583) {
                   alert( DatumName + ": Daten vor dem Jahr 1583 werden ignoriert");
      }
      else {
                   alert(DatumName + ": " + s + " ist kein korrektes Datum.");
      }
              // field.value="";
      field.focus();
      return false;      }
    else {
      field.value=s;
      return true;         }
  }

function WertFormat(field)
{
	var Wert = field.value;
	while (Wert.indexOf(".") >= 0) Wert = Wert.replace(".","");
	field.value = Trenner(Wert);
}


function DatFormat(field)
{
var sh = "";

if (field.value.length == 8 )
   {
   sh = field.value.substr(0,2) + '.' + field.value.substr(2,2) + '.' + field.value.substr(4,4);
   field.value = sh;
   }
}

function FormOK()
{
var Wert = document.forms[0].Wert.value;
while (Wert.indexOf(".") >= 0) Wert = Wert.replace(".","");
var nWert = Wert.replace(",",".");
nWert = nWert *1;

if (nWert > 0)
  {
  document.forms[0].Wert.value = Trenner(Wert);
  DatFormat(document.forms[0].DatumStart);
  DatFormat(document.forms[0].DatumEnde);

  // Sind denn die Datums OK?
  if (checkDate('Startdatum',document.forms[0].DatumStart) == false ) {return false};
  if (checkDate('Enddatum',document.forms[0].DatumEnde) == false ) {return false};

  }
else
  {
  alert("Geben Sie bitte einen gültigen Wert ein!");
  document.forms[0].Wert.focus();
  return false;
  }
// Stimmen die Datumsangaben logisch?
var xd = new Array();

// MaxDatum
xd=document.forms[0].DatumMax.value.split('.');
var dDatumMax = new Date(xd[2],xd[1]-1,xd[0]);

// EndDatum
xd=document.forms[0].DatumEnde.value.split('.');
var dDatumEnde = new Date(xd[2],xd[1]-1,xd[0]);

// StartDatum
xd=document.forms[0].DatumStart.value.split('.');
var dDatumStart = new Date(xd[2],xd[1]-1,xd[0]);

if (xd[2] < 1900)
   {
   alert ("Das Startdatum darf nicht vor dem 01.01.1900 liegen!");
   document.forms[0].DatumStart.focus();
   return false;
   }

if ( dDatumStart > dDatumEnde)
   {
   alert ("Das Startdatum darf nicht hinter den Enddatum liegen!");
   document.forms[0].DatumStart.focus();
   return false;
   }

if (( dDatumEnde > dDatumMax) && (document.forms[0].RWeg[3].checked == false))
   {
   alert ("Das Enddatum liegt hinter dem " + document.forms[0].DatumMax.value +  ". Für die Berechnung des darauf folgenden Zeitraumes wird der aktuelle Leitzins verwendet.");
   document.forms[0].DatumEnde.focus();
   }

// ALTD - Wert angegeben?


if ((document.forms[0].RWeg[2].checked == true) && (document.forms[0].ALTD_Wert.value * 1 == 0 ))
   {
   alert ("Geben Sie bitte die Prozentpunkte über dem Basiszinssatz an!");
   document.forms[0].ALTD_Wert.focus();
   return false;
   }

// ALTS - Wert angegeben?


if ((document.forms[0].RWeg[3].checked == true) && (document.forms[0].ALTS_Wert.value * 1 == 0 ))
   {
   alert ("Geben Sie bitte den Prozentsatz an!");
   document.forms[0].ALTS_Wert.focus();
   return false;
   }
}
