
function PV(amount,years,drate) {
	return ( (amount/drate) * (1-(1/Math.pow((1+drate),9))) )
}

function recalc() {
//alert('run');
	// read in vars
	var i_units=document.getElementById('i_units').value;
	var i_elecrate=parseFloat(document.getElementById('i_elecrate').value);
	var i_hoursperday=parseFloat(document.getElementById('i_hoursperday').value);
	var i_initcost1=parseFloat(document.getElementById('i_initcost1').value);
	var i_initcost2=parseFloat(document.getElementById('i_initcost2').value);
	var i_wattage1=parseInt(document.getElementById('i_wattage1').value);
	var i_wattage2=parseInt( document.f.i_wattage2.options[document.f.i_wattage2.selectedIndex].value );
	var i_lifetime1=parseFloat( document.f.i_lifetime1.options[document.f.i_lifetime1.selectedIndex].value );
	var i_lifetime2=parseFloat( document.f.i_lifetime2.options[document.f.i_lifetime2.selectedIndex].value );

	var daysperyear = 365;
	var laborcost = 20; // $20/hr
	var installhours = .15; // takes .15 hours to install a bulb
	var drate = .04;
	var carbonfactor = 1.535;
	var carfactor = 11470;
	var treefactor = 8066;
	
	// Energy consumption
	var r_encosump1 = i_units * i_hoursperday * daysperyear * i_wattage1 / 1000;
	var r_encosump2 = i_units * i_hoursperday * daysperyear * i_wattage2 / 1000;
	var r_encosump3 = r_encosump2-r_encosump1;
	document.getElementById('r_encosump1').innerHTML = Math.floor(r_encosump1)+'';
	document.getElementById('r_encosump2').innerHTML = Math.floor(r_encosump2)+'';
	document.getElementById('r_encosump3').innerHTML = Math.floor(r_encosump3)+'';
	//Energy cost
	var r_encost1 = i_elecrate * r_encosump1;
	var r_encost2 = i_elecrate * r_encosump2;
	var r_encost3 = r_encost2 - r_encost1;
	document.getElementById('r_encost1').innerHTML = '$'+Math.floor(r_encost1)+'';
	document.getElementById('r_encost2').innerHTML = '$'+Math.floor(r_encost2)+'';
	document.getElementById('r_encost3').innerHTML = '$'+Math.floor(r_encost3)+'';
	// maintanance cost
	var r_macost1 = i_units * (laborcost * installhours + i_initcost1) / i_lifetime1;
	var r_macost2 = i_units * (laborcost * installhours + i_initcost2) / i_lifetime2;
	var r_macost3 = r_macost2 - r_macost1;
	document.getElementById('r_macost1').innerHTML = '$'+Math.floor(r_macost1)+'';
	document.getElementById('r_macost2').innerHTML = '$'+Math.floor(r_macost2)+'';
	document.getElementById('r_macost3').innerHTML = '$'+Math.floor(r_macost3)+'';
	// total
	var r_antotcost1 = r_encost1 + r_macost1;
	var r_antotcost2 = r_encost2 + r_macost2;
	var r_antotcost3 = r_encost3 + r_macost3;
	document.getElementById('r_antotcost1').innerHTML = '$'+Math.floor(r_antotcost1)+'';
	document.getElementById('r_antotcost2').innerHTML = '$'+Math.floor(r_antotcost2)+'';
	document.getElementById('r_antotcost3').innerHTML = '$'+Math.floor(r_antotcost3)+'';
	
	// lifetime
	var r_lifeencosump1 = r_encosump1 * i_lifetime1;
	var r_lifeencosump2 = r_encosump2 * i_lifetime1; // reference the lifetime 1 number here to make comparison
	var r_lifeencosump3 = r_lifeencosump2-r_lifeencosump1;
	document.getElementById('r_lifeencosump1').innerHTML = ''+Math.floor(r_lifeencosump1)+'';
	document.getElementById('r_lifeencosump2').innerHTML = ''+Math.floor(r_lifeencosump2)+'';
	document.getElementById('r_lifeencosump3').innerHTML = ''+Math.floor(r_lifeencosump3)+'';
	// en costs
	var r_lifeencost1 = PV(r_encost1,i_lifetime1,drate);
	var r_lifeencost2 = PV(r_encost2,i_lifetime1,drate);
	var r_lifeencost3 = r_lifeencost2 - r_lifeencost1;
	document.getElementById('r_lifeencost1').innerHTML = '$'+Math.floor(r_lifeencost1)+'';
	document.getElementById('r_lifeencost2').innerHTML = '$'+Math.floor(r_lifeencost2)+'';
	document.getElementById('r_lifeencost3').innerHTML = '$'+Math.floor(r_lifeencost3)+'';
	// maint costs
	var r_lifemacost1 = PV(r_macost1,i_lifetime1,drate);
	var r_lifemacost2 = PV(r_macost2,i_lifetime1,drate);
	// var r_lifemacost3 = r_lifeencost2 - r_lifeencost1;
	var r_lifemacost3 = r_lifemacost2 - r_lifemacost1;
	document.getElementById('r_lifemacost1').innerHTML = '$'+Math.floor(r_lifemacost1)+'';
	document.getElementById('r_lifemacost2').innerHTML = '$'+Math.floor(r_lifemacost2)+'';
	document.getElementById('r_lifemacost3').innerHTML = '$'+Math.floor(r_lifemacost3)+'';
	// purchase price
	var r_purcost1 = i_units * i_initcost1;
	var r_purcost2 = i_units * i_initcost2;
	var r_purcost3 = r_purcost2 - r_purcost1;
	document.getElementById('r_purcost1').innerHTML = '$'+Math.floor(r_purcost1)+'';
	document.getElementById('r_purcost2').innerHTML = '$'+Math.floor(r_purcost2)+'';
	document.getElementById('r_purcost3').innerHTML = '$'+Math.floor(r_purcost3)+'';
	// operating costs
	var r_lifeopcost1 = r_lifeencost1 + r_lifemacost1;
	var r_lifeopcost2 = r_lifeencost2 + r_lifemacost2;
	var r_lifeopcost3 = r_lifeopcost2 - r_lifeopcost1;
	document.getElementById('r_lifeopcost1').innerHTML = '$'+Math.floor(r_lifeopcost1)+'';
	document.getElementById('r_lifeopcost2').innerHTML = '$'+Math.floor(r_lifeopcost2)+'';
	document.getElementById('r_lifeopcost3').innerHTML = '$'+Math.floor(r_lifeopcost3)+'';
	// total
	var r_lifetotcost1 = r_purcost1 + r_lifeopcost1;
	var r_lifetotcost2 = r_purcost2 + r_lifeopcost2;
	var r_lifetotcost3 = r_lifetotcost2 - r_lifetotcost1;
	document.getElementById('r_lifetotcost1').innerHTML = '$'+Math.floor(r_lifetotcost1)+'';
	document.getElementById('r_lifetotcost2').innerHTML = '$'+Math.floor(r_lifetotcost2)+'';
	document.getElementById('r_lifetotcost3').innerHTML = '$'+Math.floor(r_lifetotcost3)+'';
	
	var r_bot1 = (i_initcost1 - i_initcost2) * i_units;
	document.getElementById('r_bot1').innerHTML = '$'+Math.floor(r_bot1)+'';
	
	document.getElementById('r_bot2').innerHTML = '$'+Math.floor(r_lifeopcost3)+'';
	document.getElementById('r_bot3').innerHTML = '$'+Math.floor(r_lifetotcost3)+'';
	
	var pback = 'N/A';
	if (r_bot1>0 & r_lifetotcost3>0) {
		pback = ''+Math.ceil(100*r_bot1/r_antotcost3) / 100;
	}
	document.getElementById('r_bot4').innerHTML = pback;
	document.getElementById('r_payback').innerHTML = pback;
	
	document.getElementById('r_bot5').innerHTML = Math.floor(r_lifeencosump3)+'';
	document.getElementById('r_bot6').innerHTML = Math.floor(r_lifeencosump3 * carbonfactor)+'';
	document.getElementById('r_bot7').innerHTML = Math.ceil(100*r_lifeencosump3 * carbonfactor/carfactor)/100+'';
	document.getElementById('r_bot8').innerHTML = Math.ceil(100*r_lifeencosump3 * carbonfactor/treefactor)/100+'';
	
	var r_bot9 = 'N/A';
	if (i_units>1 & i_initcost1>1) {
		r_bot9 = Math.floor(100*r_lifetotcost3/(i_units*i_initcost1)) + '%'
	}
	document.getElementById('r_bot9').innerHTML = r_bot9;
	
	setTimeout("recalc();",1000); // for IE
}
