// Equipamiento Integral
// ---------------------
// Productos: acordeón y visor imágenes


$(document).ready(function(){    
	
	// isIE
	var isIE = '\v'=='v'; 
	
	// acordeón
	
	var rangos = [
		null,
		[1,15],
		[16,27],
		[28,35],
		[36,45],
		[46,51],
		[52,56],
		[57,62],
		[63,68]
		//,[16,17]
		];
	
	// se ocultan las secciones del acordeon
	$('div.info-accordion > div.info-section').hide();
	
	// se añade la funcionadidad de mostrar/ocultar
	$('div.info-accordion > h3').click(function() {		
		var este = $(this);
		
		// cerramos todos los anteriores y abrimos el actual		
		var element = $('div.info-accordion > h3.info-tit-selected');
		
		if (este.next().is(":hidden")){
			este.addClass("info-tit-selected");
			// cambiamos el rango de imágenes
			var numRango = parseInt(este.attr("id").split("info-tit-")[1]);
			chooseRango(numRango);
		} else {
			// esto es para hacer que siempre haya uno desplegado
			return false;
		}
		
		if (element.size() == 0){
			este.next().slideToggle('normal', function(){
				if (este.next().is(":hidden")) este.removeClass("info-tit-selected");
			});
		} else {	
			element.next().slideToggle('normal', function(){
				element.removeClass("info-tit-selected");
				este.next().slideToggle('normal', function(){
					if (este.next().is(":hidden")) este.removeClass("info-tit-selected");					
				});
			});
		}
	});
	
	$('div.info-accordion > h3:nth-child(1)').click();
	
	
	// visor imagenes
	var numImg		= $("#visor_content").children().size();
	var actualImg	= 1;
	var anchoImg	= 565;
	var fromImg		= rangos[1][0];
	var toImg		= rangos[1][1];
	
	// precargamos las imágenes
	$("#visor_content img").css({opacity:0});
	$(this).oneTime(500, preloadImages);
	
	function preloadImages(){
		for (var i=0; i<numImg; i++){
			var source = $("#visor_content img")[i].src;
			var pre_source = (isIE)? source+"?"+randomStr(8) : source;
	   		$('<img />').attr('src', pre_source).load(function(){
				var numImgLoaded = parseInt(this.src.split("_")[1].split(".jpg")[0]);
				$("#visor_content img:nth-child("+numImgLoaded+")").animate({opacity: 1}, "slow");
			});
		}
	}
	
	// asignamos los clicks de las flechas
	$("#visor_left").click(function() {
		showImage(-1);
		return false;
	});
	
	$("#visor_right").click(function() {
		showImage(1);
		return false;
	});
	
	toggleVisorLeft(true);
	
	// setter de rangos
	function chooseRango(n){
		fromImg = rangos[n][0];
		toImg = rangos[n][1];
		// y nos movemos a la primera del rango
		actualImg = fromImg;
		$('#visor_content').fadeOut("fast", function(){
			var posX = -565*(actualImg-1);
			$('#visor_content').css("margin-left", posX+"px").fadeIn("slow");	
		});
		toggleVisorLeft(true);
		toggleVisorRight(false);
//		showImage(0);
	}
	
	// mostrar imagen
	function showImage(inc){
		actualImg += inc;
		var posX = -565*(actualImg-1);
		$('#visor_content').animate({marginLeft: posX+"px"}, "slow");	
		toggleVisorLeft((actualImg==fromImg));
		toggleVisorRight((actualImg==toImg));
	}
	
	function toggleVisorLeft(hideOrShow) {
		if (hideOrShow){
			if (isIE) $("#visor_left").hide();
			else $("#visor_left").css({cursor:"default", opacity:0.5});
			$("#visor_left").unbind("click").click(function() { return false; });
		} else {
			if (isIE) $("#visor_left").show();
			else $("#visor_left").css({cursor:"pointer", opacity:1});
			$("#visor_left").unbind("click").click(function(e) {
				showImage(-1);
				return false;
			});
		}
	}
	
	function toggleVisorRight(hideOrShow) {
		if (hideOrShow){
			if (isIE) $("#visor_right").hide();
			else $("#visor_right").css({cursor:"default", opacity:0.5});
			$("#visor_right").unbind("click").click(function() { return false; });
		} else {
			if (isIE) $("#visor_right").show();
			else $("#visor_right").css({cursor:"pointer", opacity:1});
			$("#visor_right").unbind("click").click(function(e) {
				showImage(1);
				return false;
			});
		}
	}
	
	function randomStr(length){
		chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
		pass = "";
		for(x=0;x<length;x++){
			i = Math.floor(Math.random() * 62);
			pass += chars.charAt(i);
		}
		return pass;
	}
	
});
