var JFeedMoo = new Class({
	 initialize: function(elem,izq,der)
	{			
		
		this.mFeedItem = $(document.body).getElements(elem);
		this.mFeedHideOthers(this.mFeedItem, 0);
		this.elem = elem;
		this.length = this.mFeedItem.length;
		this.prev = izq;
		this.next = der;
		this.idx = 0;		
		this.slidesStatus = 'stop';
		this.enableButtons();		
	},
	
	play: function(aleatorio){
		this.disableButtons();
		this.hideItem(this.idx);
		
		if (aleatorio) {this.idx = Math.floor(Math.random()*(this.length)) }
		else {		
			++this.idx;
			if (this.idx >= this.length)
				this.idx = 0;
		}
		this.showItem(this.idx);
		if (this.slidesStatus == "play") {
			var elem = this;
			this.timeoutId = setTimeout(function() { elem.play(aleatorio); },elem.play_second);
		}			
	},
	
	playing: function(play_second,aleatorio){
		this.slidesStatus = 'play';
		this.play_second = play_second;
		var elem = this;
		this.timeoutId = setTimeout(function() { elem.play(aleatorio); },elem.play_second);
	},
	
	stoping: function(){
		this.slidesStatus = "stop";
		clearTimeout(this.timeoutId);
	},
	

	mFeedHideOthers: function(array, dontHide) {
		for (var n = 0; n < array.length; n++) {
			if (n != dontHide){
				$(array[n]).fade('hide');
			}else{
				$(array[n]).fade(1);			
			}
		}
	},
	
	mFeedNext: function () {
		if (this.slidesStatus == "play") this.stoping();
		this.disableButtons();
		this.hideItem(this.idx);
		++this.idx;
		if (this.idx >= this.length)
			this.idx = 0;
			
		this.showItem(this.idx);
		return false;
	},

	mFeedPrev: function () {
		if (this.slidesStatus == "play") this.stoping();
		this.disableButtons();
		this.hideItem(this.idx);
		--this.idx;
		if (this.idx < 0)
			this.idx = this.length  - 1;

		this.showItem(this.idx);
		return false;
	},

	hideItem: function(param){
		$(this.mFeedItem[param]).fade('out');	
		this.enableButtons();
	},
	
	showItem: function(param){
		$(this.mFeedItem[param]).fade('in');		
	},
	

	enableButtons: function(){
		$(this.prev).addEvent('click', this.mFeedPrev.bind(this));
		$(this.next).addEvent('click', this.mFeedNext.bind(this));
	},
	
	
	disableButtons: function(){
		$(this.prev).removeEvents('click');
		$(this.next).removeEvents('click')		
	}
});


	
