/* icaroouselmg.js */
var cCarrousel = new Class({
	Implements: [Options, Events],
	options : {
		idAnterior:'icarrousel-anterior'
		,idSiguiente:'icarrousel-siguiente'
		,elementoCarr:'img'
		,cantSlides:0
		,slideAct:1
		,usarRemooz:true
	},
	initialize:function(container, elements, options)
	{
		this.setOptions(options);
		this.doCarrousel(container, elements);
		this.cantSlides = this.countSlides(container, elements);
		if(this.options.usarRemooz)
		{
			ReMooz.assign('#'+container+' a', {
				'origin': 'img',
				'shadow': 'onOpenEnd', 
				'resizeFactor': 0.8, 
				'cutOut': false, 
				'opacityResize': 0.4, 
				'dragging': true, 
				'centered': true});
		}
	},
	updateSlideAct:function(cual)
	{
		if(cual==-1)
			this.options.slideAct--;
		else if(cual==1)
			this.options.slideAct++;
			
		if(this.options.slideAct<=0)
			this.options.slideAct = 1
		else if(this.options.slideAct > this.options.cantSlides)
			this.options.slideAct = this.options.cantSlides;
	},
	getSlideAct:function()
	{
		return this.options.slideAct;
	},
	countSlides:function(container, elements){
		var cant=(0).toInt();
		var mascara = contenedor.getParent();
		var pasoX = mascara.getStyle('width').split('px')[0];
		elementos = $A($$(elements));
		(2).times(function(){
			elementos.each(function(el){
				cant += el.getCoordinates(mascara).width;
			});
		})
		return cant/pasoX;
	},
	doCarrousel:function(container, elements)
	{
		contenedor = $(container);
		
		elementos = $A($$(elements));
		var mascara = contenedor.getParent();
		var pasoX = mascara.getStyle('width').split('px')[0];
		var cantSlides = 0;
		var slideAct = this.options.slideAct;
		
		this.options.cantSlides = this.countSlides(container, elements);
		
		if(this.options.cantSlides <= 1)
			this.options.cantSlides = this.countSlides(container, elements);
		
		if(this.options.cantSlides - this.options.cantSlides.toInt() > 0.5)
		{
			this.options.cantSlides=this.options.cantSlides.round();
		}
		this.options.cantSlides = this.options.cantSlides.toInt()	
		
		cantSlides = this.options.cantSlides;
		
		var esteObj = this;
		$(this.options.idAnterior).addEvent('click',function(event)
		{
			
			posAct = contenedor.getPosition(mascara);
			proxX = posAct.x-pasoX;
			var slideAnt = esteObj.getSlideAct();
			esteObj.updateSlideAct(1);
			if(slideAnt == cantSlides)
				return;
			contenedor.tween('left',[posAct.x,proxX]);
			event = new Event(event).stop();
		});
		$(this.options.idSiguiente).addEvent('click',function(event)
		{
			posAct = contenedor.getPosition(mascara);
			var proxX = (posAct.x).toInt() + (pasoX).toInt();
			var slideAnt = esteObj.getSlideAct();
			esteObj.updateSlideAct(-1);
			if(slideAnt == 1) 
				return;
			else if(slideAnt-1 <= 0)
			{
				return;
			}
			contenedor.tween('left',[posAct.x,proxX]);
			event = new Event(event).stop();
		});
	}
});
