function limitContent(s, sLimit) {
   var tmp = [];
   for (i = 0; i < s.length; i++) { if (sLimit.indexOf(s.charAt(i)) > -1) { tmp.push(s.charAt(i)); } }
   return tmp.join('');
}

//Credit for this script goes to Hugh Chou
function floor(number){
  return Math.floor(number*Math.pow(10,2))/Math.pow(10,2);
}

var calc = function(listPrice, amountDown, years, interest) {
   var mi = interest / 1200;
   var base = 1;
   var mbase = 1 + mi;
   var amt;
   var iCnt = years * 12;

   for (i = 0; i < iCnt; i++)
      base *= mbase;

   var dasum = (listPrice - amountDown) * mi / (1 - (1 / base));
   return floor(dasum);
}

var doCalc = function() {
   $('#MP').val(calc($('#LA').val(), $('#AD').val(), $('#YR').val(), $('#IR').val()));
}

$('#LA').change(function() {
   this.value = limitContent(this.value, '0123456789.');
   $('#AD').val(Math.round($('#PD').val() * $('#LA').val() * 10000000) / 10000000 / 100);
   doCalc();
});
$('#AD').change(function() {
   this.value = limitContent(this.value, '0123456789.');
   $('#PD').val(Math.round($('#AD').val() / $('#LA').val() * 100 * 100) / 100);
   doCalc();
});
$('#PD').change(function() {
   this.value = limitContent(this.value, '0123456789.');
   $('#AD').val(Math.round($('#PD').val() * $('#LA').val() / 100));
   doCalc();
});
$('#YR').change(function() {
   this.value = limitContent(this.value, '0123456789.');
   doCalc();
});
$('#IR').change(function() {
   this.value = limitContent(this.value, '0123456789.');
   doCalc();
});
$('#btnCalc').click(doCalc);