/********************************************************************

 usage: federalTax = calcFederalCGTax( taxableIncome, shortTermCG, longTermCG, long28TermCG, section1250CG, form4952, married, printreport );

 2001 Calculator
 Made by Mark E. Gunnison
 Copywrite 2002
 
 **********************************************************************/

function  calcFederalCGTax( taxableIncome, shortTermCG, longTermCG, fiveYGain, long28TermCG, section1250CG, form4952, married, printreport )
{
var taxWindow;
var wstring;

var line7d;
var line16d;
var line15d;
var line17d;
var line19d;
var federalTax = 0;
var limit = 0;
var temp = 0;
var line1 = 0;
var line2 = 0;
var line3 = 0;
var line4 = 0;
var line5 = 0;
var line6 = 0;
var line7 = 0;
var line8 = 0;
var line9 = 0;
var line10 = 0;
var line11 = 0;
var line12 = 0;
var line13 = 0;
var line14 = 0;
var line15 = 0;
var line16 = 0;
var line17 = 0;
var line18 = 0;
var line19 = 0;
var line20 = 0;
var line21 = 0;
var line22 = 0;
var line23 = 0;
var line24 = 0;
var line25 = 0;
var line26 = 0;
var line27 = 0;
var line28 = 0;
var line29 = 0;
var line30 = 0;
var line31 = 0;
var line32 = 0;
var line33 = 0;
var line34 = 0;
var line35 = 0;
var line36 = 0;
var line37 = 0;

		// To keep things simple, all schedule D lines are being used as variables


		line7d = Math.round(shortTermCG);
		line16d = Math.round(longTermCG);
		line15d = Math.round(long28TermCG);
		line17d = line7d+line16d;
		line19d = Math.round(section1250CG);
		line3 = Math.round(form4952);
		line17 = Math.round(fiveYGain);
				
		
		line1 = Math.round(taxableIncome);		
		line2 = Math.min(line16d, line17d);

		line4 = Math.max(line2 - line3, 0);
		line5 = Math.max(line7d+line15d, 0);
		line6 = Math.max(Math.min(line5, line15d), 0);
		line7 = line19d;
		line8 = line6+line7;
		line9 = Math.max(line4 - line8, 0);
		line10 = Math.max(line1 - line9, 0);
		
		if (married == 1)
		    limit = 45200;
		else
			limit = 27050;
		
		line11 = Math.min(limit, line1);
		line12 = Math.min(line10, line11);
		line13 = Math.max(line1 - line4, 0);
		line14 = Math.max(line12, line13);
		line15 = calcFederalTax( line14, married );
		
		if (line11 != line12)	 //else goto line 22
		{
			line16 = line11 - line12;
 
  		line18 = Math.min(line16, line17);
			line19 = Math.round(line18 * .08);
			line20 = line16 - line18;
			line21 = Math.round(line20 * .10);
		}
		
		if (line1 != line11)	 //else goto line 35
		{				
			line22 = Math.min(line1, line9);
			line23 = line16;
			line24 = line22 - line23;
			line25 = Math.round(line24 * .20);
			
			if (line7 != 0)
			{
				 line26 = Math.min(line4, line7);
				 line27 = line4 + line14;
				 line28 = line1;
				 line29 = Math.max(line27 - line28, 0);
				 line30 = Math.max(line26 - line29, 0);
				 line31 = Math.round(line30 * .25);
			}
			
			if (line6 != 0)
			{
			 	 line32 = line14+line16+line24+line30;
				 line33 = line1 - line32;
				 line34 = Math.round(line33 * .28);
			}
		}
		line35 = line15+line19+line21+line25+line31+line34;
		line36 = calcFederalTax( line1, married );
		line37 = Math.min(line35, line36);
				    
		federalTax = line37;		

		if (printreport == 1)
		{
		
		taxWindow = window.open('','sub','status,scrollbars=yes,resizable=yes,width=400,height=300');

		 if (!taxWindow.opener)
		 {
		  	taxWindow.opener = window
		 }


     wstring = "<HTML><TITLE>Capital Gain Tax Computation</TITLE><BODY>"
     wstring += "<CENTER>"
     wstring += "<TABLE BORDER='0'>"
     wstring += "<TR><TD colspan=2><B>Capital Gain Tax Computation</B>"
		 if (line33 > 0)
		 	 wstring += "<TR><TD>Tax on "+line1+" using the tax rate schedule</TD><TD align=right>"+line36+"</TD></TR>"
		 if (line19 > 0)
		 	 wstring += "<TR><TD>Tax on "+line18+" at 8%          </TD><TD align=right>"+line19+"</TD></TR>"
		 if (line21 > 0)
		 	 wstring += "<TR><TD>Tax on "+line20+" at 10%          </TD><TD align=right>"+line21+"</TD></TR>"
		 if (line25 > 0)
		 	 wstring += "<TR><TD>Tax on "+line24+" at 20%          </TD><TD align=right>"+line25+"</TD></TR>"
		 if (line31 > 0)
		 	 wstring += "<TR><TD>Tax on "+line30+" at 25%          </TD><TD align=right>"+line31+"</TD></TR>"
		 if (line34 > 0)
		 	 wstring += "<TR><TD>Tax on "+line33+" at 28%          </TD><TD align=right>"+line34+"</TD></TR>"
		 wstring += "<TR><TD>                                      </TD><TD><HR></TD></TR>"	 
		 wstring += "<TR><TD>Total capitcal gains tax              </TD><TD align=right>"+line35+"</TD></TR>"
     wstring += "<TR><TD>Tax using the tax rate schedule       </TD><TD align=right>"+line36+"</TD></TR>"
		 wstring += "<TR><TD>Tax used                              </TD><TD align=right>"+federalTax+"</TD></TR>"
		 wstring += "<TR><TD colspan=2>You save "+(line36-line35)+" buy using the capital gain schedule</TD></TR>"			 
     wstring += "</TABLE>" 

     wstring += "<FORM><INPUT TYPE='button' NAME='closeBtn' VALUE='Close' onclick='window.close()'></FORM>" 
     wstring += "</CENTER>" 
     wstring += "</BODY></HTML>"
		 
		 location.href="#Top";
     taxWindow.focus()
     
     
     //setTimeout("taxWindow.document.write(wstring)",500)	//stop strange error one second... window
		 taxWindow.document.write(wstring);
		 taxWindow.document.close();
		 

		
		}
		
return (federalTax);
} 
 
