function calc(field)
{
	f = document.forms[0];
	if( field.value == "" ) {
		field.value = 0;
	}
	if( isNaN( field.value ) ) {
		alert( "Nur ganze Zahlen erlaubt" );
		field.value = 0;
	}
	zusatzkosten  = ( 
		( f.aufschliesskosten.value * 1 )
		+ ( f.sanumbau.value * 1 )
		+ ( f.zubau.value * 1 )
		+ ( f.einrichtung.value * 1 )
		+ ( f.garten.value * 1 )
		+ ( f.sonstig.value * 1 )
	) * 1;

	sumbedarf = (
		( f.immokaufpreis.value * 1 )
		- ( f.foerderung.value * 1 )
		+ ( zusatzkosten * 1 )
	) * 1;
	f.sumbedarf.value = sumbedarf;

	finanzbedarf = (
		( sumbedarf * 1 )
		- ( f.eigenmittel.value * 1 )
	) * 1;
	f.finanzbedarf.value = finanzbedarf;

	// Kaufnebenkosten
	notar = ( f.immokaufpreis.value * ( f.notar_in.value * 1 ) / 100 ) * 1;
	grunderwerbsst = ( f.immokaufpreis.value * 3.5 / 100 ) * 1;
	grundbuchgeb = ( f.immokaufpreis.value * 1 / 100 ) * 1;
	makler = ( f.immokaufpreis.value * ( f.makler_in.value * 1 ) / 100 ) * 1;
	f.notar.value = Math.round( notar );
	f.grunderwerbsst.value = Math.round( grunderwerbsst );
	f.grundbuchgeb.value = Math.round( grundbuchgeb );
	f.makler.value = Math.round( makler );

	kaufnebenkosten = notar + grunderwerbsst + grundbuchgeb + makler;
	f.sumkaufnebenk.value = Math.round( kaufnebenkosten );

	// Finanzierungsnebenkosten
	grundbucheintrbank = ( f.gewkreditbetrag.value * 1.56 / 100 ) * 1;
	f.grundbucheintrbank.value = Math.round( grundbucheintrbank );
	kreditst = ( f.gewkreditbetrag.value * 0.8 / 100 ) * 1;
	f.kreditst.value = Math.round( kreditst );
	bearbeitgeb = ( f.gewkreditbetrag.value * ( f.bearbeitgeb_in.value * 1 ) / 100 ) * 1;
	f.bearbeitgeb.value = Math.round( bearbeitgeb );
	finanznebenkosten = grundbucheintrbank + kreditst + bearbeitgeb 
		+ ( f.bereitstellgeb.value * 1 ) 
		+ ( f.legalgeb.value * 1 ) 
		+ ( f.stempelgeb.value * 1 ) 
		+ ( f.nebenksonst.value * 1 )
		+ ( f.schaetzgeb.value * 1 );
	f.finanznebenksum.value = Math.round( finanznebenkosten );

	// Ergebnis
	f.ergfinanzbed.value = Math.round( finanzbedarf );
	f.ergkaufnebengeb.value = Math.round( kaufnebenkosten );
	f.ergfinanznebengeb.value = Math.round( finanznebenkosten );
	betragnotwendig = finanzbedarf + kaufnebenkosten + finanznebenkosten;
	f.ergbetrag.value = Math.round( betragnotwendig );
	reserve = ( f.gewkreditbetrag.value * 1 ) - betragnotwendig;
	f.ergreserve.value = Math.round( reserve );
	
	/*
	if( reserve < 0 ) {
		f.ergreserve.value = 0;
	} else {
		f.ergreserve.value = Math.round( reserve );
	}
	*/

	// Zweite Formular mit dem Wert zur Berechnung der Kreditrate füllen
	document.forms[1].kreditsumme.value = Math.round( f.gewkreditbetrag.value );
}

// copyright 1999 Idocs, Inc. http://www.idocs.com
// Distribute this script freely but keep this notice in place
function numbersOnly(myfield, e, dec)
{
	var key;
	var keychar;

	if (window.event) {
		key = window.event.keyCode;
	} else if (e) {
		key = e.which;
	} else {
		return true;
	}
	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==8) ||
		(key==9) || (key==13) || (key==27) ) { // control keys
		return true;
	} else if ((("0123456789").indexOf(keychar) > -1)) { // numbers
		return true;
	} else if (dec && (keychar == ".")) { // decimal point jump
	   myfield.form.elements[dec].focus();
	   return false;
	} else {
		return false;
	}
}

