
// Funcao que cria os tipos de dados de fotos
function dadosFotos( nomeArq, textoFoto) {
  if (nomeArq == undefined) 
    { this.arq = '' } 
  else 
    { this.arq = nomeArq }
	
  if (textoFoto == undefined) 
    { this.txt = '' }
  else
    { this.txt = textoFoto }
	
  this.img = new Image()
}

// Funcao que faz o pre carregamento em memoria das fotos a serem apresentadas
function preCarregaFotos(pasta) {
  if (pasta == null) {
     for(i=0;i<fotos.length;i++) {
        fotos[i].img.src = 'fotos/' + fotos[i].arq
     }
  } else {
     for(i=0;i<fotos.length;i++) {
        fotos[i].img.src = pasta + '/fotos/' + fotos[i].arq
     }
  }
}

// Funcao que monta o painel com os numeros das paginas que podem ser selecionadas
function paginas(painelSelecionado) {
  document.getElementById("boxPaginas").innerHTML = "<div align='center'> ... Páginas ... </div> <hr>";
  for(i=1;i<=Math.ceil(fotos.length/18);i++) {  /* For até a quantidade de fotos, dividido por 18 (que aparece em cada tela), arredondado para cima */
     if (i == painelSelecionado) {
	    /* Mostra o Painel selecionado em cor diferente */
        document.getElementById("boxPaginas").innerHTML = document.getElementById("boxPaginas").innerHTML + "<div align='center' id='linkPaginaSel'>" + "<a href='javascript:void(0)' onclick='paginas(" + i + ")'>" + i.zeroFormat(2, true, false) + "</a>" + "</div>";
	 } else {
        document.getElementById("boxPaginas").innerHTML = document.getElementById("boxPaginas").innerHTML + "<div align='center' id='linkPagina'>" + "<a href='javascript:void(0)' onclick='paginas(" + i + ")'>" + i.zeroFormat(2, true, false) + "</a>" + "</div>";
	 }
  }
  document.getElementById("boxPaginas").innerHTML = document.getElementById("boxPaginas").innerHTML + "</div>";
  monta_painel_miniaturas(painelSelecionado);
  show( (painelSelecionado-1)*18 )
}

// Função que monta o painel das miniaturas baseada em todo o vetor das fotos
function monta_painel_miniaturas(numeroPainel){
  document.getElementById("boxMiniaturas").innerHTML = "<div align='center'>";
  for(i=((numeroPainel-1)*18);i<(numeroPainel*18);i++) {
    if (i < fotos.length) {
       document.getElementById("boxMiniaturas").innerHTML = document.getElementById("boxMiniaturas").innerHTML + "<div align='center' id='linkMiniaturas'> <img src='" + fotos[i].img.src + "' width='100' height='76' title='Ampliar' style='cursor:pointer' onClick='ver_foto_maior("+ i +")'> </div>";
    }	 
  document.getElementById("boxMiniaturas").innerHTML = document.getElementById("boxMiniaturas").innerHTML + "</div>";
  }
}

// Funcao que formata um numero (neste precesso eh inserido um 0 a esquerda caso seja um valor unitario na dezena)
Number.prototype.zeroFormat = function(n, f, r){
    return n = new Array((++n, f ? (f = (this + "").length) < n ? n - f : 0 : n)).join(0), r ? this + n : n + this;
};

// Funcao que apresenta a proxima foto
function foto_proxima() {
  if ((i+1) < fotos.length) {
     i++
     if (parseInt(i/18) == parseInt((i-1)/18)) {  // Se a foto estah na mesma pagina
        show( i )
     } else {
        paginas(parseInt(i/18)+1)  // Se a foto estah em outra pagina
     }
  }
}

// Funcao que apresenta a foto anterior
function foto_anterior() {
  var guardaVlrI = 0
  if (i > 0) {
     i--
     if (parseInt(i/18) == parseInt((i+1)/18)) {  // Se a foto estah na mesma pagina
        show( i )
     } else {
	    guardaVlrI = i;
        paginas(parseInt(i/18)+1) // Se a foto estah em outra pagina
		show( guardaVlrI )
     }
  }
}

// Funcao para apresentar uma imagem em tamanho maior no box das imagens
function show( n ) {
    i = n ;

    document.getElementById("boxFoto").src = fotos[i].img.src ;

    // Teste para dimensionar a foto de acordo com o tamanho do box de apresentação na tela
    if (fotos[i].img.width > fotos[i].img.height) {  // Se a foto é landscape (paisagem)
       document.getElementById("boxFoto").width = 410 ;
       document.getElementById("boxFoto").height = 310 ;
	} else {   // Se a foto é portrait (retrato)
       document.getElementById("boxFoto").width = 310 ;
       document.getElementById("boxFoto").height = 410 ;
	}

    document.getElementById("boxLegenda").innerHTML ='<p>' + fotos[i].txt + '</p>' ;
    document.getElementById("boxContador").innerHTML = '<p>Foto <br>' + (n+1) + ' de ' + fotos.length + '<br><br>' + fotos[i].arq + '</p>' ;

    // Mostra a foto anterior no botão (anterior).
    if (i == 0) {
       document.getElementById("antes").src = fotos[0].img.src;
	} else {
       document.getElementById("antes").src = fotos[i-1].img.src ; 
    }

    // Mostra a próxima foto no botão (próxima).
    if (i+1 < fotos.length) {
       document.getElementById("depois").src = fotos[i+1].img.src ; 
	} else {
       document.getElementById("depois").src = fotos[i].img.src ; 
    }

    setOpacities();
}
  
// Funcao para Habilitar ou Desabilitar os botões com as imagens "anterior" e "proxima"
function setOpacities() {
    var browser = navigator.appName;
       
    if (browser == "Netscape") {
        filtro1 = ".MozOpacity = '0.5'";  // Desabilita o botão
        filtro2 = ".MozOpacity = '1.0'";  // Habilita o botão
    } else {
        filtro1 = ".filter = 'alpha(opacity=50)'";   // Desabilita o botão
        filtro2 = ".filter = 'alpha(opacity=100)'";  // Habilita o botão
    }
       
    if (i == 0) {
        eval("document.getElementById('antes').style" + filtro1);
    } else {
        eval("document.getElementById('antes').style" + filtro2);
        eval("document.getElementById('slide').style" + filtro2);
    }
   
    if ((i+1) == fotos.length) {
        eval("document.getElementById('depois').style" + filtro1);
        eval("document.getElementById('slide').style" + filtro1);
    } else {
        eval("document.getElementById('depois').style" + filtro2);
        eval("document.getElementById('slide').style" + filtro2);		
    }
}

// Funcao que roda o Slide Show (mostra todas as fotos)
function runSlideShow(){
   if (document.all && document.images.boxFoto.filters){
      document.images.boxFoto.style.filter="blendTrans(duration=2)"
      document.images.boxFoto.style.filter="blendTrans(duration=crossFadeDuration)"
      document.images.boxFoto.filters.blendTrans.Apply()      
   }
 
   if ( parseInt(i/18) == parseInt((i-1)/18)) {
      show( i )
   } else {
      paginas(parseInt(i/18)+1)
   }

   if (document.all && document.images.boxFoto.filters){
      document.images.boxFoto.filters.blendTrans.Play()
   }

   i++
   if ((i < fotos.length) && !parar) {
      setTimeout('runSlideShow()', slideShowSpeed)
   } else {
     i--
	 parar = true
   }
}

// Função que Executa ou Para o Slide Show, dependendo do valor da variável lógica "parar"
function SlideShow(){
  parar = !parar
  if (!parar) {
     runSlideShow()
  }
}

// Função que apresenta no quadro maior a foto clicada no painel das miniaturas
function ver_foto_maior(indice){
  show(indice);
  self.scrollTo(0, 150);
}

// -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

// Esta funcao cria a relação de albuns a serem apresentados
// A função saberá qual relação (de que ano) a ser apresentado de acordo com o 
// include feito no inicio do html. Exemplo fotos2009.js
function apresenta_albuns() {
   var i=0;
   for(i=linkAlbum.length-1;i>=0;i--) {
      document.write("<tr bgcolor='#339999'>");
      document.write("<td height='104' valign='middle' bgcolor='#339999'> <div align='center'>");
      document.write("<table width='100%' height='100%' border='0' cellpadding='0' cellspacing='0'>");
      document.write("<tr>");
      document.write("<td width='25%' height='84'>");
      document.write("<div align='center'>");
      document.write("<img src='" + linkAlbum[i].pasta + "/fotos/" + linkAlbum[i].fotoLink + "' width='100' height='76' border='0' title='Ver Album' style='cursor:pointer;' onClick='open(" + String.fromCharCode(34) + "album.htm?" + linkAlbum[i].pasta + String.fromCharCode(34) + "," + String.fromCharCode(34) + "_self" + String.fromCharCode(34) + "," + "linkAlbum[" + i +"].pasta)'></a>");
//      document.write("<img src='" + linkAlbum[i].pasta + "/fotos/" + linkAlbum[i].fotoLink + "' width='100' height='76' border='0' title='Ver Album' style='cursor:pointer;' onClick='open(" + String.fromCharCode(34) + "album.htm?" + linkAlbum[i].pasta + String.fromCharCode(34) + ", paramJanela ," + "linkAlbum[" + i +"].pasta)'></a>");
      document.write("</div>");
      document.write("</td>");
      document.write("<td width='75%'><p><font color='#330033' size='4'><strong>" + linkAlbum[i].data + "</strong></font></p>");
      document.write("<p><font color='#330033' size='3'><strong>" + linkAlbum[i].txt1 + "</strong>" + " - " + linkAlbum[i].txt2 + "</font></p>");
      document.write("<tr bgcolor='#339999'>");
      document.write("</td>");
      document.write("</tr>");
      document.write("</table>");
      document.write("</div></td>");
      document.write("</tr>");
   }
}

// Função que lê o parâmetro passado (depois do arquivo xxxxx.htm. Exemplo intex.htm?texto, retornará "texto"
function paramRecebido() {
  var txtParametro = '';
  var parametroLido = decodeURI(window.location.search);
  if ((parametroLido != null) && (parametroLido != '')) {
     txtParametro = parametroLido.substring(parametroLido.indexOf('?') + 1);
  }
  return txtParametro;
}

// Funcao que cria os tipos de dados no link das pastas das fotos
// pasta = Nome da pasta do album
// fotoLink = Nome da foto que aparecerá no link do album
// data = Texto com a data do evento a ser apresentada
// txt1 = Texto principal do album que aparecerá em nebrito
// txt2 = Texto com a descrição do que é o album
function dadosLinkAlbum(pasta, fotoLink, data, txt1, txt2) {
  if (pasta == undefined) 
    { this.pasta = '' } 
  else 
    { this.pasta = pasta }
	
  if (fotoLink == undefined) 
    { this.fotoLink = '' } 
  else 
    { this.fotoLink = fotoLink }

  if (data == undefined) 
    { this.data = '' } 
  else 
    { this.data = data }

  if (txt1 == undefined) 
    { this.txt1 = '' } 
  else 
    { this.txt1 = txt1 }

  if (txt2 == undefined) 
    { this.txt2 = '' } 
  else 
    { this.txt2 = txt2 }
}
