﻿
var flightData;
var maxDate;

$(function() {
});

function InitFlights() {
    GetValidSectors();
    $('#FlightOut').change(BuildInDropdown);
}

function GetValidSectors() {
    $.post('/PortalModules/DirectoryModule/TripSelectorServices/FlightService.svc/GetValidSectors', "{junk:0}", BuildOutSectorDropdown, "json");
    $.post('/PortalModules/DirectoryModule/TripSelectorServices/FlightService.svc/GetMaxBookingDate', "{junk:0}", SetMaxDate, "json");
}

function BuildOutSectorDropdown(result) {
    flightData = JSON2.parse(result.d);
    for (var i = 0; i < flightData.length; i++) {
        $('#FlightOut').append('<option value=' + flightData[i].outAirportId + '>' + flightData[i].outAirportName + '</option>');
    }
}

//FIND A BETTER WAY TO GET THE SELECTED OUTBOUND AIRPORT FROM THE FLIGHTDATA OBJECT
function BuildInDropdown(e) {
    $('#FlightIn').empty();
    var outAirportId = $('#FlightOut').find('option:selected').val();
    if (outAirportId > 0) {
        for (var i = 0; i < flightData.length; i++) {
            if (flightData[i].outAirportId == outAirportId) {
                for (var j = 0; j < flightData[i].inAirports.length; j++) {
                    $('#FlightIn').append('<option value=' + flightData[i].inAirports[j].inAirportId + '>' + flightData[i].inAirports[j].inAirportName + '</option>');
                }
                break;
            }
        }
    }
}

function SetMaxDate(result) {
    maxDate = JSON2.parse(result.d).maxDate;
    SetDepartureDateRange();
    SetReturnDateRange();
}

function SetDepartureDateRange() {
    $('#FlightDepartureDate').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy/mm/dd',
        minDate: DateAdd('d', 1, d),
        showOn: 'both',
        buttonImage: 'images/calendar.gif',
        buttonImageOnly: true,
        onClose: function(selectedDate) {
            if (selectedDate != '') {
                var dt = new Date(selectedDate);
                $('#FlightReturnDate').datepicker('option', 'minDate', DateAdd('d', 1, dt));
            }
        },
        defaultDate: DateAdd('d', 1, d),
        maxDate: maxDate
    });

}

function SetReturnDateRange() {
    $('#FlightReturnDate').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'yy/mm/dd',
        minDate: DateAdd('d', 1, d),
        showOn: 'both',
        buttonImage: 'images/calendar.gif',
        buttonImageOnly: true,
        onClose: function(selectedDate) {
            if (selectedDate != '') {
                var dt = new Date(selectedDate);
                $('#FlightDepartureDate').datepicker('option', 'maxDate', DateAdd('d', -1, dt));
            }
        },
        defaultDate: DateAdd('d', 1, d),
        maxDate: maxDate
    });
}

function SubmitFlightForm() {
    var departureDate = new Date($('#FlightDepartureDate').datepicker('getDate'));
    var returnDate = new Date($('#FlightReturnDate').datepicker('getDate'));
    var searchData = {
        flightdata: {
            Source: "kulula-air",
            Url: "www.kulula.com",
            ReturnFlight: $('#FlightOneWayCheckbox').attr('checked'),
            DepartureAirportId: $('#FlightOut').find('option:selected').val(),
            DepartureAirportName: $('#FlightOut').find('option:selected').text(),
            DepartureDay: departureDate.getDate(),
            DepartureMonthYear: departureDate.getFullYear() + "-" + (departureDate.getMonth() + 1),
            ArrivalAirportId: $('#FlightIn').find('option:selected').val(),
            ArrivalAirportName: $('#FlightIn').find('option:selected').text(),
            ReturnDay: returnDate.getDate(),
            ReturnMonthYear: returnDate.getFullYear() + "-" + (returnDate.getMonth() + 1),
            NumberOfAdults: $('#FlightAdultCount').find('option:selected').val(),
            NumberOfChildren: $('#FlightChildCount').find('option:selected').val(),
            NumberOfInfants: $('#FlightInfantCount').find('option:selected').val()
        }
    };

    var json = JSON2.stringify(searchData);
    ajaxJsonPostFlight('BuildFlightForm', json, EndSubmitFlightForm, handleError);
    //$.post('/FlightService.svc/BuildFlightForm', json, EndSubmitFlightForm, "json");
}

function EndSubmitFlightForm(result) {
    $('#fFlight')
        .html(result.d)
        .submit();
}

