function paymentCalculator(state) {
	 
	form = document.calculator;
	if (form==null || form.msrp==null) return;
	var msrp; 
	var downpayment;
	var principal;
	var payments;
	var interest;
	var payment;
	
	form.msrp.value = form.msrp.value.toString().replace(/\$|\,/g,'');     
	form.downpayment.value = form.downpayment.value.toString().replace(/\$|\,/g,'');     
	if (form.msrp.value.length == 0) {
		if (state == 0) YAHOO.util.Dom.get('calc_error_text').innerHTML = "MSRP required.";
			YAHOO.LR.calcErrorOverlay.show();
		return;
	} else
		msrp = form.msrp.value;

	if (form.downpayment.value.length == 0) {
		downpayment = 0;
	} else 
		downpayment = form.downpayment.value;

	if (form.payments.value == 0) {
		if (state == 0) YAHOO.util.Dom.get('calc_error_text').innerHTML = "Payments Term required.";
			YAHOO.LR.calcErrorOverlay.show();
		return;
	} else 
		payments = form.payments.value;

	if (form.interest.value<0) {
		YAHOO.util.Dom.get('calc_error_text').innerHTML = "APR should be greater than 0.";
			YAHOO.LR.calcErrorOverlay.show();
		return;
	}

	if (form.interest.value.length == 0) {
		if (state == 0) YAHOO.util.Dom.get('calc_error_text').innerHTML = "APR required.";
			YAHOO.LR.calcErrorOverlay.show();
		return;
	} else 
		interest = form.interest.value;
	
	principal = msrp - downpayment;

	 i = interest;
	 if (i > 0) {
		 i = i / 100.0;
	 }
	 i /= 12;
	 var pow = 1;
	 for (var j = 0; j < payments; j++)
		 pow = pow * (1 + i);
	 form.msrp.value  =  formatCurrency(form.msrp.value) ;
	 form.downpayment.value  =  formatCurrency(form.downpayment.value) ;
	 if (pow!=1) {
		form.payment.value  =  paymentFormatCurrency(Math.floor((principal * pow * i) / (pow - 1)*100) / 100) ;
	 } else {
		form.payment.value  =  paymentFormatCurrency(Math.floor(principal * 100/ payments) / 100) ;

	 }
}   
 
function formatMSRP(num) {
	 form = document.calculator;
	 form.msrp.value  =  formatCurrency(form.msrp.value) ;
}

function formatDownPayment(num) {
	 form = document.calculator;
	 form.downpayment.value  =  formatCurrency(form.downpayment.value) ;
}

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);
}

function paymentFormatCurrency(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);
}