>
> if (isFinite(monthly)) {
> // Заполнить поля вывода, округлив результаты до 2 десятичных знаков
> payment.innerHTML = monthly.toFixed(2);
> total.innerHTML = (monthly * payments).toFixed(2);
> totalinterest.innerHTML = ((monthly*payments)-principal).toFixed(2);
> // Сохранить ввод пользователя, чтобы можно было восстановить данные
> // при следующем открытии страницы
> save(amount.value, apr.value, years.value, zipcode.value);
> // Реклама: отыскать и отобразить ссылки на сайты местных
> // кредитных учреждений, но игнорировать сетевые ошибки
> try { // Перехватывать все ошибки, возникающие в этих фигурных скобках
> getLenders(amount.value, apr.value, years.value, zipcode.value);
> }
> catch(e) { /* И игнорировать эти ошибки */ }
> // В заключение вывести график изменения остатка по кредиту, а также
> // графики сумм, выплачиваемых в погашение кредита и по процентам
> chart(principal, interest, monthly, payments);
> }
> else {
> // Результат не является числом или имеет бесконечное значение,
> // что означает, что были получены неполные или некорректные данные.
> // Очистить все результаты, выведенные ранее,
> payment.innerHTML = "";
> // Стереть содержимое этих элементов total.innerHTML = totalinterest.innerHTML = "";
> chart(); // При вызове без аргументов очищает диаграмму
> }
>}
>// Сохранить ввод пользователя в свойствах объекта localStorage. Значения этих свойств
>// будут доступны при повторном посещении страницы. В некоторых броузерах (например.
>// в Firefox) возможность сохранения не поддерживается, если страница открывается
>// с адресом URL вида file://. Однако она поддерживается при открытии страницы через HTTP.
>function save(amount, apr, years, zipcode) {
> if (window.localStorage) { // Выполнить сохранение, если поддерживается
> localStorage.loan_amount = amount;
> localStorage.loan_apr = apr;
> localStorage.loan_years = years;
> localStorage.loan_zipcode = zipcode;
> }
>}
>// Автоматически восстановить поля ввода при загрузке документа,
>window.onload = function() {
> // Если броузер поддерживает localStorage и имеются сохраненные данные
> if (window.localStorage && localStorage.loan_amount) {
> document.getElementById("amount").value = localStorage.loan_amount;
> document.getElementById("apr").value = localStorage.loan_apr;
> document.getElementById("years").value = localStorage.loan_years;
> document.getElementById("zipcode").value = localStorage.loan_zipcode;
> }
>};
>// Передать ввод пользователя серверному сценарию, который может (теоретически) возвращать