  // Funcion para la contraccion de los aņos de los calendarios
  function contraer(ano) {   
    if (ano != ano_seleccionado) {
      obj = document.getElementById("ano_"+ano);
      obj.style.display = "";      
    
      obj_sel = document.getElementById("ano_"+ano_seleccionado);    
      if (obj_sel) obj_sel.style.display = "none";
      
      ano_seleccionado = ano;
    } else {
      obj = document.getElementById("ano_"+ano);
      obj.style.display = "none";
      ano_seleccionado = "";
    }
  }  
  
  // Ventana de acerca de
  function AcercaDe(usuario) {
    about_window = window.open('/info.php?user=' + usuario, 'about_window', 'top=50,left=50,toolbar=no,scrollbars=yes,width=400,height=300' );
    about_window.focus();
  }  
  
  
  // Funciones para el movimiento del Visor
  var fotos = new Array();   
  var moviendo = false;
    
  function verFoto(date, titulo, nf, nf_pos) {  	
  	if (nf != '') {
    	location.href='/'+metroflog+'/'+date+'/' + nf + '/' + titulo + '?pos='+fotos[primerafoto][3]+'&nf='+nf_pos;
  	} else {
  		location.href='/'+metroflog+'/'+date+'/' + titulo + '?pos='+fotos[primerafoto][3]+'&nf='+nf_pos;;
  	}
  }
      
  function strFoto(data, pos) {
    if (data[5] != '' && !isNaN(data[5])) {
    	return '<a href="/' + metroflog + '/' + data[3] + '/' + data[5] + '/' + data[4] + '" onclick="verFoto(\'' + data[3] + '\', \'' + data[4] + '\', \'' + data[5] + '\', fotos[primerafoto][5]); return false;"><img hspace=5 class="foto" src="' + DirFotos(data[0], data[1]) + '" width=90 height=68 border="0"></a><br>' + data[2];    
    } else {
  		return '<a href="/' + metroflog + '/' + data[3] + '/' + data[4] + '" onclick="verFoto(\'' + data[3] + '\', \'' + data[4] + '\', \'\', fotos[primerafoto][5]); return false;"><img hspace=5 class="foto" src="' + DirFotos(data[0], data[1]) + '" width=90 height=68 border="0"></a><br>' + data[2];    
    }
  }

  var visor_desde;
  var visor_hasta;
  function cargarvisor(paste, dif) {
    // Determina las 9 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)+7;
    if (visor_hasta > fotos.length) visor_hasta = fotos.length
    
    pos = ((primerafoto-visor_desde)*-100); // determina la posicion donde debe arrancar el visor
    
  	html = '<table border="0" cellpadding="0" cellspacing="0" id="visor" style="margin-left: ' + pos + 'px;"><tr>';
    for (f = visor_desde; f < visor_hasta; f++) {
      html += '<td class="df navtexto" style="font-family: Arial; font-size: 10px;" align="center">' + 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';        
  }
  
  var posicion_limite;   
  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 && primermes==meses[0]) {
        begin();
      } else if (primerafoto==(fotos.length-5) && ultimomes==meses[meses.length-1]) {
        finish();
      } else {
        // Controla que se hayan cargado todas las imagenes
        obj = document.getElementById("visor");
        TD = obj.childNodes[0].childNodes[0].childNodes; // 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();
      }      
      
      // Controla que si se esta a dos foto del mes anterior (siguiente temporalmente hablando), lo cargue
      if (primerafoto <= 5 && primermes < meses[0]) {      	      	      	
      	CargandoMes[array_search(meses, primermes)-1] = true;
        
      	VecesCargado = 0;
      	CargarMes(meses[array_search(meses,primermes)-1], "B");
      }
      
      // Controla que si se esta a dos foto del mes anterior (siguiente temporalmente hablando), lo cargue
      if (primerafoto >= (fotos.length-10) && ultimomes > meses[meses.length-1]) {
      	CargandoMes[array_search(meses,ultimomes)+1] = true;
      	
      	VecesCargado = 0;
      	CargarMes(meses[array_search(meses,ultimomes)+1], "A");
      }
      
      // Actualiza el link al calendario
      btn = document.getElementById('btn_calendar');
      btn.href = '/' + metroflog + '/calendar/' + (fotos[primerafoto][3]).substr(0,6);
      
      moviendo = false;      
    }
  }   
  
  var VecesCargado = 0;
  function CargarMes(mes, pos_foto) {
  	if (CargandoMes[array_search(meses, mes)] == true && VecesCargado < 3) {		    	
  		obj = document.createElement('SCRIPT');
		obj.setAttribute("type", "text/javascript");
		obj.setAttribute("src", "http://ww2.metroflog.com/visor_js.php?uc=" + uc + "&ym=" + mes + "&date_format=" + date_format + "&pos=" + pos_foto);
		
		objDiv = document.getElementById('posJS_visor');
		objDiv.appendChild(obj);
		
		setTimeout("CargarMes(" + mes + ", '" + pos_foto + "');", 5000);  		
		VecesCargado++;
  	}
  }
  
  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();
  }
  
  var cargandofoto_next = false;
  var cargandofoto_next_anim = false;
  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("visor");
			TD = obj.childNodes[0].childNodes[0].childNodes;	    
			try {
				if (!TD[(primerafoto-visor_desde)+5].childNodes[0].childNodes[0].complete) cargandofoto_next = true;				
			} catch (e) {}
		}
	}
	
  	var pos_mes = array_search(CargandoMes, true, array_search(meses, ultimomes));  	  	
  	if (!moviendo && (pos_mes == -1 || (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 (pos_mes != -1 && (primerafoto+5) == fotos.length) {
    	frenar_mov = false;
  		AnimacionCargando('next', true);
    }        
  }
     
  var cargandofoto_prev = false;
  var cargandofoto_prev_anim = false;
  var frenar_mov = false;
  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.childNodes[0].childNodes[0].childNodes;	    
			try {
				if (!TD[(primerafoto-visor_desde)-1].childNodes[0].childNodes[0].complete) cargandofoto_prev = true;				
			} catch(e) { }
		}
	}
	
    var pos_mes = array_search(CargandoMes, true);
  	if (!moviendo && (pos_mes == -1 || meses[pos_mes] < primermes || 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 (pos_mes != -1 && primerafoto == 5) {    	
    	frenar_mov = false;
  		AnimacionCargando('previous', true);
    }
  }
  
  var puntitos = "";
  var AnimacionCargando_activada = false;  
  function AnimacionCargando(btn_name, xmes) {   	  	  	
  	btn = document.getElementById('btn_'+btn_name); 	
  	  	
  	if (!xmes) {  		
  		if (btn_name == "next") {
	  		cargandofoto_next = false;
	  		if (primerafoto+5 < fotos.length) {
				obj = document.getElementById("visor");
				TD = obj.childNodes[0].childNodes[0].childNodes;	    
				try {
					if (!TD[(primerafoto-visor_desde)+5].childNodes[0].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) { }
			}
  		}
  	}
  	
  	if ((xmes && (array_search(CargandoMes, true) != -1 && ((btn_name == "next" && (primerafoto+5)==fotos.length) || (btn_name == "previous" && primerafoto==5)))) || (!xmes && ((btn_name == "next" && cargandofoto_next) || (btn_name == "previous" && cargandofoto_prev)))) {
  		puntitos = puntitos + ".";
		if (puntitos == "....") puntitos = "";
		espacios = "";
		for (i=puntitos.length; i < 3; i++) {
			espacios = espacios + "&nbsp;";
		}
		texto = strCargando2 + puntitos + espacios;
  		btn.innerHTML = texto;  	
  		HeadReload();	
  		setTimeout("AnimacionCargando('" + btn_name + "', " + xmes + ")", 250);  		
	} else {		
		if (btn_name == 'next') {
			btn.innerHTML = text_siguiente + ' >';
			cargandofoto_next_anim = false;
			if (!frenar_mov) next();
		} else {
			btn.innerHTML = ' < ' + text_anterior;
			cargandofoto_prev_anim = false;
			if (!frenar_mov) previous();
		}
	}
  }
  
  // Funciones de seguridad para boton derecho
  function right(e) {    
    try {
    	if (e.preventDefault) e.preventDefault();
   	} catch (e) {}
    if ((navigator.appName == 'Netscape' && e.which == 3) || (navigator.appName == 'Microsoft Internet Explorer' && event.button==2)) {
      alert(msg_botonderecho);
      return false;
    } else {
      return true;
    }
  }

  function trampa() {
    if(document.images) {
      for(i=0;i<document.images.length;i++) {
        document.images[i].onmousedown = right;
        if (navigator.appName == 'Microsoft Internet Explorer') document.images[i].onmouseup = right;
      }
    }
  }
  
  // Funcion que controla que todas las imagenes esten cargadas
  // Controla que se hayan cargado todas las imagenes  
  function ControlCargas() {	
	try {
	    obj = document.getElementById("visor");
	    TD = obj.childNodes[0].childNodes[0].childNodes; // 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]);        
	      }
	    }
    } catch(e) {}    
    setTimeout("ControlCargas()", 10000);    
  }
  setTimeout("ControlCargas()", 10000);

  function DirFotos(ID, Key) {  
	IDt = "00000"+ID;
	IDt = IDt.substr(IDt.length - 6, 6);
		
	dir1 = IDt.substr(IDt.length - 3, 3);
	dir2 = IDt.substr(1, 2);
	dir3 = IDt.substr(0 ,1);
		
	pix = ID.toString().substr(ID.toString().length - 1, 1);	
	pix++;	
	
	if (ID.toString().length > 1) {
		pix_21 = ID.toString().substr(ID.toString().length - 3, 2);		
		pix = pix + (Math.floor(pix_21/25)*10);
	}
	
	rootpath = "http://pic" + pix + ".metroflog.com/";	

	path = rootpath + "pictures/thumbnails";	
	
	uid = ID + "_" + Key;  
	return path + "/" + dir1 + "/" + dir2 + "/" + dir3 + "/" + uid + ".jpg";
  }
  
  function array_search(obj_array, search, start) {
	if (!start) start = 0;
  	for (s = start; s < obj_array.length; s++) {
		if (obj_array[s] == search) return s;
	}
	return -1;
  }
  
  // Porque algunos exploradores son una poronga
  function HeadReload() {
  	if ((navigator.appVersion).search('MSIE 6.0') != '-1') {  		
  		try {
  			obj = document.getElementById('img_header');
    		tmp_src = obj.src;
    		obj.src = '';
    		obj.src = tmp_src;
  		} catch(e) {}
  	}
  }