// _-` forms.js `-_
// contains routines for client-side validation
// contact: connor.doyle (at) interac<remove: no-spam>tcom.com

var global_error = "";

function append_error(newErr) {
    global_error = global_error + "\n" + newErr;
}
function strip(raw) {
    return raw.replace(/^\s+|\s+$/g, '');
}

function cleanDigits(raw) {
    return raw.replace(/[^\d]/g, "");
}

function is_empty(field) {
    if (strip(field.value) === "") {
        return true;
    }
    else {
        return false;
    }
}

function check_SSN(field) {
    field.value = cleanDigits(field.value);
    if (is_empty(field)) {
        append_error("Social Security Number is required.");
        return false;
    }
    else if (field.value.length !== 9) {
        append_error("Social Security Number must consist of 9 digits.");
    }
    else {
        return true;
    }
}

function check_email(field) {
    var regex = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
    if (is_empty(field)) {
        append_error("Email address is required.");
        return false;
    }
    else if (!regex.test(strip(field.value))) {
        append_error("Please enter a valid email address.");
    }
    else {
        return true;
    }
}

function checkForEmptyCheckboxes() {
    for (i = 0; i < document.forms[0].elements.length; i++) {
        if (document.forms[0].elements[i].type == "checkbox") {
            if (document.forms[0].elements[i].checked == false) {
                document.forms[0].elements[i].checked = true;
                document.forms[0].elements[i].value = "";
            }
        }
    }
}

function checkAthletics(form) {
    var valid = true;

    if (is_empty(document.getElementById("primarySport"))) {
        append_error("Primary Sport is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("majorInterest"))) {
        append_error("Major of interest is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("phone"))) {
        append_error("Home Phone is required.");
        valid = false;
    }
    var genderSelected = false;
    for (var i = 0; i < form.gender.length; i++) {
        if (form.gender[i].checked) {
            genderSelected = true;
        }
    }
    if (!genderSelected) {
        append_error("Please select your gender.");
        valid = false;
    }
    if (!check_email(document.getElementById("email"))) {
        valid = false;
    }
    if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
    if (is_empty(document.getElementById("highschoolName"))) {
        append_error("Name of current high school is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("highschoolCity"))) {
        append_error("City of current high school is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("yearGraduation"))) {
        append_error("Year of graduation is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("positions"))) {
        append_error("Position played is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("feet"))) {
        append_error("Height: Feet is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("inches"))) {
        append_error("Height: Inches is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("stats"))) {
        append_error("Statistical information is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("coach"))) {
        append_error("Coach information is required.");
        valid = false;
    }
    // done checking the req'd's...
    if (!valid) {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}

function checkDayApp(form) {
    var valid = true;

    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
	if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
	 if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
	
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
	
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
	if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
        valid = false;
    }
	if (!check_email(document.getElementById("email"))) {
        valid = false;
    }
	
    
if (is_empty(document.getElementById("applicationType"))) {
        append_error("Type of application is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("major"))) {
        append_error("Academic major is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("howHeard"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }
    var disciplinary = false;
    for (var i = 0; i < form.disciplinaryViolation.length; i++) {
        if (form.disciplinaryViolation[i].checked) {
            disciplinary = true;
        }
    }
    if (!disciplinary) {
        append_error("Disciplinary violation is required?");
        valid = false;
    }

if ((document.getElementById("country").value === "US" ||

			document.getElementById("citizen1").checked) && !check_SSN(document.getElementById("SSN"))) {

        valid = false;

    }
	var citizen = false;
    for (var i = 0; i < form.citizen.length; i++) {
        if (form.citizen[i].checked) {
            citizen = true;
        }
    }
    if (!citizen) {
        append_error("Are you a US citizen?");
        valid = false;
    }
	
    if ((document.getElementById("citizen2").checked) && (document.getElementById("country").value === "  ")) {
        append_error("Country of Citizenship is required.");
        valid = false;
    }

    var convicted = false;
    for (var i = 0; i < form.everBeenConvicted.length; i++) {
        if (form.everBeenConvicted[i].checked) {
            convicted = true;
        }
    }
    if (!convicted) {
        append_error("Have you ever been convicted?");
        valid = false;
    }


    if (!valid) {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}

function checkDayInquiry(form) {
    var valid = true;
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("phone"))) {
        append_error("Phone number is required.");
        valid = false;
    }
    if (!valid) {
        alert("Please correct the following: \n" + global_error);
    }
    if (valid) {
        checkForEmptyCheckboxes();
    }
    return valid;
}

function checkEveningInquiry(form) {
    var valid = true;
    if (is_empty(document.getElementById("howHearAbout"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("programInterest"))) {
        append_error("Program of interest is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}



function checkEveningUG(form) {
    var valid = true;

    var programSelected = false;
    for (var i = 0; i < form.programOfChoice.length; i++) {
        if (form.programOfChoice[i].checked) {
            programSelected = true;
        }
    }
    if (!programSelected) {
        append_error("Undergraduate program of choice is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if ((document.getElementById("country").value === "US" ||
			document.getElementById("citizen1").checked) && !check_SSN(document.getElementById("SSN"))) {
        valid = false;
    }
    if (!(document.getElementById("citizen1").checked ||
			document.getElementById("citizen2").checked)) {
        append_error("Are you a U.S. Citizen?");
        valid = false;
    }
    if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("appType"))) {
        append_error("Application type is required?");
        valid = false;
    }
    if (is_empty(document.getElementById("howHearAbout"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }
    // done checking the req'd's...
    if (!valid) {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}

function checkMBAApp(form) {
    var valid = true;

    var programSelected = false;
    for (var i = 0; i < form.programOfChoice.length; i++) {
        if (form.programOfChoice[i].checked) {
            programSelected = true;
        }
    }
    if (!programSelected) {
        append_error("Graduate program of choice is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if ((document.getElementById("country").value === "US" ||
			document.getElementById("citizen1").checked) && !check_SSN(document.getElementById("SSN"))) {
        valid = false;
    }
    if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
        valid = false;
    }
    if (!(document.getElementById("citizen1").checked ||
			document.getElementById("citizen2").checked)) {
        append_error("Are you a U.S. Citizen?");
        valid = false;
    }
    if (is_empty(document.getElementById("appType"))) {
        append_error("Application type is required?");
        valid = false;
    }
    if (is_empty(document.getElementById("howHearAbout"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }
    if (form.programOfChoice[0].checked) {
        document.getElementById("programOfChoiceText").value = "MBA";
    }
    if (form.programOfChoice[1].checked) {
        document.getElementById("programOfChoiceText").value = "MBA - Emphasis in Sport Management";
    }
    if (form.programOfChoice[2].checked) {
        document.getElementById("programOfChoiceText").value = "MBA - Emphasis in Security Management";
    }
    if (form.programOfChoice[3].checked) {
        document.getElementById("programOfChoiceText").value = "Master of Organizational Leadership";
    }
    // done checking the req'd's...
    if (!valid) {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}


function checkWebAdvisorLogonReq(form) {
    var valid = true;
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (!check_email(document.getElementById("email"))) {
        valid = false;
    }
    if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
    }
    if (!check_SSN(document.getElementById("SSN"))) {
        valid = false;
    }
    if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
    if (is_empty(document.getElementById("maritalStatus"))) {
        append_error("Marital status is required.");
    }
    if (!(document.getElementById("citizen1").checked ||
			document.getElementById("citizen2").checked)) {
        append_error("Are you a U.S. Citizen?");
        valid = false;
    }
    var genderSelected = false;
    for (var i = 0; i < form.gender.length; i++) {
        if (form.gender[i].checked) {
            genderSelected = true;
        }
    }
    if (!genderSelected) {
        append_error("Please select your gender.");
        valid = false;
    }
    if (is_empty(document.getElementById("intendedDegreeLevel"))) {
        append_error("Intended Degree Level is required.");
    }
    if (!(form.prevCourseAtNichols[0].checked) && !(form.prevCourseAtNichols[1].checked)) {
        append_error("Have you taken previous courses here?");
        valid = false;
    }
    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}
function checkEveningAtoB(form) {
    var valid = true;
    var programSelected = false;
    for (var i = 0; i < form.programOfChoice.length; i++) {
        if (form.programOfChoice[i].checked) {
            programSelected = true;
        }
    }
    if (!programSelected) {
        append_error("Evening A to B program of choice is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("firstName"))) {
        append_error("First Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("emergecyContactName"))) {
        append_error("Emergency Contact Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("relationshipToStudent"))) {
        append_error("Relationship To Student is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("emergencyContactPhone"))) {
        append_error("Emergency Contact Phone is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("lastName"))) {
        append_error("Last Name is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
    if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
    if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
    }
    if (!check_SSN(document.getElementById("SSN"))) {
        valid = false;
    }
    if (is_empty(document.getElementById("DOBmonth")) ||
			is_empty(document.getElementById("DOBday")) ||
			is_empty(document.getElementById("DOByear"))) {
        append_error("Birthdate is not complete.");
        valid = false;
    }
    if (!(document.getElementById("citizen1").checked ||
			document.getElementById("citizen2").checked)) {
        append_error("Are you a U.S. Citizen?");
        valid = false;
    }
    if (is_empty(document.getElementById("howHearAbout"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }

    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}

function checklincApply(form){
var valid=true;

	
if (is_empty(document.getElementById("firstName"))) {
		append_error("First Name is required.");
		valid = false;
	}
	
	if (is_empty(document.getElementById("lastName"))) {
		append_error("Last Name is required.");
		valid = false;
	}
	
	if (is_empty(document.getElementById("street"))) {
		append_error("Street Address is required.");
		valid = false;
	}
	if (is_empty(document.getElementById("city"))) {
		append_error("City is required.");
		valid = false;
	}
	if (is_empty(document.getElementById("zipcode"))) {
		append_error("Zip Code is required.");
		valid = false;
	}
if (!check_email(document.getElementById("email"))) {
		valid = false;
	}
	  if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
    }
	
    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}
	
function checkinfoRequest(form){
var valid=true;

	
if (is_empty(document.getElementById("firstName"))) {
		append_error("Please tell us your first name.");
		valid = false;
	}
	if (is_empty(document.getElementById("lastName"))) {
		append_error("Please tell us your last name.");
		valid = false;
	}
	if (is_empty(document.getElementById("preferred_major"))) {
		append_error("Please tell us your preferred major interest.");
		valid = false;
	}
	
	   
		
		
	if(is_empty(document.getElementById("grad_year"))){
		append_error("What year did you graduate from high school?");
		valid = false;
	}
	
	if (is_empty(document.getElementById("howHeard"))) {
        append_error("How did you hear about Nichols College?");
        valid = false;
    }
	
	 if (is_empty(document.getElementById("street"))) {
        append_error("Street Address is required.");
        valid = false;
    }
	  if (is_empty(document.getElementById("city"))) {
        append_error("City is required in address.");
        valid = false;
    }
	
	  if (is_empty(document.getElementById("zipcode"))) {
        append_error("Postal code (ZIP) is required.");
        valid = false;
    }
	
	if (is_empty(document.getElementById("homePhone"))) {
        append_error("Home Phone is required.");
        valid = false;
    }
	
if (!check_email(document.getElementById("email"))) {
		valid = false;
	}
	  
	
    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}



function checkwwwAskAQuestion(form){
var valid=true;

	
if (is_empty(document.getElementById("contactName"))) {
		append_error("Please tell us your name.");
		valid = false;
	}
	
	
if (!check_email(document.getElementById("contactEmail"))) {
		valid = false;
	}
	  
	
    if (!valid && global_error !== "") {
        alert("Please correct the following: \n" + global_error);
    }
    return valid;
}
	
	


function checkForm(form) {
    var formName = document.getElementById("formName").value;
    var submit;
    switch (formName) {

        case "athletics": submit = checkAthletics(form);
            break;

        case "DayApp": submit = checkDayApp(form);
            break;

        case "dayInquiry": submit = checkDayInquiry(form);
            break;

        case "eveningInquiry": submit = checkEveningInquiry(form);
            break;

        case "pbInquiry": submit = checkpbInquiry(form);
            break;

        case "eveningUG": submit = checkEveningUG(form);
            break;

        case "MBAApp": submit = checkMBAApp(form);
            break;

        

        case "webAdvisorLogonRequest": submit = checkWebAdvisorLogonReq(form);
            break;

       

        case "eveningAtoB": submit = checkEveningAtoB(form);
            break;

     case "infoRequest": submit = checkinfoRequest(form);
            break;
			
		case "lincApply": submit = checklincApply(form);
			break;

        case "wwwAskAQuestion": submit = checkwwwAskAQuestion(form);
            break;  
			
			


        default: submit = false;
            break;
    }
    global_error = "";
    return submit;
}

