//fix cursor position in inpur box
function setCaretTo(obj, pos) {
	if(obj.createTextRange) {
		/* Create a TextRange, set the internal pointer to
		   a specified position and show the cursor at this
		   position
		*/
		var range = obj.createTextRange();
		range.move("character", pos);
		range.select();
	} else if(obj.selectionStart) {
		/* Gecko is a little bit shorter on that. Simply
		   focus the element and set the selection to a
		   specified position
		*/
		obj.focus();
		obj.setSelectionRange(pos, pos);
	}
}

//set the minimum purchase date
var min_purchase_date = "+2d";

var getMinDate = function(date_input){	

	return min_purchase_date;
}



//auto complete helper function to set hidden field value and set input to empty if empty result
function set_target_val(target, data) {
	target.val('');
	if (data && data.length > 1){
		target.val(data[1]);
	}
}

$j(document).ready(function(){
							
	//set start date of the Arrival city
	$j("#flightdepart").change(function(){
		//if($j("#flightreturn").val() == "mm/dd/yyyy"){
			$j("#flightreturn").val($j("#flightdepart").val());
		//}
	});
	
	//set up autocompete
	
	var autocomplete_url = (("https:" == document.location.protocol) ? "https://" : "http://") + document.domain + "/include/inc_php/flights/flightform_v2/air_list.php";
	var autocomplete_settings_obj = {
			minChars:3,
			width: 300,
			scrollHeight: 350,
			formatResult: function(data, i, total) { return (data && data.length > 1) ? data[2] : ' '; }
	};
	$j(".mtAirport_input_home").autocomplete(autocomplete_url, autocomplete_settings_obj);
	
	//handle results when item is selected
	$j(".mtAirport_input_home").result(function(event, data, formatted) {
		var x = $j(this).attr("id") + "Hidden";
		var target = $j("#" + x);
		var y = $j(this).attr("id");
		//alert(y);
		setCaretTo(document.getElementById(y),0);
		set_target_val(target, data);
	});


	//delete initial blank space
	$j("input[autocomplete='off']").keydown(function(evt) {
		var code = evt.keyCode;
		if ($j(this).val() == '' && code == 32)
			return false;
	});
	

	//home page additional options	
	$j("#mtAdditionalOptionsLink").click(function () {
		if($j("#mtHomeAdditionalOptions").is(":visible")){
			$j("#mtAdditionalOptionsLink").removeClass("mtAdditionalLinksImageOpen").addClass("mtAdditionalLinksImage").html("More Search Options");
			$j("#mtHomeAdditionalOptions").hide("slow");
			$j("#mtShowNumberOfConnections input").hide();
			$j("#mtClassType").hide();
		} else {
			$j("#mtClassType").show();
			$j("#mtAdditionalOptionsLink").removeClass("mtAdditionalLinksImage").addClass("mtAdditionalLinksImageOpen").html("Fewer Search Options");
			$j("#mtHomeAdditionalOptions").show("slow");
			$j("#mtShowNumberOfConnections input").show();
		}
	});
	
	//date picker options
	var date_options = 	{
		//minDate: getMinDate(),
		numberOfMonths: 2,
		duration: 'fast',
		showAnim: 'slide',
		showOptions: {direction: 'up'},
		beforeShow: function(input) {
			//get the min date value				
			$j(this).datepicker('option', 'minDate', getMinDate(this.title));
		}
	};
	
	//add the date picker
	$j('.mtDateInputHome').datepicker(date_options);	
	
	//home page number of connections
	$j("#mtNumberOfConnectionsCheckbox").click(function(){
		if($j("#mtShowNumberOfConnections").is(":visible")){
			$j("#mtShowNumberOfConnections").hide();
		} else {
			$j("#mtShowNumberOfConnections").show();
		}
	});
	
	//home page limit to specific airlines
	$j("#mtLimitAirlinesCheckbox").click(function(){
		$j("#mtShowSpecificAirlines:visible").hide("fast");
		$j("#mtShowSpecificAirlines:hidden").show("fast");
	});	
	
	/*
	//populate the hidden departure field
	$j('input[id^="mtDepartureCity"]').change(function(){
		var x = $j(this).val();	
		var y = $j(this).attr("title");		
		$j("#legs_" + y + "_departure_airport").val(x);								 
	});
	

	//populate the hidden destination field	
	$j('input[id^="mtDestinationCity"]').change(function(){
		var x = $j(this).val();	
		var y = $j(this).attr("title");	
		$j("#legs_" + y + "_arrival_airport").val(x);								 
	});	
	*/
	
	//populate the hidden departure date field
	//$j("#mtDepartureDateInput").change(function(){
	$j('input[id^="mtDepartureDateInput"]').change(function(){
		var datestring = $j(this).val().split("/");	
		var y = $j(this).attr("title");	
		$j("#legs_" + y + "_search_date_day").val(datestring[1]);			
		$j("#legs_" + y + "_search_date_month").val(datestring[0]);	
	});

	//populate the hidden destination date field
	$j("#mtReturnDateInput").change(function(){
		var datestring = $j(this).val().split("/");		
		$j("#round_trip_return_date_day").val(datestring[1]);			
		$j("#round_trip_return_date_month").val(datestring[0]);	
	});	
	
	//hide one way option when one way is selected
	$j("#mtFlightTypeOneWay").click(function(){		
		if($j("#mtFlightTypeOneWay").is(":checked")){
			$j("#mtReturnDate").hide();
		}
		$j('div[id^="mtFlightSegment"]').each(function(i){
			var x = $j(this).attr("id");
			var y = x.substring(15,16);
			//hide the extra segments if their visible
			if(y > 1){
				if($j(this).is(":visible")){
					$j(this).hide();
				}
			}
		});
	});
	
	//round trip selection
	$j("#mtFlightTypeRoundTrip").click(function(){		
		if($j("#mtReturnDate").is(":hidden")){
			$j("#mtReturnDate").show();
		}
		$j('div[id^="mtFlightSegment"]').each(function(i){
			var x = $j(this).attr("id");
			var y = x.substring(15,16);
			//hide the extra segments if their visible
			if(y > 1){
				if($j(this).is(":visible")){
					$j(this).hide();
				}
			}
		});
		$j("#mtFlightSegment1 .mtAirSearchBoxSubHead").hide();
	});
	
	// multi city selection 
	$j("#mtFlightTypeMultiCity").click(function(){		
		if(!$j("#mtReturnDate").is(":hidden")){
			$j("#mtReturnDate").hide();
		}
		if($j(".mtAddFlightContainer2").is(":hidden")){
			$j(".mtAddFlightContainer2").show();	
		}
		$j("#mtFlightSegment2").show();		
		$j("#mtFlightSegment1 .mtAirSearchBoxSubHead").show();
	});
	
	//on page load check to make sure return date is hidden if one way is selected
	if($j("#mtFlightTypeOneWay").is(":checked")){
		$j("#mtReturnDate").hide();			
	}
	
	//on page load if multi city is selected make sure the segments are showing
	if($j("#mtFlightTypeMultiCity").is(":checked")){
		if(!$j("#mtReturnDate").is(":hidden")){
			$j("#mtReturnDate").hide();
		}	
		$j("#mtFlightSegment2").show();
		$j("#mtFlightSegment1 .mtAirSearchBoxSubHead").show();
	}
	
	//on page load set number of children to 0
	$j("#mtNumberOfChildrenInput").val("0");
	
	//add another flight to multi city search
	$j(".mtAddAnotherFlight").click(function(){
		var x = $j(this).attr("title");			
		$j("#mtFlightSegment" + x).show();
		$j(this).parent(".mtAddFlightContainer" + x-1).hide();
		if($j(".mtAddFlightContainer" + x).is(":hidden")){
			$j(".mtAddFlightContainer" + x).show();	
		}
		return false;
	});
	
	//remove flight to multi city search
	$j(".mtRemoveFlight").click(function(){
		var x = $j(this).attr("title");			
		$j("#mtFlightSegment" + x).hide();
		var y = x-1;
		$j(".mtAddFlightContainer" + y).show();		
		return false;
	});
	
	//show children ages when children are selected
	$j("#mtNumberOfChildrenInput").click(function(){
		var y = parseInt($j(this).val());
		
		switch(y) {
			case 0: 
				if($j("#mtChildrenAges").is(":visible")){
					$j("#mtChildrenAges").hide();
					$j('div[id^="mtChildAge"]').each(function(i){
						if($j(this).is(":visible")){
							$j(this).hide();	
						}
					});
				}
			break;
			case 1:				
				$j("#mtChildrenAges").show();
				$j("#mtChildAge1").show();
				var x = 2;				
				while(x <= 5){
					$j("#mtChildAge" + x).hide();
					x++;
				}
			break;
			case 2: 
				$j("#mtChildrenAges").show();
				var x = 1;
				var y = 2;
				while(x <= y){					
					$j("#mtChildAge" + x).show();
					x++;
				}
				var x = 3;
				var y = 5;
				while(x <= y){
					$j("#mtChildAge" + x).hide();
					x++;
				}
			break;
			case 3:
				$j("#mtChildrenAges").show();			
				var x = 1;
				var y = 3;
				while(x <= y){
					$j("#mtChildAge" + x).show();
					x++;
				}
				var x = 4;
				var y = 5;
				while(x <= y){
					$j("#mtChildAge" + x).hide();
					x++;
				}			
			break;
			case 4: 
				$j("#mtChildrenAges").show();			
				var x = 1;
				var y = 4;
				while(x <= y){
					$j("#mtChildAge" + x).show();
					x++;
				}
				var x = 5;
				var y = 5;
				while(x <= y){
					$j("#mtChildAge" + x).hide();
					x++;
				}			
			break;
			case 5: 
				$j("#mtChildrenAges").show();
				var x = 1;
				var y = 5;
				while(x <= y){
					$j("#mtChildAge" + x).show();
					x++;
				}	
			break;
		}
	});
});