/*
 * jQuery Slider Plugin
 * Examples and documentation at: http://slider.colombiasolutions.com/
 * Copyright (c) 2001 Colombia Solutions
 * Version: 1.0 (25-AGO-2011)
 * Requires: jQuery v1.2.6 or later
 */
(function($) {
	$.Slider = function(element, options) {
		var defaults = {
	  		DivPrincipal:"#slideshow",
			DivSecundario:"#slidesContainer",
			DivSlide:".slide",
			nombreSlideInterno:"slideInterno",		
			DivAlto:280,
			DivAncho:710,
			nombreIdControlIzq:"prev",
			nombreIdControlDer:"next",
			CarpetaImagenes:"images/",
			mostrarControlesSiempre:true
		}
		var plugin = this;
		plugin.settings = {}
		var $element = $(element),element = element;
		plugin.init = function() {
		plugin.settings = $.extend({}, defaults, options);
		
		DivPrincipal=plugin.settings["DivPrincipal"];
		DivSecundario=plugin.settings["DivSecundario"];
		DivSlide=plugin.settings["DivSlide"];
		nombreSlideInterno=plugin.settings["nombreSlideInterno"];		
		DivAlto=plugin.settings["DivAlto"];
		DivAncho=plugin.settings["DivAncho"];		
		nombreIdControlIzq=plugin.settings["nombreIdControlIzq"];
		nombreIdControlDer=plugin.settings["nombreIdControlDer"];		
		CarpetaImagenes=plugin.settings["CarpetaImagenes"];
		mostrarControlesSiempre=plugin.settings["mostrarControlesSiempre"];
		// code goes here		
		DivControlIzq="#"+nombreIdControlIzq;
		DivControlDer="#"+nombreIdControlDer;		
		//Aplicar Estilos
		$(DivPrincipal).css({ margin:"0 auto",width:DivAncho+"px", height: DivAlto+"px",position:"relative" });
		$(DivPrincipal+" "+DivSecundario).css({ margin:"0 auto",width:DivAncho+"px",height:DivAlto+"px",overflow:"auto",position:"relative" }); 		
		$(DivPrincipal+" "+DivSecundario+" "+DivSlide).css({margin:"0 auto",width:(DivAncho-20)+"px",height:DivAlto+"px","z-index":"5" });
		//Parametros del plugin
		var posicionActual = 0;
		var slides = $(DivSlide);
		var numeroDeSlides = slides.length;
		var sumar=1;
		var idIntervalo=0;
		// Removiendo la barra de scroll en JS
		$(DivPrincipal+" "+DivSecundario).css('overflow', 'hidden');
		// Wrap all .slides with #slideInterno div
		slides.wrapAll('<div id="'+nombreSlideInterno+'"></div>');
		// Float left to display horizontally, readjust .slides width
		slides.css({'float' : 'left','width' : DivAncho});
		// Set #slideInterno width equal to total width of all slides
		$(DivPrincipal+" "+"#"+nombreSlideInterno).css('width', DivAncho * numeroDeSlides);
		// Insert controls in the DOM
		if(!mostrarControlesSiempre){
			$(DivControlIzq).hide();
			$(DivControlDer).hide();						
		}		
		// Hide left arrow control on first load
		if(mostrarControlesSiempre){
		administrarControles(posicionActual);
		}
		// Create event listeners for .controls clicks
		$(DivControlDer).bind('click', function(){
			posicionActual = posicionActual+1;    
			administrarControles(posicionActual);
			$(DivPrincipal+" "+"#"+nombreSlideInterno).animate({'marginLeft' : DivAncho*(-posicionActual)},300);
		});
		$(DivControlIzq).bind('click', function(){
			posicionActual = posicionActual-1;    
			administrarControles(posicionActual);
			$(DivPrincipal+" "+"#"+nombreSlideInterno).animate({'marginLeft' : DivAncho*(-posicionActual)},300);
		});		
		function slider(){
			if(posicionActual==(numeroDeSlides-1)){ 
				sumar=-1;
			}
			if(posicionActual==0){
				sumar=1; 
			}
			if(sumar==1){
				posicionActual = posicionActual+1;
			}else{
				posicionActual = posicionActual-1;
			}
			administrarControles(posicionActual);
			$(DivPrincipal+" "+"#"+nombreSlideInterno).animate({'marginLeft' : DivAncho*(-posicionActual)},300);
			if(!mostrarControlesSiempre){
			$(DivPrincipal+" "+DivControlIzq).hide();
			$(DivPrincipal+" "+DivControlDer).hide();						
			}
		}
		idIntervalo = setInterval(slider, 5000);
		$(DivPrincipal).hover(function() {
			clearInterval(idIntervalo);
			if(!mostrarControlesSiempre){
			if(posicionActual==0){ $(DivControlIzq).fadeOut() } else{ $(DivControlIzq).fadeIn() }
			if(posicionActual==numeroDeSlides-1){ $(DivControlDer).fadeOut() } else{ $(DivControlDer).fadeIn() }
			}
		},function() {
			if(!mostrarControlesSiempre){
				$(DivControlIzq).fadeOut();
				$(DivControlDer).fadeOut();						
			}
			idIntervalo = setInterval(slider, 5000);
		});
		// administrarControles: Hides and Shows controls depending on posicionActual
		function administrarControles(position){
			// Hide left arrow if position is first slide
			if(position==0){ $(DivControlIzq).fadeOut() } else{ $(DivControlIzq).fadeIn() }
			// Hide right arrow if position is last slide
			if(position==numeroDeSlides-1){ $(DivControlDer).fadeOut() } else{ $(DivControlDer).fadeIn() }
		}				
}
plugin.foo_public_method = function() {
// code goes here
}
var foo_private_method = function() {
// code goes here
}
plugin.init();
}
$.fn.Slider = function(options) {
return this.each(function() {
if (undefined == $(this).data('Slider')) {
var plugin = new $.Slider(this, options);
$(this).data('Slider', plugin);
}
});
}
})(jQuery);
