if (typeof productos!="object") alert("El objeto 'productos' no ha sido inicializado.");

productos.listados.diapositivas = {

		actual:				false,
		autoRotateActive:	false,
		autoRotateInstance:	false,
		autoRotateTime:		4000,
		total:				false,
		xpath: 				false,

		ready: function(xpath) {
			this.xpath=xpath;
			this.total=$(this.xpath+" .productos .producto").size();
			this.inicializar();
		},
		activar:function(id,manual) {
			var self=this;
			//if (manual) this.desactivaAutoRotate();	// Ya no se para al cambiar de diapositivas

			if (this.actual==id) return false;

			if (this.actual>0) {
				$(this.xpath+" .diapositiva-tab-producto-"+this.actual).removeClass('active');
				$(this.xpath+" .diapositiva-producto-"+this.actual).fadeOut(150,function() {
					// Limpiamos otras diapositivas
						$(self.xpath+" .productos .producto").hide();
						$(self.xpath+" .tabs .tab").removeClass('active');
					$(self.xpath+" .diapositiva-producto-"+id).fadeIn(150);
					$(self.xpath+" .diapositiva-tab-producto-"+id).addClass('active');
				});
			} else {
				$(this.xpath+" .diapositiva-producto-"+id).fadeIn(150);
				$(this.xpath+" .diapositiva-tab-producto-"+id).addClass('active');
			}
			this.actual=id;
			return true;
		},
		siguiente:function(manual) {
			if (this.actual>=this.total) {
				nuevo=1;
			} else {
				nuevo=this.actual+1
			}
			this.activar(nuevo,manual);
		},
		anterior:function(manual) {
			if (this.actual<=1) {
				nuevo=this.total;
			} else {
				nuevo=this.actual-1
			}
			this.activar(nuevo,manual);
		},

		/* Auto rotate */
			autoRotate:function() {
				if (!this.autoRotateActive || !this.autoRotateInstance) return false;
				this.siguiente(false);
				if (this.autoRotateInstance) clearTimeout(this.autoRotateInstance); // Por si hay algun timeout remanente por ahí
				this.autoRotateInstance=setTimeout("productos.listados.diapositivas.autoRotate()",this.autoRotateTime);
			},
			desactivaAutoRotate:function() {
				if (!this.autoRotateActive) return;
				this.pausaAutoRotate();
				this.autoRotateActive=false;
			},
			activaAutoRotate:function() {
				if (this.autoRotateActive) return;
				this.autoRotateActive=true;
				this.reanudaAutoRotate();
			},
			pausaAutoRotate:function() {
				if (!this.autoRotateActive) return;
				$(this.xpath+" .tabs li.status").removeClass("run");
				$(this.xpath+" .tabs").removeClass("run");
				if (this.autoRotateInstance) clearTimeout(this.autoRotateInstance);
			},
			reanudaAutoRotate: function() {
				if (!this.autoRotateActive) return;
				$(this.xpath+" .tabs li.status").addClass("run");
				$(this.xpath+" .tabs").addClass("run");
				this.autoRotateInstance=setTimeout("productos.listados.diapositivas.autoRotate()",this.autoRotateTime);
			},
			toggleAutoRotate: function() {
				if (this.autoRotateActive) {
					this.desactivaAutoRotate();
				} else {
					this.activaAutoRotate();
				}
			},
		igualaAlturas:function(baseObj,objetos) {
			var alturaMaxima=0;
			var altura=0;
			var objetos=baseObj.find(objetos);
			objetos.each(function() {
				altura=$(this).height();
				if (altura > alturaMaxima) alturaMaxima=altura;
			});
			objetos.css({
				height: alturaMaxima
			});
			return alturaMaxima;
		},

		inicializar:function() {
			var baseObj=$(this.xpath);
			baseObj.removeClass('hidden').show();

			/* Revisamos todas las alturas de los productos para igualarlas*/
				this.igualaAlturas(baseObj,".productos .producto .prod-header .tagline");
				this.igualaAlturas(baseObj,".productos .producto .prod-header");
				this.igualaAlturas(baseObj,".productos .producto .prod-body");
				this.igualaAlturas(baseObj,".productos .producto .prod-footer");

			// Activamos solo el primer producto para poder calcular su alto y aplicarselo al ul de productos
			// de esta forma, al animar entre un producto y otro, no cambiará el alto
			// Una vez aplicada la altura, ocultamos todos los productos
				baseObj.find(".productos .producto").hide(); /* Ocultamos todos los productos */
				baseObj.find(".diapositiva-producto-1").show();

				// Para IE, le asignamos la altura también al contenedor de productos, es una necesidad de estos estilos en particular
					//if ($.browser.msie) {
						baseObj.find(".productos").css({
							height: baseObj.find(".productos").height()
						});
					//}
				// Tambien navegacion
					baseObj.find(".nav a").css({
						height: baseObj.find(".diapositivas-container").outerHeight()
					});


			baseObj.find(".productos .producto").hide();

			this.activaAutoRotate();
			this.activar(1,false);
		}

}

