/*
 * Tutorial Easy slider
 * Autor: Osiris Magro
 * Fecha: 15/02/2010
 * Compártelo como quieras
 */

    //Desplaza el contenedor hacia la dirección definida
    //@direction = [left,right]
    function sliderScroll(direction, cantidad, contenedor, slider, slide){
	   if (slide != "li")	
		   var classT1 ='#'+slider+' .' + contenedor + ' > .'+slide;  /*"#"+ slider +" ."+ contenedor +" > ." + slide;	*/
	   else	   
		   var classT1 ='#'+slider+' .' + contenedor + ' > '+slide;  /*"#"+ slider +" ."+ contenedor +" > ." + slide;	*/
		// slides = $('#slider .slidesContainer > .slide'); 
	  slides = $(classT1);
	   
       //Asigna el ancho total de los slides al contenedor
       //La anchura total se obtiene multiplicando la medida de un slide por el número de slides)
//	  
//	   slides = $('#slider .slidesContainer > .slide');

		//$("'#"+slider+" ."+ contenedor + "'").css('width',slides[0].offsetWidth * slides.length);

       //Calcula la posición actual del contenedor
       position = $('#'+slider).scrollLeft();
       positionTop = $('#'+slider).scrollTop();
       //Calcula la anchura total menos el último slide.
       //Se usa para calcular cuando el scroll llega al final.
       totalWidth = (slides.length * (slides[0].offsetWidth)) - slides[0].offsetWidth * cantidad
	    minimocero = (cantidad * 2)
		//alert (slides.length * (slides[0].offsetWidth));
       //Se comprueba la variable direction para hacer el scroll hacia izquierda o derecha
       switch (direction) {
            case 'next': //Derecha
                if (position+slides[0].offsetWidth > totalWidth){ //Si la siguiente posición se sale del contenedor, vuelve al principio.
                    $('#'+slider+':not(:animated)').animate({scrollLeft:0},1000);
                } else { //Si no es el final, suma a la posición actual la anchura del slide.
                   if (minimocero > slides.length){ 
	                    $('#'+slider+':not(:animated)').animate({scrollLeft:slides[0].offsetWidth*(cantidad - (minimocero - slides.length))},1000);
					}else{
					    $('#'+slider+':not(:animated)').animate({scrollLeft:position+slides[0].offsetWidth * cantidad},1000);
					}
                }
                break;

            case 'prev': //Izquierda
                if (position-slides[0].offsetWidth < 0){ //Si la siguiente posición se sale del contenedor, vuelve al final.
                    $('#'+slider+':not(:animated)').animate({scrollLeft:totalWidth},1000);
                } else { //Si no es el final, resta a la posición actual la anchura del slide.
                    $('#'+slider+':not(:animated)').animate({scrollLeft:position-slides[0].offsetWidth * cantidad},1000);
                }
                break;
            case 'top': //Superior
                if (positionTop-slides[0].offsetWidth < 0){ //Si la siguiente posición se sale del contenedor, vuelve al final.
                    $('#'+slider+':not(:animated)').animate({scrollTop:totalWidth},1000);
                } else { //Si no es el final, resta a la posición actual la anchura del slide.
                    $('#'+slider+':not(:animated)').animate({scrollTop:positionTop-slides[0].offsetWidth * cantidad},1000);
                }
                break;
            case 'rigth': //Abajo
                 if (positionTop+slides[0].offsetWidth > totalWidth){ //Si la siguiente posición se sale del contenedor, vuelve al final.
                    $('#'+slider+':not(:animated)').animate({scrollTop:positionTop-totalWidth},1000);
                } else { //Si no es el final, resta a la posición actual la anchura del slide.
                    $('#'+slider+':not(:animated)').animate({scrollTop:positionTop+slides[0].offsetWidth * cantidad},1000);
                }
                break;
		}

   }

	/*
		direccion: siguiente, anterior, arriba, abajo
		cantidad: la cantidad a mostrar por cada cuadro
		contenedor: contenedor dodne se encuentra la lista de div de imagenes
		slider: div que contiene a la lista de imagenes
		slide: classe de los div de cada imagen
	*/
	function accionBoton(direccion, cantidad, contenedor, slider, slide)
	{

			switch(direccion)
			{
				case  "next":
					sliderScroll('next', cantidad, contenedor, slider, slide); //Mueve el scroll a la derecha
					break;
				case  "prev":
					sliderScroll('prev', cantidad, contenedor, slider, slide); //Mueve el scroll a la izquierda
					break;
				case  "arriba":
					sliderScroll('top', cantidad, contenedor, slider, slide); //Mueve el scroll a la Arriba
					break;
				case  "abajo":
					sliderScroll('rigth', cantidad, contenedor, slider, slide); //Mueve el scroll a la abajo
					break;
				
			}

	}