// Kreditberechnung //

function line (zeit,restschuld,kum_zahl,zinsen,kum_zinsen)
	{
	this.zeit = zeit;
	this.restschuld = restschuld;
	this.kum_zahl = kum_zahl;
	this.zinsen = zinsen;
	this.kum_zinsen = kum_zinsen;
	}

var kredit = 0;
var laufzeit = 0;
var zins = 0;
var rate = 0;
var zeile = new line();


function berechnen(form)
{
	umwandeln();
	if (kredit < 3000)
		{
		alert ("EINGABEFEHLER: Die Kredithöhe muss mindestens EUR 3000,- betragen!");
		return;
		}
	if (laufzeit < 7)
		{
		alert ("EINGABEFEHLER: Die Laufzeit muss mindestens 7 Monate betragen!");
		return;
		}

	rate = parseInt (kredit/laufzeit);
	var loop_100 = true;
	var loop_10  = true;
	var	status	=	0;

	while (loop_100)
		{
		status = zeit_checken();
		if (status == 2) { document.calculator.rate.value = rate; loop_100 = false; break;}
		if (status == 0) { rate = rate + 100;}
		if (status == 1)
			{ 
			loop_100 = false;
			rate = rate - 10;
			while (loop_10)
				{
				status = zeit_checken();
				if (status == 2) { document.calculator.rate.value = rate; loop_10 = false; break;}
				if (status == 1) { rate = rate - 10;}
				if (status == 0)
					{ 
					loop_10 = false;
					rate++;
					while (1)
						{
						status = zeit_checken();
						if (status != 0) { document.calculator.rate.value = rate; break;}
						rate++;
						}
					}
				}
			}
		}
}

function umwandeln()
{
	document.calculator.rate.value = "0";
	document.calculator.gesamtbelast.value = "0";
	if(document.calculator.kredit.value == "") document.calculator.kredit.value = "0";
	if(document.calculator.laufzeit.value == "") document.calculator.laufzeit.value = "0";
	if(document.calculator.zins.value == "") document.calculator.zins.value = "0";
	kredit = eval(document.calculator.kredit.value);
	laufzeit = eval(document.calculator.laufzeit.value);
	zinssatz = document.calculator.zins.value;
	zins = eval(zinssatz.replace(/,/,"."));

}

function zeit_checken()
{
zeile = new line(0,kredit,0,kredit*zins*31/36000,kredit*zins*31/36000);	
with (zeile) {
	while (zeit <= laufzeit)
	{
		// Jänner //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Februar //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 28 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// März //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// April //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 30 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Mai //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Juni + kumulierte Zinsen //
		zeit++;
		restschuld = restschuld - rate + kum_zinsen;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 30 / 36000;
		kum_zinsen = zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Juli //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// August //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// September //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 30 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Oktober //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// November //
		zeit++;
		restschuld = restschuld - rate;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 30 / 36000;
		kum_zinsen = kum_zinsen + zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		// Dezember + kumulierte Zinsen //
		zeit++;
		restschuld = restschuld - rate + kum_zinsen;
		kum_zahl = kum_zahl + rate;
		zinsen = restschuld * zins * 31 / 36000;
		kum_zinsen = zinsen;
		if (zeit == laufzeit || restschuld <= 0) break;

		document.calculator.gesamtbelast.value = eval(rate)*laufzeit;

	}
	if (restschuld == 0) return 2;
	if (restschuld < 0) return 1;
	if (restschuld > 0) return 0;

	}
}
