// Berechnungen für die Baufinanzierung

function Print(){

	var oToPrint = parent;
	if( typeof(oToPrint) != "undefined" ){
		oToPrint = self;
	}
	
	oToPrint.focus();
	oToPrint.print();
}

function berechnung_finanzierungsbedarf(){

	var summe = 0;
	var summe2 = 0;

	var form = document.baufi_rechner;
	form.gesamtkosten.value = "";

	if(CheckFormValue(vbTrim(form.kaufpreis.value),".,1234567890")) {
		if(isZero(form.kaufpreis.value) || form.kaufpreis.value == "") {
			form.kaufpreis.value = 0;
		}
		summe = (eval(summe) + eval(CutZero(form.kaufpreis.value)));
		summe2 = (eval(summe2) + eval(CutZero(form.kaufpreis.value)));
		if(form.kaufpreis.value != 0) {
			form.kaufpreis.value = makeReal(CutZero(form.kaufpreis.value));
		}
	} else {
		makeAlert();
		form.kaufpreis.value = "0";
	}
	
	if(CheckFormValue(vbTrim(form.kosten_notar_gest_makler.value),".,1234567890")) {
		if(isZero(form.kosten_notar_gest_makler.value) || form.kosten_notar_gest_makler.value == "") {
			form.kosten_notar_gest_makler.value = 0;
		}
		summe = (eval(summe) + eval(CutZero(form.kosten_notar_gest_makler.value)));
		summe2 = (eval(summe2) + eval(CutZero(form.kosten_notar_gest_makler.value)));
		if(form.kosten_notar_gest_makler.value != 0) {
			form.kosten_notar_gest_makler.value = makeReal(CutZero(form.kosten_notar_gest_makler.value));
		}
	} else {
		makeAlert();
		form.kosten_notar_gest_makler.value = "0";
	}
	
	if(CheckFormValue(vbTrim(form.kosten_kueche.value),".,1234567890")) {
		if(isZero(form.kosten_kueche.value) || form.kosten_kueche.value == "") {
			form.kosten_kueche.value = 0;
		}
		summe = (eval(summe) + eval(CutZero(form.kosten_kueche.value)));
		summe2 = (eval(summe2) + eval(CutZero(form.kosten_kueche.value)));
		if(form.kosten_kueche.value != 0) {
			form.kosten_kueche.value = makeReal(CutZero(form.kosten_kueche.value));
		}
	} else {
		makeAlert();
		form.kosten_kueche.value = "0";
	}
	
	if(CheckFormValue(vbTrim(form.kosten_renovierungsarbeiten.value),".,1234567890")) {
		if(isZero(form.kosten_renovierungsarbeiten.value) || form.kosten_renovierungsarbeiten.value == "") {
			form.kosten_renovierungsarbeiten.value = 0;
		}
		summe = (eval(summe) + eval(CutZero(form.kosten_renovierungsarbeiten.value)));
		summe2 = (eval(summe2) + eval(CutZero(form.kosten_renovierungsarbeiten.value)));
		if(form.kosten_renovierungsarbeiten.value != 0) {
			form.kosten_renovierungsarbeiten.value = makeReal(CutZero(form.kosten_renovierungsarbeiten.value));
		}
	} else {
		makeAlert();
		form.kosten_renovierungsarbeiten.value = "0";
	}

	if(CheckFormValue(vbTrim(form.sonstige_kosten.value),".,1234567890")) {
		if(isZero(form.sonstige_kosten.value) || form.sonstige_kosten.value == "") {
			form.sonstige_kosten.value = 0;
		}
		summe = (eval(summe) + eval(CutZero(form.sonstige_kosten.value)));
		summe2 = (eval(summe2) + eval(CutZero(form.sonstige_kosten.value)));
		if(form.sonstige_kosten.value != 0) {
			form.sonstige_kosten.value = makeReal(CutZero(form.sonstige_kosten.value));
		}
	} else {
		makeAlert();
		form.sonstige_kosten.value = "0";
	}

	if(CheckFormValue(vbTrim(form.eigenkapital.value),".,1234567890")) {
		if(isZero(form.eigenkapital.value) || form.eigenkapital.value == "") {
			form.eigenkapital.value = 0;
		}
		summe2 = (eval(summe2) - eval(CutZero(form.eigenkapital.value)));
		if(form.eigenkapital.value != 0) {
			form.eigenkapital.value = makeReal(CutZero(form.eigenkapital.value));
		}
	} else {
		makeAlert();
		form.eigenkapital.value = "0";
	}

	if(CheckFormValue(vbTrim(form.eigenleistung.value),".,1234567890")) {
		if(isZero(form.eigenleistung.value) || form.eigenleistung.value == "") {
			form.eigenleistung.value = 0;
		}
		summe2 = (eval(summe2) - eval(CutZero(form.eigenleistung.value)));
		if(form.eigenleistung.value != 0) {
			form.eigenleistung.value = makeReal(CutZero(form.eigenleistung.value));
		}
	} else {
		makeAlert();
		form.kaufpreis_grundstueck.value = "0";
	}

form.gesamtkosten.value = makeReal(summe);
form.finanzierungsbedarf.value = makeReal(summe2);
	summe = 0;
	summe2 = 0;
}

function delForm()
{
	document.baufi_rechner.kaufpreis.value="0";
	document.baufi_rechner.kosten_notar_gest_makler.value="0";
	document.baufi_rechner.kosten_kueche.value="0";
	document.baufi_rechner.kosten_renovierungsarbeiten.value="0";
	document.baufi_rechner.sonstige_kosten.value="0";
	document.baufi_rechner.eigenkapital.value="0";
	document.baufi_rechner.eigenleistung.value="0";
}

//=========================================

function vbTrim(sText) 
{
sText = sText.replace(/^\s*(\b.*\b|)\s*$/, "$1");
return sText;
}

function CheckFormValue(eingabe,erlaubt)
{
	var korrekt = true;
	for (var i = 0; i < eingabe.length; i++)
	{ 	var zeichen = eingabe.charAt(i);
		if (erlaubt.indexOf(zeichen) == -1)
			korrekt = false;
	}
	return korrekt;
}

function CutZero(value) 
{
var cutPos = 0
var wasNumber = false;
var cut = false;
	for(var i = 0; i < value.length; i++) {
		if(value.substr(i,1) == 0 && !wasNumber) {
			cutPos = i;
			cut = true;
		} else {
			wasNumber = true;
		}
	}
	if((value.length == 1 && cut)) {
		return "0";
	} else {
		if(cut) {
			var tmp = cutPointKomma(value.substr((cutPos + 1), (value.length - (cutPos + 1))))
			return tmp;
		} else {
			return cutPointKomma(value);
		}
	}
}

function makeReal(value) {
	value = value + "";
	if(value.length > 3) {
		var first = value;
		var weiter = true;
		var durchlauf = 1;
		var counter = 0;
		var elements = new Array();
		
		while(weiter) {
			elements[counter] = first.substr((first.length-3),3);
			first = first.substr(0,(first.length-3));
			if(first.length <= 3) {
				elements[counter+1] = first;
				weiter = false;
			}
			durchlauf++;
			counter++;
		}

		var tmp = "";
		var isFirst = true;

		for(var countPoints = 0; countPoints <= counter; countPoints++) {
			if(isFirst) {
				tmp = elements[countPoints];
				isFirst = false;
			} else {
				tmp = elements[countPoints] + "." + tmp;
			}
		}
		return tmp;
	} else {
		return value;	
	}
}

function cutPointKomma(value) {
	var arrValue = new Array();
	arrValue = value.split(".");
	
	var jetzt = "";
	var counter = 0;
	while(arrValue[counter] != undefined) {
		jetzt = jetzt + arrValue[counter];
		counter++;
	}
	if(jetzt.indexOf(",") != -1) {
		jetzt = jetzt.substr(0,jetzt.indexOf(","));
	}
	if(jetzt == "") {
		return 0;
	} else {
		return jetzt;
	}
}

function isZero(value) {
var tmp = value + "";
var zeichen = false;
	for(var i0 = 0; i0 < tmp.length; i0++) {
		if(tmp.substr(i0,1) != '0') {
			zeichen = true;
		}
	}
	if(zeichen) {
		return false;
	} else {
		return true;
	}
}

function makeAlert() {
	alert("Bitte geben Sie nur Zahlen ein.");
}
