var Nobirds = {};

Nobirds.FlightChain = function (flightChainId, flights) {
    this.id = flightChainId;
    this.flights = flights;
}

Nobirds.FlightChain.prototype.constructor = Nobirds.FlightChain;
//Nobirds.FlightChain.prototype.flights = new Array();

//
// добавление рейса в цепочку
//
Nobirds.FlightChain.prototype.addFlight = function(flight) {
    this.flights.push(flight);
};

//
// является ли рейс стыковочным
//
Nobirds.FlightChain.prototype.isLinkedFlight = function() {
      return this.flights.length > 1;
};

//
// авиакомпания рейса
//
Nobirds.FlightChain.prototype.companyCode = function() {
     return this.flights[0].company;
};


//
// разрешено ли бронирование в направлении туда
//
Nobirds.FlightChain.prototype.isOneWayAllowed = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (flight.isOnlyRoundTrip || !flight.pricingAllowed) {
            return false;
        }
    }

    return true;
};

//
// бронирование в направлении только туда
//
Nobirds.FlightChain.prototype.isOnlyOneWay = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (flight.isOnlyOneWay) {
            return true;
        }
    }

    return false;
};

//
// бронирование в направлении только туда-обратно
//
Nobirds.FlightChain.prototype.isOnlyRoundTrip = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (flight.isOnlyRoundTrip) {
            return true;
        }
    }

    return false;
};

//
// тарификация запрещена
//
Nobirds.FlightChain.prototype.pricingAllowed = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (!flight.pricingAllowed) {
            return false;
        }
    }

    return true;
};

//
// есть ли места в цепочке
//
Nobirds.FlightChain.prototype.isHasPlaces = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (!flight.isHasPlaces) {
            return false;
        }
    }

    return true;
};

//
// есть ли места в цепочке
//
Nobirds.FlightChain.prototype.isOtherDisable = function() {
    for (var i = 0; i < this.flights.length; i++) {
        var flight = this.flights[i];
        if (flight.isOtherDisable) {
            return true;
        }
    }
    return false;
}

//
// задезейбливание строки по идентификатору цепочки
//
Nobirds.FlightChain.prototype.disableElement = function() {

}


Nobirds.Flight = function(company, num, pricingAllowed, isOnlyRoundTrip, isOnlyOneWay,isHasPlaces, isOtherDisable) {
    this.company = company;
    this.raceNum = num;
    this.pricingAllowed = pricingAllowed;
    this.isOnlyRoundTrip = isOnlyRoundTrip;
    this.isOnlyOneWay = isOnlyOneWay;
    this.isHasPlaces = isHasPlaces;
    this.isOtherDisable = isOtherDisable;
}

Nobirds.Flight.prototype.constructor = Nobirds.Flight;
