
  

  function loesch() {
   document.eingabe.e_zve.value="";
   document.eingabe.e_prog_zve.value="";
   document.eingabe.e_aoE.value="";
   document.eingabe.e_gew_zve.value="";
   document.eingabe.e_brutto_zve.value="";
   marker=0;
   Calc()
   document.eingabe.e_zve.focus();
  }


  
  function start_werte() {

     jret=0;
     j=1;
     for (i=0;i<document.eingabe.e_jahr.length;++i) {
        if (document.eingabe.e_jahr.options[i].selected)
          j=i;
      }
      j=j+3;

      if(j==4) j=3;
      if(j==7) j=6;jret=7;
      if(j==8) {
         j=6;
         jret=8;
       //   document.eingabe.e_gew_zve.disabled=false;
       // document.eingabe.e_brutto_zve.disabled=false;
       }
       else{
        //  document.eingabe.e_gew_zve.disabled=true;
       //  document.eingabe.e_brutto_zve.disabled=true;
        // document.eingabe.e_gew_zve.value="";
       //  document.eingabe.e_brutto_zve.value="";
       }

       if(j==9) {j=7;jret=9;}  // f. 2009
       if(j==10) {j=8;jret=10;} // f. 2010
       if(j==11) {j=8;jret=10;} // f. 2011 die Logik von 2010 uebernehmen
       if(j==12) {j=8;jret=10;} // f. 2012 die Logik von 2010 uebernehmen
       
       

     waehr= (j<3 ? " DM" : " EURO ");
     if (j<3){
        euro=1.95583;
        waehr=" EURO";
        }
     else
       euro=1;

    // document.eingabe.dm.value=waehr;
    // document.eingabe.dm1.value=waehr;
    // document.eingabe.dm2.value=waehr;

     zve = parseFloat(document.eingabe.e_zve.value);
     if(isNaN(zve)) zve=0;
     reichensteuer()
     prog_zve = parseFloat(document.eingabe.e_prog_zve.value);
     if(isNaN(prog_zve)) prog_zve=0;
    
     aoE = parseFloat(document.eingabe.e_aoE.value);
     if(isNaN(aoE)) aoE=0;
     // gew_zve = parseFloat(document.eingabe.e_gew_zve.value);
     gew_zve=0;
     brutto_zve = parseFloat(document.eingabe.e_brutto_zve.value);
     if(isNaN(brutto_zve)) brutto_zve=0;
     zve = Math.floor(zve * euro)
     prog_zve = Math.floor(prog_zve * euro)
     aoE = Math.floor(aoE * euro)
     gew_zve = Math.floor(gew_zve * euro)
     brutto_zve = Math.floor(brutto_zve * euro);
 
     brutto = zve+prog_zve+aoE;
     kiwahl=1;
     // if(document.eingabe.e_kiwahl.checked) kiwahl=2;
	/*
     if(aoE>0 && jret>8){
       document.getElementById("minproz").style.display = "none";
       document.getElementById("lowproz").style.display = "block";
       }
     else {
       document.getElementById("minproz").style.display = "block";
       document.getElementById("lowproz").style.display = "none";
       }

     if(aoE>0 && j>5){
       document.getElementById("wahl").style.display = "block";
       document.getElementById("keinewahl").style.display = "none";
       }
     else {
       document.getElementById("wahl").style.display = "none";
       document.getElementById("keinewahl").style.display = "none";
       }
     if(aoE>0 && j<6)
       document.getElementById("keinewahl").style.display = "block";
	*/
     if (zve<0) {
       if(prog_zve>0){zve=0;prog_zve=0;}
       if(aoE>0) negeinkom()
     }
 
     proz=0;
     for (i=0;i<document.eingabe.e_kist.length;++i) {
        if (document.eingabe.e_kist.options[1].selected)
              proz=0.08;
        if (document.eingabe.e_kist.options[2].selected)
              proz=0.09;
      }

      for (i=0;i<document.eingabe.e_zkf.length;++i) {
              if (document.eingabe.e_zkf.options[i].selected){
              zkf=i*0.5;
              if(j<3)
                Kinderfreibetrag=i*0.5*3456;
              else
                Kinderfreibetrag=i*0.5*2904;
             if(jret>8)
                Kinderfreibetrag=i*0.5*3012;
       }
     }

  }

function konstanten_holen() {

    anfst= new Array(13067, 13499, 14093, 7235, 0, 7664, 7664, 7834, 8004);
    midst = new Array(66365, 17495, 18089, 9251, 0,12739, 12739, 13139,13469);
    endst = new Array(120041, 114695, 107567, 55007, 0, 52151, 52151, 52551, 52881);
    y1 = new Array(350.35, 262.76, 387.89, 768.85, 0, 793.10, 883.74, 939.68, 912.17);
    yzahl = new Array(2390, 2290, 1990, 1990, 0, 1600, 1500, 1400, 1400);
    z1 = new Array(151.93, 133.74, 142.49, 278.65, 0, 265.78, 228.74, 228.74, 228.74);
    zzahl1 = new Array(3669, 2500, 2300, 2300, 0, 2405, 2397, 2397, 2397);
    zzahl2 = new Array(16637, 957, 857, 432, 0, 1016, 989, 1007, 1038);
    x1 = new Array(0.53, 0.51, 0.485, 0.485, 0, 0.45, 0.42, 0.42, 0.42);
    xzahl = new Array(22886, 20575, 19299, 9872, 0, 8845, 7914, 8064, 8172);
    ztausy = new Array(13014, 13446, 14040, 7200, 0, 7664, 7664, 7834, 8004);
    ztausx = new Array(66312, 17442, 18036, 9216, 0, 12739, 12739, 13139, 13469);
    teiler = new Array(54, 54, 54, 36, 1, 1, 1, 1, 1);
    adder = new Array(0, 0, 27, 18, 0, 0, 0, 0, 0);
    resultat = new Array();

 }
 
function rechnen(g) {

     z = (x-ztausx[j])/10000;
     y = (x-ztausy[j])/10000;
    c9 = (x > anfst[j] && x < midst[j]+1) ? Math.floor((y1[j]*y+yzahl[j])*y) : 0;
     if (j == 0 && x>17063) {
         zson = (x-17010)/10000;
         c9 = (x >17063 && x < 66366) ? Math.floor(( 101.31*zson+2670)*zson+1011) : 0;
    }
  c10 = (x > midst[j] && x < endst[j]+1) ? Math.floor((z1[j]*z+zzahl1[j])*z+zzahl2[j]) : c9;
  result = x > endst[j] ? Math.floor(x1[j] * x - xzahl[j]) : c10;

  if(jret==7 && zve > 250000*g){
      if(brutto_zve >= gew_zve && brutto_zve >= zve){
      gew_zve_st = Math.ceil((zve-250000*g) * (gew_zve/brutto_zve) * 0.03)
     }
     else
      gew_zve_st=0;
     result = Math.floor(x * 0.45 - 15414) - gew_zve_st/g;
   }

   if(jret==8 && zve > 250000*g) result = Math.floor(x * 0.45 - 15414)
   if(jret==9 && zve > 250400*g) result = Math.floor(x * 0.45 - 15576)
   if(jret==10 && zve > 250730*g) result = Math.floor(x * 0.45 - 15694)
   if(jret==11 && zve > 250730*g) result = Math.floor(x * 0.45 - 15694)
  }





function Calc(widget, style) {

	style_action(style);
	
	if (widget == "") widget = false;
	else widget = true;

     start_werte()
     konstanten_holen()

     a = 0
     m = 0
     c6 = 0
     c7 = 0
     c_g = 0
     c_s = 0
     k6 = 0
     k7 = 0
     k_g = 0
     k_s = 0
     e6 = 0
     e7 = 0
     ss_g = 0
     ss_s = 0
     ss_g_p = 0
     ss_s_p = 0
     ss_g_k = 0
     ss_s_k = 0
     kig_rest = 0
     kis_rest = 0

     zve_R = zve             // zve retten

     // ---------- Sonderfall Kinderfreibetrag > zve + prog_zve
     kig_rest = Math.min(0.0001,zve + prog_zve - Kinderfreibetrag * kiwahl)
     kis_rest = Math.min(0.0001,zve + prog_zve - 2 * Kinderfreibetrag)
     // ------------------------

     tarifrechnung()
     c6 = res1
     c7 = res2
     c_g = c6
     c_s = c7
     zve = Math.max(0,zve_R - Kinderfreibetrag * kiwahl);
  
     tarifrechnung()
     k6 = res1;
     if(!isNaN(k6)) k_g = k6;
     zve = Math.max(0,zve_R - 2 * Kinderfreibetrag)
     tarifrechnung()
     k7 = res2
     k_s = k7
     
    
 
     // ---------- nur aoE Fünftelregelung neben zve ----

     if(prog_zve == 0 && aoE > 0) {

      if(document.eingabe.aoE_box[0].checked || j<6){
       zve = zve_R + aoE/5
       tarifrechnung()
       c6 = c_g + (res1 - c_g) * 5
       c7 = c_s + (res2 - c_s) * 5

       zve = Math.max(0, zve_R - Kinderfreibetrag * kiwahl) + (aoE + kig_rest)/5
       tarifrechnung()
       k6 = k_g + (res1 - k_g) * 5
   
       zve = Math.max(0, zve_R - 2 * Kinderfreibetrag) + (aoE + kis_rest)/5
       tarifrechnung()
       k7 = k_s + (res2 - k_s) * 5
      }
      

     // ------------- nur aoE 56% neben zve
     if(document.eingabe.aoE_box[1].checked && j>5){
     
     zve = zve_R + aoE
     zve_r = zve
     tarifrechnung()
     ss_g = res1/zve
     ss_s = res2/zve
     c6 = c_g + Math.max(Math.floor(Math.floor(aoE * ss_g) * 0.56),  Math.floor(yzahl[j]*aoE/10000))
     c7 = c_s + Math.max(Math.floor(Math.floor(aoE * ss_s) * 0.56), Math.floor(yzahl[j]*aoE/10000))

     if(zve_r - Kinderfreibetrag * kiwahl > 0) {
     zve = zve_r - Kinderfreibetrag * kiwahl
     tarifrechnung()
     ss_g = res1/zve
     k6 = k_g + Math.max(Math.floor(Math.floor((aoE + kig_rest)* ss_g) * 0.56), Math.floor(yzahl[j]/10000*(aoE + kig_rest)))
     }
     else
      k6 = 0
      
   

     if(zve_r - 2 * Kinderfreibetrag > 0) {
     zve = zve_r - 2 * Kinderfreibetrag
     tarifrechnung()
     ss_s =res2/zve
     k7 = k_s + Math.max(Math.floor(Math.floor((aoE + kis_rest)* ss_s) * 0.56), Math.floor(yzahl[j]/10000*(aoE + kis_rest)))
     }
     else
      k7 = 0
    }
   }

     // ----- mit Einkünften mit Progressinsvorbehalt

     if(prog_zve > 0) {

     zve = zve_R + prog_zve
     zve_r = zve
     tarifrechnung()
     ss_g_p = res1/zve
     ss_s_p = res2/zve

     if(zve_r - Kinderfreibetrag * kiwahl> 0) {
     zve = zve_r - Kinderfreibetrag * kiwahl
     tarifrechnung()
     ss_g_k = res1/zve
     }
     else
      ss_g_k = ss_g_p

     if(zve_r - 2 * Kinderfreibetrag > 0) {
     zve = zve_r - 2 * Kinderfreibetrag
     tarifrechnung()
     ss_s_k = res2/zve
     }
     else
      ss_s_k = ss_s_p

     m=1;a=5;
  
     if(document.eingabe.aoE_box[1].checked && j>5) {a=1;m=0.56;}

     if(aoE > 0) {
     zve = zve_R + prog_zve + aoE/a
     tarifrechnung()
     ss_g = res1/zve
     ss_s = res2/zve

      c6 = Math.floor(zve_R * ss_g_p) + Math.max((Math.floor((zve_R + aoE/a) * ss_g) - Math.floor(zve_R * ss_g_p)) * a * m,0)
      c7 = Math.floor(zve_R * ss_s_p) + Math.max((Math.floor((zve_R + aoE/a) * ss_s) - Math.floor(zve_R * ss_s_p)) * a * m,0)

      if(document.eingabe.aoE_box[1].checked && j>5){  //=== Prüfung ob mind. 15% ===
       if((Math.floor((zve_R + aoE) * ss_g) - Math.floor(zve_R * ss_g_p))*0.56 < aoE*yzahl[j]/10000)
       c6 = Math.floor(zve_R * ss_g_p) + Math.floor(aoE*yzahl[j]/10000)
       if((Math.floor((zve_R + aoE) * ss_s) - Math.floor(zve_R * ss_s_p))*0.56 < aoE*yzahl[j]/10000)
       c7 = Math.floor(zve_R * ss_s_p) + Math.floor(aoE*yzahl[j]/10000)
     }

     if(zve_r - Kinderfreibetrag * kiwahl> 0) {
     zve = zve_r - Kinderfreibetrag * kiwahl + aoE/a
     tarifrechnung()
     ss_g = res1/zve
     k6 = Math.floor(Math.max(zve_R - Kinderfreibetrag * kiwahl,0) * ss_g_k) + (Math.floor((Math.max(zve_R - Kinderfreibetrag * kiwahl,0) + aoE/a) * ss_g) - Math.floor(Math.max(zve_R - Kinderfreibetrag * kiwahl,0) * ss_g_k)) * a * m

     if(document.eingabe.aoE_box[1].checked && j>5){ //=== Prüfung ob mind. 15% ====
       if((Math.floor((Math.max(zve_R - Kinderfreibetrag * kiwahl,0) + aoE) * ss_g) - Math.floor(Math.max(zve_R - Kinderfreibetrag * kiwahl,0) * ss_g_p))*0.56 < aoE*yzahl[j]/10000)
        k6 = Math.floor(Math.max(zve_R - Kinderfreibetrag * kiwahl,0) * ss_g_k) + Math.floor(aoE * yzahl[j]/10000)
      }

     }
// status=Math.floor(Math.max(zve_R - Kinderfreibetrag,0) * ss_g_p) + " , " + ss_g_k

     if(zve_r - 2 * Kinderfreibetrag > 0) {
     zve = zve_r - 2 * Kinderfreibetrag + aoE/a
     tarifrechnung()
     ss_s = res2/zve
     k7 = Math.floor(Math.max(zve_R - 2 * Kinderfreibetrag,0) * ss_s_k) + (Math.floor((Math.max(zve_R - 2 * Kinderfreibetrag,0) + aoE/a) * ss_s) - Math.floor(Math.max(zve_R - 2 * Kinderfreibetrag,0) * ss_s_k)) * a * m

     if(j>5){ //=== Prüfung ob mind. 15% ===
       if((Math.floor((Math.max(zve_R - 2 * Kinderfreibetrag,0) + aoE) * ss_s) - Math.floor(Math.max(zve_R - 2 * Kinderfreibetrag,0) * ss_s_p))*0.56 < aoE*yzahl[j]/10000)
       k7 = Math.floor(Math.max(zve_R - 2 * Kinderfreibetrag,0) * ss_s_k) + Math.floor(aoE * yzahl[j]/10000)
       }
      }
     }

     else {
      c6 = zve_R * ss_g_p
      c7 = zve_R * ss_s_p
      k6 = (zve_R - Kinderfreibetrag * kiwahl) * ss_g_k
      k7 = (zve_R - 2 * Kinderfreibetrag) * ss_s_k
     }
     //---- Sonderfall Kinderfreibetrag >= zve + zve_prog

    if(kig_rest <=0) {
       zve = (aoE + kig_rest)/a
     tarifrechnung()
     k6 = res1 * a * m
     }
     if(kis_rest <=0){
       zve = (aoE + kis_rest)/a
     tarifrechnung()
     k7 = res2 * a * m
     }

     if(document.eingabe.aoE_box[1].checked && j>5){
     if(kig_rest <=0)
        k6 = Math.max(res1*m,(aoE + kig_rest) * yzahl[j]/10000)
     if(kis_rest <=0)
        k7 = Math.max(res2*m,(aoE + kis_rest) * yzahl[j]/10000)
     }
   }
     c6 = Math.floor(c6)
     c7 = Math.floor(c7)
     k6 = Math.floor(k6)
     k7 = Math.floor(k7)

     Kindergeld()
     kigeldinfo()

     if (j>2)
     solbas=972;
       else
     solbas=1836;
     e6 = Math.max(Math.floor(100 * (Math.min(0.055 * k6,(k6-solbas)* 0.2)))/100,0);
     e7 = Math.max(Math.floor(100 * (Math.min(0.055 * k7,(k7-solbas*2)* 0.2)))/100,0);

	if (zve != "")
	{
     	ausgabe();
     	textzusammen(widget);
     	 set_info('ausgabe', '');
     }	
	
}

  function nullen() {
  if(wert.indexOf(".") == -1) wert+=".00";
   else
  if (wert.length - wert.indexOf(".") == 2) wert+="0";
}
 
 
function Kindergeld() {
   kg = new Array(0,3000,3000,3600,4200)   //1999
   if(j>0)
   kg = new Array(0,3240,3240,3600,4200)  //ab 2000
   if(j>2)
    kg = new Array(0,1848,1848,1848,2148); //ab 2002
   if(jret>7)
    kg = new Array(0,1968,1968,2040,2340); //ab 2009
   kigeld=0;

   if (zkf>3) {
        kigeld = kg[4]*(zkf-3)
        zkf=3
    }
   for(i=1;i<zkf+1;i++) {
     kigeld+=kg[i]
   }
    if(zkf != parseInt(zkf))
      kigeld-=kg[i-1]*0.5

    kigeld=Math.floor(kigeld)
   }

   function steuerberechnung(){

   //---Berechnung Steuer incl steuerfreie Bezuege--
     tarifrechnung()
     c6=res1
     c7=res2

     if(zvefrei != 0) {
     //--Berechnung Steuersatz Gesamtbezuege bei ProgVorbehalt--
     zve = Math.floor(zve/teiler[j])*teiler[j] + adder[j]
     ssatzg=c6/zve
     ssatzs=c7/zve

     //--Berechnung Steuer mit ermitteltem Steuersatz fuer steuerpfl. Anteil und AOEinkuenfte--
     zve = Math.floor(zverett/teiler[j])*teiler[j] + adder[j]
     c6=Math.floor(zve*ssatzg)
     c7=Math.floor(zve*ssatzs)
    }
  }

   function abfindungsrechner() {

      c32_6 = c6;
      c32_7 = c7;

     if(zvefrei==0){
      zve = zverett + aoEin/5;
      steuerberechnung()
      c34_6 = c6;
      c34_7 = c7;
     }
    else {
      zve = zverett + zvefrei + aoEin/5;
      zve1rett = zverett;
      zverett = zve1rett + aoEin/5;
      steuerberechnung()
      c34_6 = c6;
      c34_7 = c7;
      zverett = zve1rett;
    }
      c6 = (c34_6 - c32_6)*5 + c32_6
      c7 = (c34_7 - c32_7)*5 + c32_7
   }

   function tarifrechnung() {

    x = Math.floor(zve/teiler[j])*teiler[j] + adder[j];
    rechnen(1)
    res1 = result;
    x = Math.floor(zve/2/teiler[j])*teiler[j]+adder[j];
    rechnen(2)
    res2 = result*2
  }

function kigeldinfo() {
	
/* MUEHL: geaendert
text="<img src='place.gif' height=1>";


 if((k6+kigeld*ze)<c6) {

 text+="<b>Hinweis:</b> <font color=#FF0000>Berücksichtigung des Kinderfreibetrages ist <font color='#009000'><b>beim Grundtarif</b></font> günstiger!</font> <br>mit Berücksichtigung: Steuer " + Math.floor(k6) + " " + waehr + " + KGRückz. " + kigeld + " " + waehr  + " = " + Math.floor(kigeld+k6) + " " + waehr + " <br>ohne Berücksichtigung: Steuer = " + Math.floor(c6) + " " + waehr + "<br>";
}

 if((k7+kigeld*ze)<c7) {
 text+="<b>Hinweis:</b> <font color=#FF0000>Berücksichtigung des Kinderfreibetrages ist <font color='#009000'><b>beim Splittingtarif</b></font> günstiger!</font> <br>mit Berücksichtigung: Steuer " + Math.floor(k7) + " " + waehr + " + KGRückz. " + kigeld + " " + waehr  + " = " + Math.floor(kigeld+k7) + " " + waehr + " <br>ohne Berücksichtigung: Steuer = " + Math.floor(c7) + " " + waehr;
 }

 if(c6>0 && document.eingabe.einkommen.value<=0 && zvefrei>0){
 text = "<b>Hinweis:</b> Bei Erhalt von Einkommenersatzleistungen (z.B. Arbeitslosenunterstützung od. Elterngeld) neben <br>außerordentlichen Einkünften (z.B.Abfindung) im gleichen Jahr ist die Berechnung strittig. <br>Das <a href='http://www.grundstein-thieme.de/pdf/steuer_abfindung.pdf' target=_new>Finanzgericht Düsseldorf</a> (Urteil vom 13.5.2002) verneint eine Berücksichtigung der <br>Einkommensersatzleistung in diesem Fall. Siehe auch <a href='http://www.lexisnexis.de/aktuelles/89650?or=1983&ur=0&tt=fachpresse' target=_new>NexisLexis</a>."

}

element=document.getElementById?document.getElementById('t1'):(document.all?document.all('t1'):null)
    if(element.innerHTML){
     element.innerHTML=text
   } 
  */
 }

   function reichensteuer() {
   
   
}

function stinfo() {


w=(screen.Width-30);
if(screen.Width>950) w=930;
/* MUEHL: geaendert
if(j==1) url="http://www.parmentier.de/steuer/32a00.htm";
if(j==2) url="http://www.parmentier.de/steuer/32a01.htm";
if (j==3) url="http://bundesrecht.juris.de/bundesrecht/estg/__32a.html","Steuergesetz";
if(j==5) url="http://www.parmentier.de/steuer/32a04.htm";
if(j==6) url="http://www.parmentier.de/steuer/52.htm";
if(jret>6) url="http://www.parmentier.de/steuer/stg2007.htm";
*/
url="http://bundesrecht.juris.de/bundesrecht/estg/__32a.html","Steuergesetz";
fen=window.open(url,"Steuergesetz",'width='+(w-100)+',resizable=yes,scrollbars=yes,menubar=yes,location=yes,alwaysRaised=yes');
}
function proginfo() {
w=(screen.Width-20);
if(screen.Width>900) w=930;
fen=window.open("http://bundesrecht.juris.de/bundesrecht/estg/__32b.html","Steuergesetz",'width='+(w-100)+',resizable=yes,scrollbars=yes,menubar=yes,location=yes,alwaysRaised=yes');
}
function aoEinfo() {
w=(screen.Width-20);
if(screen.Width>900) w=930;
fen=window.open("http://bundesrecht.juris.de/bundesrecht/estg/__34.html","Steuergesetz",'width='+(w-100)+',resizable=yes,scrollbars=yes,menubar=yes,location=yes,alwaysRaised=yes');
}
function info() {
fen=window.open("","Einkommensteuerberechnung",'width=600; height=' + (600/screen.height)*screen.height +'; resizable=yes,scrollbars=yes,menubar=yes,location=no,alwaysRaised=yes');
fen.moveTo(10,10);
fen.document.write("<style> P,TD,BODY {font-family: arial, sans serif; font-size: 9pt;}</style><body bgColor=#E6E8FA leftmargin=20 marginwith=20><p align=justify>Mit diesem <font color='#ff0000'> <i>JavaScript</i> </font>Programm (im Datei-Kopf) läßt sich die Einkommensteuer nach Grund- und Splittingtarif für die Jahre 1999 bis 2007 berechnen. <a href='http://www.parmentier.de/cgi-bin/link.cgi?http://www.docju.de/themen/steuern/est_schema.htm' target=_new>Besonderheiten und Freibeträge einzelner Einkunftsarten</a> werden vom Programm nicht berücksichtigt. Dadurch würde es zu umfangreich und unübersichtlich (und sicher trotzdem noch nicht vollständig).");
fen.document.write("<p algn=justify>2007 werden Einkommen die 250.000 (Ledige) bzw. 500.000 (Verheiratete) Euro übersteigen mit 45% belastet (\"Reichensteuer\"). <b> - ausser Gewinne nach &#167; 2 , Abs. 1 Nr. 1-3 EStG</b> (diese weiterhin nur mit 42%, siehe neuen <a href='stg2007.htm' target=_new>&#167; 32c</a>). Setzt sich das Gesamteinkommen aus mehreren Einkunftsarten zusammen, wird der über 250.000 Euro liegende Einkommensanteil im Verhältnis der mit 45% belasteten Einkunftsarten zu den anderen (und zwar vor Abzug von Sonderausgaben usw.) besteuert. Deshalb erfragt das Programm neben dem zvE sowohl das Gesamteinkommen vor Abzug von Sonderausgaben usw. als auch den darin enthaltenen Gewinn nach &#167; 2 , Abs. 1 Nr. 1-3 EStG.");

fen.document.write("<p align=justify> Da die Steuerberechnung bei steuerfreiem neben steuerpflichtigem Einkommen (Progressionsvorbehalt nach §32b) ziemlichen Rechenaufwand erfordert, wurde diese Berechnung inzwischen mit aufgenommen. Rückzahlungen steuerfreier Einnahmen dabei mit (-) eingeben. Soweit ein Arbeitnehmer-Pauschbetrag dabei zu berücksichtigen ist, diesen vorher abziehen.")
fen.document.write("<p>Zur Brechnung der Steuer wird in diesem Fall (Vorliegen von steuerfreien Einkünften mit Progressionsvorbehalt neben steuerpflichtigen) zunächst von der Summe beider Einkünfte die Steuer ermittelt und daraus dann der Steuersatz (Steuer/Summe der Einkünfte). Dieser (besondere) Steuersatz wird dann auf die steuerpflichtigen Einkünfte angewandt.<p>Beispiel<ul><TABLE><TR><TD>Einkünfte steuerpflichtig </TD><TD> 50.000</TD><TD>Euro</TD></TR><TR><TD> mit Progressionsvorbehalt </TD><TD> 20.000</TD><TD>Euro</TD></TR><TR><TD>Summe</TD><TD>70.000</TD><TD>Euro</TD></TR><TR><TD>Steuer (2004, Grundtarif)</TD><TD>22.655</TD><TD> Euro</TD></TR><TR><TD>dehalb Steuersatz (22.655/70.000) = </TD><TD>32,3642 </TD><TD>%</TD></TR><TR><TD>deshalb Steuer 50.000 x 32,3642 % = </TD><TD>16.182</TD><TD>Euro</TD></TR></TABLE></ul>");

fen.document.write("<p>Ebenso werden außerordentliche Einkünfte (nach §34) nach der Fünftel-Regelung berücksichtigt.<p>Beispiel<ul><TABLE><TR><TD>Einkünfte steuerpflichtig </TD><TD> 20.000</TD><TD>Euro</TD></TR><TR><TD>Steuer dafür (2004, Grundtarif)</TD><TD>2.902</TD><TD>Euro</TD></TR><TR><TD>außerordentliche Einkünfte</TD><TD>100.000</TD><TD>Euro</TD></TR><TR><TD>1/5 davon</TD><TD>20.000</TD><TD> Euro</TD></TR><TR><TD>Steuer für stpfl. + 1/5 aoEinkünfte (zusammen 40.000) </TD><TD>9.547 </TD><TD>Euro</TD></TR><TR><TD>abzüglich 2.902 Euro für stpfl. Einkommen </TD><TD>6.645</TD><TD>Euro</TD></TR><TR><TD>multipliziert mit Faktor 5</TD><TD>33.225</TD><TD>Euro</TD></TR><TR><TD>Summe der beiden Steuern (2.902 + 33.225) = </TD><TD>36.127</TD><TD>Euro</TD></TR></TABLE></ul>");
fen.document.write("<p>Bei gleichzeitigem Vorliegen von außerordentlichen Einkünften und solchen unter Progressionsvorbehalt, rechnet das Programm entsprechend den Vorgaben des BFH-Urteils vom 18.5.1994:<hr size=0>1. Berechnen der Steuer unter Berücksichtigung zunächst nur der steuerpfl. Einkünften sowie denen mit Progressionsvorbehalt (siehe oben 1. Fall).<P>2. Berechnen der Steuer für die Summe aller drei Einkunftsarten (wobei die außerordentlichen Einkünfte nur mit 1/5 berücksichtigt werden) und Ermittlung des Steuersatzes (aus Steuer/Summe Einkunftsarten). <p>3. Mit diesem Steuersatz die Summe aus steuerpflichtigen und 1/5 außerordentlichen Einkünften multiplizieren und davon die oben ermittelte Steuer für die steuerpflichtigen Einkünfte abziehen. <p>4. Die Differenz (die Steuer für 1/5 der aoEinkünfte) mit 5 multiplizieren, um so die Steuer für die aoEinkünfte zu erhalten.<p>5. Schließlich diese Steuer und die für die steuerpflichtigen Einkünfte ermittelte addieren.<hr size=0>");
fen.document.write("<p>Alle anderen das Einkommen beeinflussende Pauschalen, Kosten und Gewinne (siehe §10 EStG) müssen vor der Berechnung berücksichtigt werden (in der Regel durch einfache Addition/Subtraktion gegebenfalls auch eines Prozentanteils).<p align=justify> Bei Beiträge für Versicherungen (<b>Vorsorgeaufwendungen</b>) ist die Abzugsmöglichkeit gestaffelt (§10 EStG). <p align=justify>Der <A HREF='solzu.htm' TARGET=links>Solidaritätszuschlag</A> beträgt bei einer Einkommensteuer bis 972 EURO = 0; von 972 bis 1.336 Euro = 20% der Differenz (bei Splitting doppelte Beträge), dann 5.5% von der Gesamtsteuer.<p align=right><a href='#' onClick=window.close()>Fenster schliessen</a></p>");
fen.document.close();
}
function infokist() {
fenkist=window.open("","Kirchensteuerberechnung",'width=500; height=420; resizable=yes,alwaysRaised=yes');

fenkist.document.write("<style> P {font-family: arial, sans serif; font-size: 9pt;}</style><body bgColor=#E6E8FA><TABLE cellpadding=10 cellspacing=0 border=1 bordercolor=#000090><TR><TD><p align=justify>Die normale <b>Kirchensteuer</b> beträgt in den Ländern Baden-Württemberg, Bayern, Bremen und Hamburg <b>8,00%</b>  der Einkommen- bzw. Lohnsteuer. In alle anderen Bundesländer <b>9%</b>. Über Besonderheiten der Kirchensteuerberechnung beim Halbeinkünfteverfahren und bei der Gewerbesteueranrechnung sowie zur Kappungsgrenze siehe unter <a href='kirchst.htm' target='_new'>Kirchensteuer</a><p><b>Splittingtarif: <font color=#000090>Berechnung der Kirchensteuer bei einem keine Kirchensteuer zahlenden Ehepartner:</font></b><br>Dazu werden zunächst die <u>nach dem Grundtarif</u> sich ergebenden Einkommensteuern der beiden Einkommen für sich ermittelt und diese ins Verhälnis gesetzt. Dann wird aus dem Gesamteinkommen die Kirchensteuer nach Splittingtarif mit dem ermittelten Verhälnis multipliziert, um die zu zahlende Kirchensteuer des kirchensteuerpflichtigen Ehepartners zu erhalten. <p>Beispiel: Ehemann, keine Kirchensteuer, Einkommen 80.000 Euro, Ehefrau, kirchensteuerpflichtig, Einkommen 35.000 Euro. <br>Steuer 2005 nach Grundtarif: Ehemann 25.686 EURO, Ehefrau 7.458  EURO (zusammen 33.144 EURO), Verhältnis daher 7.458/33.144 = 22,50%<br>Kirchensteuer(9%) für Gesamteinkommen von 115.000 Euro nach Splittingtarif: 2922.48  EURO<br>2922.48  EURO * 22,50% = 657,55 Euro Kirchensteuer sind zu zahlen.<p align=right><a href='#' onClick=window.close()>Fenster schliessen</a></TD></TR></TABLE></p>");
fenkist.document.close();
}
function infoki() {
fenki=window.open("","Kindergeld",'width=400; height=300; resizable=yes,alwaysRaised=yes');

fenki.document.write("<style> P {font-family: arial, sans serif; font-size: 9pt;}</style><body bgColor=#E6E8FA><TABLE cellpadding=10 cellspacing=0 border=1 bordercolor=#000090><TR><TD><p align=justify>Für Kinder erhalten die Eltern entweder <B>Kindergeld oder Kinderfreibeträge</B>. Beim Grundtarif ist meistens das Kindergeld günstiger (außer bei zusätzlichen außerordentlichen Einnahmen). Beim Splittingtarif ist dies ab 2002 bei höheren Einkommen (ab ca. 56000 EURO) dagegen oft der Kinderfreibetrag.  In diesem Fall wird nach Abzug des Kinderfreibetrages vom Einkommen die zu zahlende Steuer um den Betrag des erhaltenen Kindergeldes erhöht. (Für getrennt lebende Eltern gelten ab dem Jahr, welches auf die Trennung folgt, die halben Sätze.) Das Programm ermittelt die günstigere Variante und zeigt dies beim <b>Hinweis</b> an. <b>Die Kinderfreibeträge mindern in jedem Fall den Solidarit&auml;tszuschlag und die Kirchensteuer.</b><p align=right><a href='#' onClick=window.close()>Fenster schliessen</a></p></TD></TR></TABLE> ");
fenki.document.close();
}

function negeinkom() {
negein=window.open("","",'width=400; height=200; resizable=yes,alwaysRaised=yes');
negein.moveTo(100,100)

negein.document.write("<style> P {font-family: arial, sans serif; font-size: 9pt;}</style><body bgColor=#F6F6BB leftmargin=20 marginwith=20><p align=justify>In F&auml;llen, bei denen neben außerordentlichen Einkünften Verluste zu verrechnen sind, gelten besondere Regeln, die das Programm nicht berücksichtigen kann (wie z.B. verschiedene Verlustverrechnungsbeschr&auml;nkungen). In diesem Fall muß zun&auml;chst berechnet werden, welcher Anteil der außerordentlichen Einkünfte nach Verlustabzug noch versteuert werden muß. Dann nur diesen errechneten Betrag in das Feld außerordentliche Einkünfte einsetzen. Keinen Negativbetrag in das erste Feld!<p align=center><a href='#' onClick='window.close()'>Fenster schliessen</a>")
negein.document.close();
}

function ausgabe() {

    gst = Math.floor(c6*100/euro)/100;
    gsol= Math.floor(e6*100/euro)/100;
    spst = Math.floor(c7*100/euro)/100;
    spsol = Math.floor(e7*100/euro)/100;
    gki = Math.max(0,Math.floor(k6/euro*100*proz)/100);
    spki = Math.max(0,Math.floor(k7/euro*100*proz)/100);


/*
    document.eingabe.c6.value = punkt(gst)+" "+waehr
    document.eingabe.e6.value = punkt(gsol)+" "+waehr
    document.eingabe.k6.value = punkt(gki)+" "+waehr
    document.eingabe.c7.value = punkt(spst)+" "+waehr
    document.eingabe.e7.value = punkt(spsol)+" "+waehr
    document.eingabe.k7.value = punkt(spki)+" "+waehr
 */ 
    gstw = (Math.round((gst+gsol+gki)*100)/100);
   // document.eingabe.gst.value = punkt(gstw)+ " " +waehr
    spstw = (Math.round((spst+spsol+spki)*100)/100);
   //  document.eingabe.spst.value = punkt(spstw) + " " +waehr

    gn=Math.round((((brutto)/euro)-(gst+gsol+gki))*100)/100;
    sn=Math.round((((brutto)/euro)-(spst+spsol+spki))*100)/100;

    if(isNaN(gn)) gn=0;
    if(isNaN(sn)) sn=0;
   //  document.eingabe.gnet.value = punkt(gn)+" "+waehr
    // document.eingabe.spnet.value = punkt(sn)+" "+waehr
      
     gnet = gn;
     spnet = sn;

    
  }
  
 function punkt(wert) {
         wert+="";
         if(wert.indexOf(".") == -1) wert+=".00";
         if (wert.length - wert.indexOf(".") == 2) wert+="0";
         wert = wert.slice(0,wert.length-3) + "," + wert.slice(wert.length-2,wert.length);
         if(wert.length/6 > 1)
          wert = wert.slice(0,wert.length-6) + "." + wert.slice(wert.length-6,wert.length);
         if(wert.length/10 > 1)
          wert = wert.slice(0,wert.length-10) + "." + wert.slice(wert.length-10,wert.length);
         return wert;
 }
    
// ********** INFO TEXTE *********
function set_info(type, style)
 {
    var obj;
    var txt;

    if (document.all)
      obj = document.all.infotext;
    else
      obj = document.getElementById("infotext");


	
	switch (type)
    {
		case "einkommen":
			if (style=="finanztip_de") txt = 'Summe aller Einkünfte, d.h. nach Abzug <a href="http://www.finanztip.de/web/steuersparbuch/abc-werbungskosten.htm" target="_new">Werbungskosten</a>, <a href="http://www.finanztip.de/recht/steuerrecht/verlustausgleich-verlustabzug.htm" target="_new">Verlustabzug</a>, Freibeträge wie ( <a href="http://www.finanztip.de/recht/steuerrecht/altersentlastungsbetrag.htm" target="_new">Altersentlastung</a>, <a href="http://www.finanztip.de/recht/steuerrecht/alleinerziehende-entlastungsbetrag.htm" target="_new">Alleinerziehende Elternteile</a> sowie <a href="http://www.finanztip.de/recht/steuerrecht/sonderausgaben-checkliste.htm" target="_new">Sonderausgaben</a>,  <a href="http://www.finanztip.de/web/steuersparbuch/aussergewoehnliche-belastung.htm" target="_new">außergewöhnliche Belastungen</a> und <a href="http://www.finanztip.de/recht/steuerrecht/kinder-im-steuerrecht.htm" target="_new">Kinderfreibeträge</a>. Siehe auch <a href="http://www.finanztip.de/recht/steuerrecht/est-grundlagen.htm#03" target="_new">Struktur der Einkommensermittlung</a>';
			else txt = "Summe aller Eink&uuml;nfte abz&uuml;glich Freibetr&auml;ge (Altersentlastung / Alleinerziehende), Verlustabzug, Sonderausgaben, au&szlig;ergew&ouml;hnlichen Belastungen, Freibetr&auml;ge f&uuml;r Kinder etc. , siehe auch Wirtschafts - Wiki: <a class='link_std' onclick='showWikiBox(\"Zu_versteuerndes_Einkommen\", \"../../../\")' href='#'>zu versteuerndes Einkommen</a>";
	       break;
		case "einkommensersatzleistungen":
			if (style=="finanztip_de") txt = 'steuerfreie Einnnahmen, wie z.B. Arbeitslosengeld, Kurzarbeitergeld, Insolvenzgeld, Krankengeld, Mutterschaftsgeld. Die Einnahmen sind zwar steuerfrei, sie haben aber Einfluss auf die Höhe des Steuersatzes für die steuerpflichtigen Einnahmen. Siehe hierzu <a href="http://www.finanztip.de/recht/steuerrecht/progressionsvorbehalt.htm" target="_new">Informationen zum Progressionsvorbehalt</a>';
			else txt = "z.B. Arbeitslosengeld, Arbeitslosenhilfe Kurzarbeitergeld, Insolvenzgeld, Krankengeld etc., siehe auch Wirtschafts - Wiki: <a class='link_std' onclick='showWikiBox(\"Progressionsvorbehalt\", \"../../../\")' href='#'>Progressionsvorbehalt</a>";
        break;
        case "ausser":
        	if (style=="finanztip_de") txt = 'In der Regel Entlassungsentschädigungen und Vergütungen für mehrjährige Tätigkeiten, die steuerlich über 5 Jahre verteilt werden. Siehe hierzu zum Beispiel <a href="http://www.finanztip.de/recht/steuerrecht/abfindung-steuerermaessigung.htm" target="_new">Fünftelregelung bei Abfindungszahlung</a>. Tarifermäßigung, sofern nicht bereits der Spitzensteuersatz erreicht wird.';
			else txt = "z.B. Ver&auml;usserungsgewinne, Entsch&auml;digungen, Verg&uuml;tung f&uuml;r mehrj&auml;hrige T&auml;tigkeiten etc.";
        break;
		case "kinder":
			if (style=="finanztip_de") txt = 'Für Kinder erhalten die Eltern entweder Kindergeld oder Kinderfreibeträge. Siehe hierzu <a href="http://www.finanztip.de/recht/steuerrecht/kinder-im-steuerrecht.htm" target="_new">Kinder im Steuerrecht</a>. Die so genannte Günstiger-Prüfung erfolgt vom Finanzamt automatisch mit der Steuererklärung. Die Rechnerlogik folgt dem Gesetz, wonach der Kinderfreibetrag bereits im zu versteuernden Einkommen berücksichtigt wurde (mehr zur <a href="http://www.finanztip.de/recht/steuerrecht/est-grundlagen.htm#03" target="_new" target="_new">Einkommensermittlung</a>). Hinweis: Für getrennt lebende Eltern gelten ab dem Jahr, welches auf die Trennung folgt, die halben Sätze für Kinder.';
			else txt = "F&uuml;r Kinder erhalten die Eltern entweder Kindergeld oder Kinderfreibetr&auml;ge. Beim Grundtarif ist meistens das Kindergeld g&uuml;nstiger (au&szlig;er bei zus&auml;tzlichen au&szlig;erordentlichen Einnahmen). Beim Splittingtarif ist dies ab 2002 bei h&ouml;heren Einkommen (ab ca. 56000 EURO) dagegen oft der Kinderfreibetrag. In diesem Fall wird nach Abzug des Kinderfreibetrages vom Einkommen die zu zahlende Steuer um den Betrag des erhaltenen Kindergeldes erh&ouml;ht. (F&uuml;r getrennt lebende Eltern gelten ab dem Jahr, welches auf die Trennung folgt, die halben S&auml;tze.) Das Programm ermittelt die g&uuml;nstigere Variante und zeigt dies beim Hinweis an. Die Kinderfreibetr&auml;ge mindern in jedem Fall den Solidarit&auml;tszuschlag und die Kirchensteuer.";		
		break;
		case "kirche":
			if (style=="finanztip_de") txt = 'Der Kirchensteuersatz beträgt derzeit in Bayern und Baden-Württemberg 8% und in den übrigen Bundesländern 9%. Bemessungsgrundlage ist die festgesetzte Einkommensteuer. Die tatsächlich gezahlte Kirchensteuer ist wiederum im Jahr der Zahlung bei der Einkommensteuererklärung als Sonderausgaben abziehbar. Siehe hierzu <a href="http://www.finanztip.de/recht/steuerrecht/sonderausgaben-checkliste.htm" target="_new">Sonderausgaben bei der Einkommensteuer</a>';
			else txt = "Die normale Kirchensteuer betr&auml;gt in den L&auml;ndern Baden-W&uuml;rttemberg, Bayern, Bremen und Hamburg 8,00% der Einkommen- bzw. Lohnsteuer. In alle anderen Bundesl&auml;nder 9%. Splittingtarif: Berechnung der Kirchensteuer bei einem keine Kirchensteuer zahlenden Ehepartner: Dazu werden zun&auml;chst die nach dem Grundtarif sich ergebenden Einkommensteuern der beiden Einkommen f&uuml;r sich ermittelt und diese ins Verh&auml;lnis gesetzt. Dann wird aus dem Gesamteinkommen die Kirchensteuer nach Splittingtarif mit dem ermittelten Verh&auml;ltnis multipliziert, um die zu zahlende Kirchensteuer des kirchensteuerpflichtigen Ehepartners zu erhalten. Beispiel: Ehemann, keine Kirchensteuer, Einkommen 80.000 Euro, Ehefrau, kirchensteuerpflichtig, Einkommen 35.000 Euro. Steuer 2005 nach Grundtarif: Ehemann 25.686 EURO, Ehefrau 7.458 EURO (zusammen 33.144 EURO)<br>Verh&auml;ltnis daher 7.458/33.144 = 22,50%, Kirchensteuer(9%) f&uuml;r Gesamteinkommen von 115.000 Euro nach Splittingtarif: 2922.48 EURO<br>2922.48 EURO * 22,50% = 657,55 Euro Kirchensteuer sind zu zahlen.";
		break;
		case "ausgabe":
			txt = txtausgabe
		break;
     }


    obj.innerHTML = txt;

  }


function textzusammen(widget) {

	
	


text = "<TABLE cellspacing=0 cellpadding=2 border=0 width=242 style='table-layout:fixed;'>";
text+= "<colgroup><col width=120><col width=60><col width=60></colgroup>";

text += "<TR><td class='cell_line'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td></TR>";


text+= "<TR><TD></TD><TD class='cell_green_border'><nobr>Grundtarif&nbsp;</TD><TD class='cell_green_border'>Splittingtarif</TD></TR>";

text += "<TR><td class='cell_line'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td></TR>";

text+= "<TR><TD class='cell_grey_right'>Einkommensteuer:</TD><TD class='cell_border'><nobr>" + komma(c6) + " &euro;&nbsp;</TD><TD class='cell_border'><nobr>" + komma(c7) + " &euro;</TD></TR>";

text+= "<TR><TD class='cell_grey_right'>Solidarit&auml;tszuschlag:</TD><TD class='cell_border'><nobr>" + komma(e6) + " &euro;&nbsp;</TD><TD class='cell_border'><nobr>" + komma(e7) + " &euro;</TD></TR>";

text+= "<TR><TD class='cell_grey_right'>Kirchensteuer:</TD><TD class='cell_border'><nobr>" + komma(gki) + " &euro;&nbsp;</TD><TD class='cell_border'><nobr>" + komma(spki) + " &euro;</TD></TR>";

text += "<TR><td class='cell_line'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td><td class='cell_line_border'>&nbsp;</td></TR>";

text+= "<TR><TD class='cell_green'>Netto:</TD><TD class='cell_green_border'><nobr>" + komma(gnet) + " &euro;&nbsp;</TD><TD class='cell_green_border'><nobr>" + komma(spnet) + " &euro;</TD></TR>";


text += "<TR><td class='cell_line'>&nbsp;</td><td class='cell_line'>&nbsp;</td><td class='cell_line'>&nbsp;</td></TR>";
text += "</TABLE>";


if (!widget) 
{

promo = promo_p;
} 
else 
{

 promo = "";
} 

txtausgabe = text+promo;

}




