/*
 * Mueve el "escaparate" que permite que sólo haya X miniaturas visibles a la vez
 */
function desplazar_escaparate(asc){
	/*
	 * Comprobamos el estado actual
	 */
	var miniaturas=[];
	var primer_visible=null;
	var tamano_escaparate=4;

	var div=document.getElementsByTagName('div');
	for(var i=0; i<div.length; i++){
		if(hasClass(div[i], 'miniatura')){
			var objeto=div[i];

			if(objeto.style.display!='none' && primer_visible==null){
				primer_visible=miniaturas.length;
			}

			miniaturas.push(objeto);
		}
	}

	if(asc){
		if(primer_visible+tamano_escaparate<miniaturas.length){
			primer_visible++;
		}
	}else{
		if(primer_visible>0){
			primer_visible--;
		}
	}

	/*
	 * Mostramos u ocultamos las miniaturas
	 */
	for(var i=0; i<miniaturas.length; i++){
		if(i<primer_visible){
			miniaturas[i].style.display='none';
		}else if(i<primer_visible+tamano_escaparate){
			miniaturas[i].style.display='';
		}else{
			miniaturas[i].style.display='none';
		}
	}


	/*
	 * Habilitamos o deshabilitamos los botones de desplazamiento
	 */
	var ant=document.getElementById('anterior');
	var sig=document.getElementById('siguiente')

	ant.habilitado=primer_visible>0;
	sig.habilitado=primer_visible+tamano_escaparate<miniaturas.length;

	css_botones_escaparate(ant);
	css_botones_escaparate(sig);
}


/*
 * Recibe un botón como argumento y le asigna la clase CSS adecuada según el atributo "deshabilitado"
 */
function css_botones_escaparate(boton){
	if(boton.habilitado){
		removeClass(boton, 'deshabilitado');
	}else{
		addClass(boton, 'deshabilitado');
	}
}


/*
 * Asigna los eventos oportunos a las miniaturas y los botones del escaparate
 */
function eventos_producto(){
	var ant=document.getElementById('anterior');
	var sig=document.getElementById('siguiente');

	if(ant){
		var img_ant=ant.firstChild;
		precarga(img_ant.src.replace(/\.(png|gif|jpg)$/, '_h.$1'));

		ant.habilitado=false;

		addEvent(ant, 'mouseover', function(){
			if(this.habilitado){
				img_ant.src=img_ant.src.replace(/_h\.(png|gif|jpg)$/, '.$1');
				img_ant.src=img_ant.src.replace(/\.(png|gif|jpg)$/, '_h.$1');
			}else{
				this.style.cursor="default";
			}
		});
		addEvent(ant, 'mouseout', function(){
			img_ant.src=img_ant.src.replace(/_h\.(png|gif|jpg)$/, '.$1');
		});
		addEvent(ant, 'click', function(){
			if(this.habilitado){
				desplazar_escaparate(false);
			}
		});
	}
	if(sig){
		var img_sig=sig.firstChild;
		precarga(img_sig.src.replace(/\.(png|gif|jpg)$/, '_h.$1'));

		sig.habilitado=false;

		addEvent(sig, 'mouseover', function(){
			if(this.habilitado){
				img_sig.src=img_sig.src.replace(/_h\.(png|gif|jpg)$/, '.$1');
				img_sig.src=img_sig.src.replace(/\.(png|gif|jpg)$/, '_h.$1');
			}else{
				this.style.cursor="default";
			}
		});
		addEvent(sig, 'mouseout', function(){
			img_sig.src=img_sig.src.replace(/_h\.(png|gif|jpg)$/, '.$1');
		});
		addEvent(sig, 'click', function(){
			if(this.habilitado){
				desplazar_escaparate(true);
			}
		});
	}

	var num_img=0;
	var div=document.getElementsByTagName('div');
	for(var i=0; i<div.length; i++){
		if(hasClass(div[i], 'miniatura')){
			num_img++;
			
			var img=div[i].firstChild.firstChild;
			addEvent(img, 'mouseover', function(){
				addClass(this, 'res');
			});
			addEvent(img, 'mouseout', function(){
				removeClass(this, 'res');
			});
			addEvent(img, 'click', function(){	
				var ig=document.getElementById('imagen_grande').firstChild.firstChild;
				var src=this.src.replace(/\/miniaturas\//, '/productos/');		
				var name=this.name;
				var ig2=document.getElementById('imagen_grande').firstChild;
				ig.removeAttribute('width');
				ig.removeAttribute('height');
				ig.src=src;
				ig.name=name;
				ig2.href='/productos/detalle_productos.php?imagen='+name;
				
				/*
				 * IE6 no muestra imágenes a partir de la segunda, a menos que hagamos
				 * esta tontería
				 */
				if(version_ie()>0 && version_ie()<7){
					setTimeout(function(){
						document.getElementById('imagen_grande').firstChild.firstChild.src=src;
						document.getElementById('imagen_grande').firstChild.firstChild.name=name;
						document.getElementById('imagen_grande').firstChild.href='/productos/detalle_productos.php?imagen=' + name;
					}, 1);
				}
			});

			if(num_img>4){
				div[i].style.display='none';
			}
		}
		
		/*
		 * Efecto de rollover para el icono de añadir a presupuesto
		 */
		if(hasClass(div[i], "presupuesto")){
			var a=div[i].firstChild;
			
			precarga(a.firstChild.src.replace(/\.(png|gif|jpg)$/, '_h.$1'));
			
			addEvent(a, "mouseover", function(){
				this.firstChild.src=this.firstChild.src.replace(/_h\.(png|gif|jpg)$/, ".$1");
				this.firstChild.src=this.firstChild.src.replace(/\.(png|gif|jpg)$/, "_h.$1");
			});
			addEvent(a, "mouseout", function(){
				this.firstChild.src=this.firstChild.src.replace(/_h\.(png|gif|jpg)$/, ".$1");
			});
		}
	}

	/*
	 * Si el número de miniaturas excede el tamaño del escaparate, habilitamos el botón para el desplazamiento
	 */
	if(sig && num_img>4){
		sig.habilitado=true;
	}


	css_botones_escaparate(ant);
	css_botones_escaparate(sig);
}
eventos_producto();


/*
 * IE6 presenta errores de renderizado que desaparecen al modificar el árbol HTML,
 * siempre que esperemos una fracción de segundo a que se haya dibujado por primera vez
 */
if(version_ie()>0 && version_ie()<7){
	setTimeout(function(){
		addClass(document.body, 'ie6bug');
	}, 1);
}


/*
 * Abrir una nueva ventana para los detalles de un producto
 */
function detalles_producto(a){
	
}
