var selectedPriceRange;

function round(number) {
	return Math.round(number*Math.pow(10,2))/Math.pow(10,2);
}


function PaymentCalc (m, n, R, principal) { 
	var z = 1 / (1 + (R/m)); 
	return ((1 - z) * principal) / (z * (1 - Math.pow(z,n))); 
} 

function highlightProperties(minPrice, maxPrice, priceLink) {
	if (selectedPriceRange)
		document.getElementById(selectedPriceRange).className = "";
	document.getElementById(priceLink).className = "selectedPriceRange";
	selectedPriceRange = priceLink;
	
	for ( property in properties ) {
		var propertyLabel = property + "Label";
		propertyField = document.getElementById(propertyLabel);
		
		if (properties[property]["purchasePrice"] >= minPrice && properties[property]["purchasePrice"] < maxPrice)
			propertyField.className = "propertyBold";
		else
			propertyField.className = "propertyRegular";
	}			
}

function calcFinancing(form){
	for(var i=0; i < document.calc.properties.length; i++){
		if(document.calc.properties[i].checked)
			var property = document.calc.properties[i].value;
	}
		
	var loanAmount = document.getElementById("loanAmount").value;
	
	if (document.getElementById("interestRate").value != '') {
		var interestRate = document.getElementById("interestRate").value/100;
	} else {
		var interestRate = .065;
		document.getElementById("interestRate").value = 6.5;
	}
	var annualMortgagePayment = Math.ceil(PaymentCalc(12, 360, interestRate, loanAmount)*12);
	
	//financing
	document.getElementById("estPurchasePrice").value = "$" + properties[property]["purchasePrice"];	
	document.getElementById("loanAmount").value = loanAmount;
	document.getElementById("annualMortgagePayment").value = "$" + annualMortgagePayment;
	
}

function calcForm(form) {	
	
	for(var i=0; i < document.calc.properties.length; i++){
		if(document.calc.properties[i].checked)
			var property = document.calc.properties[i].value;
	}		
	
	var managementFee = properties[property]["projectedGrossIncome"]*properties[property]["managementFee"];
	var netRentalIncome = properties[property]["projectedGrossIncome"] - (managementFee + properties[property]["cleaningFee"]);
	var totalExpenses = properties[property]["poaFees"] + properties[property]["regimeFees"] + properties[property]["reTax"] + properties[property]["propInsurance"] + properties[property]["electric"] + properties[property]["phone"] + properties[property]["cable"] + properties[property]["pool"] + properties[property]["yard"] + properties[property]["water"] + properties[property]["trash"];
	
	var netIncome = netRentalIncome - totalExpenses;	

	var downPayment = .2*properties[property]["purchasePrice"];		
	var loanAmount = properties[property]["purchasePrice"] - downPayment;
	var interestRate = document.getElementById("interestRate").value/100;
	var annualMortgagePayment = Math.ceil(PaymentCalc(12, 360, interestRate, loanAmount)*12);
	
	document.getElementById("projectedGrossIncome").value = "$" + properties[property]["projectedGrossIncome"];
	document.getElementById("managementFee").value = "-$" + managementFee;
	document.getElementById("cleaningFee").value = "-$" + properties[property]["cleaningFee"];
	document.getElementById("poaFees").value = "-$" + properties[property]["poaFees"];
	document.getElementById("regimeFees").value = "-$" + properties[property]["regimeFees"];
	document.getElementById("reTax").value = "-$" + properties[property]["reTax"];
	document.getElementById("propInsurance").value = "-$" + properties[property]["propInsurance"];
	document.getElementById("electric").value = "-$" + properties[property]["electric"];
	document.getElementById("phone").value = "-$" + properties[property]["phone"];
	document.getElementById("cable").value = "-$" + properties[property]["cable"];
	document.getElementById("pool").value = "-$" + properties[property]["pool"];
	document.getElementById("yard").value = "-$" + properties[property]["yard"];
	document.getElementById("water").value = "-$" + properties[property]["water"];
	document.getElementById("trash").value = "-$" + properties[property]["trash"];
	
	document.getElementById("netRentalIncome0").value = "$" + netRentalIncome;
	document.getElementById("netRentalIncome1").value = "$" + netRentalIncome;
	document.getElementById("totalExpenses").value = "-$" + totalExpenses;
	
	if (parseInt(netIncome) < 0) {
		document.getElementById("netIncome").className = "negative";
		document.getElementById("netIncome").value = "-$" + -1*netIncome;		
	} else {
		document.getElementById("netIncome").className = "nonEditable";
		document.getElementById("netIncome").value = "$" + netIncome;
	}
	
	
		
	//financing
	document.getElementById("estPurchasePrice").value = "$" + properties[property]["purchasePrice"];	
	document.getElementById("loanAmount").value = loanAmount;
	document.getElementById("annualMortgagePayment").value = "$" + annualMortgagePayment;	
	
}
