function validate() {
        var valid = true;
        var errorMsg = "";

        var reasonRef = document.getElementById("contactReason");
        var firstNameRef = document.getElementById("firstName");
        var lastNameRef = document.getElementById("lastName");
        var emailAddressRef = document.getElementById("emailAddress");
        var commentsRef = document.getElementById("comments");

        var phoneAcRef = document.getElementById("phoneAc");
        var phoneNpaRef = document.getElementById("phoneNpa");
        var phoneNxxRef = document.getElementById("phoneNxx");

	var failureBoxRef = document.getElementById("failureBox");	
	var failedItemsRef = document.getElementById("failedItems");	

        var sel_idx = reasonRef.selectedIndex;
        if (reasonRef.options[sel_idx].value == 0) {
                valid = false;
                errorMsg += "<li>" + "Contact Reason is required." + "</li>";
        }

        if (firstNameRef.value.length == 0) {
                valid = false;
                errorMsg += "<li>" + "First Name is required." + "</li>";
        }

        if (lastNameRef.value.length == 0) {
                valid = false;
                errorMsg += "<li>" + "Last Name is required." + "</li>";
        }

        if (emailAddressRef.value.length == 0) {
                valid = false;
                errorMsg += "<li>" + "Email is required." + "</li>";
        }
        else if (!checkEmail(emailAddressRef.value)) {
                valid = false;
                errorMsg += "<li>" + "Email is not valid." + "</li>";
        }

        if ( (phoneAcRef.value.length != 0) && (phoneNpaRef.value.length != 0) && (phoneNxxRef.value.length != 0) ) {
                if (!checkPhone(phoneAcRef.value,phoneNpaRef.value,phoneNxxRef.value)) {
                        valid = false;
                	errorMsg += "<li>" + "Phone is not valid." + "</li>";
                }
        }

        commentsReqRef = document.getElementById("commentsReq");
        if (commentsRef.value.length == 0) {
                valid = false;
               	errorMsg += "<li>" + "Comments are required." + "</li>";
        }
	
	if (!valid) {
		// set errors	
		failureBoxRef.style.display = "";
		failedItemsRef.innerHTML = errorMsg;
		window.location="#failureBox";
	}
	return valid;
}
