// JavaScript Document
function saveVariables(formName) {
	perm_str = formName.permanent_street.value;
	perm_city = formName.permanent_city.value;
	perm_state = formName.permanent_state.selectedIndex;
	perm_zip = formName.permanent_zip.value;
}
function copyAddress(formName) {
	//if(confirm("Do you want to over-write data currently in this address?\nYou can undo this action by unchecking the 'same as' box.")) {
		if(formName.copyaddr.checked == true) {
			saveVariables(formName);
			formName.permanent_street.value = formName.current_street.value;
			formName.permanent_city.value = formName.current_city.value;
			formName.permanent_state.selectedIndex = formName.current_state.selectedIndex;
			formName.permanent_zip.value = formName.current_zip.value;
			formName.permanent_country.value = formName.current_country.value;
			document.getElementById('copyUndo').style.display = 'inline';
		} else {
			formName.permanent_street.value = perm_str;
			formName.permanent_city.value = perm_city;
			formName.permanent_state.selectedIndex = perm_state;
			formName.permanent_zip.value = perm_zip;
			formName.permanent_country.value = perm_country;
			document.getElementById('copyUndo').style.display = 'none';
		}
	/*} else {
		formName.copyaddr.checked = false;
	}*/
}
function undoCopyAddress() {
	document.enrollmentAgreement.copyaddr.checked = false;
	copyAddress(document.enrollmentAgreement);
}
function updateAddress(formName) {
	if(formName.copyaddr.checked == true) {
		formName.permanent_street.value = formName.current_street.value;
		formName.permanent_city.value = formName.current_city.value;
		formName.permanent_state.selectedIndex = formName.current_state.selectedIndex;
		formName.permanent_zip.value = formName.current_zip.value;
		formName.permanent_country.value = formName.current_country.value;
	}
}
function updateDecision(formName) {
	if(formName.enrollment_decision[0].checked == true) {
		/*formName.reasonAnotherU.disabled = true;
		formName.reasonOther.disabled = true;
		formName.name_other_university.disabled = true;
		formName.other_reason_text.disabled = true;
		formName.program_ma.disabled = false;
		formName.program_phd.disabled = false;
		formName.starting_semester.disabled = false;
		formName.deposit_method.disabled = false;*/
		document.getElementById('enroll_table').style.display = 'block';
		document.getElementById('not_enroll_table').style.display = 'none';
	}
	if(formName.enrollment_decision[1].checked == true) {
		/*formName.program_ma.disabled = true;
		formName.program_phd.disabled = true;
		formName.starting_semester.disabled = true;
		formName.deposit_method.disabled = true;
		formName.reasonAnotherU.disabled = false;
		formName.reasonOther.disabled = false;
		formName.name_other_university.disabled = false;
		formName.other_reason_text.disabled = false;*/
		document.getElementById('enroll_table').style.display = 'none';
		document.getElementById('not_enroll_table').style.display = 'block';
	}
}
var semesters = new Array();
var d = new Date();
var semestersList = ['Spring','Summer','Fall'];
var semestersString = '';
// get next 3 years
var thisYear = d.getFullYear();
var years = [thisYear + 1, thisYear + 2, thisYear + 3];
// determine the next possible semester for registration
var thisMonth = d.getMonth();
var semestersRemainThisYear = null;
if(thisMonth <= 3) { // Jan to April
	semestersRemainThisYear = ['Summer','Fall'];
} else if(thisMonth > 3 && thisMonth <= 7) { // May to Aug
	semestersRemainThisYear = ['Fall'];
} else { // Sept through Desc
	semestersRemainThisYear = null;
}
// build this year's remaining semesters
if(semestersRemainThisYear != null) {
	for(var y = 0; y < semestersRemainThisYear.length; y ++) {
		semestersString += semestersRemainThisYear[y] + ' ' + thisYear + '|';
	}
}
// multiply the remaining years by the semesters
for(var j=0; j<3; j++) {
	for(var i=0; i<3; i++) {
		semestersString += semestersList[i] + ' ' + years[j] + '|';
	}
}
// convert string to array
semestersString = semestersString.slice(0,semestersString.lastIndexOf('|'));
semestersArray = semestersString.split('|');
// remove the excess options
semestersArray = semestersArray.slice(0,7);
// add initial value option
semestersArray.unshift("Select Semester");
// Set option lists for regular masters and non-degree programs
semesters['Divinity'] = semestersArray;
semesters['Divinity Other'] = semestersArray;
var semestersDoctoralString = '';
if(semestersRemainThisYear != null) {
	semestersDoctoralString += 'Fall ' + thisYear + '|';
}
for(var i=0; i<3; i++) {
	semestersDoctoralString += 'Fall ' + years[i] + '|';
}
semestersDoctoralString = semestersDoctoralString.slice(0,semestersDoctoralString.lastIndexOf('|'));
semestersDoctoralArray = semestersDoctoralString.split('|');
semestersDoctoralArray.unshift("Select Semester");
semesters['Divinity Doctoral'] = semestersDoctoralArray;

function updateProgram(selectedProgram) {
	var box1 = document.getElementById('starting_semester');
	box1.options.length = 0;
	var list = semesters[selectedProgram];
	if(list != null) {
		for(i=0;i<list.length;i++){
			box1.options[i] = new Option(list[i],list[i]);
		}
	document.getElementById('starting_semester').disabled = false;
	}
}
function initialize() {
	document.getElementById('enroll_table').style.display = 'none';
	document.getElementById('not_enroll_table').style.display = 'none';
	document.getElementById('starting_semester').disabled = true;
	saveVariables(document.getElementById('enrollmentAgreement'));
}
initialize();

function validate(frmName) {
	var email_address_pattern = /^.+@.+\..+$/;
	var date_pattern = /^(0[1-9]|1[012])[-.\/](0[1-9]|[12][0-9]|3[01])[-.\/](19|20)\d\d$/;
	var phone_pattern = /^[2-9]\d{2}[-.][2-9]\d{2}[-.]\d{4}$/;
	if (frmName.first_name.value == "") {
		alert("Please enter your first name.");
		frmName.first_name.focus();
		return false;
	}
	if (frmName.last_name.value == "") {
		alert("Please enter your last name.");
		frmName.last_name.focus();
		return false;
	}
	if (frmName.phone.value == "") {
		alert("Please enter your phone number.");
		frmName.phone.focus();
		return false;
	}
	if (frmName.phone.value.search(phone_pattern) == -1) {
		alert("Please enter your phone number in the correct format.");
		frmName.phone.focus();
		return false;
	}
	if (frmName.email.value == "") {
		alert("Please enter your email address.");
		frmName.email.focus();
		return false;
	}
	if (frmName.email.value.search(email_address_pattern) == -1) {
		alert("Please enter your email address in the correct format.");
		frmName.email.focus();
		return false;
	}
	// validate enrollment desision radio buttons (enrollment_decision)
	if (!frmName.enrollment_decision[0].checked && !frmName.enrollment_decision[1].checked) {
		alert("Please select if you will attend or not.");
		frmName.enrollment_decision[0].focus();
		return false;
	}
	// validate program selection radio buttons (program)
	if (!frmName.program[0].checked && !frmName.program[1].checked && !frmName.program[2].checked) {
		alert("Please select your degree program.");
		frmName.program[0].focus();
		return false;
	}
	// validate a selected starting semester
	if (frmName.enrollment_decision[0].checked == true && frmName.starting_semester.selectedIndex == 0) {
		alert("Please select your starting semester.");
		frmName.starting_semester.focus();
		return false;
	}
	// validate a deposit payment method
	if (frmName.enrollment_decision[0].checked == true && frmName.deposit_method.selectedIndex == 0) {
		alert("Please select your deposit submission method.");
		frmName.deposit_method.focus();
		return false;
	}
	// validate statment of understanding check box (refund_policy)
	if (frmName.enrollment_decision[0].checked == true && !frmName.refund_policy.checked) {
		alert("You must check 'I understand'.");
		frmName.refund_policy.focus();
		return false;
	}
}
