/********************************************************************

 usage: federalTax = calcFederalCGTax( taxableIncome, shortTermCG, longTermCG, long28TermCG, section1250CG, form4952, married, printreport );

 **********************************************************************/

function  calcFederalCGTax( taxableIncome, shortTermCG, longTermCG, long28TermCG, section1250CG, form4952, married, printreport )
{
var taxWindow;
var wstring;

var federalTax = 0;
var limit = 0;
var temp = 0;
var line7 = 0;
var line16 = 0;
var line17 = 0;
var line19 = 0;
var line20 = 0;
var line22 = 0;
var line24 = 0;
var line25 = 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;
var line38 = 0;
var line39 = 0;
var line40 = 0;
var line41 = 0;
var line42 = 0;
var line43 = 0;
var line44 = 0;
var line45 = 0;
var line46 = 0;
var line47 = 0;
var line48 = 0;
var line49 = 0;
var line50 = 0;
var line51 = 0;
var line52 = 0;
var line53 = 0;
var line54 = 0;

		// To keep things simple, all schedule D lines are being used as variables
		line7 = Math.round(shortTermCG);
		line16 = Math.round(longTermCG);
		line15 = Math.round(long28TermCG);
		line21 = Math.round(form4952);
		line25 = Math.round(section1250CG);
		
		line17 = line7 + line16;
		if (line16 < 0 || line17 < 0 || taxableIncome < 0)
		   return (calcFederalTax( taxableIncome, married ));  
		
		line19 = taxableIncome;
		line20 = Math.min(line16, line17);   
		line22 = Math.max(line20 - line21, 0);
		line23 = Math.max(line7 + line15, 0);	
		line24 = Math.min(line23, line15);
		if (line24 < 0)
		     line24 = 0;
		line26 = line25 + line24;		  
		line27 = Math.max(line22 - line26, 0);
		line28 = Math.max(line19 - line27, 0);
		
		if (married == 1)
		    limit = 43050;
		else
			limit = 25750;
		
		line29 = Math.min(limit, line19);
		line30 = Math.min(line28, line29);
		line31 = Math.max(line19 - line22, 0);
		line32 = Math.max(line30, line31);
		line33 = calcFederalTax( line32, married );
		
		if (line28 <= line29) //else goto line38
		{
		   line34 = line29;
		   line35 = line28;
		   line36 = Math.max( line34 - line35, 0);
		   line37 = Math.round( line36 * .1);		
		}
		
		if (line27 <= 0 || line27 != line36)		//else goto line 52
		{
		   line38 = Math.min( line19, line27 );
		   line39 = line36;
		   line40 = line38 - line39;
		   line41 = Math.round( line40 * .2 );
		
		   if (line25 > 0)
		   {
		   		  line42 = Math.min( line22, line25 );
		   		  line43 = line22 + line32;
		   		  line44 = line19;
		   		  line45 = Math.max( line43 - line44, 0 );
		   		  line46 = Math.max( line42 - line45, 0 );
		   		  line47 = Math.round( line46 * .25 );
			}
		   
		   if (line24 != 0)		//else goto line 52
		   {
		   	  line48 = line19;
			  line49 = line32+line36+line40+line46;
			  line50 = line48-line49;
			  line51 = Math.round( line50 * .28 );
		   } 		
		
		}
			
		line52 = line33+line37+line41+line47+line51;
		line53 = calcFederalTax( line19, married );		
		federalTax = Math.min( line52, line53);		

		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 "+line32+" using the tax rate schedule</TD><TD align=right>"+line33+"</TD></TR>"
		 if (line37 > 0)
		 	 wstring += "<TR><TD>Tax on "+line36+" at 10%          </TD><TD align=right>"+line37+"</TD></TR>"
		 if (line41 > 0)
		 	 wstring += "<TR><TD>Tax on "+line40+" at 20%          </TD><TD align=right>"+line41+"</TD></TR>"
		 if (line47 > 0)
		 	 wstring += "<TR><TD>Tax on "+line46+" at 25%          </TD><TD align=right>"+line47+"</TD></TR>"
		 if (line51 > 0)
		 	 wstring += "<TR><TD>Tax on "+line50+" at 28%          </TD><TD align=right>"+line51+"</TD></TR>"
		 wstring += "<TR><TD>                                      </TD><TD><HR></TD></TR>"	 
		 wstring += "<TR><TD>Total capitcal gains tax              </TD><TD align=right>"+line52+"</TD></TR>"
     wstring += "<TR><TD>Tax using the tax rate schedule       </TD><TD align=right>"+line53+"</TD></TR>"
		 wstring += "<TR><TD>Tax used                              </TD><TD align=right>"+federalTax+"</TD></TR>"
		 wstring += "<TR><TD colspan=2>You save "+(line53-line52)+" 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);
} 
 
