var Stage = Class.create();

var timeout;
var containerEnd;
var containerFirst;
var locked;
var lastTimeout;

Stage.prototype = {
	settings: {
		'lastPositionInt': 0,
		'duration': 0.6
	},
	initialize: function () {
			$$(".contenedor").each(function (element) {
				element.style.display = 'none';
				element.identify();
				containerEnd = element;
			});
			containerFirst					 = $$(".contenedor")[0];
//			IcontainerFirst					 = $$("#itemsImages li")[0];
			containerFirst.style.display = '';
			//alert(containerFirst.identify());
			$$("#itemsImages li a").each(function (elementID) {
				elementID.observe('click', function (event) {
					event.stop();
					Stage.prototype.moveImages(elementID);
				});
			});
	
			
			locked      = false;		
			lastTimeout = setTimeout("Stage.prototype.slideToNext()", 10000);
	},
	slideToNext: function() {
		if(!locked)
		{
			clearInterval(lastTimeout);
			locked = true;
			currentElement = this.returnCurrentElemnt();
			if(containerEnd == currentElement)
			{
				new Effect.Fade(currentElement, {
					duration: this.settings['duration']});
					
				new Effect.Appear(containerFirst, {
						duration: this.settings['duration'],
						afterFinish: function () {
							locked = false;
						}
					});
					idItem 			= parseInt(containerFirst.identify().replace(/anonymous_element_/g, ''))-1;
					IcontainerFirst	= $$("#itemsImages li a")[idItem];
					IcontainerFirst.id = 'selected';
					
					idItem1 			= parseInt(currentElement.identify().replace(/anonymous_element_/g, ''))-1;
					IcontainerFirst1	= $$("#itemsImages li a")[idItem1];
					IcontainerFirst1.id = '';
					lastTimeout = setTimeout("Stage.prototype.slideToNext()", 10000);
			}
			else
			{
				clearInterval(lastTimeout);
				nextElement = currentElement.next();

				new Effect.Fade(currentElement, {
					duration: this.settings['duration']});
					
				new Effect.Appear(nextElement, {
					duration: this.settings['duration'],
					afterFinish: function () {
						locked = false;
					}
				});
				idItem 			= parseInt(nextElement.identify().replace(/anonymous_element_/g, ''))-1;
				IcontainerFirst	= $$("#itemsImages li a")[idItem];
				IcontainerFirst.id = 'selected';
				
				idItem1 			= parseInt(currentElement.identify().replace(/anonymous_element_/g, ''))-1;
				IcontainerFirst1	= $$("#itemsImages li a")[idItem1];
				IcontainerFirst1.id = '';
				lastTimeout = setTimeout("Stage.prototype.slideToNext()", 3000);
			}
		}
	},
	slideToPrevious: function() {
		if(!locked)
		{		
			locked = true;	
			currentElement = this.returnCurrentElemnt();	
			if(currentElement == containerFirst)
			{
				clearInterval(lastTimeout);
				new Effect.Fade(containerFirst, {
					duration: this.settings['duration']});
				new Effect.Appear(containerEnd, {
					duration: this.settings['duration'],
					afterFinish: function () {
						locked = false;
					}
				});
				lastTimeout = setTimeout("Stage.prototype.slideToNext()", 3000);
			}
			else
			{
				clearInterval(lastTimeout);
				nextElement = currentElement.previous();
				new Effect.Fade(currentElement, {
					duration: this.settings['duration']});
				new Effect.Appear(nextElement, {
					duration: this.settings['duration'],
					afterFinish: function () {
						locked = false;
					}
				});	
				lastTimeout = setTimeout("Stage.prototype.slideToNext()", 3000);		
			}
		}
	},
	returnCurrentElemnt: function () {
		var currrent,currrentNone = 0
		$$(".contenedor").each(function (element) {
			if(element.style.display == '')
			{
					currrent = element;
					currrentNone = 1;
			}
		});
		if(currrentNone == 0)
		{
			$$(".contenedor").each(function (element) {
				element.style.display = '';
			});
			return containerFirst;
		}
		else	
			return currrent;
	},	
	getCurrentPositionInt: function () {
		var left = containerEnd.getStyle('left');
		return parseInt(left.replace(/px/g, ''))
	},
	moveImages: function (itemsID) {
		clearInterval(lastTimeout);
		var ImageID 	= parseInt(itemsID.innerHTML)-1;
		containerSecond	= $$(".contenedor")[ImageID];
		$$(".contenedor").each(function (element) {
			element.style.display = 'none';
		});
		$$("#itemsImages li a").each(function (element) {
			element.id = '';
		});
		locked = true;
		new Effect.Appear(containerSecond, {
			duration: this.settings['duration'],
			afterFinish: function () {
				locked = false;
			}
		});
		IcontainerD	= $$("#itemsImages li a")[ImageID];
		IcontainerD.id = 'selected';
		if(ImageID==0)
			lastTimeout = setTimeout("Stage.prototype.slideToNext()", 10000);
		else
			lastTimeout = setTimeout("Stage.prototype.slideToNext()", 3000);	
	}
}
document.observe('dom:loaded', function () { 
	new Stage(); 
});
