	//Collection.class.js
	
	function Collection()
	{
		this.db = new Array();
	}
		
	Collection.prototype.addElement = function (element, pos)
	{
		if(pos && pos<0) return;
		var size = this.getSize();
		if(size == 0)
		{
			this.db[0] = element;
			return 0;
		}
			
		if(!pos)
		{
			pos = size;
		}
		
		if(pos == size)
		{
			this.db[pos] = element;
			return pos;
		}		
		
		for(var i=0;i<size;i++)
		{
			if(i == pos)
			{
				var swap = this.db[i];
				this.db[i] = element;
				break;
			}
		}
		
		for(var j=i+1;j<size;j++)
		{
			var swap2 = this.db[j];
			this.db[j] = swap;
			swap = swap2;
		}
		
		this.db[size] = swap;
	}
	
	Collection.prototype.getElementPos = function(element)
	{
		for(var i=0;i<this.getSize();i++)
		{
			if(this.db[i] == element) return i;
		}
		return null;
	}
	
	Collection.prototype.getSize = function()
	{
		return this.db.length;
	}
	
	Collection.prototype.removeElement = function(pos)
	{
		if(pos<0 || pos>this.getSize()-1)
		{
			return null;
		}
		
		size = this.getSize();
		
		for(var i=pos;i<size-1;i++)
		{
			this.db[i] = this.db[i+1];
		}
		
		this.db.splice(size-1, 1[size-1]);
	}
	
	Collection.prototype.getElement = function(pos)
	{
		if(pos >= 0 && pos < this.getSize())
		{
			return this.db[pos];
		}
		return null;
	}
	
	Collection.prototype.updateElement = function(pos, element)
	{
		this.db[pos] = element;
	}
	
	Collection.prototype.updateElementPosition = function(olde, newe)
	{
		if(olde == newe) return;
		
		var swap = this.getElement(olde);
		
		if(newe < olde)
		{
			for(var i=olde;i>newe;i--)
			{
				this.db[i] = this.db[i-1];
			}
		}else
		{
			for(var i=olde;i<newe;i++)
			{
				this.db[i] = this.db[i+1];
			}
		}			
		this.db[newe] = swap;
	}
	
	Collection.prototype.getElements = function()
	{
		return this.db;
	}