  function checkFields(f){
    var error_msg = "";
    var focusfield = null;
    
	if(f.name == "loancompcalc" || f.name == "mortcalc"){
	
		if(isNaN(f.elements["term"].value) || f.elements["term"].value == ""){
	         if(error_msg.length == 0)focusfield=f.elements["term"];
	  		 error_msg += "You must enter a term.\n";
	    }
	
	}
	
	if(f.name != "loancompcalc" && f.name != "mortcalc" && f.name != "retirecalc" && f.name != "savingscalc"){
		if(isNaN(f.elements["rate"].value) || f.elements["rate"].value == ""){
	        if(error_msg.length == 0)focusfield=f.elements["rate"];
	  		error_msg += "You must enter a valid rate, e.g. 5.25.\n";
	    } 
	
	  	if((isNaN(f.elements["payment"].value)  || f.elements["payment"].value == "") && (isNaN(f.elements["amount"].value) || f.elements["amount"].value == "")){
	        if(error_msg.length == 0)focusfield=f.elements["payment"];
	  		error_msg += "You must enter either a payment amount or total loan amount.\n";
	
	    }
		else if( isNaN(f.elements["payment"].value) && (isNaN(f.elements["amount"].value))){
	  		if(error_msg.length == 0)focusfield=f.elements["payment"];
	  		error_msg += "You can not have a value for Payment Amount and Loan Amount.\n";
	 	 }
	 }
	 		
    if(f.name == "mortcalc"){    
        if(isNaN(f.elements["rate"].value) || f.elements["rate"].value == ""){
	        if(error_msg.length == 0)focusfield=f.elements["rate"];
	  		error_msg += "You must enter a valid rate, e.g. 5.25.\n";
	    } 
		if(isNaN(f.elements["income"].value) || f.elements["income"].value == ""){
            if(error_msg.length == 0)focusfield=f.elements["income"];
			error_msg += "You must enter your gross income\n";
        }
	}
	
	if(f.name == "retirecalc"){
			if(isNaN(f.elements["age"].value) || f.elements["age"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["age"];
				error_msg += "Please enter your current age.\n";
            }
			if(isNaN(f.elements["rage"].value) || f.elements["rage"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["rage"];
				error_msg += "Please enter your desired retirement age.\n";
            }
            if(isNaN(f.elements["rate"].value) || f.elements["rate"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["rate"];
				error_msg += "You must enter a rate.\n";
            }
			if(isNaN(f.elements["rinc"].value) || f.elements["rinc"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["rinc"];
				error_msg += "Please enter your desired retirement income.\n";
            }
			if(isNaN(f.elements["yor"].value) || f.elements["yor"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["yor"];
				error_msg += "Please enter how long these savings should last.\n";
            }
    }
	if(f.name == "savingscalc"){
	                if(!((f.TermType[0].checked) || (f.TermType[1].checked))) {
	                         if(error_msg.length == 0)focusfield=f.TermType[0];
				error_msg += "You must select a term type.\n";
            } 
		if(isNaN(f.elements["rate"].value) || f.elements["rate"].value == ""){
                if(error_msg.length == 0)focusfield=f.elements["rate"];
				error_msg += "You must enter a valid rate, e.g. 5.25.\n";
            } 
            if(isNaN(f.elements["term"].value) || f.elements["term"].value == ""){
                 if(error_msg.length == 0)focusfield=f.elements["term"];
				error_msg += "You must enter a term.\n";
            }
			 if((isNaN(f.elements["payment"].value)  || f.elements["payment"].value == "") && (isNaN(f.elements["amount"].value) || f.elements["amount"].value == "")){
                if(error_msg.length == 0)focusfield=f.elements["payment"];
				error_msg += "You must enter either a payment amount or total loan amount.\n";

            }
            if(f.amount.value == "") {
                    f.amount.value = 0;
            }
            if((f.amount.value > 0) && (f.payment.value > 0)) {
                    if(error_msg.length == 0)focusfield=f.elements["amount"];
				error_msg += "You must enter EITHER a savings goal or deposit amount, but not both.\n";

            }
             if(!((f.PaymentType[0].checked) || (f.PaymentType[1].checked))) {
	                         if(error_msg.length == 0)focusfield=f.PaymentType[0];
				error_msg += "You must select a payment type.\n";
            }else if( isNaN(f.elements["payment"].value) && (isNaN(f.elements["amount"].value))){
				if(error_msg.length == 0)focusfield=f.elements["payment"];
				error_msg += "You can not have a value for Payment Amount and Loan Amount.\n";
			}
	}
    if(error_msg.length > 1){
        alert(error_msg);
        error_msg = "";
        focusfield.focus();
        return false;
    }
    return true;

  }