PaymentCalculator = function() {

	var $C = YAHOO.util.Connect;
	var $D = YAHOO.util.Dom;
	var $E = YAHOO.util.Event;
	var $ = $D.get;

	return {
		init: function() {
			this.calculate.apply( $('calculate') );
			$E.on('calculate', 'click', this.calculate);
		},
		calculate: function() {
			var el = $('calc-result');
			el.innerHTML = "";

			$D.addClass(el, 'loading');

			$C.setForm(this.form);
			$C.asyncRequest(
				'POST',
				'/calculator/script.php',
				{
					success: function(o) {
						$D.removeClass(el, 'loading');
						el.innerHTML = o.responseText;
					},
					failure: function(o) {
						$D.removeClass(el, 'loading');
						el.innerHTML = o.responseText;
					}
				}
			);
		}
	}

}();

function pmt(p,i,y) {
	with (Math) {
		var r = i/1200;
		var x = pow(1+r, -12*y);
		var pmt = p*r/(1-x);
		pmt = round(100*pmt)/100;
		return pmt;
	}
}

function cents(n) {
	var s = "" + Math.round(100*n);
	while (s.length < 3)  s = "0"+s;
	return s.substring(0, s.length-2) + "." + s.substring(s.length-2);
}

function c(p, i, y) {
	if (p && i && y) {
		var z = pmt(p,i,y);
		if (isNaN(z) || z <= 0) return "Out of range";
		else return "$"+cents(z);
	}
}