var graph = new Array();
var print_var = new Number(0);
var empty_string = new String("");

	function get_monthly_payment(obj) {
		ma = get_number("mortage_amount");
		ir = get_number("interest_rate")/1200;
		
		term = (print_var==0)?(get_combo_value("term")*12):(get_number("term") * 12);
			
		if (ir == 0) ir = 0.00000001; 
		
		var hidden = get_hidden(obj);
		hidden.value = Math.round(ma/((1/ir)*(1-Math.pow ((1/(1+ir)),term))));
		
		obj.innerText = "$" + format(hidden.value);
	
		if ((obj.innerText == "$NaN" || obj.innerText.charAt(0)=="-") || Number(obj.innerText) <= 0) obj.innerText = empty_string;
	}

	function get_payments_schedule() {
		var ma = new Number(get_number("mortage_amount"));
		var ir = new Number(get_number("interest_rate")/1200);
		var months = new Number((print_var==0)?(get_combo_value("term")*12):(get_number("term")*12));
		var msm = new Number((print_var==0)?(get_combo_value("start_date_month")):(get_number("start_date_month")) );
		var msy = new Number(get_number("start_date_year"));
		
		var psm = new Number((print_var==0)?(get_combo_value("payment_start_month")):(get_number("payment_start_month")) );
		var psmbuffer = new Number((print_var==0)?(get_combo_value("payment_start_month")):(get_number("payment_start_month")) );
		var psy = new Number(get_number("payment_start_year"));
		var mp = new Number(get_number("monthly_payment"));
		var yp = new Number(get_number("yearly_payment"));
		
		var otp	= new Number(get_number("one_time_payment"));
		var otpm = new Number((print_var==0)?(get_combo_value("one_time_payment_date_month")):(get_number("one_time_payment_date_month")) );
		var otpy = new Number(get_number("one_time_payment_date_year"));
		
		var stm = new Number(get_number("pay_stats_month"));
		var sty = new Number(get_number("pay_stats_year"));
		
		var due = new Number(0);
		var amount = new Number(0);
		var suplimentarypayments = new Array();
		var suplimentaryvalue = new Number(0);
		var psybuffer = psy;
		var psmbuffer = psm;
		var equitybuffer = new Number(0);
		var cmonthprincipal = new Number(0);
		var cmonthinterest = new Number(0);
		var cyearinterest = new Number(0);
		var loanbalance = new Number(0);
		var equitybuilt = new Number(0);
		var month = new Number(0);
		var term = new Number(0);
		term = (print_var==0)?(get_combo_value("term")*12):(get_number("term")*12);
		
		graph = null;
		graph = new Array();
		
		
		if (mp == 0 || mp ==NaN) mp = 0; 
		if (yp == 0 || yp ==NaN) yp = 0;
	
		for (var i = 1; i<=months; i++) 
			{	
				var tmpa = new Array(2);
				tmpa[0] = psy + "|" + psm;
				
				
				if (msm > psmbuffer && psm == msm) 
					{	tmpa[1] = mp + yp;
					}
				else
					{if (psm == 1) 
						{	tmpa[1] = mp + yp;
						}
						else
						{	tmpa[1] = mp;
						}
					}
				if (psm < 12) 
					{	psm = psm + 1;
					}
				else {	psm = 1;
						psy = psy + 1;	
					 }
				suplimentarypayments.push (tmpa);
			}
		var suplimentarybuffer = ',' + suplimentarypayments.toString() + ',';

		if (ir == 0) ir = 0.00000001; 
		j = 1;
	
		for (var t=0;t<months;t++) 
			j = j*(1+ir);
	
		amountpermonth = (ma * j * ir)/(j - 1);
		fpv = (ma * j * ir)/(j - 1) - (ma * ir);
		rate =  fpv;
		interest = amountpermonth - rate;
		yearno = 1;
		year = Number(msy);
		month = Number(msm);
		yearprincipal = 0;
		yearinterest = 0;

		for (var i = 1; i<=months; i++) {
			var tmp = new Array(3);
				var p = suplimentarybuffer.indexOf(("," + year + "|" + month + ","), 0);
				if (p >= 0) {
					var pend = suplimentarybuffer.indexOf(',', p + 1);
					var pbuf = suplimentarybuffer.indexOf(',', pend + 1);
					suplimentaryvalue = Number(suplimentarybuffer.substr(pend+1,pbuf-pend-1));
				}
			
			due = ma - rate - suplimentaryvalue;
			if ((year + "|" + month) == (otpy + "|" + otpm))
					{	due = due - otp;
					}
			totalrate = rate + interest;
			
			if (month != 1) 
				{	yearprincipal = Math.round(yearprincipal + rate);
					yearinterest = Math.round(yearinterest + interest);
					//alert (yearinterest+","+month);
				}
			else
				{	tmp[0] = year - 1;
					tmp[1] = yearprincipal;
					tmp[2] = yearinterest;
					if (year > msy && yearinterest >= 0) graph.push (tmp);
					if (year - 1 == sty) 
						{	cyearinterest = yearinterest;
						}
					yearprincipal = rate;
					yearinterest = interest;
				}
			
			if ((year == sty) && (month == stm)) 
					{	cmonthprincipal = rate;
						cmonthinterest = interest;
						//alert ((year-1) +","+month +","+stm);
					}
				
			equitybuffer = equitybuffer + rate + suplimentaryvalue;
			if ((year + "|" + month) == (otpy + "|" + otpm))
					{	equitybuffer = equitybuffer + otp;
					}
			
			interest = due  * ir;
			ma = due;
			rate = amountpermonth - interest;
			
			if (year == sty && month == stm) 
					{	loanbalance = due;
						equitybuilt = equitybuffer;
					}
			if (month < 12) { month = month + 1;}
			else	{	month = 1;
						year = year + 1;
					}
		}
		
		var obj = document.all.that_month_principal;
		var hidden = get_hidden(obj);
		hidden.value = Math.round(cmonthprincipal);
		obj.innerText = "$" + format(hidden.value);
		if ((obj.innerText == "$NaN" || obj.innerText.charAt(0)=="-") || Number(obj.innerText) <= 0) obj.innerText = empty_string;

		var obj1 = document.all.that_month_interest;
		hidden = get_hidden(obj1);
		hidden.value = Math.round(cmonthinterest);
		obj1.innerText = "$" + format(hidden.value);
		if ((obj1.innerText == "$NaN" || obj1.innerText.charAt(0)=="-") || Number(obj1.innerText) <= 0) obj1.innerText = empty_string;
		
		var obj2 = document.all.that_year_interest;
		hidden = get_hidden(obj2);
		hidden.value = Math.round(cyearinterest);
		obj2.innerText = "$" + format(hidden.value);
		if ((obj2.innerText == "$NaN" || obj2.innerText.charAt(0)=="-") || Number(obj2.innerText) <= 0) obj2.innerText = empty_string;
		
		var obj3 = document.all.loan_balance;
		hidden = get_hidden(obj3);
		hidden.value = Math.round(loanbalance);
		obj3.innerText = "$" + format(hidden.value);
		if ((obj3.innerText == "$NaN" || obj3.innerText.charAt(0)=="-") || Number(obj3.innerText) <= 0) obj3.innerText = empty_string;
		
		var obj4 = document.all.equity_built;
		hidden = get_hidden(obj4);
		hidden.value = Math.round(equitybuilt);
		obj4.innerText = "$" + format(hidden.value);
		if ((obj4.innerText == "$NaN" || obj4.innerText.charAt(0)=="-") || Number(obj4.innerText) <= 0) obj4.innerText = empty_string;
		
		//alert (graph.toString());
	}
