﻿
// Airline : Represents an airline

Airline = createClass();
Airline.prototype.init = function(args) {
    /*
        code	: Airline code
		name	: Airline name
    */
	defaults = { code: "", name: "" };
	for(var pr in defaults)
		this[pr] = isDefined(args[pr]) ?args[pr] :defaults[pr];

	// Load details from json (usually downloaded from server)
	if(!(args instanceof Airline)) {
	    this.code = args.c;
	    this.name = args.n;
    }

	this.code = this.code.replace("_", "");
};

// Airlines : Represents a collection of airlines

Airlines = createSingleton(Airlines = {});
Airlines.prototype.init = function(args) {
	this.list = {};

    // Add an airline to list
    this.add = function(a) {
        this.list["_" + a.code] = a;
    };

	// Load details from json (usually downloaded from server)
	var arr = isArray(args) ?args :args.airlines;
	for(var i=0; i<arr.length; i++)
		this.add(new Airline(arr[i]));
	// For fares with multiple airlines (for eg. interlining)
	this.add(new Airline({c: "mult", n:"Multi Airlines"}));
};

// Static function to get airport obj from code
Airlines.get = function(code, pr) {
	var list = Airlines.getInstance().list;
	var obj = list["_" + code];
	if(isDefined(obj)) {
		if(isDefined(pr))
			obj = obj[pr];
	}
	else
	    obj = code;
	return obj;
};