var blurred=1;

function getFloat( s ) { 
	return parseFloat(s.replace(/[^0-9.]/,"")); 
}
		
function formatCurrency( v ) { 
	return '$ ' + addCommas( roundTwo( v ) ); 
}

function formatPercent( v ) { 
	return roundOne( v ) = '%'; 
}

function roundOne( v ) { 
	if (v.toFixed) return v.toFixed(1);
	return Math.floor( v*10 )/10;
}
function roundTwo( v ) { 
	if (v.toFixed) return v.toFixed(2);
	return Math.floor( v*100 )/100;
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

var mortgage_payment
var mortgage_interest;
var total_expenses;
var deductible_maintenance;
var total_tax_deductible;
var total_tax_saving;
var net_monthly_cost;
var net_monthly_expense;
var purchase_price;
var pp;
var maint;
var downpay;
var tdm;
var ptax;
var mr;
var tb;
var tdm;
var mr;
var interest_per_month;
var maintenance;
var downpayment;
var tax_deductable_maintenance;
var property_tax;
var mortgage_rate;
var tax_bracket;
var np;
var pv;
function recalculate(){
	purchase_price=document.getElementById('purchase_price').value;
	pp=parseFloat(purchase_price.replace(/[^0-9.]/,""));
	maintenance=document.getElementById('maintenance').value;
	maint=parseFloat(maintenance.replace(/[^0-9.]/,""));
	downpayment=document.getElementById('downpayment').value;
	downpay=parseFloat(downpayment.replace(/[^0-9.]/,""));
	tax_deductable_maintenance=document.getElementById('td_maintenance').value;
	tdm=parseFloat(tax_deductable_maintenance.replace(/[^0-9.]/,""));
	property_tax=document.getElementById('property_tax').value;
	ptax=parseFloat(property_tax.replace(/[^0-9.]/,""));
	mortgage_rate=document.getElementById("mortgage_rate").value;
	mr=parseFloat(mortgage_rate.replace(/[^0-9.]/,""));
	tax_bracket=document.getElementById("tax_bracket").value;
	tb=parseFloat(tax_bracket.replace(/[^0-9.]/,""));
	tdm=tdm/100;
	mr=mr/100;
	tb=tb/100;
	interest_per_month=mr/12;
	np=parseFloat(document.getElementById("loanlength").value)*12;
	pv=pp-downpay;
	
	mortgage_payment=( pv * interest_per_month ) / (1-Math.pow( 1+interest_per_month,(-1 * np) ) );
	
	mortgage_interest=pv * interest_per_month;
	total_expenses = mortgage_payment + maint + ptax;
	deductible_maintenance = maint * tdm;
	total_tax_deductible = mortgage_interest + deductible_maintenance + ptax;
	total_tax_saving = total_tax_deductible * tb;
	net_monthly_cost = total_expenses - total_tax_saving;
	net_monthly_expense = net_monthly_cost + mortgage_interest - mortgage_payment;
	
	/*
	
	var mortgage_payment = pmt( mr/12, 30*12, (pp-dp) );
	var mortgage_interest = ipmt( mr , 1, 360, (pp-dp) )/12;
	var total_expenses = mortgage_payment + maint + pt;
	var deductible_maintenance = maint * tdm;
	var total_tax_deductible = mortgage_interest + deductible_maintenance + pt;
	var total_tax_saving = total_tax_deductible * itb;
	var net_monthly_cost = total_expenses - total_tax_saving;
	var net_monthly_expense = net_monthly_cost + mortgage_interest - mortgage_payment;
	
	
	*/
	
	document.getElementById("mortgage_amount").innerHTML = formatCurrency(pp - downpay);
	document.getElementById("mortgage_payment").innerHTML = formatCurrency(mortgage_payment);
	document.getElementById("mortgage_interest").innerHTML = formatCurrency(mortgage_interest);
	document.getElementById("maintenance_payment").innerHTML = formatCurrency(maint);
	document.getElementById("deductible_maintenance").innerHTML = formatCurrency(deductible_maintenance);
	document.getElementById("tax_payment").innerHTML = formatCurrency(ptax);
	document.getElementById("property_taxes").innerHTML = formatCurrency(ptax);
	document.getElementById("total_expenses").innerHTML = formatCurrency(total_expenses);
	document.getElementById("total_tax_deductible").innerHTML = formatCurrency(total_tax_deductible);
	document.getElementById("total_tax_saving").innerHTML = formatCurrency(total_tax_saving);
	document.getElementById("net_monthly_cost").innerHTML = formatCurrency(net_monthly_cost);
	document.getElementById("net_monthly_expense").innerHTML = formatCurrency(net_monthly_expense);
	
	//$('mortgage_amount').innerHTML = formatCurrency( pp - dp );
	//$('mortgage_payment').innerHTML = formatCurrency( mortgage_payment );
	//$('mortgage_interest').innerHTML = formatCurrency( mortgage_interest );
	//$('maintenance_payment').innerHTML = formatCurrency( maint );
	//$('deductible_maintenance').innerHTML = formatCurrency( deductible_maintenance );
	//$('tax_payment').innerHTML = formatCurrency( pt );
	//$('property_taxes').innerHTML = formatCurrency( pt );
	//$('total_expenses').innerHTML = formatCurrency( total_expenses );
	//$('total_tax_deductible').innerHTML = formatCurrency( total_tax_deductible );
	//$('total_tax_saving').innerHTML = formatCurrency( total_tax_saving );
	//$('net_monthly_cost').innerHTML = formatCurrency( net_monthly_cost );
	//$('net_monthly_expense').innerHTML = formatCurrency( net_monthly_expense );
	blurTable(1);
}

function blurTable(i){
	if(blurred == i){
		return true;
	} else {
		if(i==1){
			document.getElementById("paymentTable").style.backgroundColor="#dddddd";
			document.getElementById("paymentTable").style.color="#666666";
			document.getElementById("paymentTable").innerHTML='<div id="paymentTable" class="greylog" style="width:500px; height:400px; overflow:auto; margin:auto; color:#666666; background-color:#dddddd;">	This payment table will be filled with your payment information when you click the \'Calculate Payments\' button above.	</div>"';
		} else if (i==0) {
			document.getElementById("paymentTable").style.backgroundColor="#ffffff";
			document.getElementById("paymentTable").style.color="#000000";
		}
	}
	blurred=i;
}

function calculatePayments(){
	numrows=np;
	i=1;
	html='<div id="paymentTable" class="greylog" style="width:500px; height:400px; overflow:auto; margin:auto; color:#666666; background-color:#dddddd;">	<table align="center" cellpadding="0" cellspacing="0" width="100%"><tr><td><span class="style4"><strong>Month</strong></span></td><td><span class="style4"><strong>Interest Paid</strong></span></td><td><span class="style4"><strong>Principal Paid</strong></span></td><td><span class="style4"><strong>Remaing Balance</strong></span></td></tr>';
	amount_to_pay=pv
	i2=1;
	while(i<=np){
		interest_to_pay=interest_per_month*amount_to_pay;
		pdue=mortgage_payment-interest_to_pay;
		amount_to_pay=amount_to_pay-pdue;
		html=html+"<tr class='style"+i2+"'><td>"+i+"</td><td>"+formatCurrency(interest_to_pay)+"</td><td>"+formatCurrency(pdue)+"</td><td>"+formatCurrency(amount_to_pay)+"</td></tr>";
		i++;
		if(i2==0){
			i2++;	
		} else {
			i2--;
		}
	}
	html=html+"</table></div>";
	document.getElementById("paymentTableContainer").innerHTML=html;
	blurTable(0);
}

function old_recalculate()
{
	var fm = document.pca_form;
	if (typeof(fm)=='undefined' || fm==null) return;
	
	// get data
	var pp = getFloat( fm.purchase_price.value );
	var maint = getFloat( fm.maintenance.value );
	var dp = getFloat( fm.downpayment.value );
	var tdm = getFloat( fm.td_maintenance.value ) / 100;
	var pt = getFloat( fm.property_tax.value );
	var mr = getFloat( fm.mortgage_rate.value ) / 100;
	var itb = getFloat( fm.tax_bracket.value ) / 100;
	
	// recalculate values
	var mortgage_payment = pmt( mr/12, 30*12, (pp-dp) );
	var mortgage_interest = ipmt( mr , 1, 360, (pp-dp) )/12;
	var total_expenses = mortgage_payment + maint + pt;
	var deductible_maintenance = maint * tdm;
	var total_tax_deductible = mortgage_interest + deductible_maintenance + pt;
	var total_tax_saving = total_tax_deductible * itb;
	var net_monthly_cost = total_expenses - total_tax_saving;
	var net_monthly_expense = net_monthly_cost + mortgage_interest - mortgage_payment;
	
	// assign them
	$('mortgage_amount').innerHTML = formatCurrency( pp - dp );
	$('mortgage_payment').innerHTML = formatCurrency( mortgage_payment );
	$('mortgage_interest').innerHTML = formatCurrency( mortgage_interest );
	$('maintenance_payment').innerHTML = formatCurrency( maint );
	$('deductible_maintenance').innerHTML = formatCurrency( deductible_maintenance );
	$('tax_payment').innerHTML = formatCurrency( pt );
	$('property_taxes').innerHTML = formatCurrency( pt );
	$('total_expenses').innerHTML = formatCurrency( total_expenses );
	$('total_tax_deductible').innerHTML = formatCurrency( total_tax_deductible );
	$('total_tax_saving').innerHTML = formatCurrency( total_tax_saving );
	$('net_monthly_cost').innerHTML = formatCurrency( net_monthly_cost );
	$('net_monthly_expense').innerHTML = formatCurrency( net_monthly_expense );
}
