home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 November / pcwk_11_98a.iso / Wtestowe / Money99 / money99.1 / dira / logic.txt < prev    next >
Text File  |  1998-07-25  |  27KB  |  924 lines

  1. test
  2. -- " "
  3. -- "**********************************************************************"
  4. -- "on mouseUp
  5.   newPage 1
  6. end"
  7. -- "**********************************************************************"
  8. -- "on mouseUp
  9.   newPage 2
  10. end"
  11. -- "**********************************************************************"
  12. -- "on mouseUp
  13.   newPage 3
  14. end"
  15. -- "**********************************************************************"
  16. -- "on mouseUp
  17.   newPage 4
  18. end"
  19. -- "**********************************************************************"
  20. -- "on mouseUp
  21.   newPage 5
  22. end"
  23. -- "**********************************************************************"
  24. -- "on mouseUp
  25.   newPage 6
  26. end"
  27. -- "**********************************************************************"
  28. -- "on exitFrame
  29.   global calcType
  30.   getValues  
  31. end"
  32. -- "**********************************************************************"
  33. -- "on exitFrame
  34.   global bookmarks, filingStatus
  35.   getValues
  36.   puppetSprite 24, true
  37.   puppetSprite 25, true
  38.   puppetSprite 26, true
  39.   case filingStatus of
  40.     1: set the memberNum of sprite 24 = 14
  41.     2: set the memberNum of sprite 25 = 14
  42.     3: set the memberNum of sprite 26 = 14
  43.   end case
  44.   go to frame (the frame + getAt(bookmarks,2))
  45. end
  46. "
  47. -- "**********************************************************************"
  48. -- "on exitFrame
  49.   global bookmarks, myJob, spouseJob, myPlan, spousePlan, filingStatus
  50.   getValues
  51.   puppetSprite 17, true
  52.   puppetSprite 19, true
  53.   puppetSprite 24, true
  54.   puppetSprite 25, true
  55.   puppetSprite 26, true
  56.   puppetSprite 27, true
  57.   puppetSprite 28, true
  58.   puppetSprite 29, true
  59.   puppetSprite 30, true
  60.   puppetSprite 31, true
  61.   case myPlan of
  62.     "yes": set the memberNum of sprite 24 = 14
  63.     "no": set the memberNum of sprite 25 = 14
  64.   end case
  65.   case spousePlan of
  66.     "yes": set the memberNum of sprite 26 = 14
  67.     "no": set the memberNum of sprite 27 = 14
  68.   end case
  69.   case myJob of
  70.     "yes": set the memberNum of sprite 28 = 14
  71.     "no": set the memberNum of sprite 29 = 14
  72.   end case
  73.   case spouseJob of
  74.     "yes": set the memberNum of sprite 30 = 14
  75.     "no": set the memberNum of sprite 31 = 14
  76.   end case
  77.     if filingStatus = 1 then
  78.     set the locV of sprite 17 = 800
  79.     set the locV of sprite 19 = 800
  80.     set the locV of sprite 26 = 800
  81.     set the locV of sprite 27 = 800
  82.     set the locV of sprite 30 = 800
  83.     set the locV of sprite 31 = 800
  84.   end if
  85. go to frame (the frame + getAt(bookmarks,3))
  86. end"
  87. -- "**********************************************************************"
  88. -- "on exitFrame
  89.   global bookmarks, filingStatus
  90.   getValues
  91.   if filingStatus <> 3 then
  92.     puppetSprite 17, true
  93.     puppetSprite 25, true
  94.     set the locV of sprite 17 = 800
  95.     set the locV of sprite 25 = 800
  96.     setAt numBoxes, 5, 1
  97.     if getAt(bookmarks, 5) > getAt(numBoxes, 5) then
  98.       setAt bookmarks, 5, getAt(numBoxes, 5)
  99.     end if
  100.   else
  101.     setAt numBoxes, 5, 2
  102.   end if
  103.   
  104.   go to frame (the frame + getAt(bookmarks,4))
  105. end
  106. "
  107. -- "**********************************************************************"
  108. -- "on exitFrame
  109.   global bookmarks
  110.   getValues
  111.   go to frame (the frame + getAt(bookmarks,5))
  112. end"
  113. -- "**********************************************************************"
  114. -- "on exitFrame
  115.     getValues
  116. end"
  117. -- "**********************************************************************"
  118. -- "on enterframe
  119.   checkRollOver 43
  120. end
  121.  
  122.  
  123. on exitFrame
  124.   go the frame
  125. end
  126.  
  127. on keyUp
  128.   keyboardNav 1
  129. end
  130. "
  131. -- "**********************************************************************"
  132. -- "on enterframe
  133.   checkRollOver 45
  134. end
  135.  
  136. on keyUp
  137.   keyboardNav 3
  138. end
  139.  
  140.  
  141. on exitFrame
  142.   go the frame
  143. end
  144.  
  145.  
  146. on mouseUp
  147.   global bookmarks, filingStatus
  148.   if rollover(24) then
  149.     set the memberNum of sprite 24 = 14
  150.     set the memberNum of sprite 25 = 13
  151.     set the memberNum of sprite 26 = 13
  152.     set filingStatus = 1
  153.   end if
  154.   if rollover(25) then
  155.     set the memberNum of sprite 24 = 13
  156.     set the memberNum of sprite 25 = 14
  157.     set the memberNum of sprite 26 = 13
  158.     set filingStatus = 2
  159.   end if
  160.   if rollover(26) then
  161.     set the memberNum of sprite 24 = 13
  162.     set the memberNum of sprite 25 = 13
  163.     set the memberNum of sprite 26 = 14
  164.     set filingStatus = 3
  165.   end if
  166. end
  167.  "
  168. -- "**********************************************************************"
  169. -- "on enterframe
  170.   checkRollOver 44
  171. end
  172.  
  173. on keyUp
  174.   keyboardNav 2
  175. end
  176.  
  177.  
  178. on exitFrame
  179.   go the frame
  180. end
  181.  
  182.  
  183. on mouseUp
  184.   global bookmarks, myJob, spouseJob, myPlan, spousePlan
  185.   if rollover(24) then
  186.     set the memberNum of sprite 24 = 14
  187.     set the memberNum of sprite 25 = 13
  188.     set myPlan = "yes"
  189.   end if
  190.   if rollover(25) then
  191.     set the memberNum of sprite 24 = 13
  192.     set the memberNum of sprite 25 = 14
  193.     set myPlan = "no"
  194.     set the memberNum of sprite 28 = 13
  195.     set the memberNum of sprite 29 = 14
  196.     set myJob = "no"
  197.   end if
  198.   if rollover(26) then
  199.     set the memberNum of sprite 26 = 14
  200.     set the memberNum of sprite 27 = 13
  201.     set spousePlan = "yes"
  202.   end if
  203.   if rollover(27) then
  204.     set the memberNum of sprite 26 = 13
  205.     set the memberNum of sprite 27 = 14
  206.     set spousePlan = "no"
  207.     set the memberNum of sprite 30 = 13
  208.     set the memberNum of sprite 31 = 14
  209.     set spouseJob = "no"
  210.   end if
  211.   if rollover(28) then
  212.     set the memberNum of sprite 28 = 14
  213.     set the memberNum of sprite 29 = 13
  214.     set myJob = "yes"
  215.     set the memberNum of sprite 24 = 14
  216.     set the memberNum of sprite 25 = 13
  217.     set myPlan = "yes"
  218.   end if
  219.   if rollover(29) then
  220.     set the memberNum of sprite 28 = 13
  221.     set the memberNum of sprite 29 = 14
  222.     set myJob = "no"
  223.   end if
  224.   if rollover(30) then
  225.     set the memberNum of sprite 30 = 14
  226.     set the memberNum of sprite 31 = 13
  227.     set spouseJob = "yes"
  228.     set the memberNum of sprite 26 = 14
  229.     set the memberNum of sprite 27 = 13
  230.     set spousePlan = "yes"
  231.   end if
  232.   if rollover(31) then
  233.     set the memberNum of sprite 30 = 13
  234.     set the memberNum of sprite 31 = 14
  235.     set spouseJob = "no"
  236.   end if
  237. end
  238. "
  239. -- "**********************************************************************"
  240. -- "on enterframe
  241.   checkRollOver 46
  242. end
  243.  
  244. on keyUp
  245.   keyboardNav 4
  246. end
  247.  
  248.  
  249. on exitFrame
  250.   go the frame
  251. end
  252.  
  253.  
  254. "
  255. -- "**********************************************************************"
  256. -- "on enterframe
  257.   checkRollOver 47
  258. end
  259.  
  260. on keyUp
  261.   keyboardNav 5
  262. end
  263.  
  264.  
  265. on exitFrame
  266.   go the frame
  267. end
  268.  
  269.  
  270. on mouseUp
  271.   global bookmarks
  272.   if (rollover(16) or rollover(24)) then
  273.     setAt bookmarks, 5, 1
  274.     page 5
  275.   end if
  276.   if (rollover(17) or rollover(25)) then
  277.     setAt bookmarks, 5, 2
  278.     page 5
  279.   end if
  280. end
  281. "
  282. -- "**********************************************************************"
  283. -- "on enterframe
  284.   checkRollOver 48
  285. end
  286.  
  287. on exitFrame
  288.   go the frame
  289. end
  290.  
  291. on keyUp
  292.   keyboardNav 6
  293. end
  294. "
  295. -- "**********************************************************************"
  296. -- "on exitFrame
  297.   global bookmarks, numBoxes, maxPages, frameNum, myJob, spouseJob, myPlan, spousePlan, filingStatus, term, irate, myagi, spouseagi
  298.   set the floatPrecision to 12
  299.   set myJob = "no"
  300.   set spouseJob = "no"
  301.   set myPlan = "yes"
  302.   set spousePlan = "yes"
  303.   set filingStatus = 1
  304.   set maxPages = 6
  305.   set thisRoll = 0
  306.   puppetSprite 40, true
  307.   
  308.   
  309.   
  310.   
  311.   set term = float(20)
  312.   set the text of member "term" = "20 years"
  313.   set irate = float(8)
  314.   set the text of member "irate" = "8%"
  315.   set myagi = float(50000)
  316.   set the text of member "myagi" = "$50,000"
  317.   set spouseagi = float(50000)
  318.   set the text of member "spouseagi" = "$50,000"
  319.   
  320.   set bookmarks = list(1,1,1,1,1,1)
  321.   set frameNum = list(2,5,22,39,51,58)
  322.   set numBoxes = list(1,1,1,1,2,1)
  323. end"
  324. -- "**********************************************************************"
  325. -- "on otherRoll
  326.   global thisRoll
  327.   if (thisRoll <> 0) and not(rollover(43) or rollover(44) or rollover(45) or rollover(46) or rollover(47) or rollover(48) or rollover(16) or rollover(17) or rollover(18) or rollover(19) or rollover(20) or rollover(21) or rollover(22) or rollover(23)) then
  328.     resetColors 0
  329.   end if
  330. end"
  331. -- "**********************************************************************"
  332. -- "on checkRollOver exempt
  333.   global thisRoll
  334.   set n = 43
  335.   repeat while (n < 49)
  336.     if (rollover(n) and (thisRoll <> (the memberNum of sprite n)) and (n <> exempt)) then
  337.       resetColors n
  338.     end if
  339.     set n = n + 1
  340.   end repeat
  341.   if (exempt <> 0) and (exempt <> 48) and (exempt <> 44) and (exempt <> 45) then
  342.     set n = 16
  343.     repeat while (n < 24)
  344.       if (rollover(n) and (thisRoll <> (the memberNum of sprite n))) then
  345.         resetColors n
  346.       end if
  347.       set n = n + 1
  348.     end repeat
  349.   end if
  350.   otherroll
  351. end
  352. "
  353. -- "**********************************************************************"
  354. -- "on newPage thisPage
  355.   puppetSprite 17, false
  356.   puppetSprite 19, false
  357.   puppetSprite 24, false
  358.   puppetSprite 25, false
  359.   puppetSprite 26, false
  360.   puppetSprite 27, false
  361.   puppetSprite 28, false
  362.   puppetSprite 29, false
  363.   puppetSprite 30, false
  364.   puppetSprite 31, false
  365.   getValues
  366.   set the locV of sprite 40 = 800
  367.   case thisPage of
  368.     6:
  369.       compare
  370.       page thisPage
  371.     otherwise
  372.       page thisPage
  373.   end case
  374. end "
  375. -- "**********************************************************************"
  376. -- "on getValues
  377.   global bookmarks, numBoxes, maxPages, term, irate, myagi, spouseagi, frameNum
  378.   set the floatPrecision = 2
  379.   
  380.   
  381.   if (the frame > getAt(frameNum,4)) and (the frame < getAt(frameNum,5)) then
  382.     --MYAGI
  383.     set incomeString = line 1 of the text of member "myagi"
  384.     calcNum incomeString
  385.     set incomeString = the result
  386.     set myagi = value(incomeString)
  387.     if myagi <= 0 then
  388.       set myagi = 0
  389.       set incomeString = "0"
  390.     end if
  391.     if myagi > 10000000 then
  392.       set myagi = 10000000
  393.       set incomeString = "10000000"
  394.     end if
  395.     calcDollar incomeString, 0
  396.     set incomeString = the result
  397.     set the text of member "myagi" = incomeString
  398.     --SPOUSEAGI
  399.     set incomeString = line 1 of the text of member "spouseagi"
  400.     calcNum incomeString
  401.     set incomeString = the result
  402.     set spouseagi = value(incomeString)
  403.     if spouseagi <= 0 then
  404.       set spouseagi = 0
  405.       set incomeString = "0"
  406.     end if
  407.     if spouseagi > 10000000 then
  408.       set spouseagi = 10000000
  409.       set incomeString = "10000000"
  410.     end if
  411.     calcDollar incomeString, 0
  412.     set incomeString = the result
  413.     set the text of member "spouseagi" = incomeString
  414.   end if  
  415.   
  416.   if (the frame > getAt(frameNum,5)) and (the frame < getAt(frameNum,6)) then
  417.     --TERM
  418.     set incomeString = line 1 of the text of member "term"
  419.     calcNum incomeString
  420.     set incomeString = the result
  421.     set term = value(incomeString)
  422.     set term = integer(term)
  423.     if term <= 1 then
  424.       set term = 1
  425.     end if
  426.     if term > 100 then
  427.       set term = 100
  428.     end if
  429.     if term = 1 then
  430.       set the text of member "term" = term & " year"
  431.     else
  432.       set the text of member "term" = term & " years"
  433.     end if
  434.     --IRATE
  435.     set incomeString = line 1 of the text of member "irate"
  436.     calcNum incomeString
  437.     set incomeString = the result
  438.     set irate = value(incomeString)
  439.     if irate > 50 then
  440.       set irate = 50
  441.     end if
  442.     if irate <= 0 then
  443.       set irate = 0
  444.     end if
  445.     set the text of member "irate" = irate & "%"
  446.   end if  
  447.   set the floatPrecision = 12
  448. end
  449.  
  450. "
  451. -- "**********************************************************************"
  452. -- "on clearSprites
  453.   puppetSprite 13, false
  454.   puppetSprite 16, false
  455.   puppetSprite 17, false
  456.   puppetSprite 18, false
  457.   puppetSprite 19, false
  458.   puppetSprite 20, false
  459.   puppetSprite 21, false
  460.   puppetSprite 22, false
  461.   puppetSprite 23, false
  462.   puppetSprite 24, false
  463.   puppetSprite 25, false
  464.   puppetSprite 26, false
  465.   puppetSprite 27, false
  466.   puppetSprite 28, false
  467.   puppetSprite 29, false
  468. end
  469. "
  470. -- "**********************************************************************"
  471. -- "on calcNum thisString
  472.   if (the number of chars in thisString = 0) then
  473.     set thisString = "0"
  474.   end if
  475.   set minus = "false"
  476.   set n = 1
  477.   set decimal = "false"
  478.   repeat while (n <= the number of chars in thisString)
  479.     if not((value(char n of thisString) >= 0) and (value(char n of thisString) <= 9)) then
  480.       if (not(char n of thisString = ".")) or decimal = "true" then
  481.         if ((char n of thisString = "-") and (n = 1)) then
  482.           set minus = "true"
  483.         end if
  484.         delete char n of thisString
  485.       else
  486.         set decimal = "true"
  487.         set n = n + 1
  488.       end if
  489.     else
  490.       set n = n + 1
  491.     end if
  492.   end repeat
  493.   set zeros = TRUE
  494.   repeat while (zeros = TRUE)
  495.     if (char 1 of thisString) = "0" then
  496.       delete char 1 of thisString
  497.     else
  498.       set zeros = FALSE
  499.     end if
  500.   end repeat
  501.   if decimal = "true" then
  502.     set zeros = TRUE
  503.     repeat while (zeros = TRUE)
  504.       if (char (the number of chars in thisString) of thisString) = "0" then
  505.         delete char (the number of chars in thisString) of thisString
  506.       else
  507.         set zeros = FALSE
  508.       end if
  509.     end repeat
  510.   end if
  511.   
  512.   if thisString = "." then
  513.     set thisString = "0"
  514.   end if
  515.   
  516.   if (the number of chars in thisString = 0) then
  517.     set thisString = "0"
  518.   end if
  519.   if (minus = "true") and not(thisString = "0") then
  520.     set thisString = "-" & thisString
  521.   end if
  522.   repeat while (the number of chars in thisString) > 8
  523.     delete char (the number of chars in thisString) of thisString
  524.     
  525.   end repeat
  526.   if char (the number of chars in thisString) of thisString = "." then
  527.     delete char (the number of chars in thisString) of thisString
  528.   end if
  529.   
  530.   return thisString
  531. end
  532. "
  533. -- "**********************************************************************"
  534. -- "on resetColors n
  535.   global thisRoll
  536.   if (thisRoll <> 0) then
  537.     cursor -1
  538.     set the locV of sprite 40 = 800
  539.   end if
  540.   if (n <> 0) then
  541.     if (n < 43) then
  542.       cursor [1,2]
  543.     end if
  544.     set thisRoll = (the memberNum of sprite n)
  545.     if (n > 42) then
  546.       set the locV of sprite 40 = 46 + (37 * (n - 43))
  547.       cursor [1,2]
  548.     end if
  549.   else
  550.     set thisRoll = 0
  551.   end if
  552. end
  553. "
  554. -- "**********************************************************************"
  555. -- "on page thisPage
  556.   global frameNum
  557.   case thisPage of
  558.     1:
  559.       go to frame (getAt(frameNum,1))
  560.     2:
  561.       go to frame (getAt(frameNum,2))
  562.     3:
  563.       go to frame (getAt(frameNum,3))
  564.     4:  
  565.       getValues
  566.       set the text of member "temp1" = the text of member "myagi"
  567.       set the text of member "temp2" = the text of member "spouseagi"
  568.       go to frame (getAt(frameNum,4))
  569.     5:
  570.       set the text of member "temp1" = the text of member "term"
  571.       set the text of member "temp2" = the text of member "irate"
  572.       go to frame (getAt(frameNum,5))
  573.     6:
  574.       go to frame (getAt(frameNum,6))
  575.   end case
  576. end
  577. "
  578. -- "**********************************************************************"
  579. -- "on calcDollar thisString, decimal
  580.   set minus = "false"
  581.   set n = 0
  582.   if (char 1 of thisString = "-") then
  583.     delete char 1 of thisString
  584.     set minus = "true"
  585.   end if
  586.   
  587.   set x = the number of chars in thisString
  588.   repeat while (n < x)
  589.     set n = n + 1
  590.     if (char n of thisString = ".") then
  591.       set x = n - 1
  592.       if decimal = 0 then
  593.         delete char n to (the number of chars in thisString) of thisString
  594.       else
  595.         delete char (n + 3) to (the number of chars in thisString) of thisString
  596.       end if
  597.     end if
  598.   end repeat
  599.   set n = 0
  600.   repeat while (n < x - 1)
  601.     set n = n + 1
  602.     if (n mod 3 = 0) then
  603.       set thisString = chars(thisString,1,x - n) & "," & chars(thisString,x - n + 1,the number of chars in thisString)
  604.     end if
  605.   end repeat
  606.   if minus = "false" then
  607.     set thisString = "$" & thisString
  608.   else
  609.     set thisString = "-$" & thisString
  610.   end if
  611.   if decimal <> 0 then
  612.     if char (the number of chars in thisString) of thisString = "." then
  613.       set thisString = thisString & "0"
  614.     end if
  615.     if char ((the number of chars in thisString) - 1) of thisString = "." then
  616.       set thisString = thisString & "0"
  617.     end if
  618.     if char ((the number of chars in thisString) - 2) of thisString <> "." then
  619.       set thisString = thisString & ".00"
  620.     end if
  621.   end if
  622.   return thisString
  623. end
  624. "
  625. -- "**********************************************************************"
  626. -- "on setDefaults
  627.   global firstTimeThrough, fedtaxes1, statetaxes1, socsec1, fedtaxes2, statetaxes2, socsec2, i196, i296, s96
  628.   if (firstTimeThrough = 0) then
  629.     set firstTimeThrough = 1
  630.     --set fedTaxes = ((i196 + i296) * 0.1029) - 2134
  631.     --set stateTaxes = ((i196 + i296) * 0.02589) - 415
  632.         if (i196 > 62700) then
  633.           set templow1 = 62700
  634.           set temphigh1 = i196 - 62700
  635.         else
  636.           set templow1 = i196
  637.           set temphigh1 = 0
  638.         end if
  639.         if (i296 > 62700) then
  640.           set templow2 = 62700
  641.           set temphigh2 = i296 - 62700
  642.         else
  643.           set templow2 = i296
  644.           set temphigh2 = 0
  645.         end if
  646.         set socsec1 = (templow1 * 0.0765) + (temphigh1 * 0.0145)
  647.         set socsec2 = (templow2 * 0.0765) + (temphigh2 * 0.0145)
  648.     case s96 of
  649.       2,4:
  650.         set socsec1 = socsec1 + socsec2
  651.     end case
  652.     
  653.     
  654.     set the floatPrecision = 2
  655.     --calcDollar string(fedTaxes)
  656.     --set incomeString = the result
  657.     --set the text of member "fedTaxes" = incomeString
  658.     --calcDollar string(stateTaxes)
  659.     --set incomeString = the result
  660.     --set the text of member "stateTaxes" = incomeString
  661.     calcDollar string(socsec1)
  662.     set incomeString = the result
  663.     set the text of member "socsec1" = incomeString
  664.     calcDollar string(socsec2)
  665.     set incomeString = the result
  666.     set the text of member "socsec2" = incomeString
  667.     set the floatPrecision = 12
  668.   end if
  669. end
  670. "
  671. -- "**********************************************************************"
  672. -- "on compare
  673.   global bookmarks, numBoxes, maxPages, frameNum, myJob, spouseJob, myPlan, spousePlan, filingStatus, term, irate, myagi, spouseagi
  674.   
  675.   if myJob = "no" then
  676.     case filingStatus of
  677.       1:
  678.         set deduction = 2000
  679.         If myagi < 2000 then
  680.           set deduction = myagi
  681.         end if
  682.         if deduction < 0 then
  683.           set deduction = 0
  684.         end if
  685.       2:
  686.         if spouseJob = "no" then
  687.           set deduction = 4000
  688.         else
  689.           set deduction = 4000 - ((myagi - 40000) / 2.5)
  690.           if deduction > myagi then
  691.             set deduction = myagi
  692.           end if
  693.           if deduction < 0 then
  694.             set deduction = 0
  695.           end if
  696.           if deduction > 4000 then
  697.             set deduction = 4000
  698.           end if
  699.         end if
  700.       3:
  701.         set deduction = 2000
  702.         If myagi < 2000 then
  703.           set deduction = myagi
  704.         end if
  705.         if deduction < 0 then
  706.           set deduction = 0
  707.         end if
  708.         if deduction > 2000 then
  709.           set deduction = 2000
  710.         end if
  711.         if spouseJob = "no" then
  712.           set spousededuction = 2000
  713.           If spouseagi < 2000 then
  714.             set spousededuction = spouseagi
  715.           end if
  716.           if spousededuction < 0 then
  717.             set spousededuction = 0
  718.           end if
  719.           if spousededuction > 2000 then
  720.             set spousededuction = 2000
  721.           end if
  722.         else
  723.           set spousededuction = 2000 - (spouseagi / 5)
  724.           if spousededuction > spouseagi then
  725.             set spousededuction = spouseagi
  726.           end if
  727.           if spousededuction < 0 then
  728.             set spousededuction = 0
  729.           end if
  730.           if spousededuction > 2000 then
  731.             set spousededuction = 2000
  732.           end if
  733.         end if
  734.     end case
  735.   else
  736.     case filingStatus of
  737.       1:
  738.         set deduction = 2000 - ((myagi - 25000) / 5)
  739.         if deduction > myagi then
  740.           set deduction = myagi
  741.         end if
  742.         if deduction < 0 then
  743.           set deduction = 0
  744.         end if
  745.         if deduction > 2000 then
  746.           set deduction = 2000
  747.         end if
  748.       2:
  749.         set deduction = 4000 - ((myagi - 40000) / 2.5)
  750.         if deduction > myagi then
  751.           set deduction = myagi
  752.         end if
  753.         if deduction < 0 then
  754.           set deduction = 0
  755.         end if
  756.         if deduction > 4000 then
  757.           set deduction = 4000
  758.         end if
  759.       3:
  760.         set deduction = 2000 - (myagi / 5)
  761.         if deduction > myagi then
  762.           set deduction = myagi
  763.         end if
  764.         if deduction < 0 then
  765.           set mydeduction = 0
  766.         end if
  767.         if deduction > 2000 then
  768.           set deduction = 2000
  769.         end if
  770.         if spouseJob = "yes" then
  771.           set spousededuction = 2000 - (spouseagi / 5)
  772.           if spousededuction > spouseagi then
  773.             set spousededuction = spouseagi
  774.           end if
  775.           if spousededuction < 0 then
  776.             set spousededuction = 0
  777.           end if
  778.           if spousededuction > 2000 then
  779.             set spousededuction = 2000
  780.           end if
  781.         else
  782.           set spousededuction = 2000
  783.           if spousededuction > spouseagi then
  784.             set spousededuction = spouseagi
  785.           end if
  786.           if spousededuction < 0 then
  787.             set spousededuction = 0
  788.           end if
  789.         end if
  790.     end case
  791.   end if
  792.   calcDollar string(deduction), 0
  793.   set deductionText = the result
  794.   if filingStatus = 3 then
  795.     calcDollar string(spousededuction), 0
  796.     set spouseDeductionText = the result
  797.   end if
  798.   
  799.   --CALCULATE TOTAL SAVINGS
  800.   set payment = deduction
  801.   if filingStatus = 3 then
  802.     set payment = payment + spouseDeduction
  803.   end if
  804.   if payment > 0 then
  805.     set n = 0
  806.     set totalamount = 0.0000
  807.     set rate = (float(1) + float(float(irate) / 100))
  808.     repeat while n < term
  809.       set n = n + 1
  810.       set totalamount = totalamount + float(payment)
  811.       set totalamount = float(totalamount * rate)
  812.     end repeat
  813.     calcDollar string(totalamount), 0
  814.     set totalAmountText = the result
  815.     
  816.   end if
  817.   
  818.   --PREPARE FINAL TEXT
  819.   set the text of member "totaltext" = "Given your AGI, tax filing and employment status, " 
  820.   case filingStatus of
  821.     1:
  822.       if deduction > 0 then
  823.         set the text of member "totaltext" = the text of member "totaltext" & "you can contribute up to " & deductionText & " into a tax-deductible IRA."
  824.       else 
  825.         set the text of member "totaltext" = the text of member "totaltext" & "you cannot take a deduction for contributions to an IRA."
  826.       end if
  827.     2:
  828.       if deduction > 0 then
  829.         set the text of member "totaltext" = the text of member "totaltext" & "you and your spouse can contribute up to " & deductionText & " into a tax-deductible IRA."
  830.       else
  831.         set the text of member "totaltext" = the text of member "totaltext" & "you and your spouse cannot take a deduction for contributions to an IRA."
  832.       end if
  833.     3:
  834.       if deduction > 0 then
  835.         if spousededuction > 0 then
  836.           set the text of member "totaltext" = the text of member "totaltext" & "you can contribute up to " & deductionText & " into a tax-deductible IRA.  Likewise, your spouse can contribute up to " & spouseDeductionText & "."
  837.         else
  838.           set the text of member "totaltext" = the text of member "totaltext" & "you can contribute up to " & deductionText & " into a tax-deductible IRA.  However, your spouse cannot take a deduction for contributions into an IRA."
  839.         end if
  840.       else
  841.         if spousededuction > 0 then
  842.           set the text of member "totaltext" = the text of member "totaltext" & "you cannot take a deduction for contributions into a tax-deductible IRA, but your spouse can contribute up to " & spouseDeductionText & "."
  843.         else
  844.           set the text of member "totaltext" = the text of member "totaltext" & "neither you nor your spouse can take a deduction for contributions into a tax-deductible IRA."
  845.         end if
  846.       end if
  847.   end case
  848.   
  849.   if payment > 0 then
  850.     case filingStatus of
  851.       1:
  852.         set the text of member "totaltext" = the text of member "totaltext" & RETURN & RETURN & "Based on your eligibility, the rate of return and the number of years you plan to contribute, you will have " & totalAmountText & " in your IRA at the end of this period."
  853.       2, 3:
  854.         set the text of member "totaltext" = the text of member "totaltext" & RETURN & RETURN & "Based on your eligibility, the rate of return and the number of years you plan to contribute, you and your spouse will have " & totalAmountText & " in your IRA at the end of this period."
  855.     end case
  856.     set the text of member "totaltext" = the text of member "totaltext" & "  This assumes you will not withdraw any of your IRA funds before age 59 1/2.  If you withdraw before then, you will be subject to a 10 percent penalty, plus any monies withdrawn will be subject to taxes as regular income.  The number cited is before any taxes are assessed."
  857.   end if
  858. end
  859.  
  860. "
  861. -- "**********************************************************************"
  862. -- "on keyboardNav pageNum
  863.   global bookmarks, numBoxes, maxPages
  864.   --DOWNARROW, TAB, RETURN
  865.   if (the keyCode = 125) or ((the keyCode = 48) and not(the shiftDown)) then
  866.     setAt bookmarks, pageNum, (getAt(bookmarks, pageNum) + 1)
  867.     if getAt(bookmarks, pageNum) > getAt(numBoxes, pageNum) then
  868.       setAt bookmarks, pageNum, getAt(numBoxes, pageNum)
  869.       if (pageNum <> maxPages) then
  870.         setAt bookmarks, (pageNum + 1), 1
  871.         clearSprites
  872.         page (pageNum + 1)
  873.       end if
  874.     else
  875.       page pageNum
  876.     end if
  877.   end if
  878.   
  879.   
  880.   
  881.   
  882.   --UPARROW, SHIFT-TAB
  883.   if (the keyCode = 126) or ((the keyCode = 48) and the shiftDown) then
  884.     setAt bookmarks, pageNum, (getAt(bookmarks, pageNum) - 1)
  885.     if getAt(bookmarks, pageNum) < 1 then
  886.       setAt bookmarks, pageNum, 1
  887.       if (pageNum <> 1) then
  888.         setAt bookmarks, (pageNum - 1), getAt(numBoxes, (pageNum - 1))
  889.         clearSprites
  890.         page (pageNum - 1)
  891.       end if
  892.     else
  893.       page pageNum
  894.     end if
  895.   end if
  896.   
  897.   
  898.   --HOME KEY
  899.   if (the keyCode = 115) and (pageNum <> 1) then
  900.     clearSprites
  901.     page 1
  902.   end if
  903.   
  904.   --END KEY
  905.   if (the keyCode = 119) and (pageNum <> maxPages) then
  906.     clearSprites
  907.     page maxPages
  908.   end if
  909.   
  910.   --PAGE UP
  911.   if (the keyCode = 116) and (pageNum <> 1) then
  912.     clearSprites
  913.     page (pageNum - 1)
  914.   end if
  915.   
  916.   --PAGE DOWN
  917.   if (the keyCode = 121) and (pageNum <> maxPages) then
  918.     clearSprites
  919.     page (pageNum + 1)
  920.   end if
  921. end
  922. "
  923. -- "**********************************************************************"
  924.