﻿/************************************************************** SLIDE - SHOW *******************************************************/
var j$ = jQuery.noConflict();

//Exibe imagem ampliada
function ExibirImagemAmpliada(imagem, legenda)
{
//   j$.ajax
//   ({
//        type: "GET",
//        url: "/imoveis/fragmentos/slide-show.aspx",
//        success: function(retorno)
//        {
            //alert(imagem);

            //j$('#full-image-slideshow').attr('src') = 'http://localhost/multimidia/images/novos/generica_imo.jpg';//imagem.replace('_pla','_amp');
            
            if (imagem.indexOf('_pla.')>-1)
                imagem = imagem.replace('_pla.','_amp.')
            else if (imagem.indexOf('_thu.')>-1)
                imagem = imagem.replace('_thu.','_amp.')

            document.getElementById('full-imagem-ampliada').src = imagem;
            
            document.getElementById('plegendaAmpliada').innerHTML = legenda;

            //j$('#imagem-ampliada').show();

            //Adiciona funcionalidade de fechar para o modal
            j$('#imagem-ampliada').jqmAddClose('.close-btn');
//        }
//   });
}

//Carrega fragmento Slide - Show
function CarregarFragmentoSlideShow(div, hidden, codigoImagemClicada)
{ 
   fragmento = "slide-show.aspx";
   
   //Limpa div's para evitar conflitos.
    j$("#slideshow").html("");
    j$("#slideshow-plantas").html("");
    j$("#slideshow-implantacao").html("");             
   
   j$.ajax
   ({
        type: "GET",
        url: "/imoveis/fragmentos/" + fragmento,
        success: function(retorno)
        {
		 
		 //A função CarregarImagens será responsavel por abrir o modal de galeria e o de plantas
		 //Caso 'codigoImagemClicada'  esteja vazio, entao o modal é de galeria (a partir da própria galeria) ou de implantação		
		 if(codigoImagemClicada == "")
		 {  
	          j$('#' + div).html(retorno);

	          GerarEventosSlideShow(div, hidden); 
	          CarregarImagensGaleriaImplatacao(
	                        div,
	                        hidden, 
	                        "full-image-slideshow", 
	                        "imgSlide", 
	                        "aSlide", 
	                        "spanPaginaAtualSlide",
	                        "spanTotalPaginaSlide",
	                        "spanImagemAtualSlide",  
	                        "aArrowLeftSlide",
	                        "aArrowRightSlide", 
	                        "imgArrowLeftSlide",
	                        "imgArrowRightSlide",
	                        "_Amp");
	                        
	         AtualizarNumeroImagemAtual(div, 'spanImagemAtualSlide', 1);
         }
		else//Abre modal de plantas  e de Lazer. 
		{
			// Os elementos da aba Lazer utilizam o mesmo hidden  e modal que a galeria, porém a forma de acesso as imagens são diferenciados pela função abaixo.		
			 j$('#' + div).html(retorno);
			
			GerarEventosSlideShow(div, hidden);
			CarregarImagensPlantaLazer(div, hidden, codigoImagemClicada, "_Amp");
	                        
	         AtualizarNumeroImagemAtual(div, 'spanImagemAtualSlide', 1);
		}
		 
         //Adiciona funcionalidade de fechar para o modal
         j$("#" + div).jqmAddClose(".close-btn");
            
        }
   });
}


//Gera eventos para os controles do modal de Slide - Show
//Gera navegação.
function GerarEventosSlideShow(divConteudo, hdnDados)
{   
        //Quando clicar na imagem de flecha a direita, soma valor para indice de vetor de imagens
        j$("a#aArrowRightSlide").click(function(){
         
         //Verifica se botao de navegação esta ou nao habilitado.         
         if(j$("a#aArrowRightSlide").attr("href") == "javascript:void(0)")
         {  
            //Captura objerto q armazena status de imagens. Cada div deve ter o seu próprio objeto            
            var objSlide = new SlideShowFields();
            objSlide = DadosImagens(divConteudo);
            
            objSlide.IndexArray += 6; 
            objSlide.PaginaAtual++;
            objSlide.ImagemAtual = objSlide.IndexArray + 1; 
            
            _LINK_CLICADO = 0;
            
            AtualizarObjetoImagem(divConteudo, objSlide);
             
            CarregarImagensGaleriaImplatacao(
                        divConteudo,
                        hdnDados, 
                        "full-image-slideshow", 
                        "imgSlide", 
                        "aSlide", 
                        "spanPaginaAtualSlide",
                        "spanTotalPaginaSlide",
                        "spanImagemAtualSlide",  
                        "aArrowLeftSlide",
                        "aArrowRightSlide", 
                        "imgArrowLeftSlide",
                        "imgArrowRightSlide",
                        "_Amp");
                            
          AtualizarNumeroImagemAtual(divConteudo, 'spanImagemAtualSlide', 1);
          
         }
         
      });	
     
     
      //Quando clicar na imagem de flecha a esquerda, subtrai valor para indice de vetor de imagens 
      j$("a#aArrowLeftSlide").click(function(){
      
        //Verifica se botao de navegação esta ou nao habilitado.
         if(j$("a#aArrowLeftSlide").attr("href") == "javascript:void(0)")
         {            
            var objSlide = new SlideShowFields();
            objSlide = DadosImagens(divConteudo);
            
            objSlide.IndexArray -= 6; 
            objSlide.PaginaAtual--;
            objSlide.ImagemAtual = objSlide.IndexArray + 1;   
            
            _LINK_CLICADO = 0;
            
            AtualizarObjetoImagem(divConteudo, objSlide);
            
            CarregarImagensGaleriaImplatacao(
                        divConteudo,
                        hdnDados, 
                        "full-image-slideshow", 
                        "imgSlide", 
                        "aSlide", 
                        "spanPaginaAtualSlide",
                        "spanTotalPaginaSlide",
                        "spanImagemAtualSlide",  
                        "aArrowLeftSlide",
                        "aArrowRightSlide", 
                        "imgArrowLeftSlide",
                        "imgArrowRightSlide",
                        "_Amp");
                            
            AtualizarNumeroImagemAtual(divConteudo, 'spanImagemAtualSlide', 1);
         }
        
      });
      
      
      //Quando clicar nas imagens inferiores, mudar cor da borda para vermlho e coloca essa imagem no box maior.
      j$("#divImageSlide").find("a").click(function(){ 
            j$("#full-image-slideshow").attr("src", j$(this).children().attr("src").replace("_thu", "_Amp")); // Altera tamanho da imagem grande do modal
            j$("#divImageSlide").find("a").each(function(){ j$(this).children().css("border", "2px solid #fff");});//Muda cor e borda p/ branco
            j$(this).children().css("border", "2px solid #ff5d69");//Muda cor p/ vermelho quando clicado. 
            
            //Atualiza numero superior referente a imagem clicada.
            AtualizarNumeroImagemAtual(divConteudo, 'spanImagemAtualSlide', j$(this).attr("id").replace("aSlide", ""));
            
      });
      
}



function CarregarImagensGaleriaImplatacao(parte_pagina, hdnValores, BigImage, imgControl, aControl, spanPaginaAtual, spanTotalPagina, 
                                spanImagemAtual, aFlechaEsq, aFlechaDir, imgFlechaEsq, imgFlechaDir, padraoBigImage)
{
	
	//Gera array com url's e legendas de imagens
    var _arrImagemLegenda = encontrarElemento(hdnValores).value.split('|::|'); //Separa imagens das legendas
	
	//Os dois arrays devem existir para as operações abaixos serem executadas
    if(_arrImagemLegenda[0] == undefined || _arrImagemLegenda[1] == undefined){return;}
    
	var _arrImagem = _arrImagemLegenda[0].split('*@*');
	var _arrLegenda = _arrImagemLegenda[1].split('*@*');
	
    var numero_controle = 1;
    var objDados = new SlideShowFields();
    
    objDados = DadosImagens(parte_pagina);  
    AtualizarObjetoImagem(parte_pagina, objDados);
   
    objDados = DadosImagens(parte_pagina);   
           
    //Atribui quantidades de páginas que serão geradas e quantidade total de imagens respectivamente.    
    objDados.TotalPaginas  = Math.round((_arrImagem.length + 1) / 6); //total paginas (adiciona um numero a mais pois, quando o tamanho for um numero primo, no arredondamento vai gerar valores que podem implicar em um numero menor de paginas do que deveria ter)
    objDados.TotalImagens  = _arrImagem.length - 1; //total imagens
    
    if(parseInt(_arrImagem.length) > 0)
    {
        //impede q outras imagens também apresentem borda vermelha ao mudar de página 
        for(i = 1; i < 7; i++)
        {
            j$("#" + imgControl + i).css("border", "2px solid #fff");
        }
            
         var ImagemSelecionada = (_LINK_CLICADO > 0)? (_LINK_CLICADO + 1) : "1" ; 
		var Legenda = (_arrLegenda[objDados.IndexArray + _LINK_CLICADO].substring( _arrLegenda[objDados.IndexArray + _LINK_CLICADO].indexOf("|") + 1)) != "" ? _arrLegenda[objDados.IndexArray + _LINK_CLICADO].substring( _arrLegenda[objDados.IndexArray + _LINK_CLICADO].indexOf("|") + 1) : "&nbsp;";
		
         //Carrega sempre primeira imagem de uma pagina da galeria no visualizador de imagens ampliadas.     
         j$("img#" + BigImage).attr("src", _arrImagem[objDados.IndexArray + _LINK_CLICADO].substring( _arrImagem[objDados.IndexArray + _LINK_CLICADO].indexOf("|") + 1).replace("_thu", padraoBigImage));//Imagem
		//j$("div.image-legend p").html(Legenda); //Legenda  DESCOMENTAR DEPOIS
		
         j$("#" + imgControl + ImagemSelecionada).css("border", "2px solid #ff5d69");// adiciona borda vermelha.            
 
    }
    
    //Inicializa controles da galeria
    for(i = 1; i < 7; i++)
    { 
        //Esconde todas as ancoras e imagens relacionas a galeria
        j$("#" + aControl + i ).css("visibility", "hidden");
        j$("#" + imgControl + i ).css("visibility", "hidden");
    }
       
    
   
    //Adiciona para controles a url da imagem e mostra a ancora referente a cada controle de imagem.
    for(i = objDados.IndexArray; i < (objDados.IndexArray + 6); i++) //Testar ultilizar desta linha em diante o objeto de galeria, ja que o de slideshow vai ter sido alterado pelo _LINK_CLICADO
    {   
        //Adiciona valores para controles apenas se o indice existir no vetor
       if(parseInt(i) < parseInt(_arrImagem.length - 2))
       { 
           //Passa para a imagem a string contendo o endereço exato da imagem
           j$("#" + imgControl + numero_controle).attr("src", _arrImagem[i].substring( _arrImagem[i].indexOf("|") + 1));
           j$("#" + imgControl + numero_controle).css("visibility", "visible");
           j$("#" + aControl + numero_controle).css("visibility", "visible"); 
       }
       else
       {
           //Adiciona ultima imagem e sai do loop
           j$("#" + imgControl + numero_controle).attr("src", _arrImagem[i].substring( _arrImagem[i].indexOf("|") + 1));
           j$("#" + imgControl + numero_controle).css("visibility", "visible");
           j$("#" + aControl + numero_controle).css("visibility", "visible");

         break;
       }
       numero_controle++;
    }
    
    
    //Mostra página atual e total de páginas
    j$("#" + spanPaginaAtual).html("P&aacute;gina" + " " + parseInt(objDados.PaginaAtual) + " de" + " " + parseInt(objDados.TotalPaginas)); 
    
    //Mostra nº de imagem selecionada e total de imagens.
    j$("#" + spanImagemAtual).text("Imagem " + objDados.ImagemAtual + " de " + objDados.TotalImagens);

    //Quantidade de elementos do array
    //Atribiu valor para ser usado na configuração da navegação. Chama função para ajustar controles de navegação.     
     objDados.QuantidadesElementos = parseInt(_arrImagem.length - 2);
    
    //Caso o slide-show seja de implantação, esconder alguns itens
    if(parte_pagina != "slideshow-implantacao")
    {
        //Configura botões de navegação
        //ConfigurarImagensNavegacao(aFlechaEsq, aFlechaDir, imgFlechaEsq, imgFlechaDir, objDados);
    }
    else
    {
        j$("#" + spanPaginaAtual).css("visibility", "hidden"); 
        j$("#" + spanTotalPagina).css("visibility", "hidden"); 
        j$("#" + imgFlechaDir).css("display", "none");
        j$("#" + imgFlechaEsq).css("display", "none");
        j$("a#" + aFlechaDir).css("display", "none");
        j$("a#" + aFlechaEsq).css("display", "none");
        
        for(i = 1; i < 7; i++)
        {
            j$("#" + aControl + i).css("display", "none");
            j$("#" + imgControl + i).css("display", "none");
        }
        
        j$("#spanImagemAtualSlide").css("visibility", "hidden");
       
    }
    
}


function CarregarImagensPlantaLazer(parte_pagina, hdnValores, codigoImagemInicial, padraoBigImage)
{  
	//codigoImagemInicial ----> Será a id do controle  clicado. Essa id deve conter um codigo referente a uma imagem e legenda
	
    //Gera array com url's e legendas de imagens
    var _arrImagemLegenda = encontrarElemento(hdnValores).value.split('|::|'); //Separa imagens das legendas
	
	//Os dois arrays devem existir para as operações abaixos serem executadas
    if(_arrImagemLegenda[0] == undefined || _arrImagemLegenda[1] == undefined){return;}
	
    var _arrImagem = _arrImagemLegenda[0].split('*@*');
    var _arrLegenda = _arrImagemLegenda[1].split('*@*');
	
	
    var numero_controle = 1;
    var objDados = new SlideShowFields();
    
	//Recupera objeto correspondente ao nome da div (parte_pagina) . 
    objDados = DadosImagens(parte_pagina);  
    AtualizarObjetoImagem(parte_pagina, objDados);
   
    objDados = DadosImagens(parte_pagina);   
           
    //Atribui quantidades de páginas que serão geradas e quantidade total de imagens respectivamente.    
    objDados.TotalPaginas  = Math.round((_arrImagem.length + 1) / 6); //total paginas (adiciona um numero a mais pois, quando o tamanho for um numero primo, no arredondamento vai gerar valores que podem implicar em um numero menor de paginas do que deveria ter)
    objDados.TotalImagens  = _arrImagem.length - 1; //total imagens
    
    if(parseInt(_arrImagem.length) > 0)
    {
        //impede q outras imagens também apresentem borda vermelha ao mudar de página 
        for(i = 1; i < 7; i++)
        {
            j$("#imgSlide" + i).css("border", "2px solid #fff");
        }
            
         var ImagemSelecionada = "1"; 
		var PosicaoImagem = 0;
		var Pagina = 0;
		var IndexArr = 0;
		var ContPag = 1;
		 
         //Deve carregar como primeira imagem a que tiver codigo igual a codigoImagemInicial
		for(i=0; i < _arrImagem.length - 1; i++)
		{
			//Contador do IndexArray
			ContPag++;
			
			//Compara códigos do array com o código da imagem selecionada
			if(codigoImagemInicial == (_arrImagem[i].substring(0, _arrImagem[i].indexOf("|"))))
			{
				//Passa posiçao na qual se encontra a imagem no array de imagens
				PosicaoImagem = i;
				
				//VERSAO TESTE: CONFIGURA A IMAGEM SELECIONADA
				if(PosicaoImagem < 6)
				{
					ImagemSelecionada = PosicaoImagem + 1;
				}
				else
				{
					ImagemSelecionada = PosicaoImagem + 1;
					
					while(ImagemSelecionada > 6)
					{
						ImagemSelecionada = ImagemSelecionada - 6;
					}
					
				}
				
				
					//Tentar tratar  valor do IndexArray e de pagina atual também aqui.
					//IndexArray será importante pois começa uma pagina de forma certa. Os valores deste item devem ser de 6 em 6 (a partir do 0)
					if(ContPag > 5)
					{
						IndexArr += 6; 
						ContPag = 1;
					}
			}
		}
		
		//Passa valor que IndexArray deve ter para gerar imagens na ordem certa e sem faltar nenhuma.
		objDados.IndexArray = 	IndexArr;
		
		 
         j$("img#full-image-slideshow").attr("src", _arrImagem[PosicaoImagem].substring( _arrImagem[PosicaoImagem].indexOf("|") + 1).replace("_thu", padraoBigImage));//Imagem
		//j$("div.image-legend p").html(_arrLegenda[PosicaoImagem].substring( _arrLegenda[PosicaoImagem].indexOf("|") + 1)); //Legenda   DESCOMENTAR DEPOIS
		
         j$("#imgSlide" + ImagemSelecionada).css("border", "2px solid #ff5d69");// adiciona borda vermelha. 

		//ONDE PAREI
		AtualizarNumeroImagemAtual(parte_pagina, "spanImagemAtualSlide", PosicaoImagem + 1);		
    }
    
    //Inicializa controles da galeria
    for(i = 1; i < 7; i++)
    { 
        //Esconde todas as ancoras e imagens relacionas a galeria
        j$("#aSlide" + i ).css("visibility", "hidden");
        j$("#imgSlide" + i ).css("visibility", "hidden");
    }
       
   
    //Adiciona para controles a url da imagem e mostra a ancora referente a cada controle de imagem.
    for(i = objDados.IndexArray; i < (objDados.IndexArray + 6); i++) 
    {   
        //Adiciona valores para controles apenas se o indice existir no vetor
       if(parseInt(i) < parseInt(_arrImagem.length - 2))
       { 
           //Passa para a imagem a string contendo o endereço exato da imagem
           j$("#imgSlide" + numero_controle).attr("src", _arrImagem[i].substring( _arrImagem[i].indexOf("|") + 1));
           j$("#imgSlide" + numero_controle).css("visibility", "visible");
           j$("#aSlide" + numero_controle).css("visibility", "visible"); 
       }
       else
       {
           //Adiciona ultima imagem e sai do loop
           j$("#imgSlide" + numero_controle).attr("src", _arrImagem[i].substring( _arrImagem[i].indexOf("|") + 1));
           j$("#imgSlide" + numero_controle).css("visibility", "visible");
           j$("#aSlide" + numero_controle).css("visibility", "visible");

         break;
       }
       numero_controle++;
    }
    
    
    //Mostra página atual e total de páginas
    j$("#spanPaginaAtualSlide").html("P&aacute;gina" + " " + parseInt(objDados.PaginaAtual) + " de" + " " + parseInt(objDados.TotalPaginas)); 
    
    //Mostra nº de imagem selecionada e total de imagens.
    j$("#spanImagemAtualSlide").text("Imagem " + objDados.ImagemAtual + " de " + objDados.TotalImagens);

    //Quantidade de elementos do array
    //Atribiu valor para ser usado na configuração da navegação. Chama função para ajustar controles de navegação.     
     objDados.QuantidadesElementos = parseInt(_arrImagem.length - 2);
    
    //Caso o slide-show seja de implantação, esconder alguns itens
    if(parte_pagina != "slideshow-implantacao")
    {
        //Configura botões de navegação
        //ConfigurarImagensNavegacaoPlantasLazer(objDados);
    }
    else
    {
        j$("#spanPaginaAtualSlide").css("visibility", "hidden"); 
        j$("#spanTotalPaginaSlide").css("visibility", "hidden"); 
        j$("#imgArrowRightSlide").css("display", "none");
        j$("#imgArrowLeftSlide").css("display", "none");
        j$("a#aArrowRightSlide").css("display", "none");
        j$("a#aArrowLeftSlide").css("display", "none");
        
        for(i = 1; i < 7; i++)
        {
            j$("#aSlide" + i).css("display", "none");
            j$("#imgSlide" + i).css("display", "none");
        }
        
        j$("#spanImagemAtualSlide").css("visibility", "hidden");
       
    }
    
}


//Controla flechas de navegação esquerda e direita, alterando imagens e classes css quando necessario
function ConfigurarImagensNavegacao(aFlechaEsq, aFlechaDir, imgFlechaEsq, imgFlechaDir, Dados)
{
    //Configura visualização da imagem de navegação referente a flecha esquerda
    //Se index array for diferente de 0
    if(Dados.IndexArray != 0)
    {
      j$("a#" + aFlechaEsq).removeClass("nav-thumb-left off");
      j$("a#" + aFlechaEsq).addClass("nav-thumb-left normal");
      j$("a#" + aFlechaEsq).attr("href", "javascript:void(0)");  
      
      j$("#" + imgFlechaEsq).attr("src", "/geral/images/arrow-ficha-gal-left-on.gif");
    }  
    else
    {
      j$("a#" + aFlechaEsq).removeClass("nav-thumb-left normal");
      j$("a#" + aFlechaEsq).addClass("nav-thumb-left off");
      j$("a#" + aFlechaEsq).removeAttr("href"); 
      
      j$("#" + imgFlechaEsq).attr("src", "/geral/images/arrow-ficha-gal-left-off.gif");
    } 
    
    
    //Mostra imagem de flecha de navegação direita como habilitada
    j$("a#" + aFlechaDir).removeClass("nav-thumb-right off");
    j$("a#" + aFlechaDir).addClass("nav-thumb-right normal");
    j$("a#" + aFlechaDir).attr("href", "javascript:void(0)");
        
    j$("#" + imgFlechaDir).attr("src", "/geral/images/arrow-ficha-gal-right-on.gif");
    
    
    //Ou se pagina atual é igual ultima pagina (implementar depois) 
    //Verifica se existe páginas a frente. Se nao existir, desabilita flecha direita
    //index array for maior que a qtde de itens
    if(parseInt(Dados.IndexArray + 6) > Dados.QuantidadesElementos) 
    {
        j$("a#" + aFlechaDir).removeClass("nav-thumb-right normal");
        j$("a#" + aFlechaDir).addClass("nav-thumb-right off"); 
        j$("a#" + aFlechaDir).removeAttr("href");
           
        j$("#" + imgFlechaDir).attr("src", "/geral/images/arrow-ficha-gal-right-off.gif");
    }
    
}


//Controla flechas de navegação esquerda e direita, alterando imagens e classes css quando necessario
function ConfigurarImagensNavegacaoPlantasLazer(Dados)
{
    //Configura visualização da imagem de navegação referente a flecha esquerda
    //Se index array for diferente de 0
    if(Dados.IndexArray != 0)
    {
      j$("a#aArrowLeftSlide").removeClass("nav-thumb-left off");
      j$("a#aArrowLeftSlide").addClass("nav-thumb-left normal");
      j$("a#aArrowLeftSlide").attr("href", "javascript:void(0)");  
      
      j$("#imgArrowLeftSlide").attr("src", "/geral/images/arrow-ficha-gal-left-on.gif");
    }  
    else
    {
      j$("a#aArrowLeftSlide").removeClass("nav-thumb-left normal");
      j$("a#aArrowLeftSlide").addClass("nav-thumb-left off");
      j$("a#aArrowLeftSlide").removeAttr("href"); 
      
      j$("#imgArrowLeftSlide").attr("src", "/geral/images/arrow-ficha-gal-left-off.gif");
    } 
    
    
    //Mostra imagem de flecha de navegação direita como habilitada
    j$("a#aArrowRightSlide").removeClass("nav-thumb-right off");
    j$("a#aArrowRightSlide").addClass("nav-thumb-right normal");
    j$("a#aArrowRightSlide").attr("href", "javascript:void(0)");
        
    j$("#imgArrowRightSlide").attr("src", "/geral/images/arrow-ficha-gal-right-on.gif");
    
    
    //Ou se pagina atual é igual ultima pagina (implementar depois) 
    //Verifica se existe páginas a frente. Se nao existir, desabilita flecha direita
    //index array for maior que a qtde de itens
    if(parseInt(Dados.IndexArray + 6) > Dados.QuantidadesElementos) 
    {
        j$("a#aArrowRightSlide").removeClass("nav-thumb-right normal");
        j$("a#aArrowRightSlide").addClass("nav-thumb-right off"); 
        j$("a#aArrowRightSlide").removeAttr("href");
           
        j$("#imgArrowRightSlide").attr("src", "/geral/images/arrow-ficha-gal-right-off.gif");
    }
    
}


//Recebe como parametro numero do controle clicado. Depois atualiza span com informação de pagina clicada. (executada ao click da imagem)
function AtualizarNumeroImagemAtual(parte_pagina, spanImgAtual, Numero)
{    
    var objDados = DadosImagens(parte_pagina);
    var paginaAtual = 0;
	
	//Caso o modal seja de galeria de imagens
	if(parte_pagina == "slideshow")
	{
		paginaAtual = objDados.IndexArray + _LINK_CLICADO;
	}
	else
	{
		paginaAtual = objDados.IndexArray;
	}
	
    var imagem = (parseInt(paginaAtual) + parseInt(Numero));
    j$("#" + spanImgAtual).text("Imagem " + imagem + " de " + objDados.TotalImagens);  
}






