function calculatePayment() {
				unitPrice = fixNum(document.calculator.unit_price.value);
				downPayment = fixNum(document.calculator.down_payment.value);
				numYears = fixNum(document.calculator.num_years.value);
				interestRate = fixNum(document.calculator.interest_rate.value);

				financeAmount = unitPrice - downPayment;
				
				//alert(unitPrice + " " + downPayment + " " + financeAmount);
				
				mInterestRate = (interestRate/100)/12;
				numMonths = numYears * 12;
				
				temp1 = financeAmount * Math.pow((1 + mInterestRate), numMonths) * mInterestRate;
				temp2 = Math.pow((1 + mInterestRate), numMonths) - 1;
				monthlyPayment = (temp1/temp2);
				
				document.calculator.monthly_payment.value = formatCurrency(monthlyPayment);
				document.calculator.unit_price.value = formatCurrency(unitPrice);
				document.calculator.down_payment.value = formatCurrency(downPayment);
				document.calculator.interest_rate.value = formatCurrency(interestRate);
			}
			
			function formatCurrency(num) {
				num = num.toString().replace(/\$|\,/g,'');
				if(isNaN(num))
					num = "0";
				sign = (num == (num = Math.abs(num)));
				num = Math.floor(num*100+0.50000000001);
				cents = num%100;
				num = Math.floor(num/100).toString();
				if(cents<10)
					cents = "0" + cents;
				for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
					num = num.substring(0,num.length-(4*i+3))+','+
				num.substring(num.length-(4*i+3));
				return (((sign)?'':'-') + num + '.' + cents);
			}			
			
			function fixNum (s)

			{   var i;
    			var seenDecimalPoint = false;
    			var decimalPointDelimiter = "."
    			var newNum = "";

    			if (isEmpty(s)) return 0;

    			if (s == decimalPointDelimiter) return false;

    			// Search through string's characters one by one
    			// until we find a non-numeric character.
    			// When we do, return false; if we don't, return true.

    			for (i = 0; i < s.length; i++)
    			{   
        			// Check that current character is number.
        			var c = s.charAt(i);

        			if ((c == decimalPointDelimiter) && !seenDecimalPoint) {
        				seenDecimalPoint = true;
        				newNum = newNum + c;
        			}
        			else if (isDigit(c)) newNum = newNum + c;
        			
    			}

    			// All characters are numbers.
    			return newNum;
			}			
			
			function isEmpty(s)
			{   return ((s == null) || (s.length == 0))
			}
			
			function isDigit (c)
			{   return ((c >= "0") && (c <= "9"))
			}
