function gkvisdef (form, variable) { return (typeof(form[variable]) == "undefined")? false: true; } function currencyKeysOnly(event) { var keyCode = event.keyCode; if (keyCode==0) keyCode = event.which; if (keyCode==8 || keyCode==9 || keyCode==13 // backspace/tab/cr || keyCode==44 // , || keyCode==46 // . || (keyCode>=48 && keyCode<=57)) // 0-9 return true; return false; } // gkvformatc - formatiere Währungs-Betrag function gkvformatc (c) { s = ''+c; start = s.indexOf("."); if (start != -1) { // Auf 2 Nachkommastellen formatieren vorkomma = s.substr(0,start); nachkomma = s.substr(start+1,2); if (nachkomma.length == 1) nachkomma = nachkomma + "0"; s = vorkomma + "," + nachkomma; } else { // ,- ~ ,00 s = s + ",00"; } return ('EUR '+s); } function gkvmeldung (href) { return window.open (href, 'GKVMeldung','screenX=300,screenY=300,toolbar=no,status=no,width=300,height=240'); } function gkvgetbeitragssatz (form) { control = form["beitragssatz"]; selindex = control.selectedIndex; if (selindex < 0) selindex = 0; v = control.options[selindex].value; return v.substring(v.indexOf('|')+1); } // compare - nomen est omen function gkvcompare (form /*, [meldungen] */) { bkksatzhalbe = 6.9; sonderbeitrag = 0.9; beitragsbemessungsgrenze = 3562.5; minijobgrenze = 400; if (arguments.length == 1) { meldungen = new Array ('meldung.php?nr=1', 'meldung.php?nr=2', 'meldung.php?nr=3', 'meldung.php?nr=4'); } else { meldungen = arguments[1]; } with (form) { // Komma erlauben aber nach Punkt konvertieren lohn = 0; if (gkvisdef(form, "gehaltzeitraum")) { if (gehaltzeitraum[0].checked) { if (gehalt.value.indexOf(",")!=-1) { gehalt.value = gehalt.value.replace(",","."); } lohn = gehalt.value * 1.0; } if (gehaltzeitraum[1].checked) { if (jahresgehalt.value.indexOf(",")!=-1) { jahresgehalt.value = jahresgehalt.value.replace(",","."); } lohn = jahresgehalt.value / 12.0; } } else { if (gkvisdef(form, "gehalt")) { lohn = gehalt.value * 1.0; } if (gkvisdef(form, "jahresgehalt")) { lohn = jahresgehalt.value / 12.0; } } if (lohn.isNaN || lohn == 0) { if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.value = ""; if (gkvisdef(form, "ergebnis_ersparnismonat")) ergebnis_ersparnismonat.value = ""; gkvmeldung (meldungen[0]); } else { prozent = gkvgetbeitragssatz (form); if (prozent < bkksatzhalbe * 2) { gkvmeldung (meldungen[3]); if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.value = ""; if (gkvisdef(form, "ergebnis_ersparnismonat")) ergebnis_ersparnismonat.value = ""; if (gkvisdef(form, "ergebnis_arbeitnehmeranteil")) ergebnis_arbeitnehmeranteil.value = ""; if (gkvisdef(form, "ergebnis_arbeitgeberanteil")) ergebnis_arbeitgeberanteil.value = ""; if (gkvisdef(form, "ergebnis_sonderbeitrag")) ergebnis_sonderbeitrag.value = ""; if (gkvisdef(form, "ergebnis_monatsbeitrag")) ergebnis_monatsbeitrag.value = ""; } else { if (lohn <= minijobgrenze) { gkvmeldung (meldungen[1]); if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.value = ""; if (gkvisdef(form, "ergebnis_ersparnismonat")) ergebnis_ersparnismonat.value = ""; if (gkvisdef(form, "ergebnis_arbeitnehmeranteil")) ergebnis_arbeitnehmeranteil.value = ""; if (gkvisdef(form, "ergebnis_arbeitgeberanteil")) ergebnis_arbeitgeberanteil.value = ""; if (gkvisdef(form, "ergebnis_sonderbeitrag")) ergebnis_sonderbeitrag.value = ""; if (gkvisdef(form, "ergebnis_monatsbeitrag")) ergebnis_monatsbeitrag.value = ""; } else { if (lohn > beitragsbemessungsgrenze) { gkvmeldung (meldungen[2]); if (gkvisdef(form, "gehaltzeitraum")) { if (gehaltzeitraum[0].checked) { gehalt.value = beitragsbemessungsgrenze; lohn = gehalt.value; } else { jahresgehalt.value = beitragsbemessungsgrenze * 12; lohn = jahresgehalt.value / 12.0; } } else { if (gkvisdef(form, "gehalt")) { gehalt.value = beitragsbemessungsgrenze; lohn = gehalt.value; } if (gkvisdef(form, "jahresgehalt")) { jahresgehalt.value = beitragsbemessungsgrenze * 12; lohn = jahresgehalt.value / 12.0; } } } beitrag1 = lohn * prozent / 2; beitrag2 = lohn * bkksatzhalbe; beitrag5 = lohn * sonderbeitrag; monatsdiffcent = (beitrag1 - beitrag2) * 2; jahresdiff = Math.round(monatsdiffcent * 12) / 100; monatsdiff = Math.round(monatsdiffcent) / 100; beitrag3 = Math.round(beitrag2); beitrag4 = beitrag3 / 100; beitrag7 = Math.round(beitrag5); beitrag8 = beitrag7 / 100; beitrag6 = beitrag4 + beitrag8; mb = gkvformatc(beitrag4); mb2 = gkvformatc(beitrag4); mb3 = gkvformatc(beitrag8); mb4 = gkvformatc(beitrag6); eur = gkvformatc(jahresdiff); eurm = gkvformatc(monatsdiff); if (gkvisdef(form, "ergebnis_arbeitnehmeranteil")) ergebnis_arbeitnehmeranteil.value =mb; if (gkvisdef(form, "ergebnis_arbeitgeberanteil")) ergebnis_arbeitgeberanteil.value =mb2; if (gkvisdef(form, "ergebnis_sonderbeitrag")) ergebnis_sonderbeitrag.value = mb3; if (gkvisdef(form, "ergebnis_monatsbeitrag")) ergebnis_monatsbeitrag.value = mb4; if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.value = eur; if (gkvisdef(form, "ergebnis_ersparnismonat")) ergebnis_ersparnismonat.value = eurm; if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.className = "result1"; } } } if (gkvisdef(form, "ergebnis_ersparnismonat")) { start = ergebnis_ersparnismonat.value.indexOf("NaN"); if (start != -1) { if (gkvisdef(form, "ergebnis_ersparnisjahr")) ergebnis_ersparnisjahr.value = ""; if (gkvisdef(form, "ergebnis_ersparnismonat")) ergebnis_ersparnismonat.value = ""; if (gkvisdef(form, "ergebnis_arbeitnehmeranteil")) ergebnis_arbeitnehmeranteil.value = ""; if (gkvisdef(form, "ergebnis_arbeitgeberanteil")) ergebnis_arbeitgeberanteil.value = ""; if (gkvisdef(form, "ergebnis_sonderbeitrag")) ergebnis_sonderbeitrag.value = ""; if (gkvisdef(form, "ergebnis_monatsbeitrag")) ergebnis_monatsbeitrag.value = ""; gkvmeldung (meldungen[0]); } } } }