var qa = new Object;
var homevalue;
var appreciation;
var term;
var loan;
var rate;

function getQuery() {
	var locationObj = window.location;
	var query = locationObj.search.substring(1);
	var labels = query.split("&");
	for (i=0;i<labels.length;i++) {
		ft = labels[i].split("=");
		var propName = ft[0];
		qa[propName] = ft[1];
	}
	
	if (qa.cmd == "calculate") {
		homevalue = qa.hv;
		appreciation = qa.app;
		term = qa.term;
		loan = qa.loan;
		rate = qa.int;			
		calculate();
	}
}
			
	
	function calculate() {	
		var current_date = new Date();
		var current_month = current_date.getMonth();
		var current_year = current_date.getYear();
		
		console.log("OK it has been reloaded");
		if (qa.cmd != "calculate") {
			homevalue = $("input[name='home_value']").val();
			appreciation = $("input[name='appreciation']").val();
			term = $("input[name='remaining_term']").val();
			loan = $("input[name='loan_balance']").val();
			rate = $("input[name='interest_rate']").val();
		} else {
			$("input[name='home_value']").val(homevalue);
			$("input[name='appreciation']").val(appreciation);
			$("input[name='remaining_term']").val(term);
			$("input[name='loan_balance']").val(loan);
			$("input[name='interest_rate']").val(rate);
			qa.cmd = "";	
		}
				
		// each year, must do it 12 times for each month
		var r = (parseInt(rate,10)/100) / 12;
		var n = parseInt(term,10) * 12;
		var p = parseInt(loan,10);
		var int = Math.pow(1+r,n);
		var m_pmt = p * ( (r * int) / (int - 1));
		
		// formula:  M = P [ ( r * ( 1 + r ) ^ n )  / ( ( 1 + r ) ^ n - 1 ) ]
		var total_principal = 0;
		var tmp_principal;
		var tmp_homevalue = parseInt(homevalue,10);
		var tmp_balance;
		var even_year;
		var underwater = true;
		
		$("#payback_chart ul#parent_chart").children().remove();
		$("#payback_chart ul#parent_chart").append("<li id='chart_head'><ul class='chart_row'><li class='year'>Year</li><li>Home Value</li><li>Principal Payment</li><li>Total Repaid</li><li>Loan Balance</li></ul></li>");
		$("#payback_chart ul#parent_chart").append("<li><ul class='chart_row'><li class='year'>Start</li><li>" + homevalue + "</li><li>n/a</li><li>n/a</li><li>" + p + "</li></ul></li>");
	
		for (var i=0;i<term;i++) { // x number of  years left on loan
			// i is years
			tmp_principal = 0;
			for (var j=0;j<12;j++) { // 12 times equals one year // j is months
			
				m_prin = m_pmt - ( p * r ); // loan balance by rate for one month
				tmp_principal = tmp_principal + m_prin;
				// ok so that's for one month. subtract principal from loan? and one month from eq
				p = p - m_prin;
			
			}
			tmp_balance = p;
			tmp_homevalue = parseInt(tmp_homevalue,10) + Math.round(tmp_homevalue * (appreciation/100) *100)/100;
			total_principal = total_principal + tmp_principal;
	
			// add a row onto the list
			$("#payback_chart ul#parent_chart").append("<li><ul class='chart_row'><li class='year'>" + (i+1) + "</li><li>$" + tmp_homevalue + "</li><li>($" + (Math.round(tmp_principal*100)/100) + ")</li><li>$" +(Math.round(total_principal*100)/100) + "</li><li>$" + (Math.round(tmp_balance*100)/100) + "</li></ul></li>");
			
			// check to see if broke even. if so, highlight list element and take note of year i
			
			if ( tmp_homevalue > p && underwater == true) {
				$("#parent_chart ul:last").css({'background-color' : '#ff9', 'font-weight' : 'bold', 'color' : '#000' });
				even_year = i+1; // because adding zero doesn't work
				$("#result p").text("You will break even in " + even_year + " years.");
				underwater = false;
			} else if (tmp_homevalue > p && underwater == false) {
				$("#parent_chart ul:last li:first").css({'background-color' : '#cf9','color' : '#030'});
			} else {
				$("#parent_chart ul:last li:first").css({'background-color' : '#f99','color' : '#900'});
			}
			
			
		}
		
		$("#result p").text = "No longer underwater after " + even_year + " years."
	}

window.onload = getQuery;
