(function($){
	var methods = {
		init : function(options){
			var o = {
				velocidad:1500,
				intervalo:15000,
				carpeta_imagenes:"/templates/bice_home/images/"
			};
			var cons = {
				cantItems:0,
				ancho:0,
				numItem:1,
				timer:null,
				iniciado:false
			}
			return this.each(function(){
				if (options){
					$.extend(o, options);
				}
				var element = $(this);
				
				/*Crea la barra de navegación para los items*/
				var navegacion = $("<div id='navegacion_slider'>").appendTo(element.parent());
				var cont_navegacion = $("<div id='cont_navegacion_slider'>").appendTo(navegacion);
				//obtiene la cantidad de elementos
				element.children(".item_slider").each(function (){
					cons.cantItems++;
					$(this).addClass("item_slider_"+cons.cantItems);
					var texto = $(this).attr("title");
					var imagen = $("<img>").attr("src",o.carpeta_imagenes+"item_slider_"+cons.cantItems+".gif");
					var link_item = "<a href='javascript:void(0);' id='nav_item_"+cons.cantItems+"'>"+texto+"</a>";
					var nav_item = $("<div class='nav_item_slider'>");
					nav_item.append(imagen).append(link_item);
					cont_navegacion.append(nav_item);
					$("#nav_item_"+cons.cantItems).click(function (){
						if(cons.timer != null){
							clearTimeout(cons.timer);
						}
						if(!cons.iniciado){
							cons.iniciado = methods.iniciaSlider(element, o, cons);
						}
						cons.numItem = parseInt($(this).attr("id").replace("nav_item_","")) - 1;
						methods.ciclo(element, o, cons);
					});
				});
				
				cons.timer = setTimeout(function (){
					cons.iniciado = methods.iniciaSlider(element, o, cons);
					methods.ciclo(element, o, cons)
					
				}, o.intervalo);
			});
		},
		iniciaSlider : function (element, o, cons){
			//Obtiene el ancho maximo de los elementos internos
			element.children(".item_slider").each(function (){
				var newWidth = parseInt(methods.getWidth($(this)));
				if(cons.ancho < newWidth){
					cons.ancho = newWidth;
				}else{
					cons.ancho = cons.ancho;
				}
			});
			
			element.width((cons.cantItems+1)*cons.ancho);
			return true;
		},
		ciclo : function (element, o ,cons){
			element.animate({
				"left":"-"+(cons.numItem*cons.ancho)
			},o.velocidad, function (){
				cons.numItem = (cons.numItem==cons.cantItems-1)?0:++cons.numItem;
				cons.timer = setTimeout(function (){
					methods.ciclo(element, o, cons)
				}, o.intervalo);
			});
		},
		getWidth : function (element){
			return element.children().width();
		}
	};
	$.fn.jSlider = function ( method ){
		if ( methods[method] ) {
			return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || ! method ) {
			return methods.init.apply( this, arguments );
		} else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
		}
	}
	$(function(){
		$(".jslider").jSlider();
	});
})
(jQuery);

