var crumbs = document.cookie.split("; ");function getCookie(name) {for (i=0; i<crumbs.length; i++) {nextcrumb = crumbs[i].split("=");if (nextcrumb[0]==name)return unescape(nextcrumb[1]);}return null;}function setPCookie(name, value) {var today = new Date();var permexpire = new Date(today.getTime()+100000*24*3600*1000);if (value!=null && value!="")document.cookie = name+"="+escape(value)+"; expires="+permexpire.toGMTString();crumbs = document.cookie.split("; ");}function setCookie(name, value,expires) {if (value!=null && value!="")document.cookie = name+"="+escape(value)+((expires)?"; expires="+expiresx.toGMTString():"");crumbs = document.cookie.split("; ");}function calcGoMonths(date,months) {var lnDay = date.getDate();if (lnDay>28) lnDay=28;var lnMonth = date.getMonth()+1;var lnYear = date.getFullYear();for (var ln=1; ln<months; ln++) {if (lnMonth==12) {lnMonth = 1;lnYear++;}else lnMonth++;}var ldDate = calcMonthName(lnMonth)+" "+lnDay+", "+lnYear;date = new Date(ldDate);return date;}function calcMonthName(month) {if (month==1) return "January";if (month==2) return "February";if (month==3) return "March";if (month==4) return "April";if (month==5) return "May";if (month==6) return "June";if (month==7) return "July";if (month==8) return "August";if (month==9) return "September";if (month==10) return "October";if (month==11) return "November";if (month==12) return "December";}function calcDayName(day) {if (day==0) return "Sunday";if (day==1) return "Monday";if (day==2) return "Tuesday";if (day==3) return "Wednesday";if (day==4) return "Thursday";if (day==5) return "Friday";if (day==6) return "Saturday";}function formatRound(number,precision) {if (precision==null) precision = 2;if (precision==0)return Math.round(number);lnFactor = Math.floor(Math.pow(10,precision));if (precision<0)return Math.round(number/lnFactor)*lnFactor;if (precision>0)return Math.round(number*lnFactor)/lnFactor;}function calcPayment (amount,rate,time,balloon) {if (rate<=0)if (time<=0) return amount;else return amount/time;if (balloon==null) balloon = 0;var ln = Math.pow(1+rate,time);return (amount-balloon/ln)/((1-(1/ln))/rate);}function formatNumber(number,precision,commas) {if (precision==null) precision = 2;number = formatRound(number,precision);var llSign = number<0;number = Math.abs(number);var ln = precision+1;var lc = "";number = Math.floor(number*Math.pow(10,precision));while (((ln--)>0) || (number>0)) {lc = (number%10)+lc;number = Math.floor(number/10);if (ln==1) lc = "."+lc;}if (llSign) lc = "-"+lc;var lc2 = "";if (commas) {var lc3 = lc;ln = lc.length;if (lc.indexOf(".")!=-1) {lc2 = lc.substring(lc.indexOf("."),ln);lc3 = lc.substring(0,lc.indexOf("."));}ln = lc3.length;var lnCount = 0;while (ln>0) {lnCount++;if (lnCount==4) {lc2 = ","+lc2;lnCount = 1;}lc2 = lc3.substring(ln-1,ln)+lc2;ln--;}}else lc2 = lc;return lc2}function checkNumber(number, msg, min, max) {msg = msg+" field has invalid numeric data: "+number.value;var str = number.value;if (str==null || str=="" || !str) return true;if (str.substring(1,1)=="$") str = str.substring(2);if (!validNumber(str)) {alert(msg);return false;}var num = parseFloat(str);if (min!=null && max!=null) {if (num<min || num>max) {alert(msg+" not in range ["+min+".."+max+"]");return false;}}number.value = str;return true;}function validNumber(number) {var checknum = parseFloat(number);if (isNaN(checknum)) return false;return true;}function calcFV(startamt, addamt, rate, periodsadded, periodsheld) {var lnResult = startamt;for (var ln=1; ln<periodsadded; ln++) {lnResult = lnResult+(lnResult*rate)+addamt;}if (periodsheld>0) {for (var ln=1; ln<periodsheld; ln++) {lnResult = lnResult+(lnResult*rate);}}return lnResult;}function padLeft(tcString,tnLength,tcChar) {if (tcChar==null) tcChar = " ";if (tcString.length>tnLength) {return "~"+tcString.substring(tcString.length-(tnLength-1),tcString.length)} else {if (tcString.length==tnLength) {return tcString} else {var lnx = tnLength-tcString.length;for (var ln=0; ln<lnx; ln++) {tcString = tcChar+tcString} return tcString} } } function padRight(tcString,tnLength,tcChar) {if (tcChar==null) tcChar = " ";if (tcString.length>tnLength) {return tcString.substring(0,tnLength-1)+"~"} else {if (tcString.length==tnLength) {return tcString} else {var lnx = tnLength-tcString.length;for (var ln=0; ln<lnx; ln++) {tcString = tcString+tcChar} return tcString} } } function mathRemainder(tnValue,tnDivisor) {if (tnValue==null) return 0;if (tnDivisor==null) return 0;var lnTimes = Math.floor(tnValue/tnDivisor);return tnValue-(lnTimes*tnDivisor)} 