function number_format(a, b, c, d){
    e = a + '';
    f = e.split('.');
    if (!f[0]) {
        f[0] = '0';
    }
    if (!f[1]) {
        f[1] = '';
    }
    if (f[1].length < b) {
        g = f[1];
        for (i = f[1].length + 1; i <= b; i++) {
            g += '0';
        }
        f[1] = g;
    }
    if (d != '' && f[0].length > 3) {
        h = f[0];
        f[0] = '';
        for (j = 3; j < h.length; j += 3) {
            i = h.slice(h.length - j, h.length - j + 3);
            f[0] = d + i + f[0] + '';
        }
        j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
        f[0] = j + f[0];
    }
    c = (b <= 0) ? '' : c;
    return f[0] + c + f[1];
}

function recalc()
{
	var summ = $("input[id='summ']").val();
	var first_fee = $("input[id='first_fee']").val();
	var period = $("input[id='period']").val();
	var annual = $("input[id='annual']").val();
	
	var credit_summ = summ - first_fee;
	
	//var annuity = Math.round((credit_summ*(annual/100/12)) / (1-Math.pow(1+annual/100/12, -period))*100)/100;
	var annuity = (credit_summ*(annual/100/12)) / (1-Math.pow(1+annual/100/12, -period));
	
	if (summ>0 && first_fee>=0 && period>0 && annual>0)
	{
		var content; 
		var percents_payment_summ=0; 
		var percents_payment_total=0;
		var base_payment_summ=0;
		
		content = "<p id='stats' style='text-align: left'></p><table id='ipoteka'><thead><th>Месяц</th><th>Оплата процентов</th><th>Оплата основного долга</th><th>Осталось выплатить</th></thead>";
		
		for(month=1, remainder=credit_summ; month<=period; month++)
		{
			var percents_payment = Math.round(remainder*(annual/100/12)*100)/100;
			var base_payment = Math.round((annuity-percents_payment)*100)/100;
			remainder = Math.round((remainder-(annuity-percents_payment))*100)/100;
			if (month==period)
				remainder = 0;
			content += "<tr><td>"+month+"</td><td>"+number_format(percents_payment, 2, '.', '&nbsp;')+"</td><td>"+number_format(base_payment, 2, '.', '&nbsp;')+"</td><td>"+number_format(remainder, 2, '.', '&nbsp;')+"</td></tr>";
			
			percents_payment_total += percents_payment;
			percents_payment_summ += percents_payment;
			base_payment_summ += base_payment;
			if (month%12==0)
			{
				content += "<tr><td class='ipoteka_summary'>Итого за "+Math.floor(month/12)+"-й год</td><td class='ipoteka_summary'>"+number_format(Math.round(percents_payment_summ*100)/100, 2, '.', '&nbsp;')+"</td><td class='ipoteka_summary'>"+number_format(Math.round(base_payment_summ*100)/100, 2, '.', '&nbsp;')+"</td><td class='ipoteka_summary'>&nbsp;</td></tr>";
				percents_payment_summ=0;
				base_payment_summ=0;
			}
		}
		content += "</table>";
		
		$("#result").html(content);
		$("#stats").html("<div class='big_field' style='margin-top: 5px;'><span class='result'>"+number_format(Math.round(annuity*100)/100, 2, '.', '&nbsp;')+"</span> <span class='to' style='text-decoration:none'>Ежемесячная выплата</span><div style='clear: left; margin-bottom: 10px'></div><span class='result'>"+number_format(Math.round(percents_payment_total*100)/100, 2, '.', '&nbsp;')+"</span> <span class='to' style='text-decoration:none'>Переплата банку</span></div>");
	}
	else
		$("#result").html("<p style='text-align: center; font-weight: bold'>Пожалуйста, введите правильно все необходимые данные для расчета</p>");
		
}

$().ready(function() {
	$("input[id='summ']").keyup(function(){recalc();});
	$("input[id='first_fee']").keyup(function(){recalc();});
	$("input[id='period']").keyup(function(){recalc();});
	$("input[id='annual']").keyup(function(){recalc();});
	
	$("input[id='summ']").select().focus();
});

