// Results page functions
function ChangePage() {
	var decAssets;
	var decBoxValue;
	var decSheltered;
	var decUnsheltered;
	var decShelterAmount;
	var decResAmount;
	var decAmount;
	var decAmountOld;
	var decCaregiver;
	var decUnshelteredGiftsToDate;
	var strAlert;
	decAmount = parseFloat(strip(document.getElementById('strLegal').value));
	decAmountOld = parseFloat(strip(document.getElementById('strLegalOld').value));
	if (decAmount < decAmountOld) { 
		wait2Pop();
		__doPostBack('strLegal','');
	}
	else
		document.getElementById('strLegalOld').value = document.getElementById('strLegal').value;
	decSheltered = 0;
	decUnshelteredGiftsToDate = parseFloat(strip(document.getElementById('strUnshelteredToDate').value));
	if (document.getElementById('strAtRisk'))
		decAssets = currencyToDecimal(document.getElementById('strAtRisk').value);
	else if (document.getElementById('strDRAAtRiskNotInNH'))
		decAssets = currencyToDecimal(document.getElementById('strDRAAtRiskNotInNH').value);
	else
		decAssets = currencyToDecimal(document.getElementById('strDRAAtRiskInNH').value);
	decAssets -= parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decAssets -= decUnshelteredGiftsToDate;
	if (!isNaN(parseFloat(strip(document.getElementById('strLegal').value))))
		decAssets -= parseFloat(strip(document.getElementById('strLegal').value));
	//decSheltered += parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decResAmount = parseFloat(strip(document.getElementById('strResStrategy').value));
	if (!isNaN(decResAmount))
		decSheltered += decResAmount;
	decSheltered += checkValues(document.getElementById('strRental'), document.getElementById('cbRental'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnRegMale'), document.getElementById('cbPayAnnRegMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnBalloonMale'), document.getElementById('cbPayAnnBalloonMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnRegFemale'), document.getElementById('cbPayAnnRegFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnBalloonFemale'), document.getElementById('cbPayAnnBalloonFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnRegMale'), document.getElementById('cbNonPayAnnRegMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonMale'), document.getElementById('cbNonPayAnnBalloonMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnRegFemale'), document.getElementById('cbNonPayAnnRegFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonFemale'), document.getElementById('cbNonPayAnnBalloonFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBusiness'), document.getElementById('cbBusiness'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strUnavailable'), document.getElementById('cbUnavailable'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strIRAMale'), document.getElementById('cbIRAMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strIRAFemale'), document.getElementById('cbIRAFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAuto'), document.getElementById('cbAuto'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCemeteryPlotMale'), document.getElementById('cbCemeteryPlotMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepaidFuneralMale'), document.getElementById('cbPrepaidFuneralMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBurialFundMale'), document.getElementById('cbBurialFundMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCemeteryPlotFemale'), document.getElementById('cbCemeteryPlotFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepaidFuneralFemale'), document.getElementById('cbPrepaidFuneralFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBurialFundFemale'), document.getElementById('cbBurialFundFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strLICV'), document.getElementById('cbLICV'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCSRA'), document.getElementById('cbCSRA'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strStatutory'), document.getElementById('cbStatutory'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAssetFirst'), document.getElementById('cbAssetFirst'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCaregiverLife'), document.getElementById('cbCaregiverLife'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyAuto'), document.getElementById('cbBuyAuto'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepay'), document.getElementById('cbPrepay'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strResidenceRepair'), document.getElementById('cbResidenceRepair'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotMale'), document.getElementById('cbBuyCemeteryPlotMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyFuneralMale'), document.getElementById('cbBuyFuneralMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strOpenBurialFundMale'), document.getElementById('cbOpenBurialFundMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotFemale'), document.getElementById('cbBuyCemeteryPlotFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyFuneralFemale'), document.getElementById('cbBuyFuneralFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strOpenBurialFundFemale'), document.getElementById('cbOpenBurialFundFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayDebt'), document.getElementById('cbPayDebt'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strDisChildOther'), document.getElementById('cbDisChildOther'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strDisOtherOther'), document.getElementById('cbDisOtherOther'), (decAssets - decSheltered));
	//decSheltered += checkValues(document.getElementById('strSpouse'), document.getElementById('cbSpouse'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAnnuityMale'), document.getElementById('cbAnnuityMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAnnuityFemale'), document.getElementById('cbAnnuityFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strSCIN'), document.getElementById('cbSCIN'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyRental'), document.getElementById('cbBuyRental'), (decAssets - decSheltered));
	var strUnshel;
	var decUnsheltered;
	decUnsheltered = decAssets - decSheltered;
	decSheltered += parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decUnsheltered = Math.round(decUnsheltered * 100) / 100;
	strUnshel = decUnsheltered.toString();
	var decimal_loc;
	decimal_loc = strUnshel.indexOf(".");
	if (decimal_loc == -1)
		strUnshel += '.00';
	else if (strUnshel.length - decimal_loc - 1 == 1)
		strUnshel += '0';
	else
		strUnshel = strUnshel.slice(0 , decimal_loc + 3);
	document.getElementById('strUnsheltered').value = strUnshel;
	decSheltered = Math.round(decSheltered * 100) / 100;
	var strShel;
	strShel = decSheltered.toString();
	decimal_loc = strShel.indexOf(".");
	if (decimal_loc == -1)
		strShel += '.00';
	else if (strShel.length - decimal_loc - 1 == 1)
		strShel += '0';
	else
		strShel = strShel.slice(0, decimal_loc + 3);
	document.getElementById('strSheltered').value = strShel;

	// Eligible date calculations
	var today = new Date(document.getElementById('strToday').value);
	var giftrate = parseFloat(strip(document.getElementById('strGiftRate').value));
	var startdate = document.getElementById('strPenaltyStartDate').value;
	var enddate = new Date(document.getElementById('strToday').value);
	var fractional = document.getElementById('strFractional').value;
	var decMonths;
	var intMonths;
	var decDays;
	var intDays;
	var decNHDefault;
	var decIncome;
	var decIneligiblePeriodPriorGifts;
	decIneligiblePeriodPriorGifts = parseFloat(strip(document.getElementById('strIneligiblePeriodPriorGifting').value));
	var thismonth = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	
	// Worst case
	decNHDefault = parseFloat(strip(document.getElementById('strNHDefault').value))
	decCaregiver = 0
	if (document.getElementById('cbCaregiver').checked &&
	document.getElementById('strCaregiver').value != "")
		decCaregiver = parseFloat(strip(document.getElementById('strCaregiver').value));
	decIncome = parseFloat(strip(document.getElementById('strIncome').value))
	if (startdate == "First day of month following gift") {
		decUnsheltered -= giftrate - decIncome;
	}
	decMonths = decIneligiblePeriodPriorGifts + (decUnsheltered / (decNHDefault + decCaregiver + giftrate - decIncome));
	if (document.getElementById('strNHFlag').value == "In NH" &&
	decMonths > 0)
		decMonths += (34 * 12 / 365);
	intMonths = Math.floor(decMonths);
	if (intMonths >= parseInt(document.getElementById('strLookBack').value)) {
		decMonths = parseInt(document.getElementById('strLookBack').value);
		intMonths = parseInt(document.getElementById('strLookBack').value);
	}
	if (startdate == "First day of month following gift") {
		intMonths += 1;
		decMonths += 1;
		decUnsheltered += giftrate - decIncome;
	}

	if (!document.getElementById('cbNewLaw').checked) {
		// Use old law
		if (startdate.indexOf("First day") > -1) {
			enddate.setDate(1);
		}
		intDays = 0;
		if (fractional != "Truncate") {
			decDays = (365/12) * (decMonths - intMonths);
			intDays = Math.floor(decDays);
			if (fractional == "Round") {
				if (enddate.getDate() > 15) {
					intMonths += 1;
				}
				enddate.setDate(1);
			}
		}
		enddate.setDate(enddate.getDate() + intDays);
		enddate.setMonth(enddate.getMonth() + intMonths);
		if (decMonths == 0 && fractional != "Truncate")
			enddate = today;
		document.getElementById('strEligibleDate').value = thismonth[enddate.getMonth()] + " " + enddate.getDate() + ", " + enddate.getFullYear();
		}
	else { 
		//See which fields are showing
		intDays = 0;
		decDays = (365/12) * (decMonths - intMonths);
		intDays = Math.floor(decDays);
		if (document.getElementById('strDRAAtRiskNotInNH')) {
			//'Not in NH' fields showing
			enddate.setMonth(enddate.getMonth() + (60 - intMonths));
			document.getElementById('strDRAEligibleInNH').value = thismonth[enddate.getMonth()] + " " + enddate.getDate() + ", " + enddate.getFullYear();
		}
		else {
			enddate.setMonth(enddate.getMonth() + intMonths);
			enddate.setDate(enddate.getDate() + intDays);
			if (document.getElementById('strNHFlag').value == "Not In NH") {
				//must show 'Not in NH' fields
				wait1Pop();
				__doPostBack('strLegal','');
			}
			document.getElementById('strDRAEligibleInNH').value = thismonth[enddate.getMonth()] + " " + enddate.getDate() + ", " + enddate.getFullYear();
		}
	}

	var strShelFromNow;
	var decShelFromNow;
	// Reduce nh rate by monthly caregiver costs (if any)
	decShelFromNow = decUnshelteredGiftsToDate + decUnsheltered - 
		((decNHDefault - decIncome ) * intMonths);
	if (fractional == "Don't change")
		decShelFromNow -= ((decNHDefault - decIncome ) / ( 365/12 )) * intDays;
	if (decShelFromNow > decUnshelteredGiftsToDate + decUnsheltered)
		decShelFromNow = decUnshelteredGiftsToDate + decUnsheltered;
	strShelFromNow = decShelFromNow.toString();
	var decimal_loc;
	decimal_loc = strShelFromNow.indexOf(".");
	if (decimal_loc == -1)
		strShelFromNow += '.00';
	else if (strShelFromNow.length - decimal_loc - 1 == 1)
		strShelFromNow += '0';
	else
		strShelFromNow = strShelFromNow.slice(0, decimal_loc + 3);

	document.getElementById('strShelFromNow').value = separate(strShelFromNow);

	if (decUnsheltered == 0) {
		//Alert user that everything is sheltered now
		alert('All assets are sheltered now, and the prospect will be ' +
			'eligible for benefits at the earliest possible time.  If you ' +
			'make any changes to the sheltering strategies, no more can be ' +
			'sheltered, but the amount sheltered by particular strategies may change.');
		if (!document.getElementById('cbNewLaw').checked &&
		!document.getElementById('strShelteredBest')) {
			//old law, client in NH, reset date to first eligible date
		    document.getElementById('strEligibleDate').value = document.getElementById('strOrigEligibleDate').value;
		}
	}
	var decShelteredTotal;
	var strShelteredTotal;
	decShelteredTotal = decSheltered + decShelFromNow;
	strShelteredTotal = decShelteredTotal.toString();
	if (!document.getElementById('cbNewLaw').checked) 
		document.getElementById('strShelterable').value = formatCurrency(decShelteredTotal);
	else
		document.getElementById('strDRAShelterableInNH').value = formatCurrency(decShelteredTotal);

	if (!document.getElementById('cbNewLaw').checked) {
		// Use old law
		//Best Case calculations
		decSheltered = 0;
		decAssets = currencyToDecimal(document.getElementById('strAtRisk').value);
		decAssets -= parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
		decAssets -= parseFloat(strip(document.getElementById('strUnshelteredToDate').value));
		if (document.getElementById('strDignity').text != '' &&
		document.getElementById('cbDignity').checked &&
		parseFloat(strip(document.getElementById('strDignity').value)) > toShelterByStrategies()) {
			decAssets -= checkValues(document.getElementById('strDignity'), document.getElementById('cbDignity'), decAssets);
			decAssets += toShelterByStrategies();
		}
		if (!isNaN(parseFloat(strip(document.getElementById('strLegal').value))))
			decAssets -= parseFloat(strip(document.getElementById('strLegal').value));
		//decSheltered += parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
		decResAmount = parseFloat(strip(document.getElementById('strResStrategy').value));
		if (!isNaN(decResAmount))
			decSheltered += decResAmount;
		decSheltered += checkValues(document.getElementById('strRental'), document.getElementById('cbRental'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPayAnnRegMale'), document.getElementById('cbPayAnnRegMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPayAnnBalloonMale'), document.getElementById('cbPayAnnBalloonMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPayAnnRegFemale'), document.getElementById('cbPayAnnRegFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPayAnnBalloonFemale'), document.getElementById('cbPayAnnBalloonFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strNonPayAnnRegMale'), document.getElementById('cbNonPayAnnRegMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonMale'), document.getElementById('cbNonPayAnnBalloonMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strNonPayAnnRegFemale'), document.getElementById('cbNonPayAnnRegFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonFemale'), document.getElementById('cbNonPayAnnBalloonFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBusiness'), document.getElementById('cbBusiness'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strUnavailable'), document.getElementById('cbUnavailable'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strIRAMale'), document.getElementById('cbIRAMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strIRAFemale'), document.getElementById('cbIRAFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strAuto'), document.getElementById('cbAuto'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strCemeteryPlotMale'), document.getElementById('cbCemeteryPlotMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPrepaidFuneralMale'), document.getElementById('cbPrepaidFuneralMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBurialFundMale'), document.getElementById('cbBurialFundMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strCemeteryPlotFemale'), document.getElementById('cbCemeteryPlotFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPrepaidFuneralFemale'), document.getElementById('cbPrepaidFuneralFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBurialFundFemale'), document.getElementById('cbBurialFundFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strLICV'), document.getElementById('cbLICV'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strCSRA'), document.getElementById('cbCSRA'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strStatutory'), document.getElementById('cbStatutory'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strAssetFirst'), document.getElementById('cbAssetFirst'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strCaregiverLife'), document.getElementById('cbCaregiverLife'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyAuto'), document.getElementById('cbBuyAuto'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPrepay'), document.getElementById('cbPrepay'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strResidenceRepair'), document.getElementById('cbResidenceRepair'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotMale'), document.getElementById('cbBuyCemeteryPlotMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyFuneralMale'), document.getElementById('cbBuyFuneralMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strOpenBurialFundMale'), document.getElementById('cbOpenBurialFundMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotFemale'), document.getElementById('cbBuyCemeteryPlotFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyFuneralFemale'), document.getElementById('cbBuyFuneralFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strOpenBurialFundFemale'), document.getElementById('cbOpenBurialFundFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strPayDebt'), document.getElementById('cbPayDebt'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strDisChildOther'), document.getElementById('cbDisChildOther'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strDisOtherOther'), document.getElementById('cbDisOtherOther'), (decAssets - decSheltered));
		//decSheltered += checkValues(document.getElementById('strSpouse'), document.getElementById('cbSpouse'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strAnnuityMale'), document.getElementById('cbAnnuityMale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strAnnuityFemale'), document.getElementById('cbAnnuityFemale'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strSCIN'), document.getElementById('cbSCIN'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strBuyRental'), document.getElementById('cbBuyRental'), (decAssets - decSheltered));
		decSheltered += checkValues(document.getElementById('strAddToBest'), document.getElementById('cbLegal'), (decAssets - decSheltered));
		decUnsheltered = decAssets - decSheltered;
		//decUnsheltered += parseFloat(strip(document.getElementById('strUnshelteredToDate').value));
		decUnsheltered = Math.round(decUnsheltered * 100) / 100;
		strShel = decSheltered.toString();
		decimal_loc = strShel.indexOf(".");
		if (decimal_loc == -1)
			strShel += '.00';
		else if (strShel.length - decimal_loc - 1 == 1)
			strShel += '0';
		else
			strShel = strShel.slice(0 , decimal_loc + 3);
		document.getElementById('strSheltered1').value = strShel;
		if (document.getElementById('strShelteredBest')) {
			var decShelteredBest;
			decShelteredBest = currencyToDecimal(document.getElementById('strAtRisk').value);
			if (!isNaN(parseFloat(strip(document.getElementById('strLegal').value))))
				decShelteredBest -= parseFloat(strip(document.getElementById('strLegal').value));
			if (document.getElementById('strDignity').text != '' &&
			document.getElementById('cbDignity').checked &&
			parseFloat(strip(document.getElementById('strDignity').value)) > toShelterByStrategies()) {
				decAssets -= checkValues(document.getElementById('strDignity'), document.getElementById('cbDignity'), decAssets);
				decAssets += toShelterByStrategies();
			}
			decShelteredBest = Math.round(decShelteredBest * 100) / 100;
			document.getElementById('strShelteredBest').value = formatCurrency(decShelteredBest);
			// Best case eligibililty date
			var enddatebest = new Date(document.getElementById('strToday').value);
			if (decIncome < giftrate) {
				decIneligiblePeriodPriorGifts = decIneligiblePeriodPriorGifts * 
					(giftrate + decNHDefault + decCaregiver - decIncome) /
					(giftrate + decCaregiver - decIncome);
			}
			else {
				decIneligiblePeriodPriorGifts = decIneligiblePeriodPriorGifts * 
					(giftrate + decNHDefault + decCaregiver) /
					(giftrate + decCaregiver);
			}
			decCaregiver = 0;
			if (document.getElementById('cbCaregiver').checked &&
			document.getElementById('strCaregiver').value != "")
				decCaregiver = parseFloat(strip(document.getElementById('strCaregiver').value));
			if (decIncome < giftrate)
				decMonths = decIneligiblePeriodPriorGifts + (decUnsheltered / ( giftrate + decCaregiver - decIncome));
			else
				decMonths = decIneligiblePeriodPriorGifts + (decUnsheltered / ( giftrate + decCaregiver));
			intMonths = Math.floor(decMonths);
			if (intMonths >= parseInt(document.getElementById('strLookBack').value)) {
				decMonths = parseInt(document.getElementById('strLookBack').value);
				intMonths = parseInt(document.getElementById('strLookBack').value);
			}
			if (startdate.indexOf("First day") > -1) {
				enddatebest.setDate(1);
			}
			intDays = 0;
			if (startdate == "First day of month following gift") {
				intMonths += 1;
				decMonths += 1;
			}
			if (fractional != "Truncate") {
				decDays = (365/12) * (decMonths - intMonths);
				intDays = Math.floor(decDays) + 1;
				if (fractional == "Round") {
					if (enddatebest.getDate() > 15) {
						intMonths += 1;
					}
					enddatebest.setDate(1);
				}
			}
			enddatebest.setDate(enddatebest.getDate() + intDays);
			enddatebest.setMonth(enddatebest.getMonth() + intMonths);
			if (document.getElementById('cbDignity').checked && 
			!isNaN(parseFloat(strip(document.getElementById('strDignity').value)))) {
				if (parseFloat(strip(document.getElementById('strDignity').value)) > 
				toShelterByStrategies()) {
					// Determine gifting sheltered AFTER nh entry
					var decGiftOnEntry;
					var decSpendAfterEntry;
					var decMonthsToEligibility;
					var intMonthsToEligibility;
					decGiftOnEntry = Math.max(parseFloat(strip(document.getElementById('strDignity').value)) - 
						toShelterByStrategies(),0);
					decMonthsToEligibility = decGiftOnEntry / (decNHDefault + decCaregiver + giftrate - decIncome);
					intMonthsToEligibility = Math.floor(decMonthsToEligibility);
					if (startdate == "First day of month following gift") {
						intMonthsToEligibility += 1;
					}
					decSpendAfterEntry = (intMonthsToEligibility * 
						(decNHDefault - decIncome));
					document.getElementById('strShelteredBest').value = formatCurrency(decShelteredBest -
						decSpendAfterEntry);
					var strType;
					if (document.getElementById('lnkBack'))
						strType = 'prospect';
					else
						strType = 'client';
					if (intMonthsToEligibility = 0) {
						document.getElementById('strBestDignityWarning').value = 'NOTE:  The ' + strType + ' will become eligible in the month ' +
						'the ' + strType + ' enters into a nursing home, if the ' + strType + ' enters a nursing home after ' +
						thismonth[enddatebest.getMonth()] + ' ' + enddatebest.getDate() + ', ' + enddatebest.getFullYear() + '.';
					}
					else {
						intMonthsToEligibility += 1;
						document.getElementById('strBestDignityWarning').value = 'NOTE:  The ' + strType + ' will become eligible in month ' + 
						intMonthsToEligibility.toString() + ' after entering a nursing home, if the ' + strType + ' enters a nursing home after ' + 
						thismonth[enddatebest.getMonth()] + ' ' + enddatebest.getDate() + ', ' + enddatebest.getFullYear() + 
						'.  The ' + strType + ' will not be eligible immediately after entering a nursing home, because the ' + strType + ' will have to gift ' +
						formatCurrency(decGiftOnEntry) + ' after entering the nursing home.';
					}
				}
			}
			else {
				document.getElementById('strEligibleDateBest').value = thismonth[enddatebest.getMonth()] + " " + enddatebest.getDate() 
				+ ", " + enddatebest.getFullYear();
			}
		}
	}
}

function ChangePagePowerUser() {
	var decAssets;
	var decBoxValue;
	var decSheltered;
	var decUnsheltered;
	var decShelterAmount;
	var decResAmount;
	var decAmount;
	var decAmountOld;
	var decCaregiver;
	var decUnshelteredGiftsToDate;
	var strAlert;
	decAmount = parseFloat(strip(document.getElementById('strLegal').value));
	decSheltered = 0;
	decUnshelteredGiftsToDate = 0;
	decAssets = currencyToDecimal(document.getElementById('strAtRisk').value);
	decAssets -= parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decAssets -= decUnshelteredGiftsToDate;
	if (!isNaN(parseFloat(strip(document.getElementById('strLegal').value))))
		decAssets -= parseFloat(strip(document.getElementById('strLegal').value));
	//decSheltered += parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decResAmount = parseFloat(strip(document.getElementById('strResStrategy').value));
	if (!isNaN(decResAmount))
		decSheltered += decResAmount;
	decSheltered += checkValues(document.getElementById('strRental'), document.getElementById('cbRental'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnRegMale'), document.getElementById('cbPayAnnRegMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnBalloonMale'), document.getElementById('cbPayAnnBalloonMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnRegFemale'), document.getElementById('cbPayAnnRegFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayAnnBalloonFemale'), document.getElementById('cbPayAnnBalloonFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnRegMale'), document.getElementById('cbNonPayAnnRegMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonMale'), document.getElementById('cbNonPayAnnBalloonMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnRegFemale'), document.getElementById('cbNonPayAnnRegFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strNonPayAnnBalloonFemale'), document.getElementById('cbNonPayAnnBalloonFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBusiness'), document.getElementById('cbBusiness'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strUnavailable'), document.getElementById('cbUnavailable'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strIRAMale'), document.getElementById('cbIRAMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strIRAFemale'), document.getElementById('cbIRAFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAuto'), document.getElementById('cbAuto'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCemeteryPlotMale'), document.getElementById('cbCemeteryPlotMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepaidFuneralMale'), document.getElementById('cbPrepaidFuneralMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBurialFundMale'), document.getElementById('cbBurialFundMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCemeteryPlotFemale'), document.getElementById('cbCemeteryPlotFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepaidFuneralFemale'), document.getElementById('cbPrepaidFuneralFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBurialFundFemale'), document.getElementById('cbBurialFundFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strLICV'), document.getElementById('cbLICV'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCSRA'), document.getElementById('cbCSRA'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strStatutory'), document.getElementById('cbStatutory'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAssetFirst'), document.getElementById('cbAssetFirst'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strCaregiverLife'), document.getElementById('cbCaregiverLife'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyAuto'), document.getElementById('cbBuyAuto'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPrepay'), document.getElementById('cbPrepay'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strResidenceRepair'), document.getElementById('cbResidenceRepair'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotMale'), document.getElementById('cbBuyCemeteryPlotMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyFuneralMale'), document.getElementById('cbBuyFuneralMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strOpenBurialFundMale'), document.getElementById('cbOpenBurialFundMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyCemeteryPlotFemale'), document.getElementById('cbBuyCemeteryPlotFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyFuneralFemale'), document.getElementById('cbBuyFuneralFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strOpenBurialFundFemale'), document.getElementById('cbOpenBurialFundFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strPayDebt'), document.getElementById('cbPayDebt'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strDisChildOther'), document.getElementById('cbDisChildOther'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strDisOtherOther'), document.getElementById('cbDisOtherOther'), (decAssets - decSheltered));
	//decSheltered += checkValues(document.getElementById('strSpouse'), document.getElementById('cbSpouse'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAnnuityMale'), document.getElementById('cbAnnuityMale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strAnnuityFemale'), document.getElementById('cbAnnuityFemale'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strSCIN'), document.getElementById('cbSCIN'), (decAssets - decSheltered));
	decSheltered += checkValues(document.getElementById('strBuyRental'), document.getElementById('cbBuyRental'), (decAssets - decSheltered));
	var strUnshel;
	var decUnsheltered;
	decUnsheltered = decAssets - decSheltered;
	decSheltered += parseFloat(strip(document.getElementById('strShelteredPriorGifts').value));
	decUnsheltered = Math.round(decUnsheltered * 100) / 100;
	strUnshel = decUnsheltered.toString();
	var decimal_loc;
	decimal_loc = strUnshel.indexOf(".");
	if (decimal_loc == -1)
		strUnshel += '.00';
	else if (strUnshel.length - decimal_loc - 1 == 1)
		strUnshel += '0';
	else
		strUnshel = strUnshel.slice(0 , decimal_loc + 3);
	document.getElementById('strUnsheltered').value = strUnshel;
	decSheltered = Math.round(decSheltered * 100) / 100;
	var strShel;
	strShel = decSheltered.toString();
	decimal_loc = strShel.indexOf(".");
	if (decimal_loc == -1)
		strShel += '.00';
	else if (strShel.length - decimal_loc - 1 == 1)
		strShel += '0';
	else
		strShel = strShel.slice(0, decimal_loc + 3);
	document.getElementById('strSheltered').value = strShel;
	var decShelteredTotal;
	var decShelFromNow;
	decShelFromNow = parseFloat(strip(document.getElementById('strShelFromNow').value));
	if (isNaN(decShelFromNow))
		decShelFromNow = 0;
	decShelteredTotal = decSheltered + decShelFromNow;
	document.getElementById('strShelterable').value = formatCurrency(decShelteredTotal);
}

function checkValues(_textbox, _checkbox, decShelRemainder) {
	var decValue;
	var decToShelter;
	decToShelter = 0;
	decValue = parseFloat(strip(_textbox.value));
	if ((!isNaN(decValue)) && _checkbox.checked) {
		decToShelter = decValue;
		if (decToShelter > decShelRemainder) {
			decToShelter = decShelRemainder;
			decToShelter = Math.round(decToShelter * 100) / 100;
			var strToShelter;
			var decimal_loc;
			strToShelter = decToShelter.toString();
			decimal_loc = strToShelter.indexOf(".");
			if (decimal_loc == -1)
				strToShelter += '.00';
			else if (strToShelter.length - decimal_loc - 1 == 1)
				strToShelter += '0';
			else if (strToShelter.length - decimal_loc - 1 > 2)
			strToShelter = strToShelter.slice(0 , decimal_loc + 3);
			_textbox.value = separate(strToShelter);
		}
	}
	return decToShelter;
}

// General functions
function CheckDecimal(_textbox) {
	pattern = /^[0-9][,0-9]*\.?[0-9]*$/;
	if (_textbox.value == '')
	    _textbox.value = '';
	else if (pattern.test(_textbox.value) == false) {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (isNaN(parseFloat(strip(_textbox.value))) && _textbox.value != '') {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (parseFloat(strip(_textbox.value)) < 0 && _textbox.value != '') {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (_textbox.value != '') {
		var decimal_loc, decNumber, strNumber;
		decNumber = parseFloat(strip(_textbox.value));
		strNumber = decNumber.toString();
		decimal_loc = strNumber.indexOf('.');
		if (decimal_loc == -1)
			strNumber += '.00';
		else if (strNumber.length - decimal_loc - 1 == 1)
			strNumber += '0';
		else
			strNumber = strNumber.slice(0 , decimal_loc + 3);
		_textbox.value = separate(strNumber);
	}
	if (document.getElementById('strAssetsChanged')) {
		if (document.getElementById('strAssetsChanged').value == 'False') {
			alert('Because asset values have changed, sheltering values now will be re-set.  ' +
				'When you are finished with this page, please go See Results ' +
				'before going to Select Processing Docs.');
		}
		document.getElementById('strAssetsChanged').value = 'True';
	}
}

function separate(input) { // format input using 'separator' to mark 000's
	var separator = ',';
	input = '' + input;
	var output = ''; // initialize output string
	for (var i=0; i < input.length; i++) {
		if (i != 0 && (input.length - i) % 3 == 0 
		&& (input.length - i) != 3) 
			output += separator;
		output += input.charAt(i);
	}
	return output;
}

function strip(input) { // strip all characters not in 'chars' from input
	var chars = '.0123456789'; // allow only chars which will create a valid number for parseFloat()
	var stripchars = '-,'; // these are the only valid chars to strip
	var output = ''; // initialize output string
	var thischar;
	for (var i=0; i < input.length; i++) {
		thischar = input.charAt(i);
		if (chars.indexOf(thischar) == -1) {
			if (stripchars.indexOf(thischar) == -1) {
				// input contains an invalid char
				return 'NaN';
			}
		}
		else
			output += input.charAt(i);
    }
	return output;
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if (isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if (cents < 10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
			num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function currencyToDecimal(_numString) {
	var _returnValue="";
	var _array=_numString.split(""); /* make each character be in its own array slot */
	for (var i=0; i< _array.length;i++) {
		if (_array[i].search(/[$ , ]/) == -1) {
			_returnValue += _array[i].toString();
		}
	}
	return(parseFloat(_returnValue));
}

function toShelterByStrategies() {
	var decToShelter;
	decToShelter = 0;
	if (document.getElementById('cbStatutory').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strStatutory').value))))
		decToShelter += parseFloat(strip(document.getElementById('strStatutory').value));
	if (document.getElementById('cbAnnuityMale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strAnnuityMale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strAnnuityMale').value));
	if (document.getElementById('cbAnnuityFemale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strAnnuityFemale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strAnnuityFemale').value));
	if (document.getElementById('cbBuyAuto').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyAuto').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyAuto').value));
	if (document.getElementById('cbPrepay').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strPrepay').value))))
		decToShelter += parseFloat(strip(document.getElementById('strPrepay').value));
	if (document.getElementById('cbResidenceRepair').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strResidenceRepair').value))))
		decToShelter += parseFloat(strip(document.getElementById('strResidenceRepair').value));
	if (document.getElementById('cbSCIN').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strSCIN').value))))
		decToShelter += parseFloat(strip(document.getElementById('strSCIN').value));
	if (document.getElementById('cbBuyCemeteryPlotMale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyCemeteryPlotMale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyCemeteryPlotMale').value));
	if (document.getElementById('cbBuyFuneralMale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyFuneralMale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyFuneralMale').value));
	if (document.getElementById('cbOpenBurialFundMale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strOpenBurialFundMale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strOpenBurialFundMale').value));
	if (document.getElementById('cbBuyCemeteryPlotFemale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyCemeteryPlotFemale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyCemeteryPlotFemale').value));
	if (document.getElementById('cbBuyFuneralFemale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyFuneralFemale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyFuneralFemale').value));
	if (document.getElementById('cbOpenBurialFundFemale').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strOpenBurialFundFemale').value))))
		decToShelter += parseFloat(strip(document.getElementById('strOpenBurialFundFemale').value));
	if (document.getElementById('cbPayDebt').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strPayDebt').value))))
		decToShelter += parseFloat(strip(document.getElementById('strPayDebt').value));
	if (document.getElementById('cbBuyRental').checked  &&
	!isNaN(parseFloat(strip(document.getElementById('strBuyRental').value))))
		decToShelter += parseFloat(strip(document.getElementById('strBuyRental').value));
	return decToShelter;
}

function CheckInteger(_textbox) {
	pattern = /^[1-9][0-9]*$/;
	if (_textbox.value == '')
		_textbox.value = '';
	else if (pattern.test(_textbox.value) == false) {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (isNaN(parseInt(_textbox.value)) && _textbox.value != '') {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (parseInt(_textbox.value) < 0 && _textbox.value != '') {
		alert('The value entered is invalid');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (_textbox.value.indexOf(',') != -1) {
		alert('Please do not use commas');
		_textbox.value = '';
		_textbox.focus();
	}
	else if (_textbox.value != '') {
		var strNumber;
		strNumber = parseInt(_textbox.value);
		_textbox.value = strNumber;
	}
}

function doValidate(id) {
	ValidatorOnChange(id);
}

function ProspectChangeAlert() {
	alert('Because important values have changed, sheltering values now will be re-set.  ' +
		'When you are finished with this page, please go to the Questions ' +
		'for Prospects page before going to the Prospect Sheltering Results page.');
}

function onlyAscii() {
	if (document.layers) {
	}
	else {
		if (event.keyCode > 127) {
			//non-ASCII character
			alert('Only ASCII characters are permitted');
			event.returnValue = false;
		}
	}
}

function checkKey (textControl, evt) {
	var keyCode = evt.keyCode ? evt.keyCode :
                evt.charCode ? evt.charCode :
				evt.which ? evt.which : void 0;
	var key;
	if (keyCode) {
		key = String.fromCharCode(keyCode);
	}
	if (keyCode && window.event && !window.opera) {
		if (keyCode > 127) {
			alert('Only ASCII characters are permitted');
			return false;
		}
		else {
			return true;
		}
	}
	else if (typeof textControl.setSelectionRange != 'undefined') {
		if (keyCode > 127) {
			if (evt.preventDefault) {
				evt.preventDefault();
			}
			alert('Only ASCII characters are permitted');
			return false;
		}
		else {
			return true;
		} 
	}
	else if (keyCode > 127) {
		if (evt.preventDefault) {
			evt.preventDefault();
		}
		alert('Only ASCII characters are permitted');
		return false;
	}
	else {
		return true;
	}
}

function ctrlHighlight(ctrl) {
	ctrl.style.backgroundColor = "#8cd08c";  
}

function ctrlNormal(ctrl) {
	ctrl.style.backgroundColor = "#ffffff";
}

function rateValidate() {
	// Function to check entered nh rate and daily/monthly
	// dropdown to see if results are credible
	if (document.getElementById('strNHRate')) {
		if (( parseFloat(strip(document.getElementById('strNHRate').value)) < 1000 &&
          document.getElementById('ddNHRate').value == 'Monthly') ||
		( parseFloat(strip(document.getElementById('strNHRate').value)) > 1000 &&
          document.getElementById('ddNHRate').value == 'Daily') ) {

			// Values are not credible, warn user
			alert('You have entered $' + document.getElementById('strNHRate').value +
				' as the ' + document.getElementById('ddNHRate').value + ' nursing home rate.  ' +
				'This rate is probably incorrect.  Please re-check your information.');
		}
	}
	if (document.getElementById('strEstimatedNHRate')) {
		if (( parseFloat(strip(document.getElementById('strEstimatedNHRate').value)) < 1000 &&
          document.getElementById('ddEstimatedNHRate').value == 'Monthly') ||
		( parseFloat(strip(document.getElementById('strEstimatedNHRate').value)) > 1000 &&
          document.getElementById('ddEstimatedNHRate').value == 'Daily') ) {

			// Values are not credible, warn user
			alert('You have entered $' + document.getElementById('strEstimatedNHRate').value +
				' as the estimated ' + document.getElementById('ddEstimatedNHRate').value + 
				' nursing home rate.  This rate is probably incorrect.  ' +
				'Please re-check your information.');
		}
	}
}

function residenceStrategyBoxCheck(_cbSelected) {

	//Enforce that selected box is checked
	_cbSelected.checked = true;

	//Fill in validation holder, validate page
	document.getElementById('strStrategy').value = 'Chosen';
	document.getElementById('RequiredDomValidator1').isvalid = true;
	document.getElementById('RequiredDomValidator1').style.visibility = "hidden";
	document.getElementById('RequiredDomValidator2').isvalid = true;
	document.getElementById('RequiredDomValidator2').style.visibility = "hidden";

	//Uncheck all other boxes
	if (_cbSelected != document.getElementById('cbCaregiverChild'))
		document.getElementById('cbCaregiverChild').checked = false;
	if (_cbSelected != document.getElementById('cbSibling'))
		document.getElementById('cbSibling').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayNoValue'))
		document.getElementById('cbGiveAwayNoValue').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayCannotSell'))
		document.getElementById('cbGiveAwayCannotSell').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayHardship'))
		document.getElementById('cbGiveAwayHardship').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayNoStrings'))
		document.getElementById('cbGiveAwayNoStrings').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayGetLease'))
		document.getElementById('cbGiveAwayGetLease').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayGetLifeEstate'))
		document.getElementById('cbGiveAwayGetLifeEstate').checked = false;
	if (_cbSelected != document.getElementById('cbMortgageNow'))
		document.getElementById('cbMortgageNow').checked = false;
	if (_cbSelected != document.getElementById('cbSellToFamily'))
		document.getElementById('cbSellToFamily').checked = false;
	if (_cbSelected != document.getElementById('cbSellAfterEligibility'))
		document.getElementById('cbSellAfterEligibility').checked = false;
	if (_cbSelected != document.getElementById('cbSellWhenInNH'))
		document.getElementById('cbSellWhenInNH').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayOtherwise'))
		document.getElementById('cbGiveAwayOtherwise').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayToRevTrust'))
		document.getElementById('cbGiveAwayToRevTrust').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayToIrrevTrust'))
		document.getElementById('cbGiveAwayToIrrevTrust').checked = false;
	if (_cbSelected != document.getElementById('cbDisChildRes'))
		document.getElementById('cbDisChildRes').checked = false;
	if (_cbSelected != document.getElementById('cbSpouseOwnsRes'))
		document.getElementById('cbSpouseOwnsRes').checked = false;
	if (_cbSelected != document.getElementById('cbGiveResToSpouse'))
		document.getElementById('cbGiveResToSpouse').checked = false;
	if (_cbSelected != document.getElementById('cbJTWROS'))
		document.getElementById('cbJTWROS').checked = false;
	if (_cbSelected != document.getElementById('cbSellToJTWROS'))
		document.getElementById('cbSellToJTWROS').checked = false;
	if (_cbSelected != document.getElementById('cbSellOtherwise'))
		document.getElementById('cbSellOtherwise').checked = false;
	if (_cbSelected != document.getElementById('cbSellGiveAway'))
		document.getElementById('cbSellGiveAway').checked = false;
	if (_cbSelected != document.getElementById('cbSellGiveAway1'))
		document.getElementById('cbSellGiveAway1').checked = false;
	if (_cbSelected != document.getElementById('cbGiveAwayNoStringsCA'))
		document.getElementById('cbGiveAwayNoStringsCA').checked = false;
}

function yeardiff(date1, _dest) {
	var dDate1;
	var today = new Date();
	var years;
	dDate1 = Date.parse(date1); 
	years = parseInt(((today - dDate1)/(365.25*24*60*60*1000)).toString());
	_dest.value = years.toString();
}

// Downloading functions
var win;
var timeint;

function commenceDownload(filelist) {
	var filearray;
	filearray = filelist.split('&');
	timeint = new Array(filearray.length);
	for (var i=0; i < filearray.length; i++) {
		// download each file, open window
		// and wait for window to close before 
		// starting next download
		setTimeout('fileDownload("' + filearray[i] + 
			'", ' + i + ');', (37 * (i + 1)));
	}
}

function fileDownload(thisfile, count) {
	var winstring;
	winstring = "https://mplantogo.com/Download/Downloader.aspx?FileID=" +
		thisfile;
	if (count == 0) {
		win = window.open(winstring,"","width=300,height=150");
		timeint[0] = 0;
	} else {
		timeint[count] = setInterval('if(win.closed){win = window.open("' + 
			winstring + '","","width=300,height=150");clearInterval(timeint[' +
			count.toString() + ']);}',80);
	}
}

function Do_Update() {
	Anthem_InvokePageMethod('ActionUpdate');
}

function doResults() {
	var conf = confirm("There already are Results for this matter.  If you " +
		"proceed, the Results will be re-set to the defaults, and any changes " +
		"you have made will be lost.  Click 'OK' to proceed, or 'Cancel' to abort.");
	return conf;
}

function checkInsCVMale() {
	if(document.getElementById('strInsFVMale').value == "" &&
	document.getElementById('strInsCVMale').value != "")
		return false;
	return true;
}

function checkInsCVFemale() {
	if(document.getElementById('strInsFVFemale').value == "" &&
	document.getElementById('strInsCVFemale').value != "")
		return false;
	return true;
}

function checkInsCVJoint() {
	if(document.getElementById('strInsFVJoint').value == "" &&
	document.getElementById('strInsCVJoint').value != "")
		return false;
	return true;
}

function checkNHLICVMale() {
	if(document.getElementById('strNHLIFVMale').value == "" &&
	document.getElementById('strNHLICVMale').value != "")
		return false;
	return true;
}

function checkNHLICVFemale() {
	if(document.getElementById('strNHLIFVFemale').value == "" &&
	document.getElementById('strNHLICVFemale').value != "")
		return false;
	return true;
}

function checkNHLICVJoint() {
	if(document.getElementById('strNHLIFVJoint').value == "" &&
	document.getElementById('strNHLICVJoint').value != "")
		return false;
	return true;
}

function isDateInFuture(dateTest) {
	var today = new Date();
	if(dateTest <= today) {
		alert('Date must be after today');
		return false;
	}
	return true;
}

function alertResidenceTrustIssue(trustType) {
	if (document.getElementById('ddResOwner')) {
		var owner = document.getElementById('ddResOwner');
		var ownerType = owner.options[owner.selectedIndex].value;
		if (trustType == ownerType) {
			var aORan;
			if (ownerType == "Irrevocable Trust")
				aORan = "an";
			else
				aORan = "a";
			alert("You have indicated that the residence is owned " +
				"by " + aORan + " " + trustType + ".  The value of the residence " +
				"SHOULD NOT be included in the value of Assets Held " +
				"in " + trustType + "s.");
		}
	}
}

function alertTrustResidenceIssue() {
	var tfAlert = false;
	var trustType = "";
	var owner = document.getElementById('ddResOwner');
	if (owner.options[owner.selectedIndex].value == "Irrevocable Trust") {
		trustType = "Irrevocable";
		if (document.getElementById('strInIrrevTrustJoint').value != "") {
			tfAlert = true;
		}
		if (document.getElementById('strInIrrevTrustUnavailable').value != "") {
			tfAlert = true;
		}
		if (document.getElementById('strNHIrrevTrustJoint')) {
			if (document.getElementById('strNHIrrevTrustJoint').value != "") {
				tfAlert = true;
			}
		}
		if (document.getElementById('strNHInIrrevTrustUnavailable')) {
			if (document.getElementById('strNHInIrrevTrustUnavailable').value != "") {
				tfAlert = true;
			}
		}
	}
	if (owner.options[owner.selectedIndex].value == "Revocable Trust") {
		trustType = "Revocable";
		if (document.getElementById('strInRevTrustJoint').value != "") {
			tfAlert = true;
		}
		if (document.getElementById('strInRevTrustUnavailable').value != "") {
			tfAlert = true;
		}
		if (document.getElementById('strNHRevTrustJoint')) {
			if (document.getElementById('strNHRevTrustJoint').value != "") {
				tfAlert = true;
			}
		}
		if (document.getElementById('strNHInRevTrustUnavailable')) {
			if (document.getElementById('strNHInRevTrustUnavailable').value != "") {
				tfAlert = true;
			}
		}
	}
	if (tfAlert) {
		alert("You have indicated that there are assets held in " +
			trustType + " Trusts.  If you have included the value of " +
			"the residence in the value of assets held by such trusts, " +
			"please REDUCE the value of the assets held in such trusts " +
			"by the value of the residence.");
	}
}

function getWindowHeight() { 
    var windowHeight = 0; 
    if (typeof(window.innerHeight) == 'number') { 
        windowHeight = window.innerHeight; 
    } else { 
        if (document.documentElement && document.documentElement.clientHeight) { 
            windowHeight = document.documentElement.clientHeight; 
        } else { 
            if (document.body && document.body.clientHeight) { 
                windowHeight = document.body.clientHeight; 
            } 
        }
    } 
    return windowHeight; 
}

function setBackgroundHeight() {
    var hgt;
    hgt = getWindowHeight();
    document.getElementById('BgdTop').style.height = (hgt / 2) - 20;
    document.getElementById('BgdBottom').style.height = (hgt / 2) - 20;
}
