﻿/*

SIMPLE COLLECTION CLASS
+ add
+ remove
+ get

*/

//**************************************
//CONSTRUCTOR
//**************************************
function Collection() {

    //**************************************
    //  PROPERTIES
    //**************************************
   
    var __aCollection = new Array();

    //**************************************
    //  PRIVATE
    //**************************************


    //**************************************
    //  PUBLIC
    //**************************************
    
    //**************************************
    //  ADD ITEM TO COLLECTION
    //**************************************
    this.add = function(sName, oTarget) {
        var nLength = __aCollection.length;
        for(var i = 0; i < nLength; i++) {
            if(__aCollection.sName == sName) {
                return false;
            }
        }
        __aCollection.push({sName:sName, oTarget:oTarget})
        return true;
    }
    
    //**************************************
    //  REMOVE ITEM FROM COLLECTION
    //**************************************
    this.remove = function(sName) {
        var nLength = __aCollection.length;
        for(var i = 0; i < nLength; i++) {
            if(__aCollection[i].sName == sName) {
                __aCollection.splice(i,1);
                return true;
            }
        }
    }
    
    //**************************************
    //  REFERENCE ITEM FROM COLLECTION
    //**************************************
    this.getItem = function(sName) {
        var nLength = __aCollection.length;
        for(var i = 0; i < nLength; i++) {
             if(__aCollection[i].sName == sName) {
                return __aCollection[i].oTarget;
             }
        }
    }
    
    
    //**********************************
    //  RETURN ALL ITEMS
    //**********************************
    this.getAll = function() {
        return __aCollection;
    }
    
    //**********************************
    //  RETURN LENGTH
    //**********************************
    this.getLength = function() {
        return __aCollection.length;
    }
}

    

