﻿// JScript File

<!--//
        
        // ***********************************Saving Calculator **************************
            
		//Build an array to keep the last calculated value.

		anchor = new Array(0,0,0,0,0);

		function calculate()
		{
		//Validate incoming fields 
		  
		  
			pv = savingsform.PRESENT_VALUE.value;
			fv = savingsform.SAVINGS_GOAL.value;
			np = savingsform.SAVINGS_PERIOD.value;
			pmt = savingsform.DEPOSIT_AMT.value;
			ir = savingsform.INTEREST_RATE.value;
			paymentperiod = 12;
			durationperiod = savingsform.SAVINGS_PERIOD_FREQ.options[savingsform.SAVINGS_PERIOD_FREQ.selectedIndex].value;


			if ((pv.length > 0) && (pv < 0))
			{
			alert('Initial Investment must be a positive number');
			return;
			}
			
			if ((pmt.length > 0) && (pmt < 0))
			{
			alert('Monthly Deposit must be a positive number');
			return;
			}
			

			if ((np.length > 0) && (np < 0))
			{
			alert('Saving Period must be a positive number');
			return;
			}
			
			if ((ir.length > 0) && (ir < 0))
			{
			alert('Interest Rate must be a positive number');
			return;
			}
			
			if ((fv.length > 0) && (fv < 0))
			{
			alert('Savings Goal must be a positive number');
			return;
			}


			if ((pv.length > 0) && (isNumeric(pv) == false))
			{
			alert('Initial Investment must be numeric');
			return;
			}
			
			if ((pmt.length > 0) && (isNumeric(pmt) == false))
			{
			alert('Monthly Deposit must be numeric');
			return;
			}
			

			if ((np.length > 0) && (isNumeric(np) == false))
			{
			alert('Saving Period must be numeric');
			return;
			}
			
			if ((ir.length > 0) && (isNumeric(ir) == false))
			{
			alert('Interest Rate must be numeric');
			return;
			}
			
			if ((fv.length > 0) && (isNumeric(fv) == false))
			{
			alert('Savings Goal must be a numeric');
			return;
			}

			//Store incoming values in an array
			
			tmpInValues = new Array(pv, pmt, ir, np, fv);
			
			m = 0;
			blankCount=0;
			var blankIndex;
			for(m=0;m<tmpInValues.length;m++) 
			{
				if(tmpInValues[m] == '') 
				{
	     			blankCount++;
					blankIndex = m;
				}
			}

			//Determine how many of the fields are blank
			
			if(blankCount > 1)
			{
			alert('Please fill in all but one entry');
			} 
			else 
			{
			if(!(blankIndex >= 0)) 
			{
				//find the last value calculated from anchor
				var y;
				for(y=0;y<anchor.length;y++) 
				{
				if(anchor[y] == 1) 
				{
					blankIndex = y;
				}
				}
			}
			
			for(w=0;w<anchor.length;w++) 
			{
				anchor[w] = 0;
				if(w==blankIndex) 
				{
				anchor[w] = 1;
				}		
			}

			if (np != "") 
			{
			np = np * paymentperiod * durationperiod;
			} 
			else
			{
				np = 0;
			} 
			
			if(ir != "") 
			{
				ir = (ir / paymentperiod ) / 100 ;
			}
			
			ir = parseFloat(ir);
			np = parseFloat(np);
			fv = parseFloat(fv);
			pmt = parseFloat(pmt);
			pv = parseFloat(pv);
				
   			switch(blankIndex.toString()) 
			{
				case "0":
 				savingsform.PRESENT_VALUE.value = PresentValue();
				break;
				case "1":
				savingsform.DEPOSIT_AMT.value = DepositAmount();
				break;
				case "2":
				savingsform.INTEREST_RATE.value = InterestRate();
				break;
				case "3":
				savingsform.SAVINGS_PERIOD.value = SavingsPeriod();
				break;
				case "4":
				savingsform.SAVINGS_GOAL.value = FutureValue();
				break;
			}	
		}	
		}		

		function PresentValue() 
		{
				pmt = pmt * -1;

				if(ir == 0) 
				{
					pv = -(fv + (pmt * np));
				}
				else {
					q1 = Math.pow(1 + ir,-np);
					q2 = Math.pow(1 + ir,np);
					pv = (q1 * (fv * ir - pmt + q2 * pmt))/ir;
				}
				return RoundToHundreths(pv);
		}  // End of Present Value

		function FutureValue()
		{
			if(ir == 0) 
			{
			fv = -(pv + (-pmt * np));
			}
			else 
			{
				q = Math.pow(1+ir,np);
				fv = (-pmt + q * pmt + ir * q * pv)/ir;
			}
			return RoundToHundreths(fv);
		}  // End of FutureValue


		function SavingsPeriod()
		{
			pmt = pmt * -1;
			pv = pv * -1;
			
			if(ir == 0)
			{
				if(pmt != 0) 
				{
					np = - (fv + pv)/pmt;
				}
				else 
				{
					alert("Divide by zero error.");
				}
			}
			else 
			{
				np = Math.log((-fv * ir + pmt)/(pmt + ir * pv))/ Math.log(1 + ir);
			}
			if(np == 0) 
			{
				alert("Can't compute Number of Periods for the present values.");
			}
			else 
			{
				var durationmult = 0;
				if (durationperiod == 1){durationmult = .08333333333;}
				if (durationperiod == .25){durationmult = .3333333333;}
				if (durationperiod == .083333333333){durationmult = 1;}
				if (durationperiod == .019165364791){durationmult = 4.3480;}								
				return RoundToHundreths(np * durationmult);
			}
		} //End of Savings Period


		function DepositAmount()
		{	
			pv = pv * -1;
			
			if(ir == 0.0) 
			{
				if(np != 0) 
				{
					pmt =  (fv + pv)/np;
				}
				else 
				{
					alert("Divide by zero error.");
				}
			}
			else 
			{
				q = Math.pow(1 + ir,np);
				pmt = ((ir * (fv + q * pv))/(-1 + q));		
			}

			return RoundToHundreths(pmt);
			
		}//End of Deposit Amount
			
			
		function DepositAmountIntCalc(pv, ir)
		{

			ir = parseFloat(ir/paymentperiod/100);

				
			if(ir == 0.0) 
			{
				if(np != 0) 
				{
					pmt = - (fv + pv)/np;
				}
				else 
				{
					alert("Divide by zero error.");
				}
			}
			else 
			{
				q = Math.pow(1 + ir,np);
				pmt = ((ir * (fv + q * pv))/(-1 + q));		
			}

			return RoundToHundreths(pmt);
			
		}//End of Deposit Amount for Interest  Calc	
			
		function InterestRate()
		{	
			initialInterest = 10000;
			var paymentTmp = 0;
 			var low = 0;
			var high = 10000;	
			var realPayment = parseFloat(pmt);	

			low = parseFloat(low);
			high = parseFloat(high);
			paymentperiod = parseFloat(paymentperiod);

			pv = pv * -1;
			
			if ((fv - (-pv + (np * realPayment))) < 0) 
			{
   	 			alert('This calculation resulted in negative interest.  Please increase the Savings Goal, or reduce the Savings Period, Initial Investment or Monthly Deposit.');
				return 'Error';
			}
			else
			{

				for( i = 0; i < 200; i++) 
				{
		 			paymentTmp = DepositAmountIntCalc(pv, initialInterest);	
				
					if ( paymentTmp < realPayment) {
						high = initialInterest
					} else if(paymentTmp > realPayment) {
	   	  			low = initialInterest;
						} else {
		   				break;
		   				}
		    
       			initialInterest = low + ((high - low) /2);
				}   
			}

			return RoundToHundreths(initialInterest);

		} //End of  InterestRate	
			

		function isNumeric(strString)
		//  check for valid numeric strings	
		{
		var strValidChars = "0123456789.-";
		var strChar;
		var blnResult = true;

		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length && blnResult == true; i++)
			{
			strChar = strString.charAt(i);
			if (strValidChars.indexOf(strChar) == -1)
				{
				blnResult = false;
				}
			}
		return blnResult;
		}

		function RoundToHundreths(iValue) {

			// Round the value to Hundreths
			iValue = Math.round(iValue*100);
			iValue = iValue / 100;

			//Give me two decimal places
			
			iValue = iValue.toString();
			
			var posDecimalPoint=  iValue.indexOf('.');
			if (posDecimalPoint == -1) {
				iValue += ".00";
			} else if ( length - posDecimalPoint == 2) {
				iValue += "0";
			} else if (length - posDecimalPoint == 1) {
				iValue += "00";
			} 
			
			return iValue;
			
		}
		
		
		// ***********************************Mortgag Calculator **************************
		
		function Loan() {
		var housePrice;
		var IR;
		var years;
		var monthPay;
		var month;
		var timetype;
		var interestRate;

		//validate the incoming variables

		//Principle Loan Balance Checks

		if (document.calcform.price.value == "")
		{
			alert("Principal Loan Balance is required");
			return;
		}
		if (NumericCheck(document.calcform.price.value)=="-1")
		{
			alert("Principal Loan Balance is not numeric");
			return;
		}

		//Annual Interest Rate Checks

		if (document.calcform.interest.value == "")
		{
			alert("Annual Interest Rate is required");
			return;
		}

		///Amortization Length in Years Checks

		if (document.calcform.time.value == "")
		{
			alert("Amortization Length is required");
			return;
		}

		//Monthly Prepayment Check

		if (NumericCheck(document.calcform.monthprepmt.value)=="-1")
		{
			alert("Monthly Principal Prepayment Amount is not numeric");
			return;
		}

		//Annual Prepayment Check

		if (NumericCheck(document.calcform.annualprepayt.value)=="-1")
		{
			alert("Annual Principal Prepayment Amount is not numeric");
			return;
		}

		//One Time Prepayment Check

		if (NumericCheck(document.calcform.oneprepay.value)=="-1")
		{
			alert("One-Time Principal Prepayment Amount is not numeric");
			return;
		}

		//One Time Prepayment Check

		if (NumericCheck(document.calcform.pymon.value)=="-1")
		{
			alert("One-Time Principal Prepayment Month is not numeric");
			return;
		}
		      
		if (document.calcform.pymon.value != "" && document.calcform.oneprepay.value == "") 
		{
			alert("One-Time Principal Prepayment Month is required, since One-Time Principal Prepayment Amount has been entered");
			return;
		}

		if (document.calcform.pymon.value == "" && document.calcform.oneprepay.value !== "") 
		{
			alert("One-Time Principal Prepayment Amount is required, since One-Time Principal Prepayment Month has been entered");
			return;
		}
		   


		housePrice = parseFloat(document.calcform.price.value);
		IR = parseFloat(document.calcform.interest.value);
		years = parseFloat(document.calcform.time.value);
		timetype = document.calcform.duration[document.calcform.duration.selectedIndex].value;
		month = years;
		interestRate = IR/1200;

		if (timetype == "Yrs") 
		{
			month = years * 12;
		}

		negmonth =- 1 * month;
		var bottom = 1 - (Math.pow(interestRate+1,negmonth));
		var top = interestRate;
		var mid = top / bottom;
		monthPay = (housePrice * mid);
		document.calcform.monthPay.value = eval(monthPay);
		document.calcform.month.value = month;
		}

		function NumericCheck(cnumber) 
		{
		var oneChar = "";
		var decimalFlag = 0;
		checkZero = 0;
		for (var i = 0; i < cnumber.length; i++) 
		{
			oneChar = cnumber.charAt(i);
			if ((oneChar < "0" || oneChar > "9") && (oneChar != ",") && (oneChar != ".") && (oneChar != "$") ) 
			{
				return "-1";
			}
			if ((oneChar == "$") || (oneChar == ",")) 
			{
				cnumber = cnumber.substring(0,i) + cnumber.substring((i + 1),cnumber.length);
				i--;
			}
			if (oneChar == ".") 
			{
				if ((cnumber.length == 1) || (decimalFlag == 1)) 
				{
					return "-1";
				}
				else 
				{
					decimalFlag = 1;
				}
			}
		}
		if (cnumber == "") 
		{
			return "0";
		}
		else
			return cnumber;

		}

		function getFieldValue (strFieldName) {
		var strFieldValue;
		var objRegExp = new RegExp(strFieldName + "=([^&]+)","gi");
		if (objRegExp.test(location.search))
		strFieldValue = unescape(RegExp.$1);
		else strFieldValue="";
		return strFieldValue;
		}

		function Currency(money1)
		{
		var money = new String(money1);
		var tempdollaramt = "";
		if (money.indexOf("e") != -1)
		{
			tempdollaramt = "$0.00"
			return tempdollaramt;
		}
		if (money.indexOf(".",[0]) == -1)
		{
			money = money + ".00";
		}
		var decimal = money.indexOf(".",[0]);
		money = money.substring(0,decimal+3);
		var dollarsonly = "";
		var negamount = "";
		if (parseInt(money) > 0) 
		{
			dollarsonly = money.substring(0, money.indexOf("."));
		}
		else
		{
			negamount = "-";
			dollarsonly = money.substring(1, money.indexOf("."));
		}
		var decimalandcents = money.substring(money.indexOf("."), money.length);
		var lenDollarsOnly = dollarsonly.length;
		if (lenDollarsOnly < 4)
		{
			tempdollaramt = "$" + money;
			return tempdollaramt;
		}
		while (lenDollarsOnly > 3) 
		{
			tempdollaramt = "," + dollarsonly.substring(lenDollarsOnly-3,lenDollarsOnly) + tempdollaramt;
			lenDollarsOnly = lenDollarsOnly - 3;
		}
		if (lenDollarsOnly > 0)
		{
			tempdollaramt = dollarsonly.substring(0, lenDollarsOnly) + tempdollaramt;
		}
		tempdollaramt = "$" + negamount + tempdollaramt + decimalandcents;
		return tempdollaramt;
		}
		var startmonth;
		startmonth = getFieldValue("startm");
		var monthofpayment = new String;
		month = getFieldValue("month");
		monthPay = getFieldValue("monthPay");
		Houseprice = getFieldValue("price");
		Ir = getFieldValue("interest");
		Ir = Ir/1200;
		year = getFieldValue("startyear");

		function checkprice() 
		{
		var price = document.calcform.price.value;
		if(price.indexOf(",") >= 0) 
		{
			alert("Please do not put commas in the Price number")
		}
		}


		function checkAnnualInterest()
		{
			if (NumericCheck(document.calcform.interest.value)=="-1")
		{
			alert("Annual Interest Rate is not numeric");
			return;
		}
		}   

		function checkAmortization()
		{
		if (NumericCheck(document.calcform.time.value)=="-1")
		{
			alert("Amortization Length is not numeric");
			return;
		}
		}   

		
		
		// ***********************************loan Calculator **************************
		
				//Build an array to keep the last calculated value.
		anchor = new Array(0,0,0,0);

		function compute()
		{	

			//Retrieve incoming values
			var amt = GetValueOf('amountTxt');
			var term = GetValueOf('termTxt');
			var iRate = GetValueOf('interestTxt');
			var pymt = GetValueOf('paymentTxt');
			
			//Store incoming values in an array
			
			var	tmpInValues = new Array(amt, term, iRate, pymt);
			
			var x;
			var blankCount=0;
			var blankIndex;
			for(x=0;x<tmpInValues.length;x++) 
				{
				if(tmpInValues[x] == 0) 
				{
					blankCount++;
					blankIndex = x;
				}
			}
			if(blankCount > 1)
			{
				alert('Please fill in all but one entry');
			} 
			else 
			{
				if(!(blankIndex >= 0)) 
				{
					//find the last value calculated from anchor
					var y;
					for(y=0;y<anchor.length;y++) 
					{
						if(anchor[y] == 1) 
						{
							blankIndex = y;
						}
					}
				}
			
				for(x=0;x<anchor.length;x++) 
				{
					anchor[x] = 0;
					if(x==blankIndex) 
					{
						anchor[x] = 1;
					}		
				}


		// Perform the function based on the missing field

			switch(blankIndex.toString()) 
			{
				case "0":
					document.LoanCalc.amountTxt.value = amount();
					break;
				case "1":
					document.LoanCalc.termTxt.value = Term();
					break;
				case "2":
					document.LoanCalc.interestTxt.value = interest();
					break;
				case "3":
					document.LoanCalc.paymentTxt.value = payment();
					break;
			}
		}
		}

		function payment()
		{

		//Calculate the payment amount

		var principal = GetValueOf('amountTxt');
		var nr = GetValueOf('interestTxt');
		var termtype = document.LoanCalc.termSel.options[document.LoanCalc.termSel.selectedIndex].value;
		  
		var money = 0;
		  	
		nr = nr / 100.0;
		  
		nr /= 12;

		var pow = 1;
		 
		pow = Math.pow(pow * (1 + nr), GetValueOf('termTxt') * termtype);
		  
		money = (principal * pow * nr) / (pow - 1); 

		return twoDecimals(RoundToHundreths(money));
		}

		function paymentcalc(interest)
		{
		//Payment calc used to get the interest rate

		var principal = GetValueOf('amountTxt');
		var nr = interest;   
		var money = 0;
		var termtype = document.LoanCalc.termSel.options[document.LoanCalc.termSel.selectedIndex].value;
		nr = nr / 100.0 / 12;
		var pow = 1;

		pow = Math.pow(pow * (1 + nr), GetValueOf('termTxt') * termtype);
			 
		money = (principal * pow * nr) / (pow - 1); 

		return money;
		}

		function amount ( )
		{
		//Calculates the Loan Principal
		var amount;
		var payment = GetValueOf('paymentTxt');
		var termtype = document.LoanCalc.termSel.options[document.LoanCalc.termSel.selectedIndex].value;
		var nr = GetValueOf('interestTxt')/ 12 / 100;
		var n = GetValueOf('termTxt') * termtype;
		amount = payment * (1 - Math.pow(1/(1 +nr), n)) / ((1 + nr) -1);

		return twoDecimals(RoundToHundreths(amount));
		}

		function Term ( )
		{
		//Calculates the Loan Term
			var bool = MinimumPaymentRequired();
			var termtype = document.LoanCalc.termSel.options[document.LoanCalc.termSel.selectedIndex].value;
			if(bool) 
				{
				var Principal = GetValueOf('amountTxt');
				var Payment = GetValueOf('paymentTxt');
				var Interest = GetValueOf('interestTxt');
				if (Interest > 1.0) {
					Interest = Interest / 100.0;
				}
				var r = Number(Number(1) + (Number(Interest)/Number(12)));
				var NumofPayments =0.0;
				NumofPayments =  (Math.log(Payment/(Payment+Principal*(1-r))))/ Math.log(r);

				if (parseInt(termtype) == 12)
				{
					NumofPayments = NumofPayments/12;
				}
				return twoDecimals(RoundToHundreths(NumofPayments));

			} 
			else 
			{
				return ('Error');
			}
		}

		function interest() {
		//Calculates the interest rate
			var initialInterest = 100;
			var high = 9999;
			var low = 0;
			var realPayment = RoundToHundreths(GetValueOf("paymentTxt"));
			var paymentTmp = 0;
			var termtype = document.LoanCalc.termSel.options[document.LoanCalc.termSel.selectedIndex].value;
  			var numberofpayments = GetValueOf('termTxt') * termtype;
			var stepOne = GetValueOf('amountTxt') / numberofpayments;     

			if (realPayment < stepOne) 
			{
				alert('Payment is insufficient to pay the principal on the loan within the given timeframe.  The minimum value is '+twoDecimals(RoundToHundreths(stepOne))+'.');
				return ('Error');
			}

			for( i = 0; i < 500; i++) 
			{
				paymentTmp = RoundToHundreths(paymentcalc(initialInterest));
				if ( paymentTmp < realPayment) {
					low = initialInterest
				} else if(paymentTmp > realPayment) {
					high = initialInterest;
				} else {
					break;
				}
				initialInterest = low + ((high - low) / 2);
			}

			return twoDecimals(RoundToHundreths(initialInterest));	
		}

		function MinimumPaymentRequired() {
		//When doing a term calculation, the payment must be sufficient to cover the interest.  This function 
		//validates the payment amount.
			if (GetField("termTxt") == ""  || GetField("termTxt") == "0") {
	  			var interest = GetValueOf('interestTxt') / 1200;
				var stepOne = GetValueOf('amountTxt') * interest;     
				if (GetValueOf("paymentTxt") < stepOne) {
					alert('Payment is insufficient to pay the interest on loan.  The minimum value is '+twoDecimals(RoundToHundreths(stepOne))+'.');
					return false;
				}
			}
			return true;
		}


		function RoundToHundreths(iValue) {
			// Round the value to Hundreths
			iValue = Math.round(iValue*100);
			iValue = iValue / 100;
			return iValue;
			
		}

		function twoDecimals(iAmount) {

			var Amount = ""+iAmount;
			var length = Amount.length;
			var posDecimalPoint=  Amount.indexOf('.');
			if (posDecimalPoint == -1) {
				Amount += ".00";
			} else if ( length - posDecimalPoint == 2) {
				Amount += "0";
			} else if (length - posDecimalPoint == 1) {
				Amount += "00";
			} 

			return Amount;
		}

		function ValidateNumericInput(sInputName, FieldName)
		//  check for valid numeric strings	
		{

		if (isNumeric(GetField(sInputName)) == false)

			alert (FieldName + " is not numeric or it contains commas or spaces.");

		return;
		}

		function isNumeric(strString)
		//  check for valid numeric strings	
		{
		var strValidChars = "0123456789.-";
		var strChar;
		var blnResult = true;

		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length && blnResult == true; i++)
			{
			strChar = strString.charAt(i);
			if (strValidChars.indexOf(strChar) == -1)
				{
				blnResult = false;
				}
			}
		return blnResult;
		}

		function GetValueOf(InputName) {
			var value = parseFloat(GetField(InputName));
			if (""+value == "NaN") {
				value = 0;
			}
			return value;
		    
		}

		function GetField(InputName) {
			FieldReference = 'document.LoanCalc.' + InputName + '.value';
			return eval(FieldReference);
		}

		function Clear() {
			document.LoanCalc.amountTxt.value =  "";
			document.LoanCalc.interestTxt.value =  "";
			document.LoanCalc.termTxt.value =  "";
			document.LoanCalc.paymentTxt.value =  "";
		}
		
		
		// ***********************************cash Flow Calculator **************************
				<!-- Begin

		function CalcCashflow() {

		if (isNumeric(document.calcform.AP1.value)=="false")
		{
			alert("Auto 1 is not numeric");
			return;
		}
		   
		var AutoPay1 = parseFloat(ConvertBlankToZero(document.calcform.AP1.value));
		var AutoPay2 = parseFloat(ConvertBlankToZero(document.calcform.AP2.value));
		var AutoPay3 = parseFloat(ConvertBlankToZero(document.calcform.AP3.value));
		var PersLoanPay1 = parseFloat(ConvertBlankToZero(document.calcform.PLP1.value));
		var PersLoanPay2 = parseFloat(ConvertBlankToZero(document.calcform.PLP2.value));
		var CreditCardPay1 = parseFloat(ConvertBlankToZero(document.calcform.CCP1.value));
		var CreditCardPay2 = parseFloat(ConvertBlankToZero(document.calcform.CCP2.value));     
		var CreditCardPay3 = parseFloat(ConvertBlankToZero(document.calcform.CCP3.value));
		var CreditCardPay4 = parseFloat(ConvertBlankToZero(document.calcform.CCP4.value));     
		var CreditCardPay5 = parseFloat(ConvertBlankToZero(document.calcform.CCP5.value));
		var CreditCardPay6 = parseFloat(ConvertBlankToZero(document.calcform.CCP6.value));     
		var CreditCardPay7 = parseFloat(ConvertBlankToZero(document.calcform.CCP7.value));
		var MerchPay1 = parseFloat(ConvertBlankToZero(document.calcform.MP1.value)); 
		var MerchPay2 = parseFloat(ConvertBlankToZero(document.calcform.MP2.value));
		var GrossPay = parseFloat(ConvertBlankToZero(document.calcform.GrossIncome.value));
		   
		var AutoBal1 = parseFloat(ConvertBlankToZero(document.calcform.APB1.value));
		var AutoBal2 = parseFloat(ConvertBlankToZero(document.calcform.APB2.value));
		var AutoBal3 = parseFloat(ConvertBlankToZero(document.calcform.APB3.value));
		var PersLoanBal1 = parseFloat(ConvertBlankToZero(document.calcform.PLB1.value));
		var PersLoanBal2 = parseFloat(ConvertBlankToZero(document.calcform.PLB2.value));
		var CreditCardBal1 = parseFloat(ConvertBlankToZero(document.calcform.CCB1.value));
		var CreditCardBal2 = parseFloat(ConvertBlankToZero(document.calcform.CCB2.value));     
		var CreditCardBal3 = parseFloat(ConvertBlankToZero(document.calcform.CCB3.value));
		var CreditCardBal4 = parseFloat(ConvertBlankToZero(document.calcform.CCB4.value));     
		var CreditCardBal5 = parseFloat(ConvertBlankToZero(document.calcform.CCB5.value));
		var CreditCardBal6 = parseFloat(ConvertBlankToZero(document.calcform.CCB6.value));     
		var CreditCardBal7 = parseFloat(ConvertBlankToZero(document.calcform.CCB7.value));
		var MerchBal1 = parseFloat(ConvertBlankToZero(document.calcform.MB1.value)); 
		var MerchBal2 = parseFloat(ConvertBlankToZero(document.calcform.MB2.value));

		var HousePayment = parseFloat(ConvertBlankToZero(document.calcform.fHousePayt.value));
		var HouseRent = parseFloat(ConvertBlankToZero(document.calcform.fHouseRent.value));
		var Phone = parseFloat(ConvertBlankToZero(document.calcform.fPhone.value));
		var Util = parseFloat(ConvertBlankToZero(document.calcform.fUtil.value));
		var LifeIns = parseFloat(ConvertBlankToZero(document.calcform.fLifeIns.value));
		var AutoIns = parseFloat(ConvertBlankToZero(document.calcform.fAutoIns.value));
		var OthPerm1 = parseFloat(ConvertBlankToZero(document.calcform.fOthPerm1.value));
		var OthPerm2 = parseFloat(ConvertBlankToZero(document.calcform.fOthPerm2.value));

		var HouseBal = parseFloat(ConvertBlankToZero(document.calcform.fHouseBal.value));
		var OthPermBal1 = parseFloat(ConvertBlankToZero(document.calcform.fOthPermBal1.value));
		var OthPermBal2 = parseFloat(ConvertBlankToZero(document.calcform.fOthPermBal2.value));
		   
		   
		var AutoFuel = parseFloat(ConvertBlankToZero(document.calcform.fAutoFuel.value));
		var Groc = parseFloat(ConvertBlankToZero(document.calcform.fGroc.value));
		var Med = parseFloat(ConvertBlankToZero(document.calcform.fMed.value));
		var HealthCare = parseFloat(ConvertBlankToZero(document.calcform.fHealthCare.value));
		var ChildCare = parseFloat(ConvertBlankToZero(document.calcform.fChildCare.value));
		var CTV = parseFloat(ConvertBlankToZero(document.calcform.fCTV.value));
		var OthMisc1 = parseFloat(ConvertBlankToZero(document.calcform.fOthMisc1.value));
		var OthMisc2 = parseFloat(ConvertBlankToZero(document.calcform.fOthMisc2.value));      

		var MonthlyInstallmentTotalPayment = AutoPay1 + AutoPay2 + AutoPay3 + PersLoanPay1 + PersLoanPay2 + CreditCardPay1 + CreditCardPay2 + CreditCardPay3 + CreditCardPay4 + CreditCardPay5 + CreditCardPay6 + CreditCardPay7 + MerchPay1 + MerchPay2;
		var TotalPermanentExpensesPayment = HousePayment + HouseRent + Phone + Util + LifeIns + AutoIns + OthPerm1 + OthPerm2;
		var MonthlyMiscExpensePayment = AutoFuel + Groc + Med + HealthCare + ChildCare + CTV + OthMisc1 + OthMisc2;
		var MonthlyInstallmentTotalBalance = AutoBal1 + AutoBal2 + AutoBal3 + PersLoanBal1 + PersLoanBal2 + CreditCardBal1 + CreditCardBal2 + CreditCardBal3 + CreditCardBal4 + CreditCardBal5 + CreditCardBal6 + CreditCardBal7 + MerchBal1 + MerchBal2;
		var TotalPermanentExpensesBalance = HouseBal + OthPermBal1 + OthPermBal2;
		var TotalBalance = MonthlyInstallmentTotalBalance + TotalPermanentExpensesBalance;   
		var TotalUnsecuredDebt = PersLoanBal2 + CreditCardBal1 + CreditCardBal2 + CreditCardBal3 + CreditCardBal4 + CreditCardBal5 + CreditCardBal6 + CreditCardBal7 + MerchBal1 + MerchBal2 + OthPermBal1 + OthPermBal2;
		var TotalUnsecuredDebtPaymt = PersLoanPay2 + CreditCardPay1 + CreditCardPay2 + CreditCardPay3 + CreditCardPay4 + CreditCardPay5 + CreditCardPay6 + CreditCardPay7 + MerchPay1 + MerchPay2 + OthPerm1 + OthPerm2 + AutoFuel + Groc + Med + HealthCare + ChildCare + CTV + OthMisc1 + OthMisc2;
		   
		document.calcform.TMP.value =  MonthlyInstallmentTotalPayment;
		document.calcform.BALMP.value = MonthlyInstallmentTotalBalance; 
		document.calcform.TPERM.value = TotalPermanentExpensesPayment;
		document.calcform.BALPERM.value = TotalPermanentExpensesBalance;
		document.calcform.TMISC.value = MonthlyMiscExpensePayment;
		document.calcform.TEXP.value = MonthlyInstallmentTotalPayment + TotalPermanentExpensesPayment + MonthlyMiscExpensePayment;
		document.calcform.TBAL.value = TotalBalance;
		document.calcform.fTotalSecuredDebt.value = AutoBal1 + AutoBal2 + AutoBal3 + PersLoanBal1 + HouseBal;
		document.calcform.fTotalUnsecuredDebt.value = TotalUnsecuredDebt;
		document.calcform.fTotalCombinedDebt.value = MonthlyInstallmentTotalBalance + TotalPermanentExpensesBalance;

		if (GrossPay > 0) 
		{
		document.calcform.fDebtToIncomeRatio.value = (MonthlyInstallmentTotalPayment + TotalPermanentExpensesPayment) / GrossPay;
		document.calcform.fUnsecuredDebtRatio.value = TotalUnsecuredDebtPaymt / GrossPay;
		   
		}
		   
		}   
		   
		function getFieldValue (strFieldName) {
		var strFieldValue;
		var objRegExp = new RegExp(strFieldName + "=([^&]+)","gi");
		if (objRegExp.test(location.search))
		strFieldValue = unescape(RegExp.$1);
		else strFieldValue="";
		return strFieldValue;
		}

		function ConvertBlankToZero(strBlankField) 
		{

		if (strBlankField.length == 0)
		{
			return 0;
		}   
		else
		{
   			return strBlankField;
		}
		}

		function isNumeric(strString)
		//  check for valid numeric strings	
		{
		var strValidChars = "0123456789.-";
		var strChar;
		var blnResult = true;

		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length && blnResult == true; i++)
			{
			strChar = strString.charAt(i);
			if (strValidChars.indexOf(strChar) == -1)
				{
				blnResult = false;
				}
			}
		return blnResult;
		}

		function resetform()
		{
		document.calcform.AP1.value="";
		document.calcform.AP2.value="";
		document.calcform.AP3.value="";
		document.calcform.PLP1.value="";
		document.calcform.PLP2.value="";
		document.calcform.CCP1.value="";
		document.calcform.CCP2.value="";     
		document.calcform.CCP3.value="";
		document.calcform.CCP4.value="";     
		document.calcform.CCP5.value="";
		document.calcform.CCP6.value="";     
		document.calcform.CCP7.value="";
		document.calcform.MP1.value=""; 
		document.calcform.MP2.value="";
		document.calcform.GrossIncome.value="";
		document.calcform.APB1.value="";
		document.calcform.APB2.value="";
		document.calcform.APB3.value="";
		document.calcform.PLB1.value="";
		document.calcform.PLB2.value="";
		document.calcform.CCB1.value="";
		document.calcform.CCB2.value="";     
		document.calcform.CCB3.value="";
		document.calcform.CCB4.value="";     
		document.calcform.CCB5.value="";
		document.calcform.CCB6.value="";     
		document.calcform.CCB7.value="";
		document.calcform.MB1.value=""; 
		document.calcform.MB2.value="";
		document.calcform.fHousePayt.value="";
		document.calcform.fHouseRent.value="";
		document.calcform.fPhone.value="";
		document.calcform.fUtil.value="";
		document.calcform.fLifeIns.value="";
		document.calcform.fAutoIns.value="";
		document.calcform.fOthPerm1.value="";
		document.calcform.fOthPerm2.value="";
		document.calcform.fHouseBal.value="";
		document.calcform.fOthPermBal1.value="";
		document.calcform.fOthPermBal2.value="";
		document.calcform.fAutoFuel.value="";
		document.calcform.fGroc.value="";
		document.calcform.fMed.value="";
		document.calcform.fHealthCare.value="";
		document.calcform.fChildCare.value="";
		document.calcform.fCTV.value="";
		document.calcform.fOthMisc1.value="";
		document.calcform.fOthMisc2.value="";      
		document.calcform.TMP.value = "";
		document.calcform.BALMP.value = ""; 
		document.calcform.TPERM.value = "";
		document.calcform.BALPERM.value = "";
		document.calcform.TMISC.value = "";
		document.calcform.TEXP.value = "";
		document.calcform.TBAL.value = "";
		document.calcform.fTotalSecuredDebt.value = "";
		document.calcform.fTotalUnsecuredDebt.value = "";
		document.calcform.fTotalCombinedDebt.value = "";
		document.calcform.fDebtToIncomeRatio.value = "";
		document.calcform.fUnsecuredDebtRatio.value = "";
		return;
		}
		//  End -->
		
		//-->
		
		
		