
var calcObj = new Calculator();


function validate() {
	
	var errMsg = ""

	if(!isNumber(stringToNum(document.calcForm.present_value.value))) {
		errMsg += "Please enter a valid current balance.\n";
	} else if(document.calcForm.present_value.value == "") {
		
		document.calcForm.present_value.value = 0.00;
	}
		
	if(!isNumber(stringToNum(document.calcForm.annual_deposit.value))) {
		errMsg += "Please enter a valid annual deposit.\n";
	} else if(document.calcForm.annual_deposit.value == "") {
		
		document.calcForm.annual_deposit.value = 0.00;
	}
	

	if(!isNumber(document.calcForm.years.value)) {
		errMsg += "Please enter a valid number of years.\n";
	} else if(document.calcForm.years.value == "") {
		
		document.calcForm.years.value = 0;
	}
	
	if(!isNumber(document.calcForm.rate.value)) {
		errMsg += "Please enter a valid interest rate.\n";
	} else if(document.calcForm.rate.value == "") {
		
		document.calcForm.rate.value = 0.0;
	}
			
	if(!isNumber(document.calcForm.tax_rate.value)) {
		errMsg += "Please enter a valid tax rate.\n";
	} else if(document.calcForm.tax_rate.value == "") {
		
		document.calcForm.tax_rate.value = 0.0;
	}

	if(errMsg.length == 0) return true;
	else {
		alert(errMsg);
		return false;
	}
}

function calculate() {
	if(validate()) {
		calcObj.setPresentValue(stringToNum(document.calcForm.present_value.value));
			calcObj.setInterestPerPeriod(document.calcForm.rate.value / 100);
		calcObj.setPaymentsPerPeriod(stringToNum(document.calcForm.annual_deposit.value));
		calcObj.setNumOfPeriods(document.calcForm.years.value);
		
		var FV = calcObj.getFutureValue();
		
		document.calcForm.savings.value = formatCurrency(FV).replace(/\$/g, '');
		
		
		
		if(document.calcForm.ira_type[0].checked) {  //traditional IRA
			document.calcForm.after_tax_savings.value = formatCurrency(FV * (1- document.calcForm.tax_rate.value / 100)).replace(/\$/g, '');
		} else {
			document.calcForm.after_tax_savings.value = document.calcForm.savings.value
		}
		
		
	}
}
