function toggleFieldError (title, status, text) {
	
	var toggleText = "A value must be entered for this field.";
	
	if (text.length > 0) {
		toggleText = text;
	}
	
	if ($(title + '_field')) {
		if (status == true) {
			if (!$(title + '_error')) {
				var error_tr = new Element("tr", {
					"id": title + "_error",
					"class": "error"
				});
				var error_td = new Element("td", {
					"colspan": "2"
				});
				var error_div = new Element("div", {
					"id": "fielderror" + title,
					"class": "fielderror",
					"for": title
				});
				error_div.setText(toggleText);
				error_div.injectInside(error_td);
				error_td.injectInside(error_tr);
				error_tr.injectBefore($(title + "_field"));
			}
		}
		else {
			if ($(title + '_error')) {
				$(title + '_error').remove();
			}
		}
	}

}

function addHandlers() {
	if ($('ApplyPart1') || $('ApplyPart2') || $('ApplyPart3') || $('ApplyPart4') || $('ApplyPart5') || $('ApplyPart6') || $('ApplyPart7')) {
		$$('.jsmandatory').each(function(el){
			el.addEvent("blur", function(e){
				if (el.value.length == 0) {
					toggleFieldError(el.getProperty("id"), true, "");
					//el.focus();
				}
				else {
					toggleFieldError(el.getProperty("id"), false, "");
				}
			});
		});		
	}
}

window.addEvent("domready", function(){
	
	if ($('ProvisionalOrFullLicense')) {
		$('ProvisionalOrFullLicense').addEvent("blur", function(e) {
			if ($('ProvisionalOrFullLicense').value == 'Provisional') {
				toggleFieldError("ProvisionalOrFullLicense", true, "Sorry but you must have a valid full manual driving licence to apply for this role");
			} else if ($('ProvisionalOrFullLicense').value.length == 0) {
				toggleFieldError("ProvisionalOrFullLicense", true, "");
			} else {
				toggleFieldError("ProvisionalOrFullLicense", false, "");
			}
		});
	}

	if ($('AutomaticOrManualLicense')) {
		$('AutomaticOrManualLicense').addEvent("blur", function(e) {
			if ($('AutomaticOrManualLicense').value == 'Automatic') {
				toggleFieldError("AutomaticOrManualLicense", true, "Sorry but you must have a valid full manual driving licence to apply for this role");
			} else if ($('AutomaticOrManualLicense').value.length == 0) {
				toggleFieldError("AutomaticOrManualLicense", true, "");
			} else {
				toggleFieldError("AutomaticOrManualLicense", false, "");
			}
		});
	}

	if ($('PlaceOfIssue') && $('PlaceOfIssueOther')) {

		if ($('PlaceOfIssue').value != "Other") {
			$('PlaceOfIssueOther').addClass("hidden");
		}

		if ($('PlaceOfIssue').value == "UK" || $('PlaceOfIssue').value.length == 0) {
			$('PlaceOfIssueOther_text').addClass("hidden");
		}

		$('PlaceOfIssue').addEvent("change", function(e) {
			if ($('PlaceOfIssue').value == "Other") {
				$('PlaceOfIssueOther').removeClass("hidden");
			}
			else {
				$('PlaceOfIssueOther').addClass("hidden");
			}

			if ($('PlaceOfIssue').value == "UK") {
				$('PlaceOfIssueOther_text').addClass("hidden");
			}
			else {
				$('PlaceOfIssueOther_text').removeClass("hidden");
			}
		});

	}

	if ($('AreYouABritishNational') && $('DoYouHaveAValidUKWorkPermit_field') && $('DoYouHaveAValidUKWorkPermit_text')) {

		if ($('AreYouABritishNational').value == "Yes" || $('AreYouABritishNational').value.length == 0) {
			$('DoYouHaveAValidUKWorkPermit_field').addClass("hidden");
			$('DoYouHaveAValidUKWorkPermit_text').addClass("hidden");
			if ($('DoYouHaveAValidUKWorkPermit_error')) { $('DoYouHaveAValidUKWorkPermit_error').addClass("hidden"); }
			}

		$('AreYouABritishNational').addEvent("change", function(e) {
			if ($('AreYouABritishNational').value == "No") {
				$('DoYouHaveAValidUKWorkPermit_field').removeClass("hidden");
				$('DoYouHaveAValidUKWorkPermit_text').removeClass("hidden");
				if ($('DoYouHaveAValidUKWorkPermit_error')) { $('DoYouHaveAValidUKWorkPermit_error').removeClass("hidden"); }
				$('DoYouHaveAValidUKWorkPermit').addClass("jsmandatory");
			}
			else {
				$('DoYouHaveAValidUKWorkPermit_field').addClass("hidden");
				$('DoYouHaveAValidUKWorkPermit_text').addClass("hidden");
				if ($('DoYouHaveAValidUKWorkPermit_error')) { $('DoYouHaveAValidUKWorkPermit_error').addClass("hidden"); }
				$('DoYouHaveAValidUKWorkPermit').removeClass("jsmandatory");
			}
			addHandlers();
		});

	}

	if ($('AnyQualifications') && $('QualificationsObtained_field') && $('QualificationsObtainedOther_field')) {

		if ($('AnyQualifications').value != "Yes") {
			$('QualificationsObtained_field').addClass("hidden");
			if ($('QualificationsObtained').value != "Other") {
				$('QualificationsObtainedOther_field').addClass("hidden");
			}
		}

		$('AnyQualifications').addEvent("change", function(e) {
			if ($('AnyQualifications').value == "Yes") {
				$('QualificationsObtained_field').removeClass("hidden");
				$('QualificationsObtained').addClass("jsmandatory");
				if ($('QualificationsObtained_error')) { $('QualificationsObtained_error').removeClass("hidden"); }
				if ($('QualificationsObtained').value == "Other") {
					$('QualificationsObtainedOther_field').removeClass("hidden");
					$('QualificationsObtainedOther').addClass("jsmandatory");
					if ($('QualificationsObtainedOther_error')) { $('QualificationsObtainedOther_error').removeClass("hidden"); }
				}
			}
			else {
				$('QualificationsObtained_field').addClass("hidden");
				$('QualificationsObtainedOther_field').addClass("hidden");
				$('QualificationsObtained').removeClass("jsmandatory");
				if ($('QualificationsObtained_error')) { $('QualificationsObtained_error').addClass("hidden"); }
				$('QualificationsObtainedOther_field').addClass("hidden");
				$('QualificationsObtainedOther').removeClass("jsmandatory");
				if ($('QualificationsObtainedOther_error')) { $('QualificationsObtainedOther_error').addClass("hidden"); }

			}
			addHandlers();
		});

		$('QualificationsObtained').addEvent("change", function(e) {
			if ($('QualificationsObtained').value == "Other") {
				$('QualificationsObtainedOther_field').removeClass("hidden");
				$('QualificationsObtainedOther').addClass("jsmandatory");
				if ($('QualificationsObtainedOther_error')) { $('QualificationsObtainedOther_error').removeClass("hidden"); }
			}
			else {
				$('QualificationsObtainedOther_field').addClass("hidden");
				$('QualificationsObtainedOther').removeClass("jsmandatory");
				if ($('QualificationsObtainedOther_error')) { $('QualificationsObtainedOther_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}

	if ($('AnyCareExperience') && $('CareExperience_field') && $('CareExperienceDetails_field') && $('CareExperienceOther_field')) {

		if ($('AnyCareExperience').value != "Yes") {
			$('CareExperience_field').addClass("hidden");
			$('CareExperienceDetails_field').addClass("hidden");
			$('CareExperienceOther_field').addClass("hidden");
		}

		$('AnyCareExperience').addEvent("change", function(e) {
			if ($('AnyCareExperience').value == "Yes") {
				$('CareExperience_field').removeClass("hidden");
				$('CareExperienceDetails_field').removeClass("hidden");
				$('CareExperience').addClass("jsmandatory");
				if ($('CareExperience_error')) { $('CareExperience_error').removeClass("hidden"); }
				if ($('CareExperience').value == "Other") {
					$('CareExperienceOther_field').removeClass("hidden");
					$('CareExperienceOther').addClass("jsmandatory");
					if ($('CareExperienceOther_error')) { $('CareExperienceOther_error').removeClass("hidden"); }
				}
			}
			else {
				$('CareExperience_field').addClass("hidden");
				$('CareExperienceDetails_field').addClass("hidden");
				$('CareExperience').removeClass("jsmandatory");
				if ($('CareExperience_error')) { $('CareExperience_error').addClass("hidden"); }
				$('CareExperienceOther').removeClass("jsmandatory");
				if ($('CareExperienceOther_error')) { $('CareExperienceOther_error').addClass("hidden"); }
			}
			addHandlers();
		});
		
		$('CareExperience').addEvent("change", function(e) {
			if ($('CareExperience').value == "Other") {
				$('CareExperienceOther_field').removeClass("hidden");
				$('CareExperienceOther').addClass("jsmandatory");
				if ($('CareExperienceOther_error')) { $('CareExperienceOther_error').removeClass("hidden"); }
			}
			else {
				$('CareExperienceOther_field').addClass("hidden");
				$('CareExperienceOther').removeClass("jsmandatory");
				if ($('CareExperienceOther_error')) { $('CareExperienceOther_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('DrinkOrDrugsProblem') && $('DrinkDrugsDetails_field')) {

		if ($('DrinkOrDrugsProblem').value == "Yes" || $('DrinkOrDrugsProblem').value.length == 0) {
			$('DrinkDrugsDetails_field').addClass("hidden");
			if ($('DrinkDrugsDetails_error')) { $('DrinkDrugsDetails_error').addClass("hidden"); }
		}

		$('DrinkOrDrugsProblem').addEvent("change", function(e) {
			if ($('DrinkOrDrugsProblem').value == "Yes") {
				$('DrinkDrugsDetails_field').removeClass("hidden");
				$('DrinkDrugsDetails').addClass("jsmandatory");
				if ($('DrinkDrugsDetails_error')) { $('DrinkDrugsDetails_error').removeClass("hidden"); }
			}
			else {
				$('DrinkDrugsDetails_field').addClass("hidden");
				$('DrinkDrugsDetails').removeClass("jsmandatory");
				if ($('DrinkDrugsDetails_error')) { $('DrinkDrugsDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('HaveYouSufferedMedicalConditions') && $('MedicalConditionsDetails_field')) {

		if ($('HaveYouSufferedMedicalConditions').value == "Yes" || $('HaveYouSufferedMedicalConditions').value.length == 0) {
			$('MedicalConditionsDetails_field').addClass("hidden");
			if ($('MedicalConditionsDetails_error')) { $('MedicalConditionsDetails_error').addClass("hidden"); }
		}

		$('HaveYouSufferedMedicalConditions').addEvent("change", function(e) {
			if ($('HaveYouSufferedMedicalConditions').value == "Yes") {
				$('MedicalConditionsDetails_field').removeClass("hidden");
				$('MedicalConditionsDetails').addClass("jsmandatory");
				if ($('MedicalConditionsDetails_error')) { $('MedicalConditionsDetails_error').removeClass("hidden"); }
			}
			else {
				$('MedicalConditionsDetails_field').addClass("hidden");
				$('MedicalConditionsDetails').removeClass("jsmandatory");
				if ($('MedicalConditionsDetails_error')) { $('MedicalConditionsDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('AreYouTakingPrescribedMedicine') && $('PrescribedMedicineDetails_field')) {

		if ($('AreYouTakingPrescribedMedicine').value == "Yes" || $('AreYouTakingPrescribedMedicine').value.length == 0) {
			$('PrescribedMedicineDetails_field').addClass("hidden");
			if ($('PrescribedMedicineDetails_error')) { $('PrescribedMedicineDetails_error').addClass("hidden"); }
		}

		$('AreYouTakingPrescribedMedicine').addEvent("change", function(e) {
			if ($('AreYouTakingPrescribedMedicine').value == "Yes") {
				$('PrescribedMedicineDetails_field').removeClass("hidden");
				$('PrescribedMedicineDetails').addClass("jsmandatory");
				if ($('PrescribedMedicineDetails_error')) { $('PrescribedMedicineDetails_error').removeClass("hidden"); }
			}
			else {
				$('PrescribedMedicineDetails_field').addClass("hidden");
				$('PrescribedMedicineDetails').removeClass("jsmandatory");
				if ($('PrescribedMedicineDetails_error')) { $('PrescribedMedicineDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('DoYouHaveBackProblems') && $('BackProblemsDetails_field')) {

		if ($('DoYouHaveBackProblems').value == "Yes" || $('DoYouHaveBackProblems').value.length == 0) {
			$('BackProblemsDetails_field').addClass("hidden");
			if ($('BackProblemsDetails_error')) { $('BackProblemsDetails_error').addClass("hidden"); }
		}

		$('DoYouHaveBackProblems').addEvent("change", function(e) {
			if ($('DoYouHaveBackProblems').value == "Yes") {
				$('BackProblemsDetails_field').removeClass("hidden");
				$('BackProblemsDetails').addClass("jsmandatory");
				if ($('BackProblemsDetails_error')) { $('BackProblemsDetails_error').removeClass("hidden"); }
			}
			else {
				$('BackProblemsDetails_field').addClass("hidden");
				$('BackProblemsDetails').removeClass("jsmandatory");
				if ($('BackProblemsDetails_error')) { $('BackProblemsDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('DoYouHaveAnyAllergies') && $('AllergiesDetails_field')) {

		if ($('DoYouHaveAnyAllergies').value == "Yes" || $('DoYouHaveAnyAllergies').value.length == 0) {
			$('AllergiesDetails_field').addClass("hidden");
			if ($('AllergiesDetails_error')) { $('AllergiesDetails_error').addClass("hidden"); }
		}

		$('DoYouHaveAnyAllergies').addEvent("change", function(e) {
			if ($('DoYouHaveAnyAllergies').value == "Yes") {
				$('AllergiesDetails_field').removeClass("hidden");
				$('AllergiesDetails').addClass("jsmandatory");
				if ($('AllergiesDetails_error')) { $('AllergiesDetails_error').removeClass("hidden"); }
			}
			else {
				$('AllergiesDetails_field').addClass("hidden");
				$('AllergiesDetails').removeClass("jsmandatory");
				if ($('AllergiesDetails_error')) { $('AllergiesDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}

	if ($('AreYouAVegetarian') && $('WillYouCookMeat_field')) {

		if ($('AreYouAVegetarian').value == "Yes" || $('DoYouHaveAnyAllergies').value.length == 0) {
			$('WillYouCookMeat_field').addClass("hidden");
			if ($('WillYouCookMeat_error')) { $('WillYouCookMeat_error').addClass("hidden"); }
		}

		$('AreYouAVegetarian').addEvent("change", function(e) {
			if ($('AreYouAVegetarian').value == "Yes") {
				$('WillYouCookMeat_field').removeClass("hidden");
				$('WillYouCookMeat').addClass("jsmandatory");
				if ($('WillYouCookMeat_error')) { $('WillYouCookMeat_error').removeClass("hidden"); }
			}
			else {
				$('WillYouCookMeat_field').addClass("hidden");
				$('WillYouCookMeat').removeClass("jsmandatory");
				if ($('WillYouCookMeat_error')) { $('WillYouCookMeat_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('HaveYouBeenConvicted') && $('ConvictionDetails_field')) {

		if ($('HaveYouBeenConvicted').value == "Yes" || $('HaveYouBeenConvicted').value.length == 0) {
			$('ConvictionDetails_field').addClass("hidden");
			if ($('ConvictionDetails_error')) { $('WConvictionDetails_error').addClass("hidden"); }
		}

		$('HaveYouBeenConvicted').addEvent("change", function(e) {
			if ($('HaveYouBeenConvicted').value == "Yes") {
				$('ConvictionDetails_field').removeClass("hidden");
				$('ConvictionDetails').addClass("jsmandatory");
				if ($('ConvictionDetails_error')) { $('ConvictionDetails_error').removeClass("hidden"); }
			}
			else {
				$('ConvictionDetails_field').addClass("hidden");
				$('ConvictionDetails').removeClass("jsmandatory");
				if ($('ConvictionDetails_error')) { $('ConvictionDetails_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}
	
	if ($('WhereDidYouHearAboutActiveAssistance') && $('WhereDidYouHearAboutActiveAssistanceOther_field')) {
		
		if ($('WhereDidYouHearAboutActiveAssistance').value != "Other") {
			$('WhereDidYouHearAboutActiveAssistanceOther_field').addClass("hidden");
			if ($('CWhereDidYouHearAboutActiveAssistanceOther_error')) { $('WhereDidYouHearAboutActiveAssistanceOther_error').addClass("hidden"); }
		}

		$('WhereDidYouHearAboutActiveAssistance').addEvent("change", function(e) {
			if ($('WhereDidYouHearAboutActiveAssistance').value == "Other") {
				$('WhereDidYouHearAboutActiveAssistanceOther_field').removeClass("hidden");
				$('WhereDidYouHearAboutActiveAssistanceOther').addClass("jsmandatory");
				if ($('WhereDidYouHearAboutActiveAssistanceOther_error')) { $('WhereDidYouHearAboutActiveAssistanceOther_error').removeClass("hidden"); }
			}
			else {
				$('WhereDidYouHearAboutActiveAssistanceOther_field').addClass("hidden");
				$('WhereDidYouHearAboutActiveAssistanceOther').removeClass("jsmandatory");
				if ($('WhereDidYouHearAboutActiveAssistanceOther_error')) { $('WhereDidYouHearAboutActiveAssistanceOther_error').addClass("hidden"); }
			}
			addHandlers();
		});

	}

	addHandlers();	
	
});