var ChannelBrowser = Class.create({
	
	initialize: function(container,options) {
		this._container = $(container);
		this._sections = this.remove_ignore_elements(this._container.childElements());
		this._width = 243;
		this._prev = $('Channel_Brower_Left');
		this._next = $('Channel_Brower_Right');
		this._current = 0;
		this._slideDuration = .5;
		this._numOfStates = Math.ceil(this._sections.length / 3) - 1;
		this._moving = false;
		this.wire_up_buttons();
	},
	
	remove_ignore_elements: function(array){
		var tempArray = new Array();
		array.each(function(_item){
			if (_item.tagName != 'ignore')
				tempArray.push(_item);
		});
		return tempArray;
	},	
	
	wire_up_buttons: function(){
		this._prev.observe("click",this.prev.bind(this));
		this._next.observe("click",this.next.bind(this));
	},

	next: function(){
		if (!this._moving){
			if (this._current < this._numOfStates){
				this.move(-this._width);
				this._current++;
			}
		}
	},
	
	prev: function(){
		if (!this._moving){
			if (this._current > 0){
				this.move(this._width);
				this._current--;
			}
		}
	},
	
	move: function(x){
		this._moving = true;
		new Effect.Move(this._container, { 
			x: x, 
			y: 0,
			mode:'relative',
			duration: this._slideDuration,
			transition: Effect.Transitions.sinoidal,
			afterFinish: function(){
				this._moving = false;
			}.bind(this)
		});
	}

});
