function update_table_from_month(month)
{
	var doc = document;
	var months = get_duration_in_months();
	var overall_payment = 0;
	var p_calculate_monthly_payment = calculate_monthly_payment;
	if (month == 1)
	{
		interest_rates[0] = get_monthly_interest();
		keren_left_at_month_start[1] = get_total_amount();
		keren_left_at_month_start[0] = keren_left_at_month_start[1];
		
		while (last_visible_month > months)
		{
			table.rows[last_visible_month--].style.visibility = "hidden";
		}
		
		while (last_visible_month <= months)
		{
			table.rows[last_visible_month++].style.visibility = "visible";
		}

		monthly_payments[0] = p_calculate_monthly_payment(keren_left_at_month_start[0], months, interest_rates[0]);
	}
	else
	{
		monthly_payments[i - 1] = p_calculate_monthly_payment(keren_left_at_month_start[i - 1], months - month + 2, interest_rates[i - 1]);
	}
	
	var local_keren = keren_left_at_month_start[month];
	
	monthly_payments[i - 1] = p_calculate_monthly_payment(keren_left_at_month_start[i - 1], months - month + 2, interest_rates[i - 1]);
	
	for (var i = month; i <= months; i++)
	{
		old_interest_rate = interest_rates[i];
		interest_rates[i] = interest_rates[i - 1] + intereset_rate_changes[i] / 1200;	
		keren_left_at_month_start[i] = local_keren;
		var row = table.rows[i];
		
		// Interest rate td
		if (old_interest_rate != interest_rates[i])
		{
			interest_rate_cells[i].value = format_2_trailing_zeros(interest_rates[i] * 1200) + "%";
		}
		
		var old_monthly_payment = monthly_payments[i];
		if (interest_rates[i] != interest_rates[i - 1])
		{
			monthly_payments[i] = p_calculate_monthly_payment(keren_left_at_month_start[i], months - i + 1, interest_rates[i]);
			monthly_payment_cells[i].value = format_number_with_commas(monthly_payments[i], 2) ;
		}
		else
		{
			monthly_payments[i] = monthly_payments[i - 1];
			if (monthly_payment_cells[i - 1] == null)
				monthly_payment_cells[i].value = format_number_with_commas(monthly_payments[i], 2) ;
			else
				monthly_payment_cells[i].value = monthly_payment_cells[i - 1].value;
		}
		
		// Original interest according to shpitzer
		var interest_payment = keren_left_at_month_start[i] * interest_rates[i];
		
		keren_payment = monthly_payments[i] - interest_payment;
	
		overall_payment += monthly_payments[i];
				
/*
	var monthly_change = ((monthly_payments[i] / monthly_payments[i - 1]) - 1) * 100;
				
		doc.getElementById('monthly_change_' + i).value = format_2_trailing_zeros(monthly_change) + "%";
		*/		
		local_keren -= keren_payment;
	}
}
function fill_initial_payment_table()
{
	var doc = document;
	
	var month_name_td, keren_left_td, keren_payment_td, interest_payment_td, interest_payment, keren_payment, monthly_payment_td, overall_keren;
	
	var fragment = doc.createDocumentFragment();
	last_visible_month = 300;
	
	for (var i = 1; i <= 300; i++)
	{
		var row = doc.createElement("tr");
		if (i % 12 == 0)
			row.className="article_table_totals";
		
		month_name_td = row.insertCell(0);
		month_name_td.appendChild(doc.createTextNode(i));	
		
		interest_rate_td = row.insertCell(1);
		
		interest_rate_td.innerHTML = "<table><tr><td><input id='percent_" + i + "' class='pi'></input></td><td>" + generate_up_down_control(i) + "</td></tr></table>";		
		
		monthly_payment_td = row.insertCell(2);
	
		monthly_payment_td.innerHTML = "<input readonly id='monthly_payments_" + i +"' class='mpi'></input>";		
		
		/*	
		var monthly_change_td = row.insertCell(6);		
		monthly_change_td.innerHTML = "<input readonly id='monthly_change_" + i +"'></input>";*/
		fragment.appendChild(row);
	}
	table.appendChild(fragment);
	
	var p_interest_rate_cells = interest_rate_cells;
	var p_monthly_payment_cells = monthly_payment_cells;
	for (var i = 1; i <= 300; i++)
	{
		document.getElementById('direction_button_up_' + i).onclick = create_f_x(move_interest_up, i);
		document.getElementById('direction_button_down_' + i).onclick = create_f_x(move_interest_down, i);
		p_interest_rate_cells[i] = doc.getElementById("percent_" + i);
		p_monthly_payment_cells[i] = doc.getElementById("monthly_payments_" + i);
	}
/*
	row = table.insertRow(table.rows.length);
	row.className="article_table_totals bold";
	month_name_td = row.insertCell(0);
	month_name_td.appendChild(doc.createTextNode("ñä\"ë"));	
		
	
	row.insertCell(1);
	keren_left_td = row.insertCell(2);
	keren_left_td.innerHTML = "&nbsp;";
		
	keren_payment_td = row.insertCell(3);
	interest_payment_td = row.insertCell(4);
			
	keren_payment_td.innerHTML = "<input readonly id='overall_keren_payment' value='" + format_number_with_commas(overall_keren, 2 )  + "'></input>";
	
	overall_interest = overall_payment - overall_keren;
	
	interest_payment_td.innerHTML = "<input readonly id='overall_interest_payment' value='" + format_number_with_commas(overall_interest, 2 )  + "'></input>";
	
	interest_payment_td.appendChild(doc.createTextNode(format_number_with_commas(overall_interest, 2) ));
		
	monthly_payment_td = row.insertCell(5);
	monthly_payment_td.appendChild(doc.createTextNode(format_number_with_commas(overall_payment, 2) ));	
	
	row.insertCell(6).innerHTML = "&nbsp;";
*/	
	update_table_from_month(1);

}