function calculateAnnualCost(servicePrefix)
{
	var form = document.forms["aydcForm"];

	var serviceWeeklyHours = servicePrefix + "_HPW";
	var serviceHourlyRate = servicePrefix + "_HR";

	var wklyHrs = form.elements[serviceWeeklyHours];
	var HrlyRate = form.elements[serviceHourlyRate];

	var weeklyCost = parseInt(wklyHrs[wklyHrs.selectedIndex].value) *
                     parseFloat(HrlyRate[HrlyRate.selectedIndex].value);

	weeklyCost = Math.round(weeklyCost);

	var annualCost = Math.round(parseFloat(weeklyCost) * 52);

	return annualCost;
}

function calculateAYDCoverage()
{
	var form = document.forms["aydcForm"];

	/* ---------------------- Calculate Child Care --------------------------*/
	var numOfYears = parseInt(form.CC_NOY[form.CC_NOY.selectedIndex].value);
	var ccNPV = calculateNPV(calculateAnnualCost("CC"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Driving Family Members --------------------------*/
	numOfYears = parseInt(form.DFM_NOY[form.DFM_NOY.selectedIndex].value);
	var dfmNPV = calculateNPV(calculateAnnualCost("DFM"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Tutoring & Home-Schooling --------------------------*/
	numOfYears = parseInt(form.THS_NOY[form.THS_NOY.selectedIndex].value);
	var thsNPV = calculateNPV(calculateAnnualCost("THS"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Housekeeping & Home Mgt --------------------------*/
	numOfYears = parseInt(form.HHM_NOY[form.HHM_NOY.selectedIndex].value);
	var hhmNPV = calculateNPV(calculateAnnualCost("HHM"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Food Preparation --------------------------*/
	numOfYears = parseInt(form.FP_NOY[form.FP_NOY.selectedIndex].value);
	var fpNPV = calculateNPV(calculateAnnualCost("FP"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate BookKeeper --------------------------*/
	numOfYears = parseInt(form.BKP_NOY[form.BKP_NOY.selectedIndex].value);
	var bkpNPV = calculateNPV(calculateAnnualCost("BKP"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Yard Care & Maintenance --------------------------*/
	numOfYears = parseInt(form.YCM_NOY[form.YCM_NOY.selectedIndex].value);
	var ycmNPV = calculateNPV(calculateAnnualCost("YCM"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Home Maintenance & Repair --------------------------*/
	numOfYears = parseInt(form.HMR_NOY[form.HMR_NOY.selectedIndex].value);
	var hmrNPV = calculateNPV(calculateAnnualCost("HMR"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Parental Care --------------------------*/
	numOfYears = parseInt(form.PC_NOY[form.PC_NOY.selectedIndex].value);
	var pcNPV = calculateNPV(calculateAnnualCost("PC"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Other 1 --------------------------*/
	numOfYears = parseInt(form.OTHR1_NOY[form.OTHR1_NOY.selectedIndex].value);
	var othr1NPV = calculateNPV(calculateAnnualCost("OTHR1"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate Other 2 --------------------------*/
	numOfYears = parseInt(form.OTHR2_NOY[form.OTHR2_NOY.selectedIndex].value);
	var othr2NPV = calculateNPV(calculateAnnualCost("OTHR2"), inflationRate, discountRate, numOfYears);

	/* ---------------------- Calculate All You Do Coverage Needs --------------------------*/
	var totalAYDCoverage = ccNPV + dfmNPV + thsNPV + hhmNPV + fpNPV + bkpNPV + ycmNPV;
	totalAYDCoverage = totalAYDCoverage + hmrNPV + pcNPV + othr1NPV + othr2NPV;

	document.liqeForm.QE_AYD.value = toFormatNumber(totalAYDCoverage);

	totalAYDCoverage = toCurrency(totalAYDCoverage);

	document.aydcForm.totalAYDCoverage.value = totalAYDCoverage;
}
