$(document).ready(function()
	{
		$('form.validate').validate(
			{
				errorElement : 'span',
				errorPlacement : function(error, element)
					{
						error.appendTo( element.parent() );
					}
			}
		);
		var employmentStatus = $('form.validate select[name=employmentStatus]');
		if(employmentStatus.length) {
			employmentStatus.change(function()
				{
					if($(this).val() == '' || $(this).val().toLowerCase() == 'unemployed') {
						hideFields('form.validate .field_occupation');
					} else {
						showFields('form.validate .field_occupation');
					}
				}
			);
			if(employmentStatus.val() == '' || employmentStatus.val().toLowerCase() == 'unemployed') {
				hideFields('form.validate .field_occupation');
			} else {
				showFields('form.validate .field_occupation');
			}
		}
		var classOfUse = $('form.validate select[name=classOfUse]');
		if(classOfUse.length) {
			classOfUse.change(function()
				{
					if($(this).val().toLowerCase() != 'business use') {
						hideFields('form.validate .field_business_mileage');
					} else {
						showFields('form.validate .field_business_mileage');
					}
				}
			);
			if(classOfUse.val().toLowerCase() != 'business use') {
				hideFields('form.validate .field_business_mileage');
			} else {
				showFields('form.validate .field_business_mileage');
			}
		}

		var additionalDrivers = $('form.validate select[name=additionalDrivers]');

		if(additionalDrivers.length) {
			var enableAdditionalDrivers = false;
			additionalDrivers.change(function()
				{
					if($(this).val() == '' || $(this).val().toLowerCase() == 'policy holder only') {
						hideFields('form.validate .additionalDriver1, form.validate .additionalDriver2, form.validate .additionalDriver3');
						enableAdditionalDrivers = false;
						updateBoxColours();
					} else {
						showFields('form.validate .additionalDriver1, form.validate .additionalDriver2.enabled, form.validate .additionalDriver3.enabled');
						enableAdditionalDrivers = true;
						updateBoxColours();
					}
				}
			);
			if(additionalDrivers.val() == '' || additionalDrivers.val().toLowerCase() == 'policy holder only') {
				hideFields('form.validate .additionalDriver1, form.validate .additionalDriver2, form.validate .additionalDriver3');
			} else {
				showFields('form.validate .additionalDriver1,  form.validate .additionalDriver2.enabled, form.validate .additionalDriver3.enabled');
				enableAdditionalDrivers = true;
			}
			var additionalDriver = $('form.validate input[name=additionalDriver1_additionalDriver]');
			additionalDriver.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .additionalDriver2').addClass('enabled');
						if(enableAdditionalDrivers) {
							showFields('form.validate .additionalDriver2, form.validate .additionalDriver3.enabled');
							updateBoxColours();
						}
					} else {
						$('form.validate .additionalDriver2').removeClass('enabled');
						hideFields('form.validate .additionalDriver2, form.validate .additionalDriver3');
						updateBoxColours();
					}
				}
			);
			if(additionalDriver.is(':checked')) {
				$('form.validate .additionalDriver2').addClass('enabled');
				if(enableAdditionalDrivers) {
					showFields('form.validate .additionalDriver2, form.validate .additionalDriver3.enabled');
				}
			} else {
				$('form.validate .additionalDriver2').removeClass('enabled');
				hideFields('form.validate .additionalDriver2, form.validate .additionalDriver3');
			}
			additionalDriver = $('form.validate input[name=additionalDriver2_additionalDriver]');
			additionalDriver.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .additionalDriver3').addClass('enabled');
						if(enableAdditionalDrivers) {
							showFields('form.validate .additionalDriver3');
							updateBoxColours();
						}
					} else {
						$('form.validate .additionalDriver3').removeClass('enabled');
						hideFields('form.validate .additionalDriver3');
						updateBoxColours();
					}
				}
			);
			if(additionalDriver.is(':checked')) {
				$('form.validate .additionalDriver3').addClass('enabled');
				if(enableAdditionalDrivers) {
					showFields('form.validate .additionalDriver3');
				}
			} else {
				$('form.validate .additionalDriver3').removeClass('enabled');
				hideFields('form.validate .additionalDriver3');
			}
		}


		var claims = $('form.validate input[name=claims]');

		if(claims.length) {
			var enableAdditionalClaims = false;
			claims.change(function()
				{
					if($(this).val() == '' || $(this).val().toLowerCase() == 'no') {
						hideFields('form.validate .claim1, form.validate .claim2, form.validate .claim3');
						enableAdditionalClaims = false;
						updateBoxColours();
					} else {
						showFields('form.validate .claim1, form.validate .claim2.enabled, form.validate .claim3.enabled');
						enableAdditionalClaims = true;
						updateBoxColours();
					}
				}
			);
			var claimsVal = claims.filter(':checked'), val = '';
			if(claimsVal.length) {
				val = claimsVal.val();
			}
			if(val == '' || val.toLowerCase() == 'no') {
				hideFields('form.validate .claim1, form.validate .claim2, form.validate .claim3');
			} else {
				showFields('form.validate .claim1, form.validate .claim2.enabled, form.validate .claim3.enabled');
				enableAdditionalClaims = true;
			}
			var additionalClaim = $('form.validate input[name=claim1_additionalClaim]');
			additionalClaim.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .claim2').addClass('enabled');
						if(enableAdditionalClaims) {
							showFields('form.validate .claim2, form.validate .claim3.enabled');
							updateBoxColours();
						}
					} else {
						$('form.validate .claim2').removeClass('enabled');
						hideFields('form.validate .claim2, form.validate .claim3');
						updateBoxColours();
					}
				}
			);
			if(additionalClaim.is(':checked')) {
				$('form.validate .claim2').addClass('enabled');
				if(enableAdditionalClaims) {
					showFields('form.validate .claim2, form.validate .claim3.enabled');
				}
			} else {
				$('form.validate .claim2').removeClass('enabled');
				hideFields('form.validate .claim2, form.validate .claim3');
			}
			additionalClaim = $('form.validate input[name=claim2_additionalClaim]');
			additionalClaim.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .claim3').addClass('enabled');
						if(enableAdditionalClaims) {
							showFields('form.validate .claim3');
							updateBoxColours();
						}
					} else {
						$('form.validate .claim3').removeClass('enabled');
						hideFields('form.validate .claim3');
						updateBoxColours();
					}
				}
			);
			if(additionalClaim.is(':checked')) {
				$('form.validate .claim3').addClass('enabled');
				if(enableAdditionalClaims) {
					showFields('form.validate .claim3');
				}
			} else {
				$('form.validate .claim3').removeClass('enabled');
				hideFields('form.validate .claim3');
			}
		}

		var convictions = $('form.validate input[name=convictions]');

		if(convictions.length) {
			var enableAdditionalConvictions = false;
			convictions.change(function()
				{
					if($(this).val() == '' || $(this).val().toLowerCase() == 'no') {
						hideFields('form.validate .conviction1, form.validate .conviction2, form.validate .conviction3');
						enableAdditionalConvictions = false;
						updateBoxColours();
					} else {
						showFields('form.validate .conviction1, form.validate .conviction2.enabled, form.validate .conviction3.enabled');
						enableAdditionalConvictions = true;
						updateBoxColours();
					}
				}
			);
			var convictionsVal = convictions.filter(':checked'), val = '';
			if(convictionsVal.length) {
				val = convictionsVal.val();
			}
			if(val == '' || val.toLowerCase() == 'no') {
				hideFields('form.validate .conviction1, form.validate .conviction2, form.validate .conviction3');
			} else {
				showFields('form.validate .conviction1, form.validate .conviction2.enabled, form.validate .conviction3.enabled');
				enableAdditionalConvictions = true;
			}
			var additionalConviction = $('form.validate input[name=conviction1_additionalConviction]');
			additionalConviction.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .conviction2').addClass('enabled');
						if(enableAdditionalConvictions) {
							showFields('form.validate .conviction2, form.validate .conviction3.enabled');
							updateBoxColours();
						}
					} else {
						$('form.validate .conviction2').removeClass('enabled');
						hideFields('form.validate .conviction2, form.validate .conviction3');
						updateBoxColours();
					}
				}
			);
			if(additionalConviction.is(':checked')) {
				$('form.validate .conviction2').addClass('enabled');
				if(enableAdditionalConvictions) {
					showFields('form.validate .conviction2, form.validate .conviction3.enabled');
				}
			} else {
				$('form.validate .conviction2').removeClass('enabled');
				hideFields('form.validate .conviction2, form.validate .conviction3');
			}
			additionalConviction = $('form.validate input[name=conviction2_additionalConviction]');
			additionalConviction.change(function()
				{
					if($(this).is(':checked')) {
						$('form.validate .conviction3').addClass('enabled');
						if(enableAdditionalConvictions) {
							showFields('form.validate .conviction3');
							updateBoxColours();
						}
					} else {
						$('form.validate .conviction3').removeClass('enabled');
						hideFields('form.validate .conviction3');
						updateBoxColours();
					}
				}
			);
			if(additionalConviction.is(':checked')) {
				$('form.validate .conviction3').addClass('enabled');
				if(enableAdditionalConvictions) {
					showFields('form.validate .conviction3');
				}
			} else {
				$('form.validate .conviction3').removeClass('enabled');
				hideFields('form.validate .conviction3');
			}
		}
		var noClaims = $('form.validate select[name=noClaims]');
		if(noClaims.length) {
			noClaims.change(function()
				{
					var val = $(this).val().toLowerCase();
					if(val == '4 years' || val == '5 years' || val == '5 years plus') {
						showFields('form.validate .field_protect');
					} else {
						hideFields('form.validate .field_protect');
					}
				}
			);
			var val = noClaims.val().toLowerCase();
			if(val == '4 years' || val == '5 years' || val == '5 years plus') {
				showFields('form.validate .field_protect');
			} else {
				hideFields('form.validate .field_protect');
			}

		}

		var registeredOwner = $('form.validate input[name=registeredOwner]');

		if(registeredOwner.length) {
			registeredOwner.change(function()
				{
					if($(this).val() == '' || $(this).val().toLowerCase() == 'yes') {
						hideFields('form.validate .field_relationship');
					} else {
						showFields('form.validate .field_relationship');
					}
				}
			);
			var registeredOwnerVal = registeredOwner.filter(':checked'), val = '';
			if(registeredOwnerVal.length) {
				val = registeredOwnerVal.val();
			}
			if(val == '' || val.toLowerCase() == 'yes') {
				hideFields('form.validate .field_relationship');
			} else {
				showFields('form.validate .field_relationship');
			}
		}
		var contact = $('form.validate input[name~=contactPrefs]');
		if(contact.length) {
			contact.rules('add', {required:true});
		}
		var foundOut = $('form.validate select[name=foundOut]');
		if(foundOut.length) {
			foundOut.change(function()
				{
					var val = $(this).val().toLowerCase();
					if(val == 'other' || val == 'other search engine') {
						showFields('form.validate .field_foundOutOther');
					} else {
						hideFields('form.validate .field_foundOutOther');
					}
				}
			);
			var val = foundOut.val().toLowerCase();
			if(val == 'other' || val == 'other search engine') {
				showFields('form.validate .field_foundOutOther');
			} else {
				hideFields('form.validate .field_foundOutOther');
			}
		}
		//Do this last so we don't have to do it more than once when initing the page.
		updateBoxColours();
	}
);
