var prePickUpId = '0';
var preDropOffId = '0';

function checkQuote(theForm) {
	var quote_ref = theForm.ref.value;
	var quote = quote_ref.substring(3);
	var ValidNumChars = "0123456789";
	var IsQuoteNumber = true;
	
	for (i=0;i<quote.length&&IsQuoteNumber==true;i++) {
		Char=quote.charAt(i);
		
		if (ValidNumChars.indexOf(Char) == -1) {
			IsQuoteNumber=false;
		}
	}
	
	if (quote!=""&&quote.length>5) {
		if (IsQuoteNumber==true) {
			return true;
		} else {
			alert("The Quote must be 'OLQ' followed by 6 or more numbers");
			theForm.ref.focus();
			return false;
		}
	} else {
		alert("The Quote must be 'OLQ' followed by 6 or more numbers");
		theForm.ref.focus();
		return false;
	}
}

function getPickUpList(pickUpId, dropOffId) {
	$('#select_pick_up').children().remove();
	
	if ($('#input_country').val() > 0) {
		$('#select_pick_up').attr('disabled', '');
		$.getJSON('/includes/ajax/pickup_select.php','destination_id='+$('#input_country').val(),function(data) {
			$.each(data, function(id, row) {
				var selected = '';
				var sclass = '';
				
				if (isNumber(id)) {
					if (row.value == pickUpId) {
						selected = ' selected="selected"';
					}
					
					if (row.airport) {
						sclass = ' class="airportOption"';
					}
					
					$('#select_pick_up').append('<option value="'+row.value+'"'+selected+sclass+'>'+row.label+'</option>');	
				} else {
					$('#select_pick_up').append('<optgroup label="'+id+'">');	
					$.each(row, function(id2, row2) {
						selected = '';
						sclass = '';
						
						if (row2.value == pickUpId) {
							selected = ' selected="selected"';
						}
						
						if (row2.airport) {
							sclass = ' class="airportOption"';
						}
						
						$('#select_pick_up').append('<option value="'+row2.value+'"'+selected+sclass+'>'+row2.label+'</option>');	
					});
					$('#select_pick_up').append('</optgroup>');
				}
			});
			
			$('#input_location_id').val($('#select_pick_up').val());
			$('#input_location_id2').val($('#select_drop_off').val());
			
			if ($('#select_pick_up').val() == '0') {
				pickUpId = 0;
				dropOffId = 0;
			} else {
				if (dropOffId == 0) {
					dropOffId = pickUpId;
				}
			}
			
			getDropOffList(pickUpId,dropOffId);
		});
	}
}

function getDropOffList(pickupId, dropOffId) {
	$('#input_location_id').val(pickupId);
	$('#input_location_id2').val(dropOffId);
	$('#select_drop_off').children().remove();
	
	if (pickupId > 0) {
		$('#select_drop_off').attr('disabled', '');		
		$.getJSON('/includes/ajax/drop_off_select.php','location_id='+pickupId,function(data) {												
			$.each(data, function(id, row) {
				var selected = '';
				var sclass = '';
				
				if (row.value == dropOffId) {
					selected = ' selected="selected"';
				}
				
				if (row.airport) {
					sclass = ' class="airportOption"';
				}
				
				$('#select_drop_off').append('<option value="'+row.value+'"'+selected+sclass+'>'+row.label+'</option>');
			});
			
			$('#input_location_id2').val($('#select_drop_off').val());
		});
	}
}

function resetForm() {
	$('#countrySelect').toggle();
	$('#locationSelect').toggle();
	$('#locationSearch').toggle();
	$('#input_country').val('0');
	$('#location').val('');
	$('#input_location_id').val('0');
	$('#input_location_id2').val('0');
	$('#select_pick_up').children().remove();
	$('#select_drop_off').children().remove();
}

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

$(function() {
	$('#noScriptLink').hide();
	$('#formGetQuote').show();
	$('#quoteTabsForms').show();
	$('#locationSearch').hide();
	$('#returnQuestion').hide();
	//$('#countrySelect').hide();
	$('#select_pick_up').attr('disabled', 'disabled');
	$('#select_drop_off').attr('disabled', 'disabled');
	
	prePickUpId = $('#input_location_id').val();
	preDropOffId = $('#input_location_id2').val();

	if (prePickUpId != '0') {
		getPickUpList(prePickUpId,preDropOffId);
	}
	
	if (prePickUpId == preDropOffId) {
		//$('#returnSelect').hide();
	} else {
		$('#return').attr('checked','checked');
	}
	
	$('#location').autocomplete({
		source: "/includes/ajax/location_search.php",
		minLength: 3,
		select: function( event, ui ) {
			getDropOffList(ui.item.id,ui.item.id);
		}
	});
	
	$('#input_country').change(function() {
		getPickUpList(0,0);
	});
	
	$('#select_pick_up').change(function() {
		getDropOffList($(this).val(),$(this).val());
	});
	
	$('#select_drop_off').change(function() {
		$('#input_location_id2').val($(this).val());
	});
	
	$('#return').click(function() {
		if ($(this).is(':checked')) {
			$('#returnSelect').show();
		} else {
			$('#returnSelect').hide();
			$('#input_location_id2').val($('#input_location_id').val());
			$('#select_drop_off').val($('#input_location_id').val());
		}
	});
	
	$('#switchToSearch').click(function() {
		resetForm();	
		return false;
	});
	
	$('#switchToSelect').click(function() {
		resetForm();
		return false;
	});
	
	$("#location").focus(function(){
    	this.select();
	});
	
	$('#formCarHireQuote').submit(function() {						   
		var input_location_id = $('#input_location_id').val();
		var input_location_id2 = $('#input_location_id').val();
		var input_start_date = $('#date1').val();
		var start_date_array = input_start_date.split("/");
		var input_start_day = start_date_array[0];
		var input_start_month = start_date_array[1]-1;
		var input_start_year = start_date_array[2];
		
		if(input_start_year && input_start_year.length == 2){
			input_start_year = "20"+input_start_year;
		}
	
		var input_start_hour = $('#input_start_hour').val();
		var input_start_minute = $('#input_start_minute').val();
		var start_timestamp = new Date(input_start_year,input_start_month,input_start_day,input_start_hour,input_start_minute,0,0);
		var input_end_date = $('#date2').val();
		var end_date_array = input_end_date.split("/");
		var input_end_day = end_date_array[0];
		var input_end_month = end_date_array[1]-1;
		var input_end_year = end_date_array[2];
		
		if(input_end_year && input_end_year.length == 2){
			input_end_year = "20"+input_end_year;
		}
		
		var end_timestamp = new Date(input_end_year,input_end_month,input_end_day);
		var input_drivers_age = $('#input_drivers_age').val();
		var ValidNumChars = "0123456789";
		var IsNumber = true;
		
		for(i=0;i<input_drivers_age.length&&IsNumber==true;i++){
			Char=input_drivers_age.charAt(i);
			
			if(ValidNumChars.indexOf(Char)==-1){
				IsNumber=false;
			}
		}
		
		if(input_location_id > 0){
			if(input_location_id2 > 0){
				if(input_start_date != 'dd/mm/yyyy'){
					if(input_start_date != ''){
						if(start_date_array && start_date_array.length == 3){
							if(input_start_day > 0 && input_start_day < 32){
								if(input_start_month > -1&&input_start_month < 13){
									if(input_start_year > 2009){
										if(input_end_date != 'dd/mm/yyyy'){
											if(input_end_date != ''){
												if(end_date_array && end_date_array.length == 3){
													if(input_end_day > 0 && input_end_day < 32){
														if(input_end_month > -1 && input_end_month < 13){
															if(input_end_year > 2009){
																if(start_timestamp >= timestamp){
																	if(start_timestamp < end_timestamp){
																		if(input_drivers_age != '' && IsNumber==true){
																			return true;
																		}else{
																			alert('Please enter a valid drivers age');
																			$('#input_drivers_age').focus();
																			return false;
																		}
																	}else{
																		alert('The end date must be after the start date');
																		$('#date2').focus();
																		return false;
																	}
																}else{
																	if(today == 'Sat' || today== 'Sun'){
																		if(today == 'Sat'){
																			alert('A minimum of 54 hours notice is required to make a booking online on Saturdays. Please adjust your dates or call 0845 450 0877');
																		}
																		if(today == 'Sun'){
																			alert('A minimum of 48 hours notice is required to make a booking online on Sundays. Please adjust your dates or call 0845 450 0877');
																		}
																		$('#date1').focus();
																		return false;
																	}else{
																		alert('A minimum of 24 hours notice is required to make a booking. Please adjust your dates or call 0845 450 0877');
																		$('#date1').focus();
																		return false;
																	}
																}
															}else{
																alert('End Date must be in the format dd/mm/yyyy');
																$('#date2').focus();
																return false;
															}
														}else{
															alert('End Date must be in the format dd/mm/yyyy');
															$('#date2').focus();
															return false;
														}
													}else{
														alert('End Date must be in the format dd/mm/yyyy');
														$('#date2').focus();
														return false;
													}
												}else{
													alert('End Date must be in the format dd/mm/yyyy');
													$('#date2').focus();
													return false;
												}
											}else{
												alert('Please enter an end date');
												$('#date2').focus();
												return false;
											}
										}else{
											alert('Please enter an end date');
											$('#date2').focus();
											return false;
										}
									}else{
										alert('Invalid start year');
										$('#date1').focus();
										return false;
									}
								}else{
									alert('Invalid start month');
									$('#date1').focus();
									return false;
								}
							}else{
								alert('Invalid start day');
								$('#date1').focus();
								return false;
							}
						}else{
							alert('Start Date must be in the format dd/mm/yyyy');
							$('#date1').focus();return false;
						}
					}else{
						alert('Please enter a start date');
						$('#date1').focus();
						return false;
					}
				}else{
					alert('Please enter a start date');
					$('#date1').focus();
					return false;
				}
			}else{
				alert('You must choose a return location');
				$('#select_drop_off').focus();
				return false;
			}
		}else{
			alert('You must choose a location');
			return false;
		}
	});
});
