function collection() {
	 this.keys=[];

	this.length =0
	 
     this.add = function (key,newItem) {
          if (newItem == null) return;
          this.keys[this.keys.length] = key;

          this[key]=newItem;
          this.length ++
     }

     this.insertBefore = function (key,newItem, refKey) {
          if (newItem == null) return;
		  var idxRef=this.getIndex(refKey);
		  this.keys.splice(idxRef,0,key);
		  
          this[key]=newItem;
          this.length ++
     }
     this.insertAfter = function (key,newItem, refKey) {
          if (newItem == null) return;
		  var idxRef=this.getIndex(refKey)+1;
		  this.keys.splice(idxRef,0,key);
		  
          this[key]=newItem;
          this.length ++
     }

     this.remove = function(kindex){
     	  key	=this.getKey(kindex)
          index	=this.getIndex(kindex)
          

          this[key] = null;
          for (var i = index; i < this.keys.length; i++) this.keys[i] = this.keys[i + 1];
          this.keys.length--
          this.length --
          
     }
     this.getIndex=function(key){
     	if((key+'').isNumber()) return key;
     	for (var i = 0; i < this.keys.length; i++) if(this.keys[i]==key) return i
     	return null
     }
     this.getKey=function(idx){
     	if(!(idx+'').isNumber()) return idx;
     	if (idx < 0 || idx > this.keys.length ) return null;
     	return this.keys[idx]     	
     }
     
     
     this.clear = function(){

     	for (var i = 0; i < this.keys.length; i++)  this[this.keys[i]]=null
     	this.keys=[];
     	this.length =0;

     }
     this.item = function(kindex){
     	key	= this.getKey(kindex)

     	return this[key]
     }
     



}
