addLoadEvent(function () {
	validateRequestABrochureForm();
});

function validateRequestABrochureForm() {
	var form = $('requestABrochure_form');
	var selectTitle = $('selectTitle');
	var inputFirstName = $('inputFirstName');
	var inputSurname = $('inputSurname');
	var inputPostalCode = $('inputPostalCode');
	var inputAddressLine1 = $('inputAddressLine1');
	var inputTownCity = $('inputTownCity');
	var selectCountry = $('selectCountry');
	var inputEmailAddress = $('inputEmailAddress');
	var checkboxAddToBarryMMailingList = $('checkboxAddToBarryMMailingList');
	var checkboxAddToThirdPartyMailingList = $('checkboxAddToThirdPartyMailingList');

	if (!form) return;

	form.onsubmit = function () {
		if (!validate(selectTitle, 'Please select a title', hasSubstance(selectTitle.value))) return false;
		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(inputPostalCode, 'Please enter a postal code', hasSubstance(inputPostalCode.value))) return false;
		if (!validate(inputAddressLine1, 'Please enter an address (line 1)', hasSubstance(inputAddressLine1.value))) return false;
		if (!validate(inputTownCity, 'Please enter a town/city', hasSubstance(inputTownCity.value))) return false;
		if (!validate(selectCountry, 'Please select a country', hasSubstance(selectCountry.value))) return false;

		// If either mailing list checkboxes are checked, ensure a valid email address is supplied
		if (checkboxAddToBarryMMailingList.checked || checkboxAddToThirdPartyMailingList.checked) {
			if (!validate(inputEmailAddress, 'If you choose to subscribe to a mailing list, please enter an email address', hasSubstance(inputEmailAddress.value))) return false;
			if (!validate(inputEmailAddress, 'If you choose to subscribe to a mailing list, please enter a valid email address. It should resemble "name@company.com"', isEmailAddress(inputEmailAddress.value))) return false;
		}

		// If the checkboxes haven't been checked, but an email address is provided, ensure it's correctly formated
		else if (hasSubstance(inputEmailAddress.value)) {
			if (!validate(inputEmailAddress, 'If you choose to supply an email address, please enter a valid one. It should resemble "name@company.com"', isEmailAddress(inputEmailAddress.value))) return false;
		}
	};
}