//jQuery document ready handler
var context = "";
$(
	function() {

		var options = { minChars : 3, delay : 100, cacheLength : 15, width : 250, matchSubset : 0, selectFirst : true};

		$("#roundFromCityBox").autocomplete(context +"/suggest.do", options);
		$("#roundFromCityBox").blur(
			function(event) {
				populateHiddenElement($("#roundFromCityBox").val(), $("#from_CityF").get(0), "airport_code");
			}
		);

		$("#roundToCityBox").autocomplete(context +"/suggest.do", options);
		$("#roundToCityBox").blur(
			function(event) {
				populateHiddenElement($("#roundToCityBox").val(), $("#to_CityF").get(0), "airport_code");
			}
		);

		$("#pickCityBox").autocomplete(context +"/suggest.do", options);
		$("#pickCityBox").val($("#txtPickCity").val());
		$("#pickCityBox").blur(
			function(event) {
				populateHiddenElement($("#pickCityBox").val(), $("#txtPickCity").get(0), "airport_code");
			}
		);

		$("#dropCityBox").autocomplete(context +"/suggest.do", options);
		$("#dropCityBox").val($("#txtDropCity").val());
		$("#dropCityBox").blur(
			function(event) {
				populateHiddenElement($("#dropCityBox").val(), $("#txtDropCity").get(0), "airport_code");
			}
		);

		$("#oneWayFromCityBox").autocomplete(context +"/suggest.do", options);
		$("#oneWayFromCityBox").blur(
			function(event) {
				populateHiddenElement($("#oneWayFromCityBox").val(), $("#from_CityC").get(0), "airport_code");
			}
		);

		$("#oneWayToCityBox").autocomplete(context +"/suggest.do", options);
		$("#oneWayToCityBox").blur(
			function(event) {
				populateHiddenElement($("#oneWayToCityBox").val(), $("#to_CityC").get(0), "airport_code");
			}
		);

		$("#multiFromBox1").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox1").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox1").val(), $("#from_CityM1").get(0), "airport_code");
			}
		);

		$("#multiFromBox2").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox2").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox2").val(), $("#from_CityM2").get(0), "airport_code");
			}
		);

		$("#multiFromBox3").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox3").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox3").val(), $("#from_CityM3").get(0), "airport_code");
			}
		);

		$("#multiFromBox4").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox4").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox4").val(), $("#from_CityM4").get(0), "airport_code");
			}
		);

		$("#multiFromBox5").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox5").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox5").val(), $("#from_CityM5").get(0), "airport_code");
			}
		);

		$("#multiFromBox6").autocomplete(context +"/suggest.do", options);
		$("#multiFromBox6").blur(
			function(event) {
				populateHiddenElement($("#multiFromBox6").val(), $("#from_CityM6").get(0), "airport_code");
			}
		);

		$("#multiToBox1").autocomplete(context +"/suggest.do", options);
		$("#multiToBox1").blur(
			function(event) {
				populateHiddenElement($("#multiToBox1").val(), $("#to_CityM1").get(0), "airport_code");
			}
		);

		$("#multiToBox2").autocomplete(context +"/suggest.do", options);
		$("#multiToBox2").blur(
			function(event) {
				populateHiddenElement($("#multiToBox2").val(), $("#to_CityM2").get(0), "airport_code");
			}
		);

		$("#multiToBox3").autocomplete(context +"/suggest.do", options);
		$("#multiToBox3").blur(
			function(event) {
				populateHiddenElement($("#multiToBox3").val(), $("#to_CityM3").get(0), "airport_code");
			}
		);

		$("#multiToBox4").autocomplete(context +"/suggest.do", options);
		$("#multiToBox4").blur(
			function(event) {
				populateHiddenElement($("#multiToBox4").val(), $("#to_CityM4").get(0), "airport_code");
			}
		);

		$("#multiToBox5").autocomplete(context +"/suggest.do", options);
		$("#multiToBox5").blur(
			function(event) {
				populateHiddenElement($("#multiToBox5").val(), $("#to_CityM5").get(0), "airport_code");
			}
		);

		$("#multiToBox6").autocomplete(context +"/suggest.do", options);
		$("#multiToBox6").blur(
			function(event) {
				populateHiddenElement($("#multiToBox6").val(), $("#to_CityM6").get(0), "airport_code");
			}
		);

		$("#hotelCityBox").autocomplete(context +"/suggest.do", options);
		$("#hotelCityBox").parents("form").find(":submit, :image").click(
			function(event)
				{
					var significant = "airport_code";
					var selected = $("input[name='choose_page']:checked").val();
					if(selected == "city1" || selected == "address") {
						significant = "city";
					}
					populateHiddenElement($("#hotelCityBox").val(), $("#city").get(0), significant);
				}
		);
	}
);

function populateHiddenElement(value, hiddenElement, significant) {
	if(significant == null || significant.length <= 0) {
		significant = "airport_code";
	}
	var regExp = /\([a-zA-Z]{3}\)$/;
	if(value.match(regExp)) {
		if(significant == 'airport_code') {
			hiddenElement.value = value.substring(value.length - 4, value.length - 1);
		}
		else if(significant == 'city') {
			hiddenElement.value = value.substring(0, value.indexOf(','));
		}
	}
	else {
		hiddenElement.value = value;
	}
}

function bindBoltSuggestBoxes() {
	$("input[name='fromCityBox']").each(
		function(n) {
			$(this).autocomplete(context +"/suggest.do", { minChars : 3, delay : 100, cacheLength : 0, width : 250});
			$(this).blur(
				function(event) {
					var id = "from_City" +n;
					var hiddenElement = document.getElementById(id);
					var value = $(this).val();
					var regExp = /\([a-zA-Z]{3}\)$/;
					if(value.match(regExp)) {
						hiddenElement.value = value.substring(value.length - 4, value.length - 1);
					}
					else {
						hiddenElement.value = value;
					}
				}
			);
		}
	);

	$("input[name='toCityBox']").each(
		function(n) {
			$(this).autocomplete(context +"/suggest.do", { minChars : 3, delay : 100, cacheLength : 0, width : 250});
			$(this).blur(
				function(event) {
					var id = "to_City" +n;
					var hiddenElement = document.getElementById(id);
					var value = $(this).val();
					var regExp = /\([a-zA-Z]{3}\)$/;
					if(value.match(regExp)) {
						hiddenElement.value = value.substring(value.length - 4, value.length - 1);
					}
					else {
						hiddenElement.value = value;
					}
				}
			);
		}
	);
}

//jQuery animation code for slide effect on flight results
function bindAnimation() {
	$("#resultsArea table[number]")
		.each(
			function(n) {
				var index = $(this).attr("number");
				$("#detailLink" +index)
					.click(
						function(event) {
							//slide corresponding div
							$("#detail" +index).slideToggle("normal");
							//toggle text
							var innerText = $.trim($("#detailLink" +index).text());
							if(innerText == "+ Details") {
								$("#detailLink" +index).text("- Details");
							}
							else if(innerText == "- Details") {
								$("#detailLink" +index).text("+ Details");
							}
						}
					);
			}
		);

	$("#detailLink_dep")
		.click(
			function(event) {
				$("#detail_dep").slideToggle("normal");
				var innerText = $.trim($("#detailLink_dep").text());
				if(innerText == "+ Details") {
					$("#detailLink_dep").text("- Details");
				}
				else if(innerText == "- Details") {
					$("#detailLink_dep").text("+ Details");
				}
			}
		);
}