var cntETeile = 5;
var cntKinder = 5;
function berechnen() {
	/* zu befüllende Felder prüfen */
	if (document.Unterhalt.JahrS.value == "") {
		alert ("Geben Sie zumindest das Jahr des Stichtages ein!");
		document.Unterhalt.JahrS.focus();
		return;
	}
	for ( hsum = 0, i = 1 ; i <= cntKinder ; i++ ) hsum += document.Unterhalt.Km1.value.indexOf(",");
	if( (hsum != (cntKinder * -1)) || document.Unterhalt.Einkommen.value.indexOf(",") != -1) {
		alert("Geben Sie Kommas als Punkte ein!");
		Return(); 
	}
	for ( hsum = 0, i = 1 ; i <= cntKinder ; i++ ) if ( document.Unterhalt['Km'+i].value == "" ) hsum++;
	if ( hsum == cntKinder ) {
		alert ("Geben Sie den monatlichen Unterhalt ein!");
		document.Unterhalt.Km1.focus();
		return;
	}
	if (document.Unterhalt.BEinkommen.value == "") {
		alert ("Geben Sie die Steuerbemessungsgrundlage ein!");
		document.Unterhalt.BEinkommen.focus();
		return;
	}
	/* Variablen */
	/* Unterhalt jährlich */
	var KjS = 0;
	/* UAB jährlich */
	var UABjS = 0;
	/* zu versteuerndes Einkommen */
	var ETeil = new Array();
	var ETeilS = 0;
	var UTeil = new Array();
	/* halbe Unterhaltsteile * Steuersatz */
	var QuoteS = 0;
	/* Kürzungsfaktor */
	var KF;
	/* gekürzter Unterhaltsbetrag */
	var UHS;
	/* UAB monatlich und jährlich */
//	var UAB = Array(25.50,38.20,50.90);
	var UAB = Array(29.20,43.80,58.40);
	for ( i = 1 ; i <= cntKinder ; i++ ) {
		/* Summe Unterhalt jährlich */
		KjS += (document.Unterhalt['Km'+i].value * 12);
		if (document.Unterhalt['Km'+i].value != "" && document.Unterhalt['Km'+i].value != 0) {
			if ( i > 1 && document.Unterhalt['Km'+(i-1)].value == "") {
				alert("Befüllen Sie bitte die Felder von oben nach unten!");
				return; 
			} else UABjS += UAB[(i<=UAB.length)?(i-1):(UAB.length-1)] * 12;
		}
	}
	var JE = document.Unterhalt.BEinkommen.value;
	if (document.Unterhalt.JahrS.value < 2005) { /* vor 1.1.2005 */
		var E = new Array(3640, 3630, 14530, 29070, 3640 + 3630 + 14530 + 29070);
		var EP = new Array(0, 17, 25, 33, 40);
	} else if (document.Unterhalt.JahrS.value >= 2010) { /* ab 1.1.2010 */
		var E = new Array(11000,14000,35000,11000 + 14000 + 35000);
		var EP = new Array(0,(5110 / E[1] * 100) * 0.8,(15125 / E[2] * 100) * 0.8, 50 * 0.8);
	} else { /* ab 1.1.2005 */
		var E = new Array(10000,15000,26000,10000 + 15000 + 26000);
		var EP = new Array(0,(5750 / E[1] * 100) * 0.8,(11335 / E[2] * 100) * 0.8, 50 * 0.8);
	}
	/* zu versteuerndes Einkommen */
	for ( i = 0 ; i < E.length ; i++ ) {
		for ( hsum = 0, j = 0 ; j < i ; j++ ) hsum += ETeil[j];
		if ( i < (E.length-1) && (JE - (hsum + E[i]) > 0) ) ETeil[i] = E[i];
		else ETeil[i] = JE - hsum;
		/* Summe zu versteuerndes Einkommen */
		ETeilS += ETeil[i];
	}
	/* Unterhaltsteile */
	for ( i = E.length-1 ; i >= 0 ; i-- ) {
		for ( hsum = 0, j = E.length-1 ; j > i ; j-- ) hsum += UTeil[j];
		if ( i > 0 && ((KjS - hsum - ETeil[i]) > 0 ) ) UTeil[i] = ETeil[i];
		else UTeil[i] = KjS - hsum;
		/* Summe halbe Unterhaltsteile * Steuersatz */
		QuoteS += UTeil[i] / 2 * EP[i] / 100;
	}
	/* Kürzungsfaktor berechnen */
	KF = QuoteS - UABjS;
	if (KF < 0) KF = 0;
	/* gekürzten Unterhaltsbetrag berechnen */
	UHS = KjS - KF;
	/* neuer monatlicher Unterhalt */
	for ( i = 1 ; i <= cntKinder ; i++ ) document.Unterhalt['NEUm'+i].value = parseInt((UHS * document.Unterhalt['Km'+i].value / KjS) + 0.5);
}
