$(document).ready(function() {
	$('input', 'form').numeric();
	// Container for the Monthly Payments
	$('form').append('<div id="Result"></div>');
	$('#Result', 'form').hide();
	
	$('button', 'form').click(function() {
		var $errors = 0;
		var $payments = 0;
		
		// If the error box esists, hide it; otherwise add it
		if($('#Invalid', 'form').length > 0)
			$('#Invalid', 'form').slideUp().empty();
		else {
			$('form').prepend('<div id="Invalid"></div>');
			$('#Invalid', 'form').hide();
		}
		
		// Loan Amount Checking and Storage
		if($('#Amount', 'form').val() == "") {
			$('#Invalid', 'form').append('<p>Please enter a valid Loan Amount.</p>');
			$errors++;
		} else
			var $amount	= $('#Amount', 'form').val();
		// Loan Terms Checking and Storage
		if($('#Months', 'form').val() == "") {
			$('#Invalid', 'form').append('<p>Please enter a valid Loan Term (Months).</p>');
			$errors++;
		} else {
			var $months	= $('#Months', 'form').val();
			// User entered a number less than 12, presumably as years, so change it for them
			if($months < 12) {
				$months *= 12;
				$('#Months', 'form').val($months);
			}
		}
		// Interest Rate Checking and Storage
		if($('#Interest', 'form').val() == "") {
			$('#Invalid', 'form').append('<p>Please enter a valid Interest Rate.</p>');
			$errors++;
		} else
			var $interest = $('#Interest', 'form').val();
		
		if($errors > 0) {
			// There were some errors; hide the result box and show the error box
			$('#Invalid', 'form').slideDown();
			$('#Result', 'form').slideUp().empty();
		} else {
			// There were no errors; calculate and show the result box
			if($interest > 1.0) {
				$interest /= 100.0;
			}
			
			var $i = $interest;
			$i /= 12;
			var $pow = 1;
			for (var $j = 0; $j < $months; $j++)
				$pow = $pow * ($i + 1);
			$payments = ($amount * $pow * $i) / ($pow - 1);
			
			$('#Result', 'form').html('<p>Monthly Payments: <b>$' + $payments.toFixed(2) + '</b></p>').slideDown();
		}
		return false;
	})
});