Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXTravel/DXTravel.Web/Views/
Upload File :
Current File : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXTravel/DXTravel.Web/Views/Index.js

DXTravel.Index = function(params) {

    var model = {
        greatTravelPackages: DXTravel.LOCAL_DATA.suggestedLocations,
        recommendedTravels: DXTravel.LOCAL_DATA.suggestedLocations.slice(0, 3),
        airportAutocompleteSource: DXTravel.FlightUtils.airportAutocompleteSource,
        outboundDate: ko.observable(),
        inboundDate: ko.observable(),
        fromAirportLocation: ko.observable(""),
        toAirportLocation: ko.observable(""),
        fromAirport: ko.observable(""),
        toAirport: ko.observable(""),
        navigation: DXTravel.navigation,
        searchIsCompleted: DXTravel.FlightUtils.searchIsCompleted,
        viewShowing: DXTravel.viewShowing
    };
    
    model.fromNotFill = ko.observable(false);
    model.departureDateNotFill = ko.observable(false);
    model.toNotFill = ko.observable(false);
    model.returnDateNotFill = ko.observable(false);

    model.fromAirportLocation.subscribe(function (value) {
        if (!model.fromAirport())
            model.fromAirport(value);
    });

    model.toAirportLocation.subscribe(function (value) {
        if (!model.toAirport())
            model.toAirport(value);
    });

    model.fromAirportSelectCallback = function(event, ui) {
        model.fromAirport(ui.item.code);
        sessionStorage.setItem("fromAirportLocation", ui.item.value);
        model.fromNotFill(false);
    };

    model.toAirportSelectCallback = function(event, ui) {
        model.toAirport(ui.item.code);
        sessionStorage.setItem("toAirportLocation", ui.item.value);
        model.toNotFill(false);
    };

    model.outboundDate.subscribe(function(date) {
        if(date)
            model.departureDateNotFill(false);
    });

    model.inboundDate.subscribe(function(date) {
        if(date)
            model.returnDateNotFill(false);
    });

    model.findFlights = function() {
        if(!model.fromAirport())
            model.fromNotFill(true);

        if(!model.outboundDate())
            model.departureDateNotFill(true);

        if(!model.toAirport())
            model.toNotFill(true);

        if(!model.inboundDate())
            model.returnDateNotFill(true);

        if(model.fromNotFill() || model.departureDateNotFill() || model.toNotFill() || model.returnDateNotFill())
            return;

        var url = "FindFlight/" + model.fromAirport().toUpperCase() +
                  "/" + model.toAirport().toUpperCase() +
                  "/" + Globalize.format(new Date(model.outboundDate()), "yyyy-MM-dd") +
                  "/" + Globalize.format(new Date(model.inboundDate()), "yyyy-MM-dd");

        DXTravel.app.navigate(url);
    };
    return model;
};