﻿if ( !window.Entities )
    window.Entities = {};
    
Entities.Trip = function( xmlData )
{
    this.legs = [];
    this.price = null;
    
    if ( xmlData != undefined )
    {
        for ( var i=0; i<xmlData.childNodes.length; i++ )
        {
            if ( xmlData.childNodes[i].nodeName == "price" )
                this.price = xmlData.childNodes[i].childNodes[0].nodeValue;
            else if ( xmlData.childNodes[i].nodeName == "legs" )
            {
                for ( var j=0; j<xmlData.childNodes[i].childNodes.length; j++ )
                {
                    var tripLeg = new Entities.TripLeg( xmlData.childNodes[i].childNodes[j] );
                    this.legs[ this.legs.length ] = tripLeg;
                }
            }
        }
    }
}

Entities.Trip.prototype.price = null;
Entities.Trip.prototype.legs = [];

Entities.Trip.prototype.getPrice = function()
{
    return this.price;
}
Entities.Trip.prototype.getLegs = function()
{
    return this.legs;
}

Entities.Trip.prototype.isTrip = function( o )
{
    if (Object.getTypeName(o) == "Object")
    {
        var me = [ "legs","price" ];
        var he = this.getKeys( o );
        if ( me.length != he.length )
            return false;
        else
        {
            for ( var i=0; i<he.length; i++ )
                if ( !this.isInArray(me,he[i]) )
                    return false;
            return true;
        }
    }
    return false;
}

Entities.Trip.prototype.getKeys = function( o )
{
    if (o==undefined) o = this;
    var arr = [];
    for ( var j in o )
        arr.push(j);
    return arr;
}

Entities.Trip.prototype.isInArray = function(arr,item)
{
    for (var i=0; i<arr.length; i++)
        if ( arr[i] == item )
            return true;
    return false;
}