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

  1. var sto = parent
  2.  
  3. var married = sto.married
  4. var spouseWork = sto.spwk
  5. var agi97 = sto.agi97
  6. var agi98 = sto.agi98
  7. var bracket97 = sto.bracket97
  8. var bracket98 = sto.bracket98
  9.  
  10. var children = sto.kids
  11. var collInt = sto.clint
  12. var collYearsPaid = sto.clyrs
  13. var numCollChild = sto.ckids
  14. var collYears1 = sto.cyrs1
  15. var collYears2 = sto.cyrs2
  16. var collYears3 = sto.cyrs3
  17.  
  18. var soldHome = sto.hsell97
  19. var beforeMay = sto.hsellmay7
  20. var futureBracket = sto.higher
  21. var purPrice = sto.hbasep
  22. var markPrice = sto.hmktp
  23.  
  24. var ownHome = sto.hsell
  25. var homeOwned = sto.own2
  26. var ownIRA = sto.ira
  27. var useIRA = sto.irahe
  28. var IRAtiming = sto.iarhe97
  29.  
  30. var profitTaken = sto.invsell
  31. var profit1 = sto.profit1
  32. var profit2 = sto.profit2
  33.  
  34. var insurance = sto.health
  35.  
  36. var total97 = 0
  37. var total98 = 0
  38.  
  39.     // CHILD TAX CREDIT
  40.  
  41. var childtc97 = 0
  42. var tempCutoff = ( married == 1 ) ? 109001 : 74001
  43. //alert( 'tempCutoff = ' + tempCutoff )
  44. var tempNum = Math.floor( ( agi98 - tempCutoff ) / 1000 )
  45. tempNum = Math.min( 8, Math.max( 0, tempNum ) )
  46. var childtc98 = (400 - (50 * tempNum))  * children
  47. total98 += childtc98
  48.  
  49.     // COLLEGE TAX CREDIT
  50.  
  51. var collegetc97 = 0
  52. var tempAdder = 0
  53. tempNum = 0
  54. collYearsTemp = 0
  55. for ( var n = 0; n <= numCollChild; n++ )
  56. {
  57.     if ( n == 1 ) collYearsTemp = collYears1
  58.     else if ( n == 2 ) collYearsTemp = collYears2
  59.     else if ( n == 3 ) collYearsTemp = collYears3
  60.  
  61.     if ( collYearsTemp == 1 || collYearsTemp == 2 )
  62.     {
  63.         tempNum = tempNum + 1500
  64.         tempAdder = tempAdder + 1.5
  65.     }
  66.     else if ( collYearsTemp == 3 || collYearsTemp == 4 )
  67.     {
  68.         tempNum = tempNum + 1000
  69.         tempAdder = tempAdder + 1
  70.     }
  71. }
  72.  
  73. if ( tempNum > 0 )
  74. {
  75.     if ( married )
  76.     {
  77.         tempCutoff = 79001
  78.         tempMult = 2
  79.     }
  80.     else
  81.     {
  82.         tempCutoff = 39001
  83.         tempMult = 1
  84.     }
  85.     var tempNum2 = agi98 - tempCutoff
  86.     tempNum2 = tempNum2 / (1000 * tempMult)
  87.  
  88.     tempNum2 = Math.min( 10, Math.max( 0, tempNum2 ) )
  89.  
  90.     collegetc98 = tempNum - (100 * tempAdder * tempNum2)
  91.     total98 = total98 + (tempNum - (100 * tempAdder * tempNum2))
  92. }
  93. else
  94. {
  95.     collegetc98 = 0
  96. }
  97.  
  98.     // STUDENT LOAN INTEREST DEDUCTION
  99.  
  100. var sloanded97 = 0
  101. var sloanded98 = 0
  102.  
  103. if ( collYearsPaid < 5 )
  104. {
  105.     var    phaseStage
  106.  
  107.     if ((numCollChild * 2500) > collInt )
  108.     {
  109.         tempColl = collInt
  110.     }
  111.     else
  112.     {
  113.         tempColl = (numCollChild * 2500)
  114.     }
  115.     if((tempColl>0) && (married==1) && (agi98>60000)) {
  116.         phaseStage = (agi98-60000)/1500 - ((agi98-60000)%1500)/1500
  117.         tempColl -= phaseStage*100
  118.     }
  119.     else if((tempColl>0) && (married==0) && (agi98>40000)) {
  120.         phaseStage = (agi98-40000)/1500 - ((agi98-40000)%1500)/1500
  121.         tempColl -= phaseStage*100
  122.     }
  123.     if(tempColl < 0)
  124.         tempColl = 0
  125.     //sloanded98 = bracket98 * tempColl
  126.     sloanded98 = tempColl
  127.     total98 += sloanded98
  128. }
  129.  
  130.     // HOME SALES
  131.  
  132. var priceDiff = markPrice - purPrice
  133. var homePriceDiff = markPrice - purPrice
  134. priceDiff = Math.max( 0, priceDiff)
  135. tempValue = married ? 500000 : 250000
  136.  
  137. if ( tempValue > priceDiff )
  138. {
  139.     tempValue = priceDiff
  140.     priceDiff = 0
  141. }
  142. else
  143. {
  144.     priceDiff -= tempValue
  145. }
  146. var homeprofbk97 = 0
  147. var homeprofbk98 = 0
  148. if ( ownHome && homeOwned && soldHome && !beforeMay)
  149. {
  150.     homeprofbk97 = (priceDiff * 0.08) + (tempValue * 0.28)
  151.     total97 += homeprofbk97
  152. }
  153. else if (ownHome && homeOwned && !soldHome) 
  154. {
  155.     homeprofbk98 = (priceDiff * 0.08) + (tempValue * 0.28)
  156.     total98 += homeprofbk98
  157. }
  158.  
  159.     // INVESTMENT PROFITS
  160.  
  161. var invprofbk98 = 0
  162. var invprofbk97 = 0
  163. if ( profitTaken )
  164. {
  165.     tempRate = ( bracket97 == 0.15 ) ? 0.18 : 0.08
  166.     invprofbk97 = tempRate * (profit1 + profit2)
  167.     total97 += invprofbk97
  168. }
  169.   
  170.     // HEALTH INSURANCE
  171.  
  172. var hinsded97 = 0
  173. var hinsded98 = insurance * 0.45
  174. total98 += hinsded98
  175.  
  176.     // ANSWERTEXT
  177.  
  178. var yourSavings = numToDollars( total97 + total98 )
  179. var adviceStr = "You will save an estimated " + yourSavings + " because of the changes in the tax law.<p>"
  180.   
  181. if ( soldHome && beforeMay )
  182. {
  183.     adviceStr += "Because you sold your home before the capital gains tax laws changed, you may want to consider rolling the profits from the sale into the purchase of a new one. Consult a tax adviser for potential options.<p>"
  184. }
  185. if ( soldHome && !beforeMay && homePriceDiff > 500000 )
  186. {
  187.     adviceStr += "If  you sold your home before August 5, 1997, you should consider rolling the profits from a sale into the purchase of a new one. Consult a tax adviser for potential options.<p>"
  188. }
  189. if ( ownHome && !beforeMay && !homeOwned && homePriceDiff > 0 )
  190. {
  191.     adviceStr += "You should consider keeping your home for at least two years so you will not have to pay taxes on the profit.<p>"
  192. }
  193. if ( futureBracket && agi98 < 100000 )
  194. {
  195.     adviceStr += "You may want to consider rolling your existing IRA into the new Roth IRA.<p>"
  196. }
  197. if ( useIRA && IRAtiming )
  198. {
  199.     adviceStr += "You could save tax money involving withdrawing funds from your IRA by delaying the purchase of your home until 1998.<"
  200. }
  201.  
  202. var childtc97Str = numToDollars( childtc97 )
  203. var childtc98Str = numToDollars( childtc98 )
  204. var collegetc97Str = numToDollars( collegetc97 )
  205. var collegetc98Str = numToDollars( collegetc98 )
  206. var sloanded97Str = numToDollars( sloanded97 )
  207. var sloanded98Str = numToDollars( sloanded98 )
  208. var homeprofbk97Str = numToDollars( homeprofbk97 )
  209. var homeprofbk98Str = numToDollars( homeprofbk98 )
  210. var invprofbk97Str = numToDollars( invprofbk97 )
  211. var invprofbk98Str = numToDollars( invprofbk98 )
  212. var hinsded97Str = numToDollars( hinsded97 )
  213. var hinsded98Str = numToDollars( hinsded98 )
  214. var total97Str = numToDollars( total97 )
  215. var total98Str = numToDollars( total98 )
  216.