<HTML><HEAD>
<!--
-------------
PSEUDO-1040EZ
-------------
-->
<SCRIPT LANGUAGE="JavaScript"><!-- hide from old browsers
/*
THE JAVASCRIPT COOKBOOK by Erica Sadun, webrx@mindspring.com
Copyright (c)1998 by Charles River Media. All Rights Reserved.
This applet can only be re-used or modifed by license holders of the
JavaScript Cookbook CD-ROM. Credit must be given in the source
code and this copyright notice must be maintained. If you do
not hold a license to the JavaScript Cookbook, you may NOT
duplicate or modify this code for your own use.
Use at your own risk. No warranty is given or implied of the suitability
of this applet for any specific application. Neither Erica Sadun nor
Charles River Media will be held responsible for any unwanted effects
due to the use of this applet or any derivative.
*/
// --------------------Math Strings---------------------
// Strip a floating point's digits to #.### -- you set the digits
function stripDigits(aNumber, digits)
{
var str = "" + aNumber
var b = str.lastIndexOf(".")
// add decimal point if needed
if (b < 0) str += "."
// pad with extra zeros in case we have too "round" a number
for (var i = 0; i < digits; i++) str += "0"
// extract existing decimal or just return
if (b >= 0) return(str).substring(0,b+1+digits)
return str
}
// Allow for dollar signs in numeric input
function stripDollar(aString)
{
// An empty field means skip and return zero
if (aString=="") return 0
// Check if a dollar sign is found
var dollar = aString.indexOf("$")
var myStr = ""+aString
// If so, skip past it
if (dollar >= 0)
{
var len = aString.length
myStr = ""+aString.substring(dollar+1, len)
}
// Evaluate the rest of the string as a floating point
return parseFloat(myStr)
}
// --------------------Tax Calculation---------------------
// Assess the taxes
function calculate()
{
var base, value, rate
var adjustedGross =
stripDollar(document.forms[0].field1.value) +
stripDollar(document.forms[0].field2.value) +
stripDollar(document.forms[0].field3.value)
document.forms[0].field4.value = "$"+stripDigits(adjustedGross, 2)
var deduction = (document.forms[0].field5.options.selectedIndex == 0) ? 6400 : 11550
var taxableIncome = adjustedGross - deduction
document.forms[0].field6.value = "$"+stripDigits(taxableIncome, 2)
var incomeWithheld = stripDollar(document.forms[0].field7.value)
var incomeCredit = stripDollar(document.forms[0].field8.value)
var totalPayments = incomeWithheld + incomeCredit
document.forms[0].field9.value = "$"+stripDigits(totalPayments, 2)
step = 50
if (taxableIncome < 3000) step = 25
if (taxableIncome < 1000) step = 5
if (document.forms[0].field5.options.selectedIndex == 1) // if married
{
if (taxableIncome < 23350) {
base = 0; value = 0; rate = .15
}
else if (taxableIncome < 56500) {
base = 3502.50; value = 23350; rate = .28
}
else if (taxableIncome < 117950) {
base = 12798.50; value = 56500; rate = .31
}
else if (taxableIncome < 256500) {
base = 31832.50; value = 117950; rate = .36
}
else {
base = 81710.50; value = 256500; rate = .396
}
}
else
{
if (taxableIncome < 39000) {
base = 0; value = 0; rate = .15
}
else if (taxableIncome < 94250) {
base = 5850; value = 39000; rate = .28
}
else if (taxableIncome < 143600) {
base = 21320; value = 94250; rate = .31
}
else if (taxableIncome < 256500) {
base = 36183.50; value = 143600; rate = .36
}
else {
base = 77262.50; value = 256500; rate = .396
}
}
var tmp = taxableIncome - (taxableIncome % step) + step / 2
var taxes = ((tmp - value) * rate + base)
document.forms[0].field10.value = "$"+stripDigits(taxes, 2)
if (totalPayments < taxes)
{
document.forms[0].field11.value = "$0.00"
document.forms[0].field12.value = "$"+stripDigits(taxes - totalPayments , 2)
}
else
{
document.forms[0].field12.value = "$0.00"
document.forms[0].field11.value = "$"+stripDigits(totalPayments - taxes, 2)
}
}
<!-- done hiding --></SCRIPT></HEAD>
<BODY bgcolor="ffffff">
<FONT COLOR="007777"><H1><IMG SRC="../GRAFX/UTENS.JPG" WIDTH=80 HEIGHT=50
ALIGN = CENTER>Pseudo 1040EZ</H1></FONT>
<BLOCKQUOTE><FONT COLOR="770000">
This recipe shows how the JavaScript author
can easily adapt paper-based forms into an interactive applet.
Use this applet to guestimate your taxes. Enter data after each
line in black font. Press the button at the bottom of the form
to calculate the aqua lines.
</FONT></BLOCKQUOTE>
<FONT SIZE=4>
<CENTER><FORM NAME="TAXES"><TABLE BORDER=1>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">1: Total wages, salaries, and tips.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field1"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">2: Taxable interest income of $400 or less.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field2"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">3: Unemployment compensation.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field3"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">4: This is your adjusted gross income.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field4"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">5: If single, enter $6400.
If married, enter $11550.
</FONT></TD>
<TD WIDTH=20%><SELECT NAME="field5" SIZE="1">
<OPTION VALUE="6400">6400<OPTION VALUE="11550">11550</SELECT></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">6: This is your taxable income.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field6"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">7: Enter your federal income tax withheld.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field7"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="000000">8: Earned income credit.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field8"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">9: Total payments.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field9"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">10: This is your tax.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field10"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">11: This is your refund.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field11"></TD>
</TR>
<TR>
<TD WIDTH=80%><FONT SIZE=3 COLOR="007777">12: This is the amount you owe.
</FONT></TD>
<TD WIDTH=20%><INPUT TYPE=TEXT NAME="field12"></TD>
</TR>
<TR>
<TD COLSPAN=2 ALIGN=CENTER><INPUT TYPE="BUTTON"
VALUE=" Press to Calculate All AQUA Lines "
onClick="calculate()"></TD>
</TR>
</TABLE><P></CENTER>
<FONT COLOR="007777"><H2>Discussion</H2></FONT>
<FONT SIZE=4>
This JavaScript Applet helps you estimate your taxes.
It uses extensive formulas to calculate the taxes
you should be assessed. Like the Tailor and Mortgage
examples, form data is tightly tied to JavaScript formulas.
Please note: results of this sample applet are in no way guaranteed
to be correct.
</FONT>
<h5>Copyright ©1996 by Charles River Media, All Rights Reserved</h5>
</BODY>
</HTML>