var galleryTimer;

var MooGallery = new Class({



	Implements: [Options, Chain, Events],

	initialize: function(element){

		this.element = element;		

		this.initScroller();

	},

	

	initScroller: function(){

		var that = this;

		var container = $(that.element);

		if (!container) {

			return;

		}

		

		var imgPreview = container.getElement('.preview');

		var imgs = imgPreview.getElements('img');

		var len = imgs.length;

		if(!len) return;

		var btns = container.getElements('li');

		if(btns.length != 4) return;

		var decription = container.getElement('.decription p');

		if(!decription) return;

		var current = 0;

		var forceWaiting = false;

		imgs.each(function(img, index){			

			imgs[index].fx = new Fx.Tween(imgs[index], {

				duration: 1500,

				property: 'opacity', 

				onComplete: function(){

					forceWaiting = false;

				}

			}).set(0);

			imgs[index].removeClass('hide');

		});

		imgs[0].fx.set(1);		

		decription.set('html', imgs[current].title);

		btns[0].set('html', '1/' + len);

		// prev

		btns[1].addEvent('click', function(e){

			if(e) e.stop();

			if(forceWaiting) return;

			forceWaiting = true;

			$clear(galleryTimer);	

			that.fadeIt(imgs[current], 0);

			if(current == 0){

				current = len - 1;

			}

			else{

				current--;

			}			

			that.fadeIt(imgs[current], 1);

			decription.set('html', imgs[current].title);

			btns[0].set('html', (current + 1) + '/' + len);

			if(!btns[2].isStop)

				autoRun();

		});

		btns[3].addEvent('click', function(e){

			if(e) e.stop();

			if(forceWaiting) return;

			forceWaiting = true;

			$clear(galleryTimer);			

			that.fadeIt(imgs[current], 0);

			if(current == len - 1){

				current = 0;

			}

			else{

				current++;

			}			

			that.fadeIt(imgs[current], 1);

			decription.set('html', imgs[current].title);

			btns[0].set('html', (current + 1) + '/' + len);

			if(!btns[2].isStop)

				autoRun();

		});

		btns[2].isStop = false;

		btns[2].addEvent('click', function(e){

			if(e) e.stop();

			btns[2].isStop = !btns[2].isStop;

			if(!btns[2].isStop){

				btns[2].getElement('img').set('src', btns[2].getElement('img').get('src').replace('play', 'stop'));

				btns[2].getElement('img').title = 'Stop';

				btns[2].getElement('img').alt = 'Stop';

				autoRun();

			}

			else{

				$clear(galleryTimer);

				btns[2].getElement('img').set('src', btns[2].getElement('img').get('src').replace('stop', 'play'));

				btns[2].getElement('img').title = 'Play';

				btns[2].getElement('img').alt = 'Play';

			}

		});

		function autoRun(){

			galleryTimer = setInterval(function(){

				btns[3].fireEvent('click');

			}, 5000);

		}

		autoRun();

	},

	fadeIt: function(el, to){

		if(to == 0){

			el.fx.start(0);

		}

		else{

			el.fx.start(1);

		}		

	}	

});



