// input variables
var MeterReading1;
var MeterReading2;
var WeeksBetweenReadings;
var WeeksAway;
var LatestCostPerUnit;
var GSTPercent;
var AnualInflation;
var ProjectedEnergyCostIncreasePercent;
var WaterHeatingPercentageOfEnergyBill;
var EnergyConversionRatio = 1;
var EquipmentCost;
var InvestmentInterest;
var PersonalTaxRate = 0.25;

// output variables
var AnualEnergyConsumption;
var AnualEnergyBill;
var TaxOnEnergySaved;
var AnualHotWaterEnergyBill

var PayBackYear = 0;
var Stop=0;
var Etype;

var f1 = new Array();
var f2 = new Array();
var f3 = new Array();
var f4 = new Array();
var f5 = new Array();
var f6 = new Array();
var f7 = new Array();
var f8 = new Array();
var f9 = new Array();
var f10 = new Array();
var f11 = new Array();
var f12 = new Array();
var f13 = new Array();
var f14 = new Array();
var f15 = new Array();
var f16 = new Array();
var f17 = new Array();
var f18 = new Array();
var f19 = new Array();
var f20 = new Array();

var e1 = new Array();
var e2 = new Array();
var e3 = new Array();
var e4 = new Array();
var e5 = new Array();
var e6 = new Array();
var e7 = new Array();
var e8 = new Array();
var e9 = new Array();
var e10 = new Array();
var e11 = new Array();
var e12 = new Array();
var e13 = new Array();
var e14 = new Array();
var e15 = new Array();
var e16 = new Array();
var e17 = new Array();
var e18 = new Array();
var e19 = new Array();
var e20 = new Array();
// local variables
var r1, r2, rt, ri;

function calcroi(roi) {
	if ((document.roi.m1.value == "") ||
		(document.roi.m2.value == "") ||
		(document.roi.wbr.value == "") ||
		(document.roi.wa.value == "") ||
		(document.roi.lcpu.value == "") ||
		(document.roi.tax.value == "") ||
		(document.roi.ai.value == "") ||
		(document.roi.pecip.value == "") ||
		(document.roi.whpoeb.value == "") ||
		(document.roi.ec.value == "") ||
		(document.roi.ii.value == "") ) 
		{ 
			alert ("All input fields must have a value");
		} 
	else {
		MeterReading1 = document.roi.m1.value;
		MeterReading2 = document.roi.m2.value;
		WeeksBetweenReadings = document.roi.wbr.value;
		WeeksAway = document.roi.wa.value;
		LatestCostPerUnit = document.roi.lcpu.value;
		GSTPercent = document.roi.tax.value;
		AnualInflation = document.roi.ai.value;
		ProjectedEnergyCostIncreasePercent = document.roi.pecip.value;
		WaterHeatingPercentageOfEnergyBill = document.roi.whpoeb.value;
		EquipmentCost = document.roi.ec.value;
		InvestmentInterest = document.roi.ii.value;
	} 
	// ensure we are working with the correct values
	if (MeterReading1 > MeterReading2) {
		rt = MeterReading1 - MeterReading2;
	}
	else {
		rt = MeterReading2 - MeterReading1;
	}
	if (rt == 0) { alert ("No energy consumption was entered");}
	// work out what we are processing
	if (document.roi.whpoeb.value == "40") { 
		Etype = "<b>Solar Hot Water</b>";
		EnergyConversionRatio = 0.75;
	}
	if (document.roi.whpoeb.value == "20") {
		Etype = "<b>Instant Electric Hot Water</b>";
		EnergyConversionRatio = 0.95;
	}
	if (document.roi.whpoeb.value == "12") Etype = "<b>Underfloor Insulation</b>";
	if (document.roi.whpoeb.value == "42") Etype = "<b>Ceiling Insulation</b>";
	if (document.roi.whpoeb.value == "22") Etype = "<b>Wall Insulation</b>";
	if (document.roi.whpoeb.value == "14") Etype = "<b>Draught Elimination</b>";
	if (document.roi.whpoeb.value == "6") Etype = "<b>Full Length Thermal Drapes</b>";
	
	// work out the energy consumed and its cost
	AnualEnergyConsumption = (rt/(WeeksBetweenReadings-WeeksAway))*52;
	AnualEnergyBill = Math.round(AnualEnergyConsumption * LatestCostPerUnit * ((1+ GSTPercent)/100)/100);
	AnualHotWaterEnergyBill = Math.round(AnualEnergyBill * (WaterHeatingPercentageOfEnergyBill/100) * EnergyConversionRatio);
	
	// add the increases in cost and inflation to simplify calculations
	// eg 3 + 8 = 11% and its a percentage so divide by 100 = .11 and add 1 so the multiplier becomes 1.11
	r1 = 1+(AnualInflation/100) + (ProjectedEnergyCostIncreasePercent/100);
	
	// lets work out the numbers to be placed intio the returned fields
	// these are 20 groups of three numbers field three is a running total 
	var PayBackYear = 0;
	var Stop=0;
	
	f1[0] = AnualHotWaterEnergyBill;
	f1[1] = f1[0] * r1;
	f1[2] = f1[1];
	if (f1[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =1;
	}
	
	f2[0] = f1[1];
	f2[1] = f1[1] * r1;
	f2[2] = f1[2] + f2[1];
	if (f2[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =2;
	}
	
	f3[0] = f2[1];
	f3[1] = f2[1] * r1;
	f3[2] = f2[2] + f3[1];
	if (f3[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =3;
	}

	
	f4[0] = f3[1];
	f4[1] = f3[1] * r1;
	f4[2] = f3[2] + f4[1];
	if (f4[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =4;
	}

	f5[0] = f4[1];
	f5[1] = f4[1] * r1;
	f5[2] = f4[2] + f5[1];
	if (f5[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =5;
	}

	f6[0] = f5[1];
	f6[1] = f5[1] * r1;
	f6[2] = f5[2] + f6[1];
	if (f6[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =6;
	}
	
	f7[0] = f6[1];
	f7[1] = f6[1] * r1;
	f7[2] = f6[2] + f7[1];
	if (f7[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =7;
	}
	
	f8[0] = f7[1];
	f8[1] = f7[1] * r1;
	f8[2] = f7[2] + f8[1];
	if (f8[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =8;
	}
	
	f9[0] = f8[1];
	f9[1] = f8[1] * r1;
	f9[2] = f8[2] + f9[1];
	if (f9[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =9;
	}
	
	f10[0] = f9[1];
	f10[1] = f9[1] * r1;
	f10[2] = f9[2] + f10[1];
	if (f10[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =10;
	}
	
	f11[0] = f10[1];
	f11[1] = f10[1] * r1;
	f11[2] = f10[2] + f11[1];
	if (f11[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =11;
	}
	
	f12[0] = f11[1];
	f12[1] = f11[1] * r1;
	f12[2] = f11[2] + f12[1];
	if (f12[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =12;
	}
	
	f13[0] = f12[1];
	f13[1] = f12[1] * r1;
	f13[2] = f12[2] + f13[1];
	if (f13[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =13;
	}
	
	f14[0] = f13[1];
	f14[1] = f13[1] * r1;
	f14[2] = f13[2] + f14[1];
	if (f14[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =14;
	}
	
	f15[0] = f14[1];
	f15[1] = f14[1] * r1;
	f15[2] = f14[2] + f15[1];
	if (f1[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =15;
	}
	
	f16[0] = f15[1];
	f16[1] = f15[1] * r1;
	f16[2] = f15[2] + f16[1];
	if (f15[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =16;
	}
	
	f17[0] = f16[1];
	f17[1] = f16[1] * r1;
	f17[2] = f16[2] + f17[1];
	if (f17[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =17;
	}
	
	f18[0] = f17[1];
	f18[1] = f17[1] * r1;
	f18[2] = f17[2] + f18[1];
	if (f18[2] <= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =18;
	}
	
	f19[0] = f18[1];
	f19[1] = f18[1] * r1;
	f19[2] = f18[2] + f19[1];
	if (f19[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =19;
	}
	
	f20[0] = f19[1];
	f20[1] = f19[1] * r1;
	f20[2] = f19[2] + f20[1];
	if (f20[2] >= EquipmentCost && Stop == 0) {
		Stop = 1;
		PayBackYear =20;
	}
	ri = f20[2]; 
	
	// so now we can return the new roi data
	
	document.roi.d1a.value = f1[0];
	document.roi.d1b.value = f1[1];
	document.roi.d1c.value = f1[2];

	document.roi.d2a.value = f2[0];
	document.roi.d2b.value = f2[1];
	document.roi.d2c.value = f2[2];

	document.roi.d3a.value = f3[0];
	document.roi.d3b.value = f3[1];
	document.roi.d3c.value = f3[2];

	document.roi.d4a.value = f4[0];
	document.roi.d4b.value = f4[1];
	document.roi.d4c.value = f4[2];

	document.roi.d5a.value = f5[0];
	document.roi.d5b.value = f5[1];
	document.roi.d5c.value = f5[2];

	document.roi.d6a.value = f6[0];
	document.roi.d6b.value = f6[1];
	document.roi.d6c.value = f6[2];

	document.roi.d7a.value = f7[0];
	document.roi.d7b.value = f7[1];
	document.roi.d7c.value = f7[2];

	document.roi.d8a.value = f8[0];
	document.roi.d8b.value = f8[1];
	document.roi.d8c.value = f8[2];

	document.roi.d9a.value = f9[0];
	document.roi.d9b.value = f9[1];
	document.roi.d9c.value = f9[2];

	document.roi.d10a.value = f10[0];
	document.roi.d10b.value = f10[1];
	document.roi.d10c.value = f10[2];

	document.roi.d11a.value = f11[0];
	document.roi.d11b.value = f11[1];
	document.roi.d11c.value = f11[2];

	document.roi.d12a.value = f12[0];
	document.roi.d12b.value = f12[1];
	document.roi.d12c.value = f12[2];

	document.roi.d13a.value = f13[0];
	document.roi.d13b.value = f13[1];
	document.roi.d13c.value = f13[2];

	document.roi.d14a.value = f14[0];
	document.roi.d14b.value = f14[1];
	document.roi.d14c.value = f14[2];

	document.roi.d15a.value = f15[0];
	document.roi.d15b.value = f15[1];
	document.roi.d15c.value = f15[2];

	document.roi.d16a.value = f16[0];
	document.roi.d16b.value = f16[1];
	document.roi.d16c.value = f16[2];

	document.roi.d17a.value = f17[0];
	document.roi.d17b.value = f17[1];
	document.roi.d17c.value = f17[2];

	document.roi.d18a.value = f18[0];
	document.roi.d18b.value = f18[1];
	document.roi.d18c.value = f18[2];

	document.roi.d19a.value = f19[0];
	document.roi.d19b.value = f19[1];
	document.roi.d19c.value = f19[2];

	document.roi.d20a.value = f20[0];
	document.roi.d20b.value = f20[1];
	document.roi.d20c.value = f20[2];
	
	
	// Now lets just do a straight interest comparrison so they can see that it is really true
	
	// first convert investment interest rate from a percentage
	r2 = InvestmentInterest/100;
	var r3 = 1 + r2;
	
	//start figure
	e1[0] = EquipmentCost;
	// intreset paid
	e1[1] = e1[0] * r2;
	// tax on interest
	e1[2] = e1[1] * PersonalTaxRate;
	// profit
	e1[3] = e1[0] * r3;
	e1[3] -=  e1[2];
	
	
	e2[0] = e1[3];
	e2[1] = e2[0] * r2;
	e2[2] = e2[1] * PersonalTaxRate;
	e2[3] = e2[0] + e2[1] - e2[2];
	
	e3[0] = e2[3];
	e3[1] = e3[0] * r2;
	e3[2] = e3[1] * PersonalTaxRate;
	e3[3] = e3[0] + e3[1] - e3[2];
	
	e4[0] = e3[3];
	e4[1] = e4[0] * r2;
	e4[2] = e4[1] * PersonalTaxRate;
	e4[3] = e4[0] + e4[1] - e4[2];
	
	e5[0] = e4[3];
	e5[1] = e5[0] * r2;
	e5[2] = e5[1] * PersonalTaxRate;
	e5[3] = e5[0] + e5[1] - e5[2];
	
	e6[0] = e5[3];
	e6[1] = e6[0] * r2;
	e6[2] = e6[1] * PersonalTaxRate;
	e6[3] = e6[0] + e6[1] - e6[2];
	
	e7[0] = e6[3];
	e7[1] = e7[0] * r2;
	e7[2] = e7[1] * PersonalTaxRate;
	e7[3] = e7[0] +e7[1] - e7[2];
	
	e8[0] = e7[3];
	e8[1] = e8[0] * r2;
	e8[2] = e8[1] * PersonalTaxRate;
	e8[3] = e8[0] +e8[1] - e8[2];
	
	e9[0] = e8[3];
	e9[1] = e9[0] * r2;
	e9[2] = e9[1] * PersonalTaxRate;
	e9[3] = e9[0] +e9[1] - e9[2];
	
	e10[0] = e9[3];
	e10[1] = e10[0] * r2;
	e10[2] = e10[1] * PersonalTaxRate;
	e10[3] = e10[0] +e10[1] - e10[2];
	
	
	e11[0] = e10[3];
	e11[1] = e11[0] * r2;
	e11[2] = e11[1] * PersonalTaxRate;
	e11[3] = e11[0] +e11[1] - e11[2];
	
	e12[0] = e11[3];
	e12[1] = e12[0] * r2;
	e12[2] = e12[1] * PersonalTaxRate;
	e12[3] = e12[0] +e12[1] - e12[2];
	
	e13[0] = e12[3];
	e13[1] = e13[0] * r2;
	e13[2] = e13[1] * PersonalTaxRate;
	e13[3] = e13[0] +e13[1] - e13[2];
	
	e14[0] = e13[3];
	e14[1] = e14[0] * r2;
	e14[2] = e14[1] * PersonalTaxRate;
	e14[3] = e14[0] +e14[1] - e14[2];
	
	e15[0] = e14[3];
	e15[1] = e15[0] * r2;
	e15[2] = e15[1] * PersonalTaxRate;
	e15[3] = e15[0] +e15[1] - e15[2];
	
	e16[0] = e15[3];
	e16[1] = e16[0] * r2;
	e16[2] = e16[1] * PersonalTaxRate;
	e16[3] = e16[0] +e16[1] - e16[2];
	
	e17[0] = e16[3];
	e17[1] = e17[0] * r2;
	e17[2] = e17[1] * PersonalTaxRate;
	e17[3] = e17[0] +e17[1] - e17[2];
	
	e18[0] = e17[3];
	e18[1] = e18[0] * r2;
	e18[2] = e18[1] * PersonalTaxRate;
	e18[3] = e18[0] +e18[1] - e18[2];
	
	e19[0] = e18[3];
	e19[1] = e19[0] * r2;
	e19[2] = e19[1] * PersonalTaxRate;
	e19[3] = e19[0] +e19[1] - e19[2];
	
	e20[0] = e19[3];
	e20[1] = e20[0] * r2;
	e20[2] = e20[1] * PersonalTaxRate;
	e20[3] = e20[0] +e20[1] - e20[2];
	
	document.roi.c1a.value = e1[0];
	document.roi.c1b.value = e1[1];
	document.roi.c1c.value = e1[2];
	document.roi.c1d.value = e1[3];
	
	document.roi.c2a.value = e2[0];
	document.roi.c2b.value = e2[1];
	document.roi.c2c.value = e2[2];
	document.roi.c2d.value = e2[3];
	
	
	document.roi.c3a.value = e3[0];
	document.roi.c3b.value = e3[1];
	document.roi.c3c.value = e3[2];
	document.roi.c3d.value = e3[3];
	
	
	document.roi.c4a.value = e4[0];
	document.roi.c4b.value = e4[1];
	document.roi.c4c.value = e4[2];
	document.roi.c4d.value = e4[3];
	
	
	document.roi.c5a.value = e5[0];
	document.roi.c5b.value = e5[1];
	document.roi.c5c.value = e5[2];
	document.roi.c5d.value = e5[3];
	
	
	document.roi.c6a.value = e6[0];
	document.roi.c6b.value = e6[1];
	document.roi.c6c.value = e6[2];
	document.roi.c6d.value = e6[3];
	
	
	document.roi.c7a.value = e7[0];
	document.roi.c7b.value = e7[1];
	document.roi.c7c.value = e7[2];
	document.roi.c7d.value = e7[3];
	
	
	document.roi.c8a.value = e8[0];
	document.roi.c8b.value = e8[1];
	document.roi.c8c.value = e8[2];
	document.roi.c8d.value = e8[3];
	
	document.roi.c9a.value = e9[0];
	document.roi.c9b.value = e9[1];
	document.roi.c9c.value = e9[2];
	document.roi.c9d.value = e9[3];
	
	document.roi.c10a.value = e10[0];
	document.roi.c10b.value = e10[1];
	document.roi.c10c.value = e10[2];
	document.roi.c10d.value = e10[3];
	
	document.roi.c11a.value = e11[0];
	document.roi.c11b.value = e11[1];
	document.roi.c11c.value = e11[2];
	document.roi.c11d.value = e11[3];
	
	document.roi.c12a.value = e12[0];
	document.roi.c12b.value = e12[1];
	document.roi.c12c.value = e12[2];
	document.roi.c12d.value = e12[3];
	
	document.roi.c13a.value = e13[0];
	document.roi.c13b.value = e13[1];
	document.roi.c13c.value = e13[2];
	document.roi.c13d.value = e13[3];
	
	document.roi.c14a.value = e14[0];
	document.roi.c14b.value = e14[1];
	document.roi.c14c.value = e14[2];
	document.roi.c14d.value = e14[3];
	
	document.roi.c15a.value = e15[0];
	document.roi.c15b.value = e15[1];
	document.roi.c15c.value = e15[2];
	document.roi.c15d.value = e15[3];
	
	document.roi.c16a.value = e16[0];
	document.roi.c16b.value = e16[1];
	document.roi.c16c.value = e16[2];
	document.roi.c16d.value = e16[3];
	
	document.roi.c17a.value = e17[0];
	document.roi.c17b.value = e17[1];
	document.roi.c17c.value = e17[2];
	document.roi.c17d.value = e17[3];
	
	document.roi.c18a.value = e18[0];
	document.roi.c18b.value = e18[1];
	document.roi.c18c.value = e18[2];
	document.roi.c18d.value = e18[3];
	
	document.roi.c19a.value = e19[0];
	document.roi.c19b.value = e19[1];
	document.roi.c19c.value = e19[2];
	document.roi.c19d.value = e19[3];
	
	document.roi.c20a.value = e20[0];
	document.roi.c20b.value = e20[1];
	document.roi.c20c.value = e20[2];
	document.roi.c20d.value = e20[3];
	if (document.getElementById) {
		var message = document.getElementById('msg');
		message.innerHTML = "<ol><li>Your payback period is less than " + PayBackYear + " years.<li>After 20 years you have a return on your investment in "+ Etype +" of $" + Math.round(ri) + " and it is a <b>no risk</b> investment.<li>By contrast, taking into account the cost of your initial investment of $" + EquipmentCost + ", the amount you could have earned in interest through a financial institution is about $" + Math.round(e20[3]-EquipmentCost) +". This type of investment may raise your top Tax Rate.</ol><blockquote><b>Landlords and Home Owners Please Note</b><br />When Property Valuers begin to take energy conservation measures incorporated into a property into account there will be a resultant increase in the property valuation leading to greater capital gains.</blockquote>"; 
	}
}
