
function FormUpdate() {
    var form = document.GLNeedsCalc;
    CalcNeeds(form);
}

function   CalcNeeds(form) {
    var funeral = parseFloat(form.GLNFuneralCosts.value);
	var debts = parseFloat(form.GLNOverdraft.value);
	var tax = parseFloat(form.GLNTax.value);
	var mortgage = parseFloat(form.GLNMortgage.value);
	var other = parseFloat(form.GLNOther.value);

	if(!ValidateNum(funeral)) {
		alert('Please enter a number value for Funeral Costs');
		form.GLNFuneralCosts.value = 0;
		funeral = 0;
	}

	if(!ValidateNum(debts)) {
		alert('Please enter a number value for Overdraft, Personal loans, Credit cards...');
		form.GLNOverdraft.value = 0;
		debts = 0;
	}

	if(!ValidateNum(tax)) {
		alert('Please enter a number value for Outstanding Tax, GST');
		form.GLNTax.value = 0;
		tax = 0;
	}

	if(!ValidateNum(mortgage)) {
		alert('Please enter a number value for Mortgage');
		form.GLNMortgage.value = 0;
		mortgage = 0;
	}

	if(!ValidateNum(other)) {
		alert('Please enter a number value for Other');
		form.GLNOther.value = 0;
		other = 0;
	}

	var totalexpenses = funeral+debts+tax+mortgage+other;
	form.GLNTotalExpenses.value = FmtPrice(totalexpenses);


	var cashsavings = parseFloat(form.GLNSavings.value);
	var salesassets = parseFloat(form.GLNVehicle.value);
	var existinglife = parseFloat(form.GLNExistingInsurance.value);
                    	
	if(!ValidateNum(cashsavings)) {
		alert('Please enter a number value');
		form.GLNSavings.value = 0;
		cashsavings = 0;
	}
	
	if(!ValidateNum(salesassets)) {
		alert('Please enter a number value');
		form.GLNVehicle.value = 0;
		salesassets = 0;
	}

	if(!ValidateNum(existinglife)) {
		alert('Please enter a number value');
		form.GLNExistingInsurance.value = 0;
		existinglife = 0;
	}

	var totalassets = cashsavings+salesassets+existinglife;
                    	form.GLNTotalAssets.value = FmtPrice(totalassets);

                    	var calculationtotal = totalexpenses-totalassets;
                    	form.GLNTotalLife.value = FmtPrice(calculationtotal);
	}


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;
}

function ValidateAge(checkVal) {

	returnVal = parseFloat(checkVal);

	if(returnVal < 16) return false;
	else if(returnVal > 55) return false;
	else return true;
}


