addLoadEvent(function () {
	validateChildDetailsForm();
	validateContactDetailsForm();
	validateSessionsRequiredForm();
	validateConfirmForm();
});

function validateChildDetailsForm() {

	var form = $('registerYourChild_childDetailsForm');
	if (!form) return;

	var inputFirstName = $('inputFirstName');
	var inputSurname = $('inputSurname');
	var inputDateOfBirth = $('inputDateOfBirth');

	form.onsubmit = function () {
		if (!validate(inputFirstName, 'Please enter a first name', hasSubstance(inputFirstName.value))) return false;
		if (!validate(inputSurname, 'Please enter a surname', hasSubstance(inputSurname.value))) return false;
		if (!validate(inputDateOfBirth, 'Please enter a date of birth', hasSubstance(inputDateOfBirth.value))) return false;
		if (trim(inputDateOfBirth).value !== '' && !ValidateDdMmYyyyDate(inputDateOfBirth, 'Date of birth', 'Please enter a date of birth in the correct dd/mm/yyyy format')) return false;
	};
}


function validateContactDetailsForm() {

	var form = $('registerYourChild_contactDetailsForm');
	if (!form) return;

	var inputName = $('inputName');
	var inputEmailAddress = $('inputEmailAddress');
	var inputAddress1 = $('inputAddress1');
	var inputCity = $('inputCity');
	var inputPostcode = $('inputPostcode');
	var inputHomeTelephone = $('inputHomeTelephone');
	
	form.onsubmit = function () {
		if (!validate(inputName, 'Please enter a name', hasSubstance(inputName.value))) return false;
		if (!validate(inputEmailAddress, 'Please enter an email address', hasSubstance(inputEmailAddress.value))) return false;
		if (!validate(inputEmailAddress, 'Please enter a valid email address. It should resemble \'name@company.com\'', isEmailAddress(inputEmailAddress.value))) return false;
		if (!validate(inputAddress1, 'Please enter an address', hasSubstance(inputAddress1.value))) return false;
		if (!validate(inputCity, 'Please enter a town/city', hasSubstance(inputCity.value))) return false;
		if (!validate(inputPostcode, 'Please enter a postcode', hasSubstance(inputPostcode.value))) return false;
		if (!validate(inputHomeTelephone, 'Please enter a home telephone number', hasSubstance(inputHomeTelephone.value))) return false;
	};
}


function validateSessionsRequiredForm() {

	var form = $('registerYourChild_sessionsRequiredForm');
	if (!form) return;

	var inputNursery = $('inputNursery');
	var checkboxMondayAM = $('checkboxMondayAM');
	var checkboxMondayPM = $('checkboxMondayPM');
	var checkboxTuesdayAM = $('checkboxTuesdayAM');
	var checkboxTuesdayPM = $('checkboxTuesdayPM');
	var checkboxWednesdayAM = $('checkboxWednesdayAM');
	var checkboxWednesdayPM = $('checkboxWednesdayPM');
	var checkboxThursdayAM = $('checkboxThursdayAM');
	var checkboxThursdayPM = $('checkboxThursdayPM');
	var checkboxFridayAM = $('checkboxFridayAM');
	var checkboxFridayPM = $('checkboxFridayPM');
	var inputRequiredStartingDate = $('inputRequiredStartingDate');

	form.onsubmit = function () {
		if (!validate(inputNursery, 'Please select the nursery you are interested in', inputNursery.value != 0)) return false;
		if (!validate(checkboxMondayAM, 'Please pick at least one session', (checkboxMondayAM.checked || checkboxMondayPM.checked || checkboxTuesdayAM.checked || checkboxTuesdayPM.checked || checkboxWednesdayAM.checked || checkboxWednesdayPM.checked || checkboxThursdayAM.checked || checkboxThursdayPM.checked || checkboxFridayAM.checked || checkboxFridayPM.checked))) return false;
		if (!validate(inputRequiredStartingDate, 'Please enter a starting date', hasSubstance(inputRequiredStartingDate.value))) return false;
		if (trim(inputRequiredStartingDate).value !== '' && !ValidateDdMmYyyyDate(inputRequiredStartingDate, 'Starting date', 'Please enter a starting date in the correct dd/mm/yyyy format')) return false;
	};
}


function validateConfirmForm() {

	var form = $('registerYourChild_confirmForm');
	if (!form) return;

	var inputfstReason = $('inputfstReason');
	var inputsndReason = $('inputsndReason');
	var inputSndReasonOther = $('inputSndReasonOther');
	var checkboxTermsAndConditions = $('checkboxTermsAndConditions');

	form.onsubmit = function () {
		if (!validate(inputfstReason, 'Please select the 1st reason for choosing this nursery', inputfstReason.value != 0)) return false;
		if (!validate(inputsndReason, 'Please select the 2nd reason for choosing this nursery', inputsndReason.value != 0)) return false;
		if (inputsndReason.value == 6) {
			if (!validate(inputSndReasonOther, 'Please enter your reason as you have selected \'other\' from the list', hasSubstance(inputSndReasonOther.value))) return false;
		}
		if (!validate(checkboxTermsAndConditions, 'Please tick the box to indicate that you agree with our Terms and Conditions', (checkboxTermsAndConditions.checked))) return false;
	};
}

// auto populate all session checkboxes if 'select all' link is clicked on 'sessions required' step.
function selectAllSessions() {
	$('checkboxMondayAM').checked = true;
	$('checkboxMondayPM').checked = true;
	$('checkboxTuesdayAM').checked = true;
	$('checkboxTuesdayPM').checked = true;
	$('checkboxWednesdayAM').checked = true;
	$('checkboxWednesdayPM').checked = true;
	$('checkboxThursdayAM').checked = true;
	$('checkboxThursdayPM').checked = true;
	$('checkboxFridayAM').checked = true;
	$('checkboxFridayPM').checked = true;
}
