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

  1. test
  2. -- "on test
  3.   
  4.   put 1 into i
  5.   
  6.   repeat while i < 220
  7.     put the scripttext of cast i into temp
  8.     
  9.     if (temp <> "") then
  10.       
  11.       put temp
  12.       put "**********************************************************************"
  13.     end if
  14.     
  15.     put i+1 into i
  16.   end repeat
  17.   
  18. end test
  19.  
  20. "
  21. -- "**********************************************************************"
  22. -- "on mouseUp
  23.   newPage 1
  24. end"
  25. -- "**********************************************************************"
  26. -- "on mouseUp
  27.   newPage 2
  28. end"
  29. -- "**********************************************************************"
  30. -- "on mouseUp
  31.   newPage 3
  32. end"
  33. -- "**********************************************************************"
  34. -- "on mouseUp
  35.   newPage 4
  36. end"
  37. -- "**********************************************************************"
  38. -- "on mouseUp
  39.   newPage 5
  40. end"
  41. -- "**********************************************************************"
  42. -- "on mouseUp
  43.   newPage 6
  44. end"
  45. -- "**********************************************************************"
  46. -- "on exitFrame
  47.   global calcType
  48.   getValues  
  49.   puppetSprite 24, true
  50.   puppetSprite 25, true
  51.   case calcType of
  52.     "term": set the memberNum of sprite 24 = 14
  53.     "payment": set the memberNum of sprite 25 = 14
  54.   end case
  55. end"
  56. -- "**********************************************************************"
  57. -- "on exitFrame
  58.   global bookmarks, firstTimeThrough
  59.   getValues
  60.   go to frame (the frame + getAt(bookmarks,2))
  61. end"
  62. -- "**********************************************************************"
  63. -- "on exitFrame
  64.   getValues
  65.   go to frame (the frame + getAt(bookmarks,3))
  66. end
  67. "
  68. -- "**********************************************************************"
  69. -- "on exitFrame
  70.   global bookmarks, loanType
  71.   puppetSprite 13, true
  72.   getValues
  73.   puppetSprite 24, true
  74.   puppetSprite 25, true
  75.   case loanType of
  76.     "homeequity": set the memberNum of sprite 24 = 14
  77.     "personal": set the memberNum of sprite 25 = 14
  78.   end case
  79.   set the locV of sprite 13 = (the locV of sprite (16 + getAt(bookmarks,4))) + 7
  80.   set the text of member "explanation" = line (getAt(bookmarks,4)) of the text of member "exp4"
  81.   go to frame (the frame + getAt(bookmarks,4))
  82. end
  83. "
  84. -- "**********************************************************************"
  85. -- "on exitFrame
  86.   global bookmarks, loanType, numBoxes, calcType
  87.   puppetSprite 13, true
  88.   
  89.   
  90.   getValues
  91.   set the locV of sprite 13 = (the locV of sprite (23 + getAt(bookmarks,5))) + 7
  92.   set the text of member "explanation" = line (getAt(bookmarks,5)) of the text of member "exp5"
  93.   if loanType = "personal" then
  94.     puppetSprite 19, true
  95.     puppetSprite 27, true
  96.     set the locH of sprite 19 = 800
  97.     set the locH of sprite 27 = 800
  98.     setAt numBoxes, 5, 3
  99.     if getAt(bookmarks, 5) > getAt(numBoxes, 5) then
  100.       setAt bookmarks, 5, getAt(numBoxes, 5)
  101.     end if
  102.   else
  103.     setAt numBoxes, 5, 4
  104.   end if
  105.   if calcType = "term" then
  106.     set the text of member "termorpaymenttext" = "Monthly" & RETURN & "payment:"
  107.     set the text of member "termorpayment" = the text of member "payment"
  108.   else
  109.     set the text of member "termorpaymenttext" = "Length" & RETURN & "of loan:"
  110.     set the text of member "termorpayment" = the text of member "term"
  111.   end if
  112.   go to frame (the frame + getAt(bookmarks,5))
  113. end"
  114. -- "**********************************************************************"
  115. -- "on exitFrame
  116.     getValues
  117. end"
  118. -- "**********************************************************************"
  119. -- "on enterframe
  120.   checkRollOver 43
  121. end
  122.  
  123.  
  124. on exitFrame
  125.   go the frame
  126. end
  127.  
  128. on keyUp
  129.   keyboardNav 1
  130. end
  131.  
  132. on mouseUp
  133.   global numBoxes, calcType, bookmarks
  134.   if rollover(24) or rollover(16) then
  135.     set the memberNum of sprite 24 = 14
  136.     set the memberNum of sprite 25 = 13
  137.     set calcType = "term"
  138.   end if
  139.   if rollover(25) or rollover(17) then
  140.     set the memberNum of sprite 24 = 13
  141.     set the memberNum of sprite 25 = 14
  142.     set calcType = "payment"
  143.   end if
  144. end
  145.  
  146.  
  147. "
  148. -- "**********************************************************************"
  149. -- "on enterframe
  150.   checkRollOver 44
  151. end
  152.  
  153. on keyUp
  154.   keyboardNav 2
  155. end
  156.  
  157.  
  158. on exitFrame
  159.   go the frame
  160. end
  161.  
  162.  
  163. on mouseUp
  164.   global bookmarks
  165.   if (rollover(16) or rollover(24)) then
  166.     setAt bookmarks, 2, 1
  167.     page 2
  168.   end if
  169.   if (rollover(17) or rollover(25)) then
  170.     setAt bookmarks, 2, 2
  171.     page 2
  172.   end if
  173.   if (rollover(18) or rollover(26)) then
  174.     setAt bookmarks, 2, 3
  175.     page 2
  176.   end if
  177.   if (rollover(19) or rollover(27)) then
  178.     setAt bookmarks, 2, 4
  179.     page 2
  180.   end if
  181. end
  182. "
  183. -- "**********************************************************************"
  184. -- "on enterframe
  185.   checkRollOver 45
  186. end
  187.  
  188. on keyUp
  189.   keyboardNav 3
  190. end
  191.  
  192.  
  193. on exitFrame
  194.   go the frame
  195. end
  196.  
  197.  
  198. on mouseUp
  199.   global bookmarks
  200.   if (rollover(16) or rollover(24)) then
  201.     setAt bookmarks, 3, 1
  202.     page 3
  203.   end if
  204.   if (rollover(17) or rollover(25)) then
  205.     setAt bookmarks, 3, 2
  206.     page 3
  207.   end if
  208.   if (rollover(18) or rollover(26)) then
  209.     setAt bookmarks, 3, 3
  210.     page 3
  211.   end if
  212.   if (rollover(19) or rollover(27)) then
  213.     setAt bookmarks, 3, 4
  214.     page 3
  215.   end if
  216. end
  217. "
  218. -- "**********************************************************************"
  219. -- "on enterframe
  220.   checkRollOver 46
  221. end
  222.  
  223. on keyUp
  224.   keyboardNav 4
  225. end
  226.  
  227.  
  228. on exitFrame
  229.   go the frame
  230. end
  231.  
  232.  
  233. on mouseUp
  234.   global numBoxes, loanType, bookmarks
  235.   if rollover(24) or rollover(17) then
  236.     set the memberNum of sprite 24 = 14
  237.     set the memberNum of sprite 25 = 13
  238.     set loanType = "homeequity"
  239.   end if
  240.   if rollover(25) or rollover(18) then
  241.     set the memberNum of sprite 24 = 13
  242.     set the memberNum of sprite 25 = 14
  243.     set loanType = "personal"
  244.   end if
  245.   if (rollover(17) or rollover(24)) then
  246.     setAt bookmarks, 4, 1
  247.     page 4
  248.   end if
  249.   if (rollover(18) or rollover(25)) then
  250.     setAt bookmarks, 4, 2
  251.     page 4
  252.   end if
  253. end
  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.   if (rollover(18) or rollover(26)) then
  281.     setAt bookmarks, 5, 3
  282.     page 5
  283.   end if
  284.   if (rollover(19) or rollover(27)) then
  285.     setAt bookmarks, 5, 4
  286.     page 5
  287.   end if
  288. end
  289. "
  290. -- "**********************************************************************"
  291. -- "on enterframe
  292.   checkRollOver 48
  293. end
  294.  
  295. on exitFrame
  296.   go the frame
  297. end
  298.  
  299. on keyUp
  300.   keyboardNav 6
  301. end
  302. "
  303. -- "**********************************************************************"
  304. -- "on exitFrame
  305.   global bookmarks, numBoxes, maxPages, loanType, ccActive, ccBalance, ccInterest, ccFees, LActive, LBalance, LInterest, LPayment, term, irate, fees, marginal, payment, calcType, frameNum
  306.   set the floatPrecision to 12
  307.   set loanType = "homeequity"
  308.   set calcType = "term"
  309.   set maxPages = 6
  310.   set thisRoll = 0
  311.   puppetSprite 40, true
  312.   
  313.   set n = 0
  314.   repeat while n < 5
  315.     set n = n + 1
  316.     set the text of member "cc" & n & "b" = "$0"
  317.     set the text of member "cc" & n & "i" = "0%"
  318.     set the text of member "cc" & n & "f" = "$0"
  319.     set the text of member "L" & n & "b" = "$0"
  320.     set the text of member "L" & n & "i" = "0%"
  321.     set the text of member "L" & n & "p" = "$0"
  322.   end repeat
  323.   
  324.   
  325.   
  326.   set term = float(12)
  327.   set the text of member "term" = "12 months"
  328.   set irate = float(10)
  329.   set the text of member "irate" = "10%"
  330.   set fees = float(0)
  331.   set the text of member "fees" = "$0"
  332.   set payment = float(100)
  333.   set the text of member "payment" = "$100"
  334.   set marginal = float(36)
  335.   set the text of member "marginal" = "36%"
  336.   
  337.   set bookmarks = list(1,1,1,1,1,1)
  338.   set frameNum = list(2,5,22,39,51,58)
  339.   set numBoxes = list(1,15,15,2,4,1)
  340.   set ccActive = list(0,0,0,0,0)
  341.   set ccBalance = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  342.   set ccInterest = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  343.   set ccFees = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  344.   set LActive = list(0,0,0,0,0)
  345.   set LBalance = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  346.   set LInterest = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  347.   set LPayment = list(0.0000000000,0.0000000000,0.0000000000,0.0000000000,0.0000000000)
  348. end"
  349. -- "**********************************************************************"
  350. -- "on otherRoll
  351.   global thisRoll
  352.   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
  353.     resetColors 0
  354.   end if
  355. end"
  356. -- "**********************************************************************"
  357. -- "on checkRollOver exempt
  358.   global thisRoll
  359.   set n = 43
  360.   repeat while (n < 49)
  361.     if (rollover(n) and (thisRoll <> (the memberNum of sprite n)) and (n <> exempt)) then
  362.       resetColors n
  363.     end if
  364.     set n = n + 1
  365.   end repeat
  366.   if (exempt <> 0) and (exempt <> 48) and (exempt <> 44) and (exempt <> 45) then
  367.     set n = 16
  368.     repeat while (n < 24)
  369.       if (rollover(n) and (thisRoll <> (the memberNum of sprite n))) then
  370.         resetColors n
  371.       end if
  372.       set n = n + 1
  373.     end repeat
  374.   end if
  375.   otherroll
  376. end
  377. "
  378. -- "**********************************************************************"
  379. -- "on newPage thisPage
  380.   puppetSprite 13, false
  381.   puppetSprite 16, false
  382.   puppetSprite 17, false
  383.   puppetSprite 18, false
  384.   puppetSprite 19, false
  385.   puppetSprite 20, false
  386.   puppetSprite 21, false
  387.   puppetSprite 22, false
  388.   puppetSprite 23, false
  389.   puppetSprite 24, false
  390.   puppetSprite 25, false
  391.   puppetSprite 26, false
  392.   puppetSprite 27, false
  393.   puppetSprite 28, false
  394.   puppetSprite 29, false
  395.   getValues
  396.   set the locV of sprite 40 = 800
  397.   case thisPage of
  398.     6:
  399.       compare
  400.       page thisPage
  401.     otherwise
  402.       page thisPage
  403.   end case
  404. end "
  405. -- "**********************************************************************"
  406. -- "on getValues
  407.   global bookmarks, numBoxes, maxPages, loanType, ccActive, ccBalance, ccInterest, ccFees, LActive, LBalance, LInterest, LPayment, term, irate, fees, marginal, payment, calcType, frameNum
  408.   set the floatPrecision = 2
  409.   
  410.   if (the frame >= getAt(frameNum,2)) and (the frame < getAt(frameNum,3)) then
  411.     set n = 0
  412.     repeat while n < 5
  413.       set n = n + 1
  414.       set incomeString = line 1 of the text of member ("cc" & n & "b")
  415.       calcNum incomeString
  416.       set incomeString = the result
  417.       setAt ccBalance, n, value(incomeString)
  418.       if getAt(ccBalance,n) < 0 then
  419.         setAt ccBalance, n, 0
  420.         set incomeString = "0"
  421.       end if
  422.       calcDollar incomeString, 0
  423.       set incomeString = the result
  424.       set the text of member ("cc" & n & "b") = incomeString
  425.       
  426.       set incomeString = line 1 of the text of member ("cc" & n & "i")
  427.       calcNum incomeString
  428.       set incomeString = the result
  429.       setAt ccInterest, n, value(incomeString)
  430.       if getAt(ccInterest,n) > 100 then
  431.         setAt ccInterest, n, 100
  432.       end if
  433.       if getAt(ccInterest,n) < 0 then
  434.         setAt ccInterest, n, 0
  435.       end if
  436.       set the text of member ("cc" & n & "i") = getAt(ccInterest,n) & "%"
  437.       
  438.       set incomeString = line 1 of the text of member ("cc" & n & "f")
  439.       calcNum incomeString
  440.       set incomeString = the result
  441.       setAt ccFees, n, value(incomeString)
  442.       if getAt(ccFees,n) < 0 then
  443.         setAt ccFees, n, 0
  444.         set incomeString = "0"
  445.       end if
  446.       calcDollar incomeString, 0
  447.       set incomeString = the result
  448.       set the text of member ("cc" & n & "f") = incomeString
  449.       
  450.       if (getAt(ccBalance,n) = 0) or (getAt(ccInterest,n) = 0) then
  451.         setAt ccActive, n, 0
  452.         setAt ccBalance, n, 0
  453.         set the text of member ("cc" & n & "b") = "$0"
  454.         setAt ccInterest, n, 0
  455.         set the text of member ("cc" & n & "i") = "0%"
  456.         setAt ccFees, n, 0
  457.         set the text of member ("cc" & n & "f") = "$0"
  458.       else
  459.         setAt ccActive, n, 1
  460.       end if
  461.     end repeat
  462.   end if  
  463.   
  464.   if (the frame >= getAt(frameNum,3)) and (the frame < getAt(frameNum,4)) then
  465.     set n = 0
  466.     repeat while n < 5
  467.       set n = n + 1
  468.       
  469.       set incomeString = line 1 of the text of member ("L" & n & "b")
  470.       calcNum incomeString
  471.       set incomeString = the result
  472.       setAt LBalance, n, value(incomeString)
  473.       if getAt(LBalance,n) < 0 then
  474.         setAt LBalance, n, 0
  475.         set incomeString = "0"
  476.       end if
  477.       calcDollar incomeString, 0
  478.       set incomeString = the result
  479.       set the text of member ("L" & n & "b") = incomeString
  480.       
  481.       set incomeString = line 1 of the text of member ("L" & n & "i")
  482.       calcNum incomeString
  483.       set incomeString = the result
  484.       setAt LInterest, n, value(incomeString)
  485.       if getAt(LInterest,n) > 100 then
  486.         setAt LInterest, n, 100
  487.       end if
  488.       if getAt(LInterest,n) < 0 then
  489.         setAt LInterest, n, 0
  490.       end if
  491.       set the text of member ("L" & n & "i") = getAt(LInterest,n) & "%"
  492.       
  493.       set incomeString = line 1 of the text of member ("L" & n & "p")
  494.       calcNum incomeString
  495.       set incomeString = the result
  496.       setAt LPayment, n, value(incomeString)
  497.       if getAt(LPayment,n) < 0 then
  498.         setAt LPayment, n, 0
  499.         set incomeString = "0"
  500.       end if
  501.       calcDollar incomeString, 0
  502.       set incomeString = the result
  503.       set the text of member ("L" & n & "p") = incomeString
  504.       
  505.       if (getAt(LBalance,n) = 0) or (getAt(LPayment,n) = 0) then
  506.         setAt LActive, n, 0
  507.         setAt LBalance, n, 0
  508.         set the text of member ("L" & n & "b") = "$0"
  509.         setAt LInterest, n, 0
  510.         set the text of member ("L" & n & "i") = "0%"
  511.         setAt LPayment, n, 0
  512.         set the text of member ("L" & n & "p") = "$0"
  513.       else
  514.         setAt LActive, n, 1
  515.       end if
  516.     end repeat
  517.   end if
  518.   
  519.   if (the frame > getAt(frameNum,5)) and (the frame < getAt(frameNum,6)) then
  520.     if calcType = "term" then
  521.       --PAYMENT
  522.       set incomeString = line 1 of the text of member "termorpayment"
  523.       calcNum incomeString
  524.       set incomeString = the result
  525.       set payment = value(incomeString)
  526.       if payment <= 0 then
  527.         set payment = 100
  528.         set incomeString = "100"
  529.       end if
  530.       calcDollar incomeString, 0
  531.       set incomeString = the result
  532.       set the text of member "payment" = incomeString
  533.       set the text of member "termorpayment" = incomeString
  534.     else
  535.       --TERM
  536.       set incomeString = line 1 of the text of member "termorpayment"
  537.       calcNum incomeString
  538.       set incomeString = the result
  539.       set term = value(incomeString)
  540.       set term = integer(term)
  541.       if term <= 1 then
  542.         set term = 1
  543.       end if
  544.       if term = 1 then
  545.         set the text of member "term" = term & " month"
  546.         set the text of member "termorpayment" = term & " month"
  547.       else
  548.         set the text of member "term" = term & " months"
  549.         set the text of member "termorpayment" = term & " months"
  550.       end if
  551.     end if
  552.     --IRATE
  553.     set incomeString = line 1 of the text of member "irate"
  554.     calcNum incomeString
  555.     set incomeString = the result
  556.     set irate = value(incomeString)
  557.     if irate > 50 then
  558.       set irate = 50
  559.     end if
  560.     if irate <= 0 then
  561.       set irate = 0
  562.     end if
  563.     set the text of member "irate" = irate & "%"
  564.     --FEES
  565.     set incomeString = line 1 of the text of member "fees"
  566.     calcNum incomeString
  567.     set incomeString = the result
  568.     set fees = value(incomeString)
  569.     if fees < 0 then
  570.       set fees = 0
  571.       set incomeString = "0"
  572.     end if
  573.     calcDollar incomeString, 0
  574.     set incomeString = the result
  575.     set the text of member "fees" = incomeString
  576.     --MARGINAL
  577.     set incomeString = line 1 of the text of member "MARGINAL"
  578.     calcNum incomeString
  579.     set incomeString = the result
  580.     set marginal = value(incomeString)
  581.     if marginal > 70 then
  582.       set marginal = 50
  583.     end if
  584.     if marginal < 0 then
  585.       set marginal = 0
  586.     end if
  587.     set the text of member "marginal" = marginal & "%"
  588.   end if  
  589.   
  590.   set the floatPrecision = 12
  591. end
  592. "
  593. -- "**********************************************************************"
  594. -- "on clearSprites
  595.   puppetSprite 13, false
  596.   puppetSprite 16, false
  597.   puppetSprite 17, false
  598.   puppetSprite 18, false
  599.   puppetSprite 19, false
  600.   puppetSprite 20, false
  601.   puppetSprite 21, false
  602.   puppetSprite 22, false
  603.   puppetSprite 23, false
  604.   puppetSprite 24, false
  605.   puppetSprite 25, false
  606.   puppetSprite 26, false
  607.   puppetSprite 27, false
  608.   puppetSprite 28, false
  609.   puppetSprite 29, false
  610. end
  611. "
  612. -- "**********************************************************************"
  613. -- "on calcNum thisString
  614.   if (the number of chars in thisString = 0) then
  615.     set thisString = "0"
  616.   end if
  617.   set minus = "false"
  618.   set n = 1
  619.   set decimal = "false"
  620.   repeat while (n <= the number of chars in thisString)
  621.     if not((value(char n of thisString) >= 0) and (value(char n of thisString) <= 9)) then
  622.       if (not(char n of thisString = ".")) or decimal = "true" then
  623.         if ((char n of thisString = "-") and (n = 1)) then
  624.           set minus = "true"
  625.         end if
  626.         delete char n of thisString
  627.       else
  628.         set decimal = "true"
  629.         set n = n + 1
  630.       end if
  631.     else
  632.       set n = n + 1
  633.     end if
  634.   end repeat
  635.   set zeros = TRUE
  636.   repeat while (zeros = TRUE)
  637.     if (char 1 of thisString) = "0" then
  638.       delete char 1 of thisString
  639.     else
  640.       set zeros = FALSE
  641.     end if
  642.   end repeat
  643.   if decimal = "true" then
  644.     set zeros = TRUE
  645.     repeat while (zeros = TRUE)
  646.       if (char (the number of chars in thisString) of thisString) = "0" then
  647.         delete char (the number of chars in thisString) of thisString
  648.       else
  649.         set zeros = FALSE
  650.       end if
  651.     end repeat
  652.   end if
  653.   
  654.   if thisString = "." then
  655.     set thisString = "0"
  656.   end if
  657.   
  658.   if (the number of chars in thisString = 0) then
  659.     set thisString = "0"
  660.   end if
  661.   if (minus = "true") and not(thisString = "0") then
  662.     set thisString = "-" & thisString
  663.   end if
  664.   repeat while (the number of chars in thisString) > 8
  665.     delete char (the number of chars in thisString) of thisString
  666.     
  667.   end repeat
  668.   if char (the number of chars in thisString) of thisString = "." then
  669.     delete char (the number of chars in thisString) of thisString
  670.   end if
  671.   
  672.   return thisString
  673. end
  674. "
  675. -- "**********************************************************************"
  676. -- "on resetColors n
  677.   global thisRoll
  678.   if (thisRoll <> 0) then
  679.     cursor -1
  680.     set the locV of sprite 40 = 800
  681.   end if
  682.   if (n <> 0) then
  683.     if (n < 43) then
  684.       cursor [1,2]
  685.     end if
  686.     set thisRoll = (the memberNum of sprite n)
  687.     if (n > 42) then
  688.       set the locV of sprite 40 = 46 + (37 * (n - 43))
  689.       cursor [1,2]
  690.     end if
  691.   else
  692.     set thisRoll = 0
  693.   end if
  694. end
  695. "
  696. -- "**********************************************************************"
  697. -- "on page thisPage
  698.   global frameNum
  699.   case thisPage of
  700.     1:
  701.       go to frame (getAt(frameNum,1))
  702.     2:
  703.       set the text of member "temp1" = the text of member "cc1b"
  704.       set the text of member "temp2" = the text of member "cc2b"
  705.       set the text of member "temp3" = the text of member "cc3b"
  706.       set the text of member "temp4" = the text of member "cc4b"
  707.       set the text of member "temp5" = the text of member "cc5b"
  708.       set the text of member "temp6" = the text of member "cc1i"
  709.       set the text of member "temp7" = the text of member "cc2i"
  710.       set the text of member "temp8" = the text of member "cc3i"
  711.       set the text of member "temp9" = the text of member "cc4i"
  712.       set the text of member "temp10" = the text of member "cc5i"
  713.       set the text of member "temp11" = the text of member "cc1f"
  714.       set the text of member "temp12" = the text of member "cc2f"
  715.       set the text of member "temp13" = the text of member "cc3f"
  716.       set the text of member "temp14" = the text of member "cc4f"
  717.       set the text of member "temp15" = the text of member "cc5f"
  718.       go to frame (getAt(frameNum,2))
  719.     3:
  720.       set the text of member "temp1" = the text of member "L1b"
  721.       set the text of member "temp2" = the text of member "L2b"
  722.       set the text of member "temp3" = the text of member "L3b"
  723.       set the text of member "temp4" = the text of member "L4b"
  724.       set the text of member "temp5" = the text of member "L5b"
  725.       set the text of member "temp6" = the text of member "L1i"
  726.       set the text of member "temp7" = the text of member "L2i"
  727.       set the text of member "temp8" = the text of member "L3i"
  728.       set the text of member "temp9" = the text of member "L4i"
  729.       set the text of member "temp10" = the text of member "L5i"
  730.       set the text of member "temp11" = the text of member "L1p"
  731.       set the text of member "temp12" = the text of member "L2p"
  732.       set the text of member "temp13" = the text of member "L3p"
  733.       set the text of member "temp14" = the text of member "L4p"
  734.       set the text of member "temp15" = the text of member "L5p"
  735.       go to frame (getAt(frameNum,3))
  736.     4:  
  737.       go to frame (getAt(frameNum,4))
  738.     5:
  739.       getValues
  740.       set the text of member "temp1" = the text of member "termorpayment"
  741.       set the text of member "temp2" = the text of member "irate"
  742.       set the text of member "temp3" = the text of member "fees"
  743.       set the text of member "temp4" = the text of member "marginal"
  744.       go to frame (getAt(frameNum,5))
  745.     6:
  746.       go to frame (getAt(frameNum,6))
  747.   end case
  748. end
  749. "
  750. -- "**********************************************************************"
  751. -- "on calcDollar thisString, decimal
  752.   set minus = "false"
  753.   set n = 0
  754.   if (char 1 of thisString = "-") then
  755.     delete char 1 of thisString
  756.     set minus = "true"
  757.   end if
  758.   
  759.   set x = the number of chars in thisString
  760.   repeat while (n < x)
  761.     set n = n + 1
  762.     if (char n of thisString = ".") then
  763.       set x = n - 1
  764.       if decimal = 0 then
  765.         delete char n to (the number of chars in thisString) of thisString
  766.       else
  767.         delete char (n + 3) to (the number of chars in thisString) of thisString
  768.       end if
  769.     end if
  770.   end repeat
  771.   set n = 0
  772.   repeat while (n < x - 1)
  773.     set n = n + 1
  774.     if (n mod 3 = 0) then
  775.       set thisString = chars(thisString,1,x - n) & "," & chars(thisString,x - n + 1,the number of chars in thisString)
  776.     end if
  777.   end repeat
  778.   if minus = "false" then
  779.     set thisString = "$" & thisString
  780.   else
  781.     set thisString = "-$" & thisString
  782.   end if
  783.   if decimal <> 0 then
  784.     if char (the number of chars in thisString) of thisString = "." then
  785.       set thisString = thisString & "0"
  786.     end if
  787.     if char ((the number of chars in thisString) - 1) of thisString = "." then
  788.       set thisString = thisString & "0"
  789.     end if
  790.     if char ((the number of chars in thisString) - 2) of thisString <> "." then
  791.       set thisString = thisString & ".00"
  792.     end if
  793.   end if
  794.   return thisString
  795. end
  796. "
  797. -- "**********************************************************************"
  798.  
  799.  
  800. test
  801. -- "on setDefaults
  802.   global firstTimeThrough, fedtaxes1, statetaxes1, socsec1, fedtaxes2, statetaxes2, socsec2, i196, i296, s96
  803.   if (firstTimeThrough = 0) then
  804.     set firstTimeThrough = 1
  805.     --set fedTaxes = ((i196 + i296) * 0.1029) - 2134
  806.     --set stateTaxes = ((i196 + i296) * 0.02589) - 415
  807.         if (i196 > 62700) then
  808.           set templow1 = 62700
  809.           set temphigh1 = i196 - 62700
  810.         else
  811.           set templow1 = i196
  812.           set temphigh1 = 0
  813.         end if
  814.         if (i296 > 62700) then
  815.           set templow2 = 62700
  816.           set temphigh2 = i296 - 62700
  817.         else
  818.           set templow2 = i296
  819.           set temphigh2 = 0
  820.         end if
  821.         set socsec1 = (templow1 * 0.0765) + (temphigh1 * 0.0145)
  822.         set socsec2 = (templow2 * 0.0765) + (temphigh2 * 0.0145)
  823.     case s96 of
  824.       2,4:
  825.         set socsec1 = socsec1 + socsec2
  826.     end case
  827.     
  828.     
  829.     set the floatPrecision = 2
  830.     --calcDollar string(fedTaxes)
  831.     --set incomeString = the result
  832.     --set the text of member "fedTaxes" = incomeString
  833.     --calcDollar string(stateTaxes)
  834.     --set incomeString = the result
  835.     --set the text of member "stateTaxes" = incomeString
  836.     calcDollar string(socsec1)
  837.     set incomeString = the result
  838.     set the text of member "socsec1" = incomeString
  839.     calcDollar string(socsec2)
  840.     set incomeString = the result
  841.     set the text of member "socsec2" = incomeString
  842.     set the floatPrecision = 12
  843.   end if
  844. end
  845. "
  846. -- "**********************************************************************"
  847. -- "on compare
  848.   global bookmarks, numBoxes, maxPages, loanType, ccActive, ccBalance, ccInterest, ccFees, LActive, LBalance, LInterest, LPayment, term, irate, fees, marginal, payment, calcType, frameNum
  849.   
  850.   --FIRST, CALCULATE THE TOTAL AMOUNT OWED.
  851.   set n = 0
  852.   set currentTotal = 0
  853.   set tempRate = float(irate) / float(1200)
  854.   set tempTaxRate = float(marginal) / float(100)
  855.   repeat while n < 5
  856.     set n = n + 1
  857.     if getAt(ccActive,n) <> 0 then
  858.       set currentTotal = currentTotal + getAt(ccBalance,n)
  859.     end if
  860.     if getAt(LActive,n) <> 0 then
  861.       set currentTotal = currentTotal + getAt(LBalance,n)
  862.     end if
  863.   end repeat
  864.   
  865.   --SECOND, SPLIT UP THE TASK DEPENDING ON WHETHER CALCULATING TERM OR PAYMENT.
  866.   set totalNewInterest = float(0)
  867.   set totalNewTaxes = float(0)
  868.   if calcType = "term" then
  869.     
  870.     --WE KNOW THE PAYMENT; GET THE TERM OF THE LOAN, PLUS TOTAL INTEREST AND TAXES
  871.     set tempTotal = float(currentTotal)
  872.     set term = 0
  873.     repeat while tempTotal > 0
  874.       set term = term + 1
  875.       set thisInterest = float(float(tempTotal) * float(tempRate))
  876.       if loanType = "homeequity" then
  877.         set thisTax = float(float(thisInterest) * float(tempTaxRate))
  878.       else
  879.         set thisTax = 0
  880.       end if
  881.       set totalNewInterest = float(totalNewInterest) + float(thisInterest)
  882.       set totalNewTaxes = float(totalNewTaxes) + float(thisTax)
  883.       set tempTotal = float(tempTotal) + float(thisInterest) - float(thisTax) - float(payment)
  884.     end repeat
  885.     set totalNewPayments = (payment * term) + tempTotal + fees
  886.     set the text of member "term" = term & " month"
  887.     if term <> 1 then
  888.       set the text of member "term" = the text of member "term" & "s"
  889.     end if
  890.   else
  891.     
  892.     --WE KNOW THE TERM; GET THE PAYMENT
  893.     set rate =  float(1) + float(tempRate)
  894.     set n = -1
  895.     set tempTotal = float(0)
  896.     repeat while (n < (term - 1))
  897.       set n = n + 1
  898.       set tempTotal = float(tempTotal) + (power(float(rate),n))
  899.     end repeat
  900.     set payment = currentTotal * (power(float(rate),term)) / float(tempTotal)
  901.     put "payment: " & payment
  902.     
  903.     --THEN CALCULATE INTEREST AND TAXES
  904.     set tempTotal = float(currentTotal)
  905.     set totalNewInterest = float(0)
  906.     set totalNewTaxes = float(0)
  907.     set n = 0
  908.     repeat while n < term
  909.       set n = n + 1
  910.       set thisInterest = float(tempTotal) * float(tempRate)
  911.       if loanType = "homeequity" then
  912.         set thisTax = float(thisInterest) * float(tempTaxRate)
  913.       else
  914.         set thisTax = 0
  915.       end if
  916.       set totalNewInterest = float(totalNewInterest) + float(thisInterest)
  917.       set totalNewTaxes = float(totalNewTaxes) + float(thisTax)
  918.       set tempTotal = float(tempTotal) + float(thisInterest) - float(thisTax) - float(payment)
  919.     end repeat
  920.     set totalNewPayments = (payment * term) + fees
  921.   end if
  922.   
  923.   --THIRD, PRIORITIZE PAYMENT ORDER OF CREDIT CARDS.
  924.   set ccOrder = list(0,0,0,0,0)
  925.   set m = 0
  926.   repeat while m < 5
  927.     set m = m + 1
  928.     set n = 0
  929.     set highest = -1
  930.     repeat while n < 5
  931.       set n = n + 1
  932.       set p = 1
  933.       set taken = FALSE
  934.       repeat while p < m
  935.         if getAt(ccOrder,p) = n then
  936.           set taken = TRUE
  937.         end if
  938.         set p = p + 1
  939.       end repeat
  940.       if (getAt(ccInterest,n) > highest) and (getAt(ccActive,n) <> 0) and (taken = FALSE) then
  941.         set highest = getAt(ccInterest,n)
  942.         setAt ccOrder, m, n
  943.       end if
  944.     end repeat
  945.   end repeat
  946.   
  947.   --FOURTH, RUN THE TIME CALCULATIONS ON OLD LOANS.
  948.   set n = 0
  949.   set tempCCBalance = list(0.000000,0.000000,0.000000,0.000000,0.000000)
  950.   set tempLBalance = list(0.000000,0.000000,0.000000,0.000000,0.000000)
  951.   set tempCCInterest = list(0.000000,0.000000,0.000000,0.000000,0.000000)
  952.   set tempLInterest = list(0.000000,0.000000,0.000000,0.000000,0.000000)
  953.   set tempCCActive = list(0,0,0,0,0)
  954.   set tempLActive = list(0,0,0,0,0)
  955.   repeat while n < 5
  956.     set n = n + 1
  957.     if getAt(ccActive,n) <> 0 then
  958.       setAt tempCCBalance, n, getAt(ccBalance,n)
  959.       setAt tempCCInterest, n, (float(getAt(ccInterest,n)) / float(1200))
  960.       setAt tempCCActive, n, 1
  961.     end if
  962.     if getAt(LActive,n) <> 0 then
  963.       setAt tempLBalance, n, getAt(LBalance,n)
  964.       setAt tempLInterest, n, (float(getAt(LInterest,n)) / float(1200))
  965.       setAt tempLActive, n, 1
  966.     end if
  967.   end repeat
  968.   
  969.   set tempMonths = 0
  970.   set alldone = FALSE
  971.   set totalOldInterest = float(0)
  972.   set totalOldPayments = float(0)
  973.   set tempSavings = float(0)
  974.  
  975.  
  976.  
  977.   repeat while (tempMonths < term) and (alldone = FALSE)
  978.     set tempMonths = tempMonths + 1
  979.     if tempMonths = 1 then
  980.       set tempPayment = payment + fees
  981.     else
  982.       set tempPayment = payment
  983.     end if
  984.     
  985.     
  986.     --ADD INTEREST TO REMAINING BALANCES
  987.     set n = 0
  988.     repeat while n < 5
  989.       set n = n + 1
  990.       if getAt(tempCCActive,n) <> 0 then
  991.         set tempInterest = (getAt(tempCCBalance,n) * (float(getAt(tempCCInterest,n))))
  992.         set totalOldInterest = float(totalOldInterest) + float(tempInterest)
  993.         setAt tempCCBalance, n, (float(getAt(tempCCBalance,n)) + float(tempInterest))
  994.         if ((tempMonths - 6) mod 12) = 0 then
  995.           setAt tempCCBalance, n, (float(getAt(tempCCBalance,n)) + float(getAt(ccFees,n)))
  996.         end if
  997.       end if
  998.       if getAt(tempLActive,n) <> 0 then
  999.         set tempInterest = (getAt(tempLBalance,n) * (float(getAt(tempLInterest,n))))
  1000.         set totalOldInterest = float(totalOldInterest) + float(tempInterest)
  1001.         setAt tempLBalance, n, (float(getAt(tempLBalance,n)) + float(tempInterest))
  1002.       end if
  1003.     end repeat
  1004.     
  1005.     --SUBTRACT PAYMENTS FROM REMAINING BALANCES
  1006.     --SUBTRACT REQUIRED PAYMENTS
  1007.     set n = 0
  1008.     repeat while n < 5
  1009.       set n = n + 1
  1010.       if getAt(tempLActive,n) <> 0 then
  1011.         if getAt(tempLBalance,n) > getAt(LPayment,n) then
  1012.           set tempPayment = tempPayment - getAt(LPayment,n)
  1013.           set totalOldPayments = totalOldPayments + getAt(LPayment,n)
  1014.           setAt tempLBalance, n, (getAt(tempLBalance,n) - getAt(LPayment,n))
  1015.         else
  1016.           set tempPayment = tempPayment - getAt(tempLBalance,n)
  1017.           set totalOldPayments = totalOldPayments + getAt(tempLBalance,n)
  1018.           setAt tempLBalance, n, 0
  1019.           setAt tempLActive, n, 0
  1020.         end if
  1021.       end if
  1022.     end repeat
  1023.     
  1024.     --PAY CREDIT CARD MINIMUMS
  1025.     set n = 0
  1026.     repeat while n < 5
  1027.       set n = n + 1
  1028.       if getAt(tempCCActive,n) <> 0 then
  1029.         if getAt(tempCCBalance,n) > 15 then
  1030.           set tempMinimum = (float(0.013) * float(getAt(tempCCBalance,n)))
  1031.           if tempMinimum < 15 then
  1032.             set tempMinimum = float(15)
  1033.           end if
  1034.           set tempPayment = tempPayment - tempMinimum
  1035.           set totalOldPayments = totalOldPayments + tempMinimum
  1036.           setAt tempCCBalance, n, (getAt(tempCCBalance,n) - tempMinimum)
  1037.         else
  1038.           set tempPayment = tempPayment - getAt(tempCCBalance,n)
  1039.           set totalOldPayments = totalOldPayments + getAt(tempCCBalance,n)
  1040.           setAt tempCCBalance, n, 0
  1041.           setAt tempCCActive, n, 0
  1042.         end if
  1043.       end if
  1044.     end repeat
  1045.     
  1046.     --(C) ALLOT REMAINING BALANCE
  1047.     
  1048.     --IF NEED TO BORROW FROM CC TO MAKE PAYMENTS
  1049.     if tempPayment <= 0 then
  1050.       if tempPayment < 0 then
  1051.         set n = 5
  1052.         set tempLastOne = 0
  1053.         
  1054.         --FIND CC WITH LOWEST RATE
  1055.         repeat while n <> 0
  1056.           if getAt(ccOrder,n) <> 0 then
  1057.             set tempLastOne = getAt(ccOrder,n)
  1058.             set n = 0
  1059.           else
  1060.             set n = n - 1
  1061.           end if
  1062.         end repeat
  1063.         
  1064.         --CREATE NEW CC IF NONE EXISTS
  1065.         if tempLastOne = 0 then
  1066.           set tempLastOne = 1
  1067.           setAt ccOrder, 1, 1
  1068.           setAt tempCCActive, 1, 1
  1069.           setAt tempCCInterest, 1, 18.000000
  1070.         end if
  1071.         
  1072.         setAt tempCCBalance, tempLastOne, (getAt(tempCCBalance,tempLastOne) - tempPayment)
  1073.         set tempPayment = 0
  1074.       end if
  1075.       
  1076.       
  1077.       --IF THERE'S MONEY LEFT OVER
  1078.     else
  1079.       set n = 0
  1080.       repeat while n < 5
  1081.         set n = n + 1
  1082.         if getAt(ccOrder,n) <> 0 then
  1083.           if getAt(tempCCBalance,(getAt(ccOrder,n))) > tempPayment then
  1084.             setAt tempCCBalance, (getAt(ccOrder,n)), (getAt(tempCCBalance,(getAt(ccOrder,n))) - tempPayment)
  1085.             set totalOldPayments = totalOldPayments + tempPayment
  1086.             set tempPayment = 0
  1087.             set n = 5
  1088.           else
  1089.             set totalOldPayments = totalOldPayments + getAt(tempCCBalance,(getAt(ccOrder,n)))
  1090.             set tempPayment = tempPayment - getAt(tempCCBalance,(getAt(ccOrder,n)))
  1091.             if tempPayment <= 0 then
  1092.               set tempPayment = 0
  1093.               set n = 5
  1094.             end if
  1095.             setAt tempCCBalance, (getAt(ccOrder,n)), 0
  1096.             setAt tempCCActive, (getAt(ccOrder,n)), 0
  1097.             setAt ccOrder, n, 0
  1098.           end if
  1099.         end if
  1100.       end repeat
  1101.       
  1102.       --IF THERE'S STILL MONEY LEFT OVER, PUT IT IN ZERO-INTEREST SAVINGS
  1103.       if tempPayment > 0 then
  1104.         set tempSavings = tempSavings + tempPayment
  1105.       end if
  1106.       
  1107.       --IF THERE'S ENOUGH SAVINGS, PAY OFF OTHER LOANS
  1108.       set n = 0
  1109.       repeat while n < 5
  1110.         set n = n + 1
  1111.         if (getAt(tempLActive,n) <> 0) and (tempSavings >= (getAt(tempLBalance,n))) then
  1112.           set totalOldPayments = totalOldPayments + (getAt(tempLBalance,n))
  1113.           set tempSavings = tempSavings - (getAt(tempLBalance,n))
  1114.           setAt tempLBalance, n, 0
  1115.           setAt tempLActive, n, 0
  1116.         end if
  1117.       end repeat
  1118.     end if
  1119.     
  1120.     --FIGURE OUT IF WE'RE DONE
  1121.     set n = 0
  1122.     set alldone = TRUE
  1123.     repeat while n < 5
  1124.       set n = n + 1
  1125.       if (getAt(tempCCActive,n) <> 0) or (getAt(tempLActive,n) <> 0) then
  1126.         set alldone = FALSE
  1127.       end if
  1128.     end repeat
  1129.   end repeat
  1130.  
  1131.  
  1132.   set n = 0
  1133.   set termBalance = 0
  1134.   repeat while n < 5
  1135.     set n = n + 1
  1136.     if getAt(tempCCActive,n) <> 0 then
  1137.       set termBalance = termBalance + getAt(tempCCBalance,n)
  1138.     end if
  1139.     if getAt(tempLActive,n) <> 0 then
  1140.       set termBalance = termBalance + getAt(tempLBalance,n)
  1141.     end if
  1142.   end repeat
  1143.   
  1144.   
  1145.   
  1146.   --FINALLY, FILL THE FIELDS ON THE LAST PAGE.
  1147.   if alldone then
  1148.     set oldTermText = tempMonths & "month"
  1149.     if tempMonths <> 1 then
  1150.       set oldTermText = oldTermText & "s"
  1151.     end if
  1152.   else
  1153.     set oldTermText = "an infinite amount of time"
  1154.   end if
  1155.   
  1156.   
  1157.   if loanType = "homeequity" then
  1158.     set tempLoanType = "home equity"
  1159.   else
  1160.     set tempLoanType = "personal"
  1161.   end if
  1162.   calcDollar string(payment), 0
  1163.   set tempPaymentText = the result
  1164.   calcDollar string(termBalance), 0
  1165.   set termBalanceText = the result
  1166.   
  1167.   set the text of member "totaltext" = "If you consolidate your debts into one " & tempLoanType & " loan (with an interest rate of " & the text of member "irate" & " and a monthly contribution of  " & tempPaymentText & "), it will take you " & the text of member "term" & " to pay off all your debts."
  1168.   
  1169.   calcDollar string(totalOldPayments), 0
  1170.   set the text of member "remainingBefore" = termBalanceText
  1171.   set the text of member "remainingAfter" = "$0"
  1172.   calcDollar string(totalOldPayments), 0
  1173.   set the text of member "incomeBefore" = the result
  1174.   calcDollar string(totalNewPayments), 0
  1175.   set the text of member "incomeAfter" = the result
  1176.   calcDollar string(totalOldInterest), 0
  1177.   set the text of member "interestBefore" = the result
  1178.   calcDollar string(totalNewInterest), 0
  1179.   set the text of member "interestAfter" = the result
  1180.   set the text of member "taxesBefore" = "$0"
  1181.   calcDollar string(totalNewTaxes), 0
  1182.   set the text of member "taxesAfter" = the result
  1183.   calcDollar string(totalOldPayments + totalOldInterest + termBalance), 0
  1184.   set the text of member "totalBefore" = the result
  1185.   calcDollar string(totalNewPayments + totalNewInterest - totalNewTaxes), 0
  1186.   set the text of member "totalAfter" = the result
  1187.   
  1188.   
  1189. end
  1190.  
  1191. "
  1192. -- "**********************************************************************"
  1193. -- "on keyboardNav pageNum
  1194.   global bookmarks, numBoxes, maxPages
  1195.   --DOWNARROW, TAB, RETURN
  1196.   if (the keyCode = 125) or ((the keyCode = 48) and not(the shiftDown)) then
  1197.     setAt bookmarks, pageNum, (getAt(bookmarks, pageNum) + 1)
  1198.     if getAt(bookmarks, pageNum) > getAt(numBoxes, pageNum) then
  1199.       setAt bookmarks, pageNum, getAt(numBoxes, pageNum)
  1200.       if (pageNum <> maxPages) then
  1201.         setAt bookmarks, (pageNum + 1), 1
  1202.         clearSprites
  1203.         page (pageNum + 1)
  1204.       end if
  1205.     else
  1206.       page pageNum
  1207.     end if
  1208.   end if
  1209.   
  1210.   
  1211.   
  1212.   
  1213.   --UPARROW, SHIFT-TAB
  1214.   if (the keyCode = 126) or ((the keyCode = 48) and the shiftDown) then
  1215.     setAt bookmarks, pageNum, (getAt(bookmarks, pageNum) - 1)
  1216.     if getAt(bookmarks, pageNum) < 1 then
  1217.       setAt bookmarks, pageNum, 1
  1218.       if (pageNum <> 1) then
  1219.         setAt bookmarks, (pageNum - 1), getAt(numBoxes, (pageNum - 1))
  1220.         clearSprites
  1221.         page (pageNum - 1)
  1222.       end if
  1223.     else
  1224.       page pageNum
  1225.     end if
  1226.   end if
  1227.   
  1228.   
  1229.   --HOME KEY
  1230.   if (the keyCode = 115) and (pageNum <> 1) then
  1231.     clearSprites
  1232.     page 1
  1233.   end if
  1234.   
  1235.   --END KEY
  1236.   if (the keyCode = 119) and (pageNum <> maxPages) then
  1237.     clearSprites
  1238.     page maxPages
  1239.   end if
  1240.   
  1241.   --PAGE UP
  1242.   if (the keyCode = 116) and (pageNum <> 1) then
  1243.     clearSprites
  1244.     page (pageNum - 1)
  1245.   end if
  1246.   
  1247.   --PAGE DOWN
  1248.   if (the keyCode = 121) and (pageNum <> maxPages) then
  1249.     clearSprites
  1250.     page (pageNum + 1)
  1251.   end if
  1252. end
  1253. "
  1254. -- "**********************************************************************"
  1255.