// Funciones para el movimiento del Visor
var fotos = new Array();   
var moviendo = false;
var visor_desde = 0;
var visor_hasta = 0;
var puntitos;
var AnimacionCargando_activada = false;  
var cargandofoto_next = false;
var cargandofoto_next_anim = false;
var cargandofoto_prev = false;
var cargandofoto_prev_anim = false;
var frenar_mov = false;
var posicion_limite;   

function SrcFotos(id) {  
	path = "http://img.bardealo.com";
	pref = 's';
	
	return path + "/" + id + pref + ".jpg";
}

  function strFoto(data, pos) {
    return '<li><a href="/' + data[1] + '"><img alt="'+data[2]+'" height="75" style="border: 1px solid #000" src="' + SrcFotos(data[0]) + '"></a></li>';
  }

function cargarvisor(paste, dif) {
	// Determina las 15 posiciones a dibujar del visor
	if (!dif) dif = 0;
	   
	visor_desde = (primerafoto+dif)-2;
	if (visor_desde < 0) visor_desde = 0;
	
	visor_hasta = (primerafoto+dif)+15;
	if (visor_hasta > fotos.length) visor_hasta = fotos.length
	
	pos = ((primerafoto-visor_desde)*-100); // determina la posicion donde debe arrancar el visor
	
	html = '<table id="visor" cellspacing="0" cellpadding="0" border="0" style="margin-left: ' + pos + 'px;"><tr id="piclist">';
	for (f = visor_desde; f < visor_hasta; f++) {
		html += '<td style="padding:0px 2px;">' + strFoto(fotos[f]) + '</td>';      
	}
	html += '</tr></table>';
	
	if (!paste) {
		document.write(html);
	} 
	else {
		obj = document.getElementById('visor_content');
		obj.innerHTML = html;
	}
}

function ObtenerPosicion() {    
	obj = document.getElementById("visor");
	posicion = obj.style.marginLeft;
	if (posicion == "") posicion = "0px";        
	posicion = parseInt(posicion.substr(0, posicion.length-2), 10);    
	return posicion;
}
  
  function mover(pixels) {
    obj = document.getElementById("visor");
            
    posicion = ObtenerPosicion()-pixels;
    obj.style.marginLeft=posicion.toString()+'px';        
  }
  
  function desplazar(pixeles) {
    posicion = ObtenerPosicion();

    if ((posicion_limite < (posicion-pixeles) && pixeles > 0) || (posicion_limite > (posicion-pixeles) && pixeles < 0)) {
      mover(pixeles);
      if (pixeles > 0)
        pixeles--;
      else
        pixeles++;      
            
      setTimeout("desplazar(" + pixeles + ");", 20);
    } 
    else {
      obj = document.getElementById("visor");    
      obj.style.marginLeft=posicion_limite+'px';      
      
      // Controla donde queda ubicado
      if (primerafoto==0) {
        begin();
      } 
      else if (primerafoto==(fotos.length-5)) {
        finish();
      } 
      else {
        // Controla que se hayan cargado todas las imagenes
        obj = document.getElementById("visor");
		  TD = obj.getElementsByTagName("TD"); // se ubica en las TDs        
        for(f=0; f < TD.length; f++) {                    
          if (!TD[f].childNodes[0].childNodes[0].complete) {
            TD[f].innerHTML = "";
            TD[f].innerHTML = strFoto(fotos[visor_desde+f]);
          }          
        }
        
        // Habilita todos los botones del visor
        try {
	        btn = document.getElementById('btn_previous');
	        if(btn.style.visibility != 'visible') btn.style.visibility = 'visible';
	        btn = document.getElementById('btn_next');
	        if(btn.style.visibility != 'visible' && primerafoto < (fotos.length-5)) btn.style.visibility = 'visible';
        } catch (e) { }
        
        // Recarga la imagen del titulo por si se freno
        //HeadReload();
      }
      
      moviendo = false;      
    }
  }   

function begin() {     	
	obj = document.getElementById("visor");
	
	// vuelve al principio al visor
	obj.style.marginLeft = "0px";
	primerafoto=0;
	
	// Deshabilita el boton Anterior
	try {
		btn = document.getElementById('btn_previous');
		btn.style.visibility = 'hidden';
		
		// Habilita el boton Siguiente
		btn = document.getElementById('btn_next');
		if (fotos.length > 5) btn.style.visibility = 'visible';    
	} catch (e) { }
 
	//HeadReload();
}

function finish() {
	obj = document.getElementById("visor");
	
	// vuelve al principio al visor    
	primerafoto=(fotos.length-5);
	obj.style.marginLeft = ((primerafoto-visor_desde)*-100)+"px";
	
	// Deshabilita el boton Siguiente
	try {
		btn = document.getElementById('btn_next');
		btn.style.visibility = 'hidden';    
		
		// Habilita el boton de anterior
		btn = document.getElementById('btn_previous');
		if (fotos.length > 5) btn.style.visibility = 'visible';    
	} catch (e) { }
	
	//HeadReload();
}

function previous() { 

	// Controla que la foto anterior a mostrar ya se encuentre cargada  	
	if (!cargandofoto_prev_anim) {
		cargandofoto_prev = false;
		if (primerafoto > 0) {
        obj = document.getElementById("visor");
		  TD = obj.getElementsByTagName("TD"); // se ubica en las TDs        
			try {
				if (!TD[(primerafoto-visor_desde)-1].childNodes[0].childNodes[0].complete) cargandofoto_prev = true;
			} catch(e) { }
		}
	}
	
  	if (!moviendo && (primerafoto > 5) && !cargandofoto_prev) {
      if (primerafoto == 1)
      	posicion_limite = 0;
      else if (primerafoto == 2)
      	posicion_limite = -100;
      else
      	posicion_limite = -200;    
      if (primerafoto > 0) {              
      	moviendo = true;
      	frenar_mov = true;
        	cargarvisor(true, -1);
      	primerafoto--;
        	desplazar(-20);
      }
    } 
    else if (cargandofoto_prev) {
  		if (!cargandofoto_prev_anim) {
  			frenar_mov = false;
  			AnimacionCargando('previous', false);
  			cargandofoto_prev_anim = true;
  		}
  	} 
  	else if (primerafoto == 5) {    	
    	frenar_mov = false;
  		AnimacionCargando('previous', true);
   }
}

function next() {
	
	// Controla que la proxima foto a mostrar ya se encuentre cargada
	if (!cargandofoto_next_anim) {
		cargandofoto_next = false;

		if (primerafoto+5 < fotos.length) {
			obj = document.getElementById("piclist");
			TD = obj.getElementsByTagName("TD");

			try {
				if (!TD[(primerafoto-visor_desde)+5].childNodes[0].childNodes[0].complete) cargandofoto_next = true;
			} catch (e) {}
		}
	}

	if (!moviendo && ((primerafoto+5) < fotos.length) && !cargandofoto_next) {

		if (primerafoto == 0)
			posicion_limite = -100;
		else
			posicion_limite = -200;

		if (primerafoto < (fotos.length-5)) {
			moviendo = true;
			frenar_mov = true;
			cargarvisor(true, 1);
			primerafoto++;
			desplazar(20);
		}
	} 
	else if (cargandofoto_next) {
		if (!cargandofoto_next_anim) {
			frenar_mov = false;
			AnimacionCargando('next', false);
			cargandofoto_next_anim = true;
		}
	} 
	else if ((primerafoto+5) == fotos.length) {
		frenar_mov = false;
		AnimacionCargando('next', true);
	}
}


function AnimacionCargando(btn_name) {   	  	  	
	btn = document.getElementById('btn_'+btn_name); 	
	  	
	if (btn_name == "next") {
  		cargandofoto_next = false;
  		if (primerafoto+5 < fotos.length) {
			obj = document.getElementById("piclist");
			TD = obj.getElementsByTagName("TD");
			try {
				if (!TD[(primerafoto-visor_desde)+5].childNodes[0].complete) cargandofoto_next = true;
			} catch (e) {}
  		}
	} 
	else {
		cargandofoto_prev = false;
  		if (primerafoto > 0) {
			obj = document.getElementById("visor");
			TD = obj.childNodes[0].childNodes[0].childNodes;
			try {
				if (!TD[(primerafoto-visor_desde)-1].childNodes[0].childNodes[0].complete) cargandofoto_prev = true;
			} catch(e) { }
		}
	}
}
