//=== Variablen ===

var maxLaufzeit = 99;		// maximale Laufzeit in Jahren
var maxZinssatz = 99;		// maximal eingebbarer Zinssatz



//=== Formatierungen ===

function kommaZuPunkt(arg)
{
	if (isNaN(arg) == true) {
		arg = arg.replace(/,\-*/, '');
		if (arg.indexOf(',') != -1) { arg = arg.replace(/,/, '.'); }
		}
	return arg;
}


function trennzeichen(arg)
{
	arg += '';
	for (i=arg.length-3; i>=1; i=i-3) {
		arg = arg.substring(0,i) + '.' + arg.substring(i, arg.length);
		}
	arg += ',-';
	return arg;
}



//=== Berechnung / Hauptfunktion ===


function calculate(anfrage)
{
	var zinssatz = $("#"+anfrage+" input[name=Zinssatz]").val();
	zinssatz = parseFloat(kommaZuPunkt(zinssatz))/100;
	var anlagebetrag = $("#"+anfrage+" input[name=Anlagebetrag]").val();
	anlagebetrag = parseFloat(kommaZuPunkt(anlagebetrag));

	if (anfrage != "rechnerEntnahmeErhaltung") {		//var laufzeit kommt in seite entnahme_erhaltung nicht vor
		var laufzeit = $("#"+anfrage+" input[name=Laufzeit]").val();
		laufzeit = parseFloat(kommaZuPunkt(laufzeit));
		 }
	else { var laufzeit = 1; }	// wg. folgendem test


	if (((anlagebetrag <= 0) || (zinssatz <= 0)) || (laufzeit <= 0)) { alert ("Anlagebetrag, Laufzeit und Zinssatz m&uuml;ssen gr&ouml;&szlig;er als 0 sein."); return; }
	if (zinssatz > maxZinssatz/100) { alert ("Der maximale Zinssatz betr&auml;gt " + maxZinssatz + "%."); return; } 
	if (laufzeit > maxLaufzeit) { alert ("Die maximale Laufzeit betr&auml;gt " + maxLaufzeit + " Jahre"); return; } 


	if 	(anfrage == "rechnerEntnahmeVerzehr"){
		var result = Math.round((zinssatz * Math.pow ((1+zinssatz),laufzeit) * anlagebetrag) / ((Math.pow ((1+zinssatz),laufzeit)-1) * (12 + 5.5 * zinssatz))); 
	}else if (anfrage == "rechnerEntnahmeErhaltung"){
		var result = Math.round((zinssatz * (Math.pow ((1+zinssatz),1000)) * anlagebetrag) / ((Math.pow ((1+zinssatz),1000) -1) * (12 + 5.5 * zinssatz)));
	}else if (anfrage == "rechnerSparplan"){
		var result = Math.round(anlagebetrag * (12 + 6.5 * zinssatz) * ((1-Math.pow ((1/(1+zinssatz)),(laufzeit+1)))/ (1-(1/(1+zinssatz)))-1) * Math.pow ((1+zinssatz),laufzeit));
	}else if (anfrage == "rechnerEinmalzahlung"){
		var result = Math.round(anlagebetrag * Math.pow ((1 + zinssatz),laufzeit));
	}


	if ( isNaN(result) == true ) { alert ("Sie haben einen ungueltigen Wert eingegeben."); return; }

	result = trennzeichen(result);


	$("#"+anfrage+" input[name=ergebnis]").val(result);
}


