﻿// **********************************************************************************************
// **********************************************************************************************
// 
//                     Funciones utilizadas por el control WCCPhotoGallery
// 
// **********************************************************************************************
// **********************************************************************************************

    function siguienteFoto(idControl)
    {
        if (galeriaFotosMasHabilitado)
        {
            seleccionarFoto(galeriaFotosFotoSeleccionada + 1 , idControl);
        }
    }

    function anteriorFoto(idControl)
    {
        if (galeriaFotosMenosHabilitado)
        {
            seleccionarFoto(galeriaFotosFotoSeleccionada - 1 , idControl);
        }
    }

    // Selecciona una foto de la galeria de fotos
    //   - fotoASeleccionar es la foto que se mostrará
    function seleccionarFoto(fotoASeleccionar, idControl)
    {	
        //establecemos la seleccionada        
        document.getElementById("span_" + idControl + "_titulo").innerHTML = gFT[fotoASeleccionar];
         document.getElementById("span_" + idControl + "_autor").innerHTML = gFA[fotoASeleccionar];
        document.getElementById("span_" + idControl + "_lugarYFecha").innerHTML = gFLyF[fotoASeleccionar];
        document.getElementById("img_" + idControl + "_foto").alt = gFT[fotoASeleccionar];
        document.getElementById("img_" + idControl + "_foto").src = gFIM[fotoASeleccionar];    
        
        var link = document.getElementById("a_" + idControl + "_descargar");
        if(gFD[fotoASeleccionar])
        {
            link.href = gFIO[fotoASeleccionar];
            link.className = "";
        }
        else
        {
            link.className = "oculto";
        }
        
     
     //alert(fotoASeleccionar + '_' + galeriaFotosPrimeraFoto + '_' + galeriaFotosFotosPorPagina + '_');
        //Si la foto a seleccionar no esta entre las que se muestran en el carrusel (esta antes)
        if (fotoASeleccionar < galeriaFotosPrimeraFoto)
        {      
            mostrarFotos(galeriaFotosDesplazamiento, -1, idControl);
        }
        //Si la foto a seleccionar no esta entre las que se muestran en el carrusel (esta antes)
        if (fotoASeleccionar >= galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina)
        {
            mostrarFotos(galeriaFotosDesplazamiento, 1, idControl);
        }
     
        //la que estaba antes seleccionada pasa a no estarlo (solo si es una de las que se muestran en la pagina 
        //actual del carrusel    
        if (galeriaFotosFotoSeleccionada >= galeriaFotosPrimeraFoto && galeriaFotosFotoSeleccionada < galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina)
        {
            document.getElementById("li_" + idControl + "_" + (galeriaFotosFotoSeleccionada -galeriaFotosPrimeraFoto) ).className = cssClassGaleriaFotosElementoLista ;
        }
        
        //seleccioamos la actual (solo si es una de las que se muestran en la pagina 
        //actual del carrusel  
        if (fotoASeleccionar >= galeriaFotosPrimeraFoto && fotoASeleccionar < galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina)
        {
            document.getElementById("li_" + idControl + "_" + (fotoASeleccionar -galeriaFotosPrimeraFoto) ).className = cssClassGaleriaFotosElementoListaSeleccionado  ;
        }
        
        galeriaFotosFotoSeleccionada = fotoASeleccionar;  
        
        document.getElementById("div_" + idControl + "_menos").className =  (galeriaFotosFotoSeleccionada != 0) ? cssClassGaleriaFotosAnteriorHabilitado  : cssClassGaleriaFotosAnteriorDeshabilitado ;
        document.getElementById("div_" + idControl + "_mas").className =  ( galeriaFotosFotoSeleccionada  + 1 < gFT.length) ? cssClassGaleriaFotosSiguienteHabilitado : cssClassGaleriaFotosSiguienteDeshabilitado;
        
        galeriaFotosMasHabilitado =  galeriaFotosFotoSeleccionada + 1 < gFT.length;
        galeriaFotosMenosHabilitado = galeriaFotosFotoSeleccionada != 0 ;     
    }


    // Se utiliza para mostrar las fotos tras paginar en el carrusel
    // Recibe el desplazamiento que se realizara con respecto a la primera foto que se esta mostrando
    // factor sera -1 o 1 e indicara si se desplazan las fotos hacia delante o hacia atrás.
    function mostrarFotos(desplazamiento, factor, idControl)
    {   
	    if ( (factor == 1 && galeriaFotosMasPaginaHabilitado) || (factor == -1 && galeriaFotosMenosPaginaHabilitado) ) 
	    {	
            galeriaFotosPrimeraFoto = galeriaFotosPrimeraFoto + (factor * desplazamiento);
            var j = 0;
            for (i = galeriaFotosPrimeraFoto; i < galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina; i++)
            {	            
                if (galeriaFotosFotoSeleccionada  == i)
                {
                    document.getElementById("li_" + idControl + "_" + j).className = cssClassGaleriaFotosElementoListaSeleccionado;
                }
                else
                {
                    document.getElementById("li_" + idControl + "_" + j).className = cssClassGaleriaFotosElementoLista;
                }
                       
                if (i < gFT.length)
                {	            
                    document.getElementById("li_" + idControl + "_" + j).style.display = "";	         
                    document.getElementById("img_" + idControl + "_" + j).src = gFIXS[i];
                    document.getElementById("img_" + idControl + "_" + j).alt = gFT[i];
                    
                    var tooltipBox = document.getElementById("p_" + idControl + "_" + j + "_tituloElemento");
                    if(tooltipBox)
                    {
                        tooltipBox.innerHTML = gFT[i];
                    }
                }
                else
                {
                    document.getElementById("li_" + idControl + "_" + j).style.display = "none";	         
                }
                j++;	        
            }        
           
            document.getElementById("div_" + idControl + "_menosPagina").className =  (galeriaFotosPrimeraFoto != 0) ? cssClassGaleriaFotosAnteriorPaginaHabilitado  : cssClassGaleriaFotosAnteriorPaginaDeshabilitado ;
            document.getElementById("div_" + idControl + "_masPagina").className =  ((galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina) < gFT.length) ? cssClassGaleriaFotosSiguientePaginaHabilitado : cssClassGaleriaFotosSiguientePaginaDeshabilitado;
       
            galeriaFotosMasPaginaHabilitado = (galeriaFotosPrimeraFoto + galeriaFotosFotosPorPagina) < gFT.length;
            galeriaFotosMenosPaginaHabilitado = galeriaFotosPrimeraFoto != 0 ;  
        }   
    }

    //****************************************************************************************
    // Funciones para mostrar y ocultar un div a la izquierda de otro div
    //****************************************************************************************
       
    function mostrarDivIzq(div1, div2, evento)
    {    
        var d1= document.getElementById(div1);
        var d2= document.getElementById(div2);          
        
        d2.style.display = "";
        var isIE = (document.all);            
        var offsetX = (isIE) ? evento.offsetX : evento.pageX - d1.offsetLeft;
        var offsetY = (isIE) ? evento.offsetY : evento.pageY - d1.offsetTop;

        //d2.innerHTML = evento.clientX + '-' + offsetX + '-' +  d2.offsetWidth ;
        d2.style.left =  evento.clientX - offsetX -  d2.offsetWidth  + "px";
        //  document.documentElement.scrollTop funciona bien en todos los navegadores menos en Chrome y document.body.scrollTop al contrario    
        d2.style.top = document.documentElement.scrollTop + document.body.scrollTop + evento.clientY - offsetY  + "px";     
    }

    function ocultarDivIzq(div)
    {   
            document.getElementById(div).style.display = "none";            
    }
