
function FormUpdate() {
    var form = document.NZLTPDNeedsCalc;
    TPDNeeds(form);
}

function TPDNeeds(form) {
	var homemodcosts = parseFloat(form.HomeModCosts.value);
	var debts = parseFloat(form.Debts.value);
	var tax = parseFloat(form.TaxGST.value);
                    	var medical = parseFloat(form.MedicalCosts.value);
	var mortgage = parseFloat(form.Mortgage.value);
	var otherexpenses = parseFloat(form.OtherExpenses.value);
	
	if(!ValidateNum(homemodcosts)) {
		alert('Please enter a number value');
		form.HomeModCosts.value = 0;
		homemodcosts = 0;
	}
	
	if(!ValidateNum(debts)) {
		alert('Please enter a number value');
		form.Debts.value = 0;
		debts = 0;
	}
	
	if(!ValidateNum(tax)) {
		alert('Please enter a number value');
		form.TaxGST.value = 0;
		tax = 0;
	}
	
	if(!ValidateNum(medical)) {
		alert('Please enter a number value');
		form.MedicalCosts.value = 0;
		medical = 0;
	}
	
	if(!ValidateNum(mortgage)) {
		alert('Please enter a number value');
		form.Mortgage.value = 0;
		mortgage = 0;
	}
	
	if(!ValidateNum(otherexpenses)) {
		alert('Please enter a number value');
		form.OtherExpenses.value = 0;
		otherexpenses = 0;
	}

	var totalexpenses = homemodcosts+debts+tax+medical+mortgage+otherexpenses;
	form.TotalExpenses.value = FmtPrice(totalexpenses);

	var needliveyear = parseFloat(form.NeedLiveYear.value);
	var additionalsupportcosts = parseFloat(form.AdditionalSupportCosts.value);
	var yearsneedsupport = parseFloat(form.YearsNeedSupport.value);
	
	if(!ValidateNum(needliveyear)) {
		alert('Please enter a number value');
		form.NeedLiveYear.value = 0;
		needliveyear = 0;
	}

	if(!ValidateNum(additionalsupportcosts)) {
		alert('Please enter a number value');
		form.AdditionalSupportCosts.value = 0;
		additionalsupportcosts = 0;
	}

	if(!ValidateNum(yearsneedsupport)) {
		alert('Please enter a number value');
		form.YearsNeedSupport.value = 0;
		yearsneedsupport = 0;
	}

	var totalfutureincome = (needliveyear+additionalsupportcosts)*yearsneedsupport;
	form.TotalFutureIncome.value = FmtPrice(totalfutureincome);

	var cash = parseFloat(form.CashSavings.value);
	var saleofassets = parseFloat(form.SaleOfAssets.value);
	var existinginsurance = parseFloat(form.ExistingInsurance.value);
	
	if(!ValidateNum(cash)) {
		alert('Please enter a number value');
		form.CashSavings.value = 0;
		cash = 0;
	}

	if(!ValidateNum(saleofassets)) {
		alert('Please enter a number value');
		form.SaleOfAssets.value = 0;
		saleofassets = 0;
	}

	if(!ValidateNum(existinginsurance)) {
		alert('Please enter a number value');
		form.ExistingInsurance.value = 0;
		existinginsurance = 0;
	}

	var totalassets = cash+saleofassets+existinginsurance;
	form.TotalAssets.value = FmtPrice(totalassets);

	var tpdinsurance = (totalexpenses+totalfutureincome)-totalassets;
	form.TPDInsurance.value = FmtPrice(tpdinsurance);
	document.NZLTPDRequest.TPDInsurance.value = FmtPrice(tpdinsurance);
}

function ValidateNum(checkVal) {

	returnVal = parseFloat(checkVal);

	if(isNaN(returnVal)) return false;
	else if(returnVal < 0) return false;
	else return true;
}


function FmtPrice(result) {
                    result = ConvNumber(result, 2, ".");
                    return result;
}

function ConvNumber(expr, decplaces, point) {

	var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces));
	while (str.length <= decplaces) {
		str = "0" + str;
	}
	var decpoint = str.length - decplaces;
	return (str.substring(0,decpoint) + point + str.substring(decpoint,str.length));
}

function ValidateNum(checkVal) {

	returnVal = parseFloat(checkVal);

	if(isNaN(returnVal)) return false;
	else if(returnVal < 0) return false;
	else return true;
}


