function chk_valid(input, min, max, msg) { //alert(isNaN(parseFloat(input.value.toString()))); //alert(input.value); if(isNaN(parseFloat(input.value.toString()))){ alert("The " + msg + " value is required to be a number!"); return false; }else{ var val = parseFloat(input.value.toString()); if(valmax){ alert("Error the " + msg + " value must be between "+min+" and "+max); return false; }else{ return true; } } } function calcDetail(calc1) { //function calcDetail() { /* if ((calc1.Income.value == null || calc1.Income.value.length == 0) || (calc1.YearsToGo.value == null || calc1.YearsToGo.value.length == 0) || (calc1.Years.value == null || calc1.Years.value.length == 0) || (calc1.Inflation.value == null || calc1.Inflation.value.length == 0) || (calc1.Rate.value == null || calc1.Rate.value.length == 0)) { return; } */ if (!chk_valid(calc1.Income, 1, 10000000, "Income") || !chk_valid(calc1.YearsToGo, 1, 100, "Years To Go") || !chk_valid(calc1.Years, 1, 100, "Years") || !chk_valid(calc1.Inflation, 0, 99, "Inflation") || !chk_valid(calc1.Rate, .001, 99, "Interest Rate")) { //calc1.Income.value = "Invalid"; return; } //income = parseInt(calc1.Income.value) income = parseFloat(calc1.Income.value.toString().replace(/[^\d\.]/g,"")); int_rate = parseFloat(calc1.Rate.value.toString().replace(/[^\d\.]/g,"")) inf_rate = parseFloat(calc1.Inflation.value.toString().replace(/[^\d\.]/g,"")) yearsTogo = parseInt(calc1.YearsToGo.value.toString().replace(/[^\d\.]/g,"")) Years = parseInt(calc1.Years.value.toString().replace(/[^\d\.]/g,"")) Total = 0 inf_ratio = 1 + inf_rate/100 // inflation ratio fut_inc = income * Math.pow(inf_ratio, yearsTogo) // future income r_iy = int_rate/100; r_oinc = fut_inc; if (inf_rate > 0) { fut_inc = fut_inc * Math.pow(inf_ratio, Years) } for (i=0; i 0) { fut_inc = fut_inc/ (1 + inf_rate/100); } Total = Total / (1 + r_iy) + fut_inc; } fut_inc = r_oinc; DetailWindow = window.open('', 'DetailWin', 'toolbar=no,location=no,scrollbars=yes,resizable=yes,width=500,height=450') DetailWindow.document.writeln("\ \ \ Retirement Details - Year By Year<\/title>\ <style type=\"text\/css\">\ <!--\ column_head { background-color : #99ccff }\ -->\ </style>\ <\/head>\ <body background=\"images\/bg\/bg.jpg\" onLoad=\"document.CloseForm.CloseButton.focus();\">\ <table style=\"border : 0\">\ <tr valign=top align=left>\ <td width=10 height=10>\ <img src=\"clearpixel.gif\" width=10 height=1 border=0>\ <\/td>\ <td width=129>\ <img src=\"clearpixel.gif\" width=129 height=1 border=0>\ <\/td>\ <td width=58>\ <img src=\"clearpixel.gif\" width=58 height=1 border=0>\ <\/td>\ <td width=24>\ <img src=\"clearpixel.gif\" width=24 height=1 border=0>\ <\/td>\ <td width=60>\ <img src=\"clearpixel.gif\" width=60 height=1 border=0>\ <\/td>\ <td width=132>\ <img src=\"clearpixel.gif\" width=132 height=1 border=0>\ <\/td>\ <td width=10>\ <img src=\"clearpixel.gif\" width=10 height=1 border=0>\ <\/td>\ <\/tr>\ <tr valign=top align=left>\ <td colspan=2>\ <\/td>\ <td width=142 colspan=3>\ <form name=\"CloseForm\" action=\"\" method=post>\ <table id=\"Table2\" border=0 cellspacing=0 cellpadding=0 width=142>\ <tr>\ <td width=142 height=24>\ <p>\ <div align=\"center\">\ <table width=61 border=0 cellspacing=0 cellpadding=0>\ <tr>\ <td>\ <input type=button name=\"CloseButton\" value=\"Close\" onClick=\"javascript:self.close()\" onBlur=\"javascript:self.close()\">\ <\/td>\ <\/tr>\ <\/table>\ <\/div>\ <\/td>\ <\/tr>\ <\/table>\ <\/form>\ <\/td>\ <td colspan=2>\ <\/td>\ <\/tr>\ <tr valign=top align=left>\ <td colspan=7 height=20>\ <\/td>\ <\/tr>\ <tr valign=top align=left>\ <td>\ <\/td>\ <td width=403 colspan=5>\ <table ID=\"Table3\" border=0 cellspacing=3 cellpadding=1 width=403>\ <tr>\ <td width=25 bgcolor=\"#9966cc\">\ <P align=center>\ <B><font color=\"white\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">Year<\/font><\/B>\ <\/td>\ <td width=75 bgcolor=\"#9966cc\">\ <P align=center>\ <B><font color=\"white\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">Beg. Bal.<\/font><\/B>\ <\/td>\ <td width=75 bgcolor=\"#9966cc\">\ <P align=center>\ <B><font color=\"white\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">Withdraw<\/font><\/B>\ <\/td>\ <td width=75 bgcolor=\"#9966cc\">\ <P align=center>\ <B><font color=\"white\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">Interest<\/font><\/B>\ <\/td>\ <td width=75 bgcolor=\"#9966cc\">\ <P align=center>\ <B><font color=\"white\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">End. Bal.<\/font><\/B>\ <\/td>\ <\/tr>"); for (i=1; i<=Years; i++) { bbal = Total; Total = Total - fut_inc; earn = Total * (int_rate / 100); Total = Total + earn; DetailWindow.document.writeln("\ <tr>\ <td width=25 bgcolor=\"#3333aa\">\ <P align=right>\ <b><font color=\"orange\" size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">"+i+"<\/font><\/b>\ <\/td>\ <td width=75 bgcolor=\"#eaeaff\">\ <P align=right>\ <font size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">$"+roundDollarC(bbal)+"<\/font>\ <\/td>\ <td width=75 bgcolor=\"#eaeaff\">\ <P align=right>\ <font size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">$"+roundDollarC(fut_inc)+"<\/font>\ <\/td>\ <td width=75 bgcolor=\"#eaeaff\">\ <P align=right>\ <font size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">$"+roundDollarC(earn)+"<\/font>\ <\/td>\ <td width=75 bgcolor=\"#eaeaff\">\ <P align=right>\ <font size=\"-1\" face=\"Verdana,Tahoma,Arial,Helvetica\">$"+roundDollarC(Total)+"<\/font>\ <\/td>\ <\/tr>"); if (inf_rate > 0) { fut_inc = fut_inc * (1 + inf_rate/100); } } DetailWindow.document.write("\ <\/table>\ <\/td>\ <td>\ <\/td>\ <\/tr>\ <tr valign=top align=left>\ <td colspan=7 height=15>\ <\/td>\ <\/tr>\ <tr valign=top align=left>\ <td colspan=3>\ <\/td>\ <td width=24>\ <P>  \ <\/td>\ <td colspan=3>\ <\/td>\ <\/tr>\ <\/table>\ <\/body>\ <\/html>") DetailWindow.document.close() } function roundDollarC(amount) { var s = ""; var t = ""; var comma; var i; amount = parseFloat(amount); if (!(isNaN(amount))) { // round to nearest dollar amount = Math.round(amount); amount = new String(amount); // format the output if (amount.length > 3) { comma = 0 for (i = (amount.length - 1); i >= 0; i--) { s += amount.charAt(i) comma++ mod=comma%3; if (mod == 0 && i != (amount.length - 1) && i != 0) { s += ","; } } for (i = (s.length - 1); i >= 0; i--) { t += s.charAt(i); } } else { t = amount } } else { // not a number so return zero t = "0.00"; } return t; } function trimString(inString) { var outString = ""; var i; var ch; // where do we start? for (i = 0; i < inString.length; i++) { ch = inString.charAt(i); // alert("ch = "+ch) if (ch != ",") { outString += inString.charAt(i); // alert("outString = "+outString); } } return outString; }