var Band 	= Dennis.Band  || {};

Band.Class = function()
{
	var _listeners = new Array();
	
	return {
		getType		: function()
		{
			return 'Band';
		}	
	};
};

Band.loadedBands = new Array();

Band.factory = function(bandId, bandLabel)
{
	var _band, _id, _label, _count, _active;
	
	
	_band = new Band.Class();
	
	_band = Dennis.addListenEvent(_band);
	
	_band.on('select', 'update', this);	
	
	var setActive = function(active)
	{
		_active = (active) ? true : false;
	};
	
	var getParent = function()
	{
		return _parent;
	};
	
	var setParent = function(parent)
	{
		_parent = parent;
	}
	
	var getActive = function()
	{
		return _active;
	};
	
	var setId = function(id) 
	{ 
		_id = id;
	};
	
	var getId = function()
	{
		return _id;
	};
	
	var getCount = function()
	{
		return _count;
	};
	
	var setCount = function(count)
	{
		_count = count;

		//alert(this.getId() + ': ' + _count + ':' + this.getCount());
	};
	
	var getLabel = function()
	{
		return _label;
	};
	
	var setLabel = function(label)
	{
		_label = label;
	};
	
	var update = function()
	{
		//alert('i be updating');
		var i, listeners = this.getListeners();
		
		for (i in listeners) {
			//alert(listeners[i].getType());
			listeners[i].fire('bandChange');
		}
	};
	

	
	_band.setActive = setActive;
	_band.getActive = getActive;
	_band.getId		= getId;
	_band.setId		= setId;
	_band.getCount	= getCount;
	_band.setCount	= setCount;
	_band.getLabel	= getLabel;
	_band.setLabel	= setLabel;
	_band.update	= update;
	
	_band.setId(bandId);
	_band.setLabel(bandLabel);
	Band.loadedBands.push(_band);	

	
	return _band;
};

Band.fetch = function(bandToFind) {
	var theBand;
	for (i=0; i<Band.loadedBands.length; i++) {
		if (Band.loadedBands[i]) {
			theBand = Band.loadedBands[i];
			if (theBand.getId() == bandToFind) {
				return theBand;
			}
		}
	}
	return false;
};


