$(document).ready(function() {
	$(function() {


		$("#oneWay").click(oneWay);
		$("#oneWay").load(oneWay);
		
		var $dest = $("#destination");
		var $orig = $("#origin");
		var $allChildren = $dest.children();
		var $euston = $dest.children("[value=''],[value='EUS']");
		var $carlisle = $oxenholme = $warrington = $dest.children("[value=''],[value='EUS'],[value='GLC']");
		var $birminghamNewStreet = $dest.children("[value=''],[value='EUS'],[value='MKC'],[value='PRE'],[value='WFJ']");
		var $glasgow = $dest.children("[value=''],[value='CAR'],[value='EUS'],[value='OXN'],[value='PRE'],[value='WBQ']");
		var $manchester = $dest.children("[value=''],[value='EUS'],[value='MKC'],[value='WFJ'],[value='SOT']");
		var $miltonKeynes = $dest.children("[value=''],[value='BHM'],[value='EUS'],[value='MAN']");
		var $preston = $dest.children("[value=''],[value='BHM'],[value='EUS'],[value='GLC']");
		var $stoke = $dest.children("[value=''],[value='EUS'],[value='MAN']");
		var $watford = $dest.children("[value=''],[value='BHM'],[value='MAN']")
		var $allButEus = $dest.children("[value!='EUS']");
		
		$dest.attr({ disabled : "disabled" });
		$dest.val("");
		$orig.val("");
		$orig.change(function() {
			switch(this.value) {
				case "EUS":
					$dest.attr({disabled:""});
					$dest.empty().append($allButEus);
					$("#destination option[value='WFJ']").remove();
					$dest.val("");
					break;
				case "BHM":
					$dest.attr({disabled:""});
					$dest.empty().append($birminghamNewStreet);
					$dest.val("");
					break;
				case "CAR":
					$dest.attr({disabled:""});
					$dest.empty().append($carlisle);
					$dest.val("");
					break;
				case "GLC":
					$dest.attr({disabled:""});
					$dest.empty().append($glasgow);
					$dest.val("");
					break;
				case "MAN":
					$dest.attr({disabled:""});
					$dest.empty().append($manchester);
					$dest.val("");
					break;
				case "MKC":
					$dest.attr({disabled:""});
					$dest.empty().append($miltonKeynes);
					$dest.val("");
					break;
				case "OXN":
					$dest.attr({disabled:""});
					$dest.empty().append($oxenholme);
					$dest.val("");
					break;
				case "PRE":
					$dest.attr({disabled:""});
					$dest.empty().append($preston);
					$dest.val("");
					break;
				case "SOT":
					$dest.attr({disabled:""});
					$dest.empty().append($stoke);
					$dest.val("");
					break;
				case "WBQ":
					$dest.attr({disabled:""});
					$dest.empty().append($warrington);
					$dest.val("");
					break;
				case "WFJ":
					$dest.attr({disabled:""});
					$dest.empty().empty().append($watford);
					$dest.val("");
					break;
				case "":
					$dest.val("");
					$dest.attr({disabled:"disabled"});
					break;
				default:
					$dest.attr({disabled:""});
					$dest.empty().append($euston);
					$dest.val("");
					break;				
			}
		});
		
		$(".datepicker").datepicker({ 
			dateFormat: 'dd/mm/yy',
			minDate: new Date(),
			onSelect: function(dateText, inst) {
				var elemId = $(this).attr("id");
				var dateArr = dateText.split("/");
				if (elemId == "out") {
					$("#return").datepicker("option", "minDate", new Date(dateArr[2], dateArr[1]-1, dateArr[0]));
				} else if (elemId == "return") {
					$("#out").datepicker("option", "maxDate", new Date(dateArr[2], dateArr[1]-1, dateArr[0]));
				}
			}
		});
		
		$("form[name='bff']").submit(function(e) {
			var elem = $(this);
			return validate(elem);
		});
	
	});
});

function oneWay() {
	if (this.checked) {
		$("#return").attr({disabled:"disabled"});
	} else {
		$("#return").attr({disabled:""});
	}
}
function validate(elem) {
	var valid = true;
	$("#"+ elem.attr("id") +" .required").each(function() {
		var required = $(this);
		if (!required.val() && required.attr("disabled") != true) {
			required.siblings(".error").slideDown("fast");
			valid = false;
		} else {
			required.siblings(".error").slideUp("fast");
		}
	});
	return valid;
}


