
function validateOneWayOrReturnDate(sender, args) {
	if (!$get(sender.multiCityRadioButtonClientID).checked) {
		validateDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateReturnDate(sender, args) {
	if ($get(sender.returnRadioButtonClientID).checked) {
		validateDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateInboundStopoverDate(sender, args) {
	if ($get(sender.stopoverRequiredCheckBoxClientID).checked && $get(sender.inboundStopoverRadioButtonClientID).checked) {
		validateReturnDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateOutboundStopoverDate(sender, args) {
	if ($get(sender.stopoverRequiredCheckBoxClientID).checked && $get(sender.outboundStopoverRadioButtonClientID).checked) {
		validateOneWayOrReturnDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateMultiCityDate(sender, args) {
	if ($get(sender.multiCityRadioButtonClientID).checked) {
		validateDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateOptionalMultiCityDate(sender, args) {
	if ($get(sender.multiCityDepartureTextBoxClientID).value != '' || $get(sender.multiCityArrivalTextBoxClientID).value != '') {
		validateMultiCityDate(sender, args);
	} else {
		args.IsValid = true;
	}
}

function validateDate(sender, args) {
	var result = Date.parseInvariant(args.Value + ' ' + $get(sender.monthDropDownListClientID).value, 'dd MMM yy');
	args.IsValid = (result != null);
	if (!args.IsValid) {
		sender.innerHTML = 'The selected date is not valid.';
	}
}