﻿
$(document).ready(function() {
    ACSWebservice.GetFromCities("<Criteria xmlns='http://www.AirlineCS.com'><FromCityCriteria><AuthToken>" + querySt("Token") + "</AuthToken><OperatorID>" + _OperatorID + "</OperatorID></FromCityCriteria></Criteria>", PopulateFromCityObject);
    ACSWebservice.GetCabinTypes(_OperatorID, ShowCabinTypes);
    //Add events
    $('#ddFromCity').bind('change', PopulateFromCities);
    $('#ddToCity').bind('change', ValidateToCities);
    $('#btnSearch').bind('click', PopulateMovementFare);
    $('#chkOneWay').bind('click', EnableOneWay);
    $('#' + _flightSearchID + '_txtSelectedDepartureDate').bind('change', function() {
        if ($find(_flightSearchID + "_CalendarExtender1")) {
            $find(_flightSearchID + "_CalendarExtender2").set_selectedDate($find(_flightSearchID + "_CalendarExtender1").get_selectedDate());
        }
    });
    $('#' + _flightSearchID + '_txtSelectedReturnDate').bind('change', function() {
        $("#" + _flightSearchID + "_txtSelectedReturnDate").closeCallout();
    });
    $('#ddFromCity').addOption("-1", message, false);
    $('#ddToCity').addOption("-1", message, false);
    for (var i = 0; i <= 9; i++) {
        $('#ddAdult').addOption(i, i, (i == 1) ? true : false);
        $('#ddChild').addOption(i, i, false);
        $('#ddInfants').addOption(i, i, false);
    }
    for (var i = 1; i <= 5; i++) {
        $('#ddDatesPlus').addOption(i, i, (i == 1) ? true : false);
    }
    $("#chkExactDatesOnly").attr("checked", "checked");
    $('#chkExactDatesOnly').bind('click', RangeSelectionDisabled);
    $('#chkDatesPlus').bind('click', RangeSelectionEnabled);
    $("#ddDatesPlus").attr("disabled", "disabled");
    $('#ddCabin').addOption("-1", message, false);
    $('#LoadingDiv').hide();
    if (_ShowCabin == 1) {
        $('#CABINDIV').show();        
    }
    else {
        $('#CABINDIV').hide();
    }
    

});

function RangeSelectionEnabled() {
    $("#ddDatesPlus").attr("disabled", "");
}

function RangeSelectionDisabled() {
    $("#ddDatesPlus").attr("disabled", "disabled");
}

function EnableOneWay() {
	if ($('#chkOneWay').attr("checked")) {
		$('#ReturnDate *').each(function() {
			$(this).attr("disabled", "disabled");
		});
	}
	else {
		$('#ReturnDate *').each(function() {
			$(this).attr("disabled", "");
		});
	}
}

function ShowCabinTypes(result) {
    var ddCabin = $('#ddCabin');
    ddCabin.removeOption(/./).removeOption("-1", message, true);
    $(result).find("CabinType").each(function() {
        var optValue = $(this).find('CabinTypeID').text();
        var optText = $(this).find('CustomName').text();
        ddCabin.addOption(optValue, optText, false);        
    });
    ddCabin.width(80);// works for all browsers/ not dynamic
    
}

function PopulateFromCityObject(result) {
    var ddFromCities = $('#ddFromCity');
    ddFromCities.removeOption(/./).addOption("-1", message,true);
    $(result).find("City").each(function() {
        var optValue = $(this).find('ID').text();
        var optText = $(this).find('Name').text();
        ddFromCities.addOption(optValue, optText, false);
    });
    $('#ddToCity').width($('#ddFromCity').width());
}

function ValidateToCities() {
	if ($("#ddToCity").val() == "-1") {
		$("#validationContent").html(departpoint);
		$("#ddToCity").callout({ width: 200, className: "alert", cornerRadius: 8, showCallback: onAlertShowing, content: "#validationContent", region: "#validationAlert" });
	}
	else {
		$("#ddToCity").closeCallout();
	}
}

function PopulateFromCities() {
	if ($("#ddFromCity").val() == "-1") {
		$("#validationContent").html(arrivalpoint);
		$("#ddFromCity").callout({ width: 200, className: "alert", cornerRadius: 8, showCallback: onAlertShowing, content: "#validationContent", region: "#validationAlert" });
	}
	else {
		$("#ddFromCity").closeCallout();
	}
	
	$('#LoadingDiv').show();
    var ToCity = "<Criteria xmlns='http://www.AirlineCS.com'>" +
      "<ToCityCriteria>" +
        "<AuthToken>" + querySt("Token") + "</AuthToken>" +
        "<OperatorID>" + _OperatorID + "</OperatorID>" +
        "<FromCityID>" + $('#ddFromCity').val() + "</FromCityID>" +
      "</ToCityCriteria>" +
    "</Criteria>";
    ACSWebservice.GetToCities(ToCity,PopulateToCityObject);
}

function PopulateToCityObject(result) {
    var ddToCities = $('#ddToCity');
    ddToCities.removeOption(/./).addOption("-1", message,true);
    $(result).find("City").each(function() {
        var optValue = $(this).find('ID').text();
        var optText = $(this).find('Name').text();
        ddToCities.addOption(optValue, optText, false);
       });
       $('#LoadingDiv').hide();
       if ($('#ddFromCity').width() > $('#ddFromTo').width()) {
           $('#ddFromTo').width($('#ddFromCity').width());
       }
       else {
           $('#ddFromFrom').width($('#ddFromTo').width());
       }
}

function PopulateMovementFare() {
	if ($("#ddFromCity").val() == "-1") {
		$("#validationContent").html(departpoint);
		$("#ddFromCity").callout({ width: 200, className: "alert", cornerRadius: 8, showCallback: onAlertShowing, content: "#validationContent", region: "#validationAlert" });
		return;
	}
	
	if ($("#ddToCity").val() == "-1") {
		$("#validationContent").html(arrivalpoint);
		$("#ddToCity").callout({ width: 200, className: "alert", cornerRadius: 8, showCallback: onAlertShowing, content: "#validationContent", region: "#validationAlert" });
		return;
    }

    if ($find(_flightSearchID + "_CalendarExtender1").get_selectedDate() > $find(_flightSearchID + "_CalendarExtender2").get_selectedDate()) {
        $("#validationContent").html(dateErr);
        $("#" + _flightSearchID + "_txtSelectedReturnDate").callout({ width: 200, className: "alert", cornerRadius: 8, showCallback: onAlertShowing, content: "#validationContent", region: "#validationAlert" });
        return;
    }


	$('#LoadingDiv').show();
	var startDate = $find(_flightSearchID + "_CalendarExtender1").get_selectedDate();
	var returnDate = $find(_flightSearchID + "_CalendarExtender2").get_selectedDate();
	var booking = "Booking.aspx?";
	booking += "FromCity=" + $('#ddFromCity').val();
	booking += "&ToCity=" + $('#ddToCity').val();
	booking += "&StartDate=" + GetFormattedDate(startDate);
	booking += "&ReturnDate=" + GetFormattedDate(returnDate);
	booking += "&OneWay=" + $('#chkOneWay').attr("checked");
	booking += "&Adult=" + $("#ddAdult").val();
	booking += "&Child=" + $("#ddChild").val();
	booking += "&Infants=" + $("#ddInfants").val();
	booking += "&Range=" + (($("#chkExactDatesOnly").attr("checked")) ? "0" : $("#ddDatesPlus").val());
	booking += (querySt("Token") != "") ? "&Token=" + querySt("Token") : "";
	booking += "&OperatorID=" + _OperatorID;
	booking += "&Cabin=" + (($("#ddCabin").val().length != 0) ? $("#ddCabin").val() : 1);
	booking += "&NewBookingUrl=" + _NewBookingURL;
	window.parent.location = booking;
}

