﻿/*********************************  CUGenerales.js ********************************/

var InicioDenominacionFormulario = "MasterPagina_CPHContenidoGestor_"

    

    /* Para conocer el código asignado a cada tecla. */
    //Se asocia al evento 'onkeypress' la funcion que se quiere ejecutar cada vez que se pulse una tecla del teclado.
    document.onkeypress = TeclaPulsada
    
    // Numero maximo de caracteres dependiendo del txtBox que se este editando.
    var LongitudTxtTitulo = 50
    var LongitudTxtFecha = 10
    var LongitudTxtHora = 5
    
    /*
     * Funcion que almacena en el atributo hidden 'cTeclaPulsadaASCII' de 'Informacion.ascx'
     * el codigo ASCII de la ultima tecla pulsada por el usuario.
     */
    function TeclaPulsada() 
    {
        var txtBoxEdicion
        
        // Se recupera el TxtBox que en el que se esta escribiendo.
        if ((document.activeElement.id == "MasterPagina_CPHContenido_TxtNombre")
            || 
            (document.activeElement.id == "MasterPagina_CPHContenido_TxtEmail")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_TxtSugerencia")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_EncabezadoPublico_TxtBoxBuscar")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_MenuPrincipal_Buscador_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_MenuPrincipal_Buscador_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_MenuPrincipal_Buscador_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_MenuPrincipal_Sugerencias_Buscador_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_Buscador_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_Buscador_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenido_Buscador_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContenido_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContenido_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContenido_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionEvento_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionEvento_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionEvento_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionNoticia_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionNoticia_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionNoticia_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionSugerencia_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionSugerencia_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionSugerencia_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionCarrusel_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionCarrusel_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionCarrusel_txtFechaFin")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContratista_txtTexto")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContratista_txtFechaInicio")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_PaginacionContratista_txtFechaFin")
            ||
            (document.activeElement.id.indexOf("MasterPagina_CPHContenidoGestor_Informacion_TxtBoxEstructuraCampos") != -1)
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_Informacion_TxtFiltroDenominacionAgrupImg")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_Informacion_TxtFechaInicioAgrupImg")
            ||
            (document.activeElement.id == "MasterPagina_CPHContenidoGestor_Informacion_TxtFechaFinAgrupImg"))
        {
            txtBoxEdicion = document.getElementById(document.activeElement.id)
        }      
        else if ((document.activeElement.id != "")
            &&
            (document.activeElement.id.indexOf("MasterPagina_BodyMasterGestor") == -1)
            && 
            (document.activeElement.id.indexOf("MasterContenedorGestor") == -1) 
            && 
            (document.activeElement.id.indexOf("MenuPrincipal") == -1) 
            &&
            (document.activeElement.id.indexOf("EncabezadoPublico") == -1) 
            &&
            (document.activeElement.id.indexOf("Paginacion") == -1))
        {            
            txtBoxEdicion = BuscarTxtBoxVisible() 
            if (document.getElementById(IDcTeclaPulsadaASCII) != null)
            {
                // Almacenar en el hidden 'cTeclaPulsadaASCII' el codigo ASCII de la ultima tecla pulsada por el usuario.
                document.getElementById(IDcTeclaPulsadaASCII).value = event.keyCode //codigo ASCII de la tecla pulsada.
            }   
        }
        else if ((document.activeElement.id.indexOf("MenuPrincipal") != -1) 
            ||
            (document.activeElement.id.indexOf("EncabezadoPublico") != -1))
        {
            // Se esta editando un txtBox de la parte publica (o en el
            // buscador o en la zona de busqueda de la pagina principal).
            txtBoxEdicion = document.getElementById(document.activeElement.id)
            txtBoxEdicion.value = txtBoxEdicion.value + String.fromCharCode(event.keyCode)
        }
        
                   
        if ((txtBoxEdicion != undefined) && (txtBoxEdicion != false))
        {
            if ((txtBoxEdicion.type == "text") && (event.keyCode == 13)) //event.keyCode == 13 ==> tecla return.
            {
                // El usuario ha pulsado la tecla 'return' en un campo de texto SingleLine.
                return false
            }
            
            // Dependiendo del tipo de txtBox en el que se este escribiendo, tendra limitado
            // el numero de caracteres que puede tener, con lo que si el texto contenido ya
            // ha llegado a ese limite no se permitira escribir ningun otro caracter.
            //      - Campos con fechas: max.num.caracteres -> 10 (formato fecha: dd/mm/aaaa)
            //      - Campos con hora: max.num.caracteres -> 5 (formato hora: hh:mm)
            //      - Campos titulo: max.num.caracteres -> 50 (formato hora: hh:mm)
            if (txtBoxEdicion.id.indexOf("Fecha") != -1)
            {
                if (txtBoxEdicion.value.length >= LongitudTxtFecha)
                {
                    return false
                }
            }
            else if (txtBoxEdicion.id.indexOf("Hora") != -1)
            {
                if (txtBoxEdicion.value.length >= LongitudTxtHora)
                {
                    return false
                }
            }
//            else if (txtBoxEdicion.id.indexOf("TxtTitulo") != -1)
//            {
//                if (txtBoxEdicion.value.length >= LongitudTxtTitulo)
//                {
//                    return false
//                }
//            }
            
            
            // Recuperar la posicion en la que se encuentra el cursor para poder escribir
            // el caracter cuya tecla ha pulsado el usuario en la posicion correcta.
            // (Visto en http://blog.vishalon.net/Post/57.aspx)
            var posicionCursor = -1 
            var posicionCursorAux = -1 
            var subTexto1 = ""
            var subTexto2 = ""
            var Sel, Sel2
            
            if (txtBoxEdicion.type == "text") // textbox
            {
                posicionCursor = Math.abs(document.selection.createRange().moveStart("character", -1000000))
            }
            else if(txtBoxEdicion.type == "textarea") // textarea
            {                
                Sel = document.selection.createRange ()
                Sel2 = Sel.duplicate()
                Sel2.moveToElementText(txtBoxEdicion)
                posicionCursor = 0
                while(Sel2.inRange(Sel))
                {
                    Sel2.moveStart("character")
                    posicionCursor++
                }
            } 
            
            // Si la persona usuaria ha seleccionado todo o parte del texto, se entiende que pretende
            // sobreescribirlo, es decir, perder el texto que ha seleccionado en detrimento del que escriba.
            if (document.selection.createRange().text != "")
            {
                txtBoxEdicion.value = txtBoxEdicion.value.replace(document.selection.createRange().text, "")
            }             
            
            // Hay que tener cuidado con los saltos de linea en IE (son 2 caracteres). 
            // Aumentar 'pocicionCursor' en 1 por cada salto de linea que aparezca hasta ella misma.
	        posicionCursorAux = posicionCursor
	        if (document.selection) //IE support
	        {
	            var i
		        for (i=2; i<=posicionCursor; i++)
		        {
		            if ((txtBoxEdicion.value.substring(i-2, i-1) == "\r") && (txtBoxEdicion.value.substring(i-1, i) == "\n"))
		            {
		                posicionCursorAux++
		            }
		        }
	        }      
	        

            // Para evitar problemas cuando no se este en la parte gestora.
////            if ((document.activeElement.id.indexOf("MenuPrincipal") == -1) 
////                &&
////                (document.activeElement.id.indexOf("EncabezadoPublico") == -1))
////            {
                subTexto1 = (txtBoxEdicion.value).substring(0, posicionCursorAux)
                subTexto2 = (txtBoxEdicion.value).substring(posicionCursorAux, txtBoxEdicion.value.length)
                txtBoxEdicion.value = subTexto1 + String.fromCharCode(event.keyCode) + subTexto2         
                // Colocar el cursor tras el ultimo caracter escrito.
                PosicionarCursor(txtBoxEdicion, posicionCursor+1)
                
                if (document.getElementById(IDcTeclaPulsadaASCII) != null)
                {
                    document.getElementById(IDcTeclaPulsadaASCII).value = -1
                }
////            }
        } 
        return false
    } 
       
    
    /*
     * Funcion comprueba si hay algun txtBox visible; en ese caso se devuelve dicho txtBox, en caso contrario devuelve false.
     * (El usuario ha pulsado la tecla 'Enter' y por eso ha saltado esta funcion.).
     */
    function BuscarTxtBoxVisible()
    {
        var elemsInput = document.getElementsByTagName("input")
        var elemsTextArea = document.getElementsByTagName("textarea")
        var i
        
        // Se recorren los txtBox de tipo SingleLine.
        for (i=0; i<=elemsInput.length-1; i++)
        {
            if ((elemsInput(i).type == "text") && (elemsInput(i).style.display == "block"))
            {
                return elemsInput(i)
            }
        }
        
        // Se recorren los txtBox de tipo MultiLine.
        for (i=0; i<=elemsTextArea.length-1; i++)
        {
            if ((elemsTextArea(i).type == "textarea") && (elemsTextArea(i).style.display == "block"))
            {
                return elemsTextArea(i)
            }
        }    
                  
        return false   
    }
    

     /* 
     * Funcion que lleva posiciona el cursor de un txtBox en la posicion pasada como parametro.
     * Parametros:
     *      - TxtFoco: txtBox en el que hay que posicionar el cursor.
     *      - PosicionCursor: posicion en la que hay que colocar el cursor.
     * Funcion asociada al evento "onfocus" de los lnkBtn's de la pagina.
     *                             -------
     */
    function PosicionarCursor(TxtFoco, PosicionCursor)
    {
        if(TxtFoco.createTextRange)
        {
            /*
             * Create a TextRange, set the internal pointer to a
             * specified position and show the cursor at this position.
             */
            var range = TxtFoco.createTextRange()
            range.move("character", PosicionCursor)
            range.select()
        }
        return false
    }    
    


/*********************************** Empieza Javascript para Buscador.ascx *********************************************/

    function MostrarCalendarioHistorico(txtboxID, textbox)
    {
        var DenInicio = textbox.id.substring(0, textbox.id.lastIndexOf("_") + 1)  
        
        XCalendario = event.clientX - event.offsetX
        YCalendario = event.clientY - event.offsetY + textbox.offsetHeight
      
        document.getElementById(DenInicio + "pnlCalendarioBuscador").style.left = XCalendario
        document.getElementById(DenInicio + "pnlCalendarioBuscador").style.top = YCalendario
        document.getElementById(DenInicio + "pnlCalendarioBuscador").style.position = 'absolute'
        
        calendario = document.getElementById(DenInicio + "pnlCalendarioBuscador")
       
        if (calendario.style.display=='none')
        {
            calendario.style.display ='block'
        }
        else if (calendario.style.display=='block')
        {
            calendario.style.display ='none'
        }

        document.getElementById(DenInicio + "cTxtCalendario").value = txtboxID
        document.getElementById(DenInicio + "cPosicionAbsolutaCalendario").value = XCalendario + "#" + YCalendario
    }
    
    
    function VisibilizarPaginaAntSig(PagActual, IrAPagina, ObjetoPulsado)
    {
        var DenInicio = ObjetoPulsado.id.substring(0, ObjetoPulsado.id.lastIndexOf("_") + 1)
        
        if (document.getElementById(DenInicio + 'PanelGrupoLinkPaginacion' + PagActual) != null)
        {
            document.getElementById(DenInicio + 'PanelGrupoLinkPaginacion' + PagActual).style.display = 'none'
            document.getElementById(DenInicio + 'PanelGrupoLinkPaginacion' + IrAPagina).style.display = 'block'
        }
        else if (document.getElementById(DenInicio + 'PanelGrupoLinkPaginacionCarrusel' + PagActual) != null)
        {
            document.getElementById(DenInicio + 'PanelGrupoLinkPaginacionCarrusel' + PagActual).style.display = 'none'
            document.getElementById(DenInicio + 'PanelGrupoLinkPaginacionCarrusel' + IrAPagina).style.display = 'block'
        }
        
        return false
    }
    
//    function ChkContratista_CheckedChanged(NumCheckMarcado, IDCheckLicitacion, IDCheckAdjudicacion)
//    {
//    
//        // NOTA: Si se selecciona uno de los check's, automáticamente se desmarcará el otro.
//        //       Ambos check's pueden encontrarse desmarcados (para buscar tanto en Licitaciones como en Adjudicaciones),
//        //       pero nunca ambos marcados.
//        //       Casuística posible:
//        //          ChkContratistaLicitacion  |  ChkContratistaAdjudicacion
//        //          --------------------------------------------------------
//        //                     0              |             0
//        //                     0              |             1
//        //                     1              |             0

//        var CheckLicitacion
//        var CheckAdjudicacion
//        
//        CheckLicitacion = document.getElementById(IDCheckLicitacion)
//        CheckAdjudicacion = document.getElementById(IDCheckAdjudicacion)
//        
//        switch (NumCheckMarcado)
//        {
//            case 0:
//                /* Se ha pulsado sobre el check de Licitacion. */                
//                if (CheckLicitacion != null)
//                {
//                    if (CheckLicitacion.checked)
//                    {
//                        CheckAdjudicacion.checked = false
//                    }
//                }
//                break
//            
//            case 1:
//                /* Se ha pulsado sobre el check de Adjudicacion. */
//                if (CheckAdjudicacion != null)
//                {
//                    if (CheckAdjudicacion.checked)
//                    {
//                        CheckLicitacion.checked = false
//                    }
//                }
//                break
//        }
//    }
    
/*********************************** Finaliza Javascript para Buscador.ascx *********************************************/

    
/***********************************Finaliza Javascript para CarruselElems.ascx *********************************************/ 
    function CambiarEstiloBtn(Btn, Estilo)
    {
        if ((Btn.className).indexOf('Sel') == -1)
        {
            Btn.className = Estilo
        }
    } 
/*********************************** Empieza Javascript para CarruselElems.ascx *********************************************/

 
/*********************************** Empieza Javascript para CarruselImg.ascx *********************************************/  

    // (13-Nov-2008) No se usa (en 'CarruselImg.ascx.vb').
    function RemarcarImgCarrusel(ObjImagen, Fila, Columna)
    {
        var RaizID
        var PnlImg
        
        // Se recupera la raiz para el identificador del panel en el que se encuentra la imagen
        // (simulara un marco alrededor de dicha imagen) y el label con la denominacion de la misma.
        RaizID = ObjImagen.id.substring(0, ObjImagen.id.lastIndexOf("_") + 1)
        
        // Se recupera el panel en el que se encuentra la imagen.
        PnlImg = document.getElementById(RaizID + "PnlColumnaCarrusel" + Fila + Columna)
        ObjImagen.className = "ImgItemCarruselOver" 
        
        return false
    }
  
    
//    function AumentarImgCarrusel(ObjImagen, AnchoImg, AltoImg, Fila, Columna, IdBtnCerrarItemCarrusel, TemaPagina)
//    {
//        var RaizID
//        var PnlImg
//        var LblImg
//        var BtnCerrarImg
//        var x, y
//        var anchoBordeImg
//        
//        anchoBordeImg = 30 /* Es el valor que se le ha dado en el fichero 'CUGenerales.css': border-width: 30px; */
//        
//        // Se recupera la raiz para el identificador del panel en el que se encuentra la imagen
//        // (simulara un marco alrededor de dicha imagen) y el label con la denominacion de la misma.
//        RaizID = ObjImagen.id.substring(0, ObjImagen.id.lastIndexOf("_") + 1)
//        
//        if (ObjImagen.id.indexOf("_Fotografias_") != -1)
//        {
//            // El usuario se encuentra en la pantalla 'Fotografias'.
//            x = (screen.width - AnchoImg) / 3.5
//        }
//        else
//        {
//            // El usuario se encuentra visualizando el carrusel de imagenes de un Contenido, una Noticia o un Evento.
//            x = (screen.width - AnchoImg) * 2.5
//        }
//        y = (screen.height - AltoImg) / 2        
//               
//        // Se recupera el label con la denominacion de la imagen y se pone el texto en negrita.
//        LblImg = document.getElementById(RaizID + "LblDenomItemCarrusel" + Fila + Columna)
//        LblImg.style.fontWeight = "bold"
//        
//        // Se recupera el panel en el que se encuentra la imagen.
//        PnlImg = document.getElementById(RaizID + "PnlColumnaCarrusel" + Fila + Columna)
//        // Se modifican sus caracteristicas.
//        PnlImg.className = "PnlColumnaCarruselOn"
//        PnlImg.style.width = AnchoImg + "px"
//        PnlImg.style.height = AltoImg + "px" 
//        PnlImg.style.position = "absolute"
//        PnlImg.style.zIndex = "1"
//		PnlImg.style.top = x - 30 + "px" 
//		PnlImg.style.left = y - 30 + "px"        
//        
//        // Se muestra la imagen en su tamanno real, posicionada de forma absoluta y en la posicion indicada.
//        ObjImagen.style.width = AnchoImg + "px"
//        ObjImagen.style.height = AltoImg + "px"         
//        
//        // Se recupera el lnkBtn que sirve para restaurar la imagen.
//        BtnCerrarImg = document.getElementById(RaizID + IdBtnCerrarItemCarrusel)
//        // Se hace visible y se modifican sus caracteristicas.
//        BtnCerrarImg.style.display = "block"
//        BtnCerrarImg.className = "BtnCerrarItemCarrusel"
//		BtnCerrarImg.style.top = -30 + "px"
//		if (document.selection)
//		{
//		    // IE
//		    BtnCerrarImg.style.left = (AnchoImg + 6) + "px"
//		}
//		else
//		{
//		    // Firefox, Safari
//		    BtnCerrarImg.style.left = (AnchoImg - 3)+ "px"
//		    BtnCerrarImg.style.fontWeight = "bold"
//		}
//		// ABSURDO: pero el color no lo coge desde el estilo 'BtnCerrarItemCarrusel'.
//		if (TemaPagina == "Verde")
//		{
//		    //V (verde)
//		    BtnCerrarImg.style.color = "#258F28"
////		    BtnCerrarImg.style.color = "#FFF" //blanco
//		}
//		else
//		{
//		    //ByN (blanco y negro)
//		    BtnCerrarImg.style.color = "#000000" //negro
//		}		

//        return false
//    }
//    
//    
//    function DecrementarImgCarrusel(LnkCerrarImg, AnchoImg, AltoImg, AnchoImgDefecto, Fila, Columna, CodImg)
//    {
//        var RaizID
//        var PnlImg
//        var ObjImg
//        var LblImg
//        
//        // Se recupera la raiz.
//        RaizID = LnkCerrarImg.id.substring(0, LnkCerrarImg.id.lastIndexOf("_") + 1)
//        
//        
//        // Se oculta el lnkBtn.
//        LnkCerrarImg.style.display = "none"
//        
//        // Se recupera la IMAGEN.
//        ObjImg = document.getElementById(RaizID + "ImgItemCarrusel" + CodImg)
//        // Se muestra redimensionada y se inicializan el resto de
//        // valores modificados en la funcion 'AumentarImgCarrusel'.
//        ObjImg.style.position = ""
//        ObjImg.style.zIndex = ""
//		ObjImg.style.top = ""
//		ObjImg.style.left = ""
//        ObjImg.style.width = AnchoImgDefecto + "px"
//        ObjImg.style.height = AltoImg / (AnchoImg / AnchoImgDefecto) + "px"
//        
//        // Se recupera el PANEL donde se encuentra la imagen.
//        PnlImg = document.getElementById(RaizID + "PnlColumnaCarrusel" + Fila + Columna)
//        // Se restauran los valores modificados en la función 'AumentarImgCarrusel'.
//        PnlImg.style.position = ""
//        PnlImg.style.zIndex = ""
//        PnlImg.className = "PnlColumnaCarrusel"
//        PnlImg.style.width = ObjImg.style.width
//        PnlImg.style.height = ObjImg.style.height
//        
//        // Se recupera el LABEL con la denominacion de la imagen.
//        LblImg = document.getElementById(RaizID + "LblDenomItemCarrusel" + Fila + Columna)
//        // Se restauran los valores modificados en la función 'AumentarImgCarrusel'.
//        LblImg.style.fontWeight = ""
//        
//        return false
//    }

    
    // (13-Nov-2008) Ya no se usa (en 'CarruselImg.ascx.vb').
    function MostrarDuplicadoImgCarrusel(IdImgDuplicado, IdPnlImgDuplicado, AnchoImg, AltoImg, Fila, Columna, IdBtnCerrarItemCarrusel, TemaPagina)
    {
        /*
         * Metodo que abre una imagen a tamanno real (excepto si excede unas
         * dimensiones maximas) en una nueva ventana del explorador de internet.
         */
        
        var RaizID
        var AnchoAux = AnchoImg
        var AltoAux = AltoImg
        if ((AnchoImg > 800) && (AltoImg > 600))
        {
            // Se redimensiona en funcion del valor que supere en mayor grado las medidas por defecto.
            if ((AnchoImg - 800) > (AltoImg - 600))
            {
                AnchoAux = (AnchoImg / (AltoImg / 800))
                AltoAux = 600
            }
            else
            {
                AnchoAux = 800
                AltoAux = AltoImg / (AnchoImg / 600)
            }
        }
        else if (AnchoImg > 800) 
        {            
            AnchoAux = 800
            AltoAux = AltoImg / (AnchoImg / 600)
        }
        else if (AltoImg > 600)
        {            
            AnchoAux = (AnchoImg / (AltoImg / 800))
            AltoAux = 600
        }
        
        // Se recupera la raiz para el identificador del panel en el que se encuentra la imagen
        // (simulara un marco alrededor de dicha imagen) y el label con la denominacion de la misma.
        RaizID = IdPnlImgDuplicado.substring(0, IdPnlImgDuplicado.lastIndexOf("_") + 1)   
        
        // Se recupera la imagen duplicada.
        if (IdImgDuplicado.indexOf("_") == -1)
        {
            IdImgDuplicado = RaizID + IdImgDuplicado
        }
        ImgDuplicado = document.getElementById(IdImgDuplicado)
            
        // Se abre una nueva ventana ajustada al tamanno de la imagen y en el centro de la pantalla.
        var derecha = (screen.width - AnchoImg) / 2;
        var arriba = (screen.height - AltoImg) / 2;
        var DenomPaginaImg = ImgDuplicado.alt //contiene la denominacion de la imagen.
        string = "toolbar=0, scrollbars=0, location=0, statusbar=0, menubar=0, resizable=1, width="+AnchoAux+", height="+AltoAux+", left="+derecha+", top="+arriba+"";
        window.open(ImgDuplicado.href, "", string);
//        window.open(ImgDuplicado.href, DenomPaginaImg, string);

        return false
    }
//    // (13-Nov-2008) Ya no se usa (en 'CarruselImg.ascx.vb').
//    function MostrarDuplicadoImgCarrusel(IdImgDuplicado, IdPnlImgDuplicado, AnchoImg, AltoImg, Fila, Columna, IdBtnCerrarItemCarrusel, TemaPagina)
//    {
//        /*
//         * Metodo que abre una imagen a tamanno real (excepto si excede unas dimensiones maximas)
//         * mediante una imagen duplicada en la ventana actual del explorador de internet.
//         */
//        
//        var RaizID
//        var ImgDuplicado
//        var PnlImgDuplicado
//        var BtnCerrarImg
////        var x, y
////        var anchoBordeImg
////        
////        anchoBordeImg = 30 /* Es el valor que se le ha dado en el fichero 'CUGenerales.css': border-width: 30px; */	
////        
////        if (ObjImagen.id.indexOf("_Fotografias_") != -1)
////        {
////            // El usuario se encuentra en la pantalla 'Fotografias'.
////            x = (screen.width - AnchoImg) / 3.5
////        }
////        else
////        {
////            // El usuario se encuentra visualizando el carrusel de imagenes de un Contenido, una Noticia o un Evento.
////            x = (screen.width - AnchoImg) * 2.5
////        }
////        y = (screen.height - AltoImg) / 2
////        x = event.x// - (AnchoImg / 2)
////        y = event.y// - (AltoImg / 2)



//        /* Se recuperan los diferentes controles. */        
//        
//        // Se recupera la raiz para el identificador del panel en el que se encuentra la imagen
//        // (simulara un marco alrededor de dicha imagen) y el label con la denominacion de la misma.
//        RaizID = IdPnlImgDuplicado.substring(0, IdPnlImgDuplicado.lastIndexOf("_") + 1)

//        // Se recupera el panel en el que se encuentra la imagen duplicada.
//        PnlImgDuplicado = document.getElementById(IdPnlImgDuplicado)     
//        
//        // Se recupera la imagen duplicada.
//        if (IdImgDuplicado.indexOf("_") == -1)
//        {
//            IdImgDuplicado = RaizID + IdImgDuplicado
//        }
//        ImgDuplicado = document.getElementById(IdImgDuplicado)
//        
//        // Se recupera el lnkBtn que sirve para restaurar la imagen.
//        BtnCerrarImg = document.getElementById(IdBtnCerrarItemCarrusel) 


//        // Comprobar las dimensiones reales de la imagen.        
//        // Si superan las permitidas (800x600)[ancho x alto], habra que redimensionarla.
//        var DiferenciaBtnCerrar = 0
//        if (AnchoImg > 800) 
//        {
//            ImgDuplicado.style.width = 800
//            ImgDuplicado.style.height = AltoImg / (AnchoImg / 600)
//            
//            PnlImgDuplicado.style.width = 800
//            PnlImgDuplicado.style.height = (AltoImg / (AnchoImg / 600))
//            
//            DiferenciaBtnCerrar = AnchoImg - 800
//        }
//        else if (AltoImg > 600)
//        {
//            ImgDuplicado.style.width = AnchoImg / (AltoImg / 800)
//            ImgDuplicado.style.height = 600
//            
//            PnlImgDuplicado.style.width = (AnchoImg / (AltoImg / 800))
//            PnlImgDuplicado.style.height = 600
//            
//            DiferenciaBtnCerrar = AnchoImg - (AnchoImg / (AltoImg / 800))
//        }

//        // Se modifican las caracteristicas del panel en el que se encuentra la imagen duplicada.
//        PnlImgDuplicado.style.display = "block"
//        PnlImgDuplicado.className = "PnlColumnaCarruselOn"
//        PnlImgDuplicado.style.position = "absolute"
////        PnlImgDuplicado.style.top = x - 30 + "px"
////        PnlImgDuplicado.style.left = y - 30 + "px"
//        PnlImgDuplicado.style.marginTop = 0
//        PnlImgDuplicado.style.marginLeft = 0

//        // Se modifican las caracteristicas de la imagen duplicada.
//        ImgDuplicado.style.display = "block"
//        ImgDuplicado.style.position = "absolute"

//        // Se modifican las caracteristicas del lnkBtn que sirve para restaurar la imagen.
//        BtnCerrarImg.style.display = "block"
//        BtnCerrarImg.className = "BtnCerrarItemCarrusel"
//        BtnCerrarImg.style.position = "absolute"
//		BtnCerrarImg.style.top = -30 + "px"
//		BtnCerrarImg.style.left =  - DiferenciaBtnCerrar - 30 + "px"
//		if (document.selection)
//		{
//		    // IE
//		    BtnCerrarImg.style.left = (AnchoImg + 6) + "px"
//		}
//		else
//		{
//		    // Firefox, Safari
//		    BtnCerrarImg.style.left = (AnchoImg - 3)+ "px"
//		    BtnCerrarImg.style.fontWeight = "bold"
//		}
//		// ABSURDO: pero el color no lo coge desde el estilo 'BtnCerrarItemCarrusel'.
//		if (TemaPagina == "Verde")
//		{
//		    //V (verde)
//		    BtnCerrarImg.style.color = "#258F28"
//		}
//		else
//		{
//		    //ByN (blanco y negro)
//		    BtnCerrarImg.style.color = "#000000" //negro
//		}
//      return false
//    }
    
    
    // (13-Nov-2008) Ya no se usa (en 'CarruselImg.ascx.vb').
    function OcultarDuplicadoImgCarrusel(IdPnlImgDuplicado)
    {
        document.getElementById(IdPnlImgDuplicado).style.display = "none"        
        return false
    }    
    
    
    function AumentarImagen(Imagen, AnchoImg, AltoImg, TemaPagina)
    {
        var IdImgDuplicado
        var IdPnlImgDuplicado
        var IdBtnCerrarImgDuplicado
        var ImgDuplicado
        var PnlImgDuplicado
        var BtnCerrarImgDuplicado
        var PosXBtnCerrar = AnchoImg
        var AltoAux = AltoImg
        var AnchoAux = AnchoImg
        
        // Se generan los identificadores de los controles necesarios para mostrar la imagen a tamanno real.
        IdImgDuplicado = Imagen.id.replace("ImgItemCarrusel", "ImgItemCarruselDuplicado")
        IdPnlImgDuplicado = Imagen.id.replace("ImgItemCarrusel", "PnlImgItemCarruselDuplicado")
        IdBtnCerrarImgDuplicado = Imagen.id.replace("ImgItemCarrusel", "BtnCerrarItemCarruselDuplicado")
        
        // Se recuperan los controles necesarios para mostrar la imagen a tamanno real.
        ImgDuplicado = document.getElementById(IdImgDuplicado)
        PnlImgDuplicado = document.getElementById(IdPnlImgDuplicado)
        BtnCerrarImgDuplicado = document.getElementById(IdBtnCerrarImgDuplicado)
        
        // Se modifican las caracteristicas del panel en el que se encuentra la imagen duplicada.
        PnlImgDuplicado.style.display = "block"
        PnlImgDuplicado.className = "PnlColumnaCarruselOn"
        PnlImgDuplicado.style.position = "absolute" 

        // Se modifican las caracteristicas de la imagen duplicada.
        ImgDuplicado.style.display = "block"
        ImgDuplicado.style.position = "absolute"
        // NOTA: para los estilos que conlleven una unidad tras el valor (i.e.: ImgDuplicado.style.width = "800px"), hay
        // ----  que poner la unidad (i.e.: en el ejemplo anterior, "px") para que con navegadores como Mozila (Firefox)
        //       las modificaciones desde javascript de dichos estilos surtan efecto (con IE no es necesario).
        if (AnchoImg > 800) 
        {            
            AltoAux = AltoImg / (AnchoImg / 800)
            AnchoAux = 800
            
            ImgDuplicado.style.width = "800px"
            ImgDuplicado.style.height = (AltoAux) + "px"
            
            PnlImgDuplicado.style.width = "800px"
            PnlImgDuplicado.style.height = (AltoAux) + "px"
            
            PosXBtnCerrar = 800
        }
        else if (AltoImg > 600)
        {            
            AltoAux = 600
            AnchoAux = AnchoImg / (AltoImg / 600)
            
            ImgDuplicado.style.width = (AnchoAux) + "px"
            ImgDuplicado.style.height = "600px"
            
            PnlImgDuplicado.style.width = (AnchoAux) + "px"
            PnlImgDuplicado.style.height = "600px"
            
            PosXBtnCerrar = AnchoAux
        }
        
        // Se centra la imagen en la parte que se ve de la pantalla.
        // En el caso de que alguna de las coordenadas (top,left) resulte ser negativa (parte de la imagen
        // quedaria fuera de la pantalla y no podria verse), dicha coordenada se establecera con valor cero.
        // En el caso de que la ventana muestre el scrool, a las coordenadas (top, left) se les sumarán los píxeles "scrollados".
        if (((document.documentElement.clientHeight / 2) - (AltoAux / 2)) < 0)
        {
            PnlImgDuplicado.style.top = 0
        }
        else
        {
//            PnlImgDuplicado.style.top = ((document.documentElement.clientHeight / 2) - (AltoAux / 2)) + "px"
            PnlImgDuplicado.style.top = (((document.documentElement.clientHeight / 2) - (AltoAux / 2)) + document.documentElement.scrollTop) + "px"
        }
        if (((document.documentElement.clientWidth / 2) - (AnchoAux / 2)) < 0)
        {
            PnlImgDuplicado.style.left = 0
        }
        else
        {
//            PnlImgDuplicado.style.left = ((document.documentElement.clientWidth / 2) - (AnchoAux / 2)) + "px"
            PnlImgDuplicado.style.left = (((document.documentElement.clientWidth / 2) - (AnchoAux / 2)) + document.documentElement.scrollLeft) + "px"
        }

        // Se modifican las caracteristicas del lnkBtn que sirve para restaurar la imagen.
        BtnCerrarImgDuplicado.style.display = "block"
        BtnCerrarImgDuplicado.className = "BtnCerrarItemCarrusel"
        BtnCerrarImgDuplicado.style.position = "absolute"
		BtnCerrarImgDuplicado.style.top = -30 + "px"
		if (document.selection)
		{
		    // IE
		    BtnCerrarImgDuplicado.style.left = (PosXBtnCerrar + 6) + "px"
		}
		else
		{
		    // Firefox, Safari
		    BtnCerrarImgDuplicado.style.left = (PosXBtnCerrar - 3)+ "px" //BtnCerrarImgDuplicado.style.left = (AnchoImg - 3)+ "px"
		    BtnCerrarImgDuplicado.style.fontWeight = "bold"
		}
		// ABSURDO: pero el color no lo coge desde el estilo 'BtnCerrarImgDuplicado'.
		if (TemaPagina == "Verde")
		{
		    //V (verde)
		    BtnCerrarImgDuplicado.style.color = "#258F28"
		}
		else
		{
		    //ByN (blanco y negro)
		    BtnCerrarImgDuplicado.style.color = "#000000" //negro
		}		
		return false
    }
    
    
    // (13-Nov-2008) Ya no se usa (en 'CarruselImg.ascx.vb').
    function MoverImagen(Imagen, AnchoImg, AltoImg)
    {
        var IdPnlImgDuplicado
        var PnlImgDuplicado
        var DesplazamientoX = 20//50
        var DesplazamientoY = 20//50
        var AnchuraTotal
        var AlturaTotal
        
        IdPnlImgDuplicado = Imagen.id.replace("ImgItemCarrusel", "PnlImgItemCarruselDuplicado")
        PnlImgDuplicado = document.getElementById(IdPnlImgDuplicado)
        
        // Comprobar que la imagen a tamanno real (la duplicada) se encuentra visible.
        if (PnlImgDuplicado.style.display == "block")
        {        
            AnchuraTotal = AnchoImg + DesplazamientoX 
            AlturaTotal = AltoImg + DesplazamientoY
            
            if ((document.documentElement.clientWidth > AnchuraTotal) || (document.documentElement.clientHeight > AlturaTotal))
            {
                PnlImgDuplicado.style.left = event.x + DesplazamientoX
                PnlImgDuplicado.style.top = event.y + DesplazamientoY            
            }
            else
            {
                PnlImgDuplicado.style.left = event.x
                PnlImgDuplicado.style.top = event.y
            }
        }        
        return false
    }
    
    
    function DisminuirImagen(BtnCerrarImgDuplicado)
    {
        var IdPnlImgDuplicado
        
        IdPnlImgDuplicado = BtnCerrarImgDuplicado.id.replace("BtnCerrarItemCarruselDuplicado", "PnlImgItemCarruselDuplicado")
        document.getElementById(IdPnlImgDuplicado).style.display = "none"
        
        return false
    }
    
    var NumImgVisorCarruselActual = 0
    function AbrirVisorCarrusel(Imagen, NumImagen, CodsImgs, DenominacionesImgs, RutasImgs, AlturasImgs, AnchurasImgs, TotalImgs)
    {
        var Raiz
        var PnlDeshabilitar
        var PnlVisorImagenesCarrusel
        var PnlDenomImgVisorCarrusel
        var LblDenomImgVisor
        var PnlImgVisorCarrusel
        var ImgVisor
        var PnlPieVisorCarrusel
        var PnlLnksPaginacionVisorCarrusel
        var LnkAnteriorVisor
        var LnkSiguienteVisor
        var LblPaginacionVisor
        var ArrayCods
        var ArrayDenominaciones
        var ArrayRutas
        var ArrayAlturas
        var ArrayAnchuras
        var AltoImgVisor
        var AnchoImgVisor
        
        
        if (CodsImgs.indexOf("#") > -1)
        {
            ArrayCods = CodsImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayCods = new Array
            ArrayCods[0] = CodsImgs
        }        
        if (DenominacionesImgs.indexOf("#") > -1)
        {
            ArrayDenominaciones = DenominacionesImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayDenominaciones = new Array
            ArrayDenominaciones[0] = DenominacionesImgs
        }        
        if (RutasImgs.indexOf("#") > -1)
        {
            ArrayRutas = RutasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayRutas = new Array
            ArrayRutas[0] = RutasImgs
        }        
        if (AlturasImgs.indexOf("#") > -1)
        {
            ArrayAlturas = AlturasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayAlturas = new Array
            ArrayAlturas[0] = AlturasImgs
        }        
        if (AnchurasImgs.indexOf("#") > -1)
        {
            ArrayAnchuras = AnchurasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayAnchuras = new Array
            ArrayAnchuras[0] = AnchurasImgs
        }
        
        
        AltoImgVisor = parseInt(ArrayAlturas[NumImagen])
        AnchoImgVisor = parseInt(ArrayAnchuras[NumImagen])
        
        
        NumImgVisorCarruselActual = NumImagen
        
        if (Imagen.id.indexOf("_MenuPrincipal_Fotografias_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Fotografias_"
        }
        else if (Imagen.id.indexOf("_MenuPrincipal_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_ContenidoInterior_CarruselImg_"
        }
        else if (Imagen.id.indexOf("_MenuPrincipal_Buscador_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Buscador_ContenidoInterior_CarruselImg_"
        }
        else if (Imagen.id.indexOf("_MenuPrincipal_CarruselElemsDenomsAgrupImgs_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_CarruselElemsDenomsAgrupImgs_CarruselImgFotografias_"
        }
        
        // Se recuperan los controles necesarios para mostrar el visor.
        PnlDeshabilitar = document.getElementById(Raiz + "PnlDeshabilitarCarrusel")
        PnlVisorImagenesCarrusel = document.getElementById(Raiz + "PnlVisorImagenesCarrusel")
        PnlDenomImgVisorCarrusel = document.getElementById(Raiz + "PnlDenomImgVisorCarrusel")
        LblDenomImgVisor = document.getElementById(Raiz + "LblDenomImgVisorCarrusel")
        PnlImgVisorCarrusel = document.getElementById(Raiz + "PnlImgVisorCarrusel")
        ImgVisor = document.getElementById(Raiz + "ImgVisorCarrusel")
        PnlPieVisorCarrusel = document.getElementById(Raiz + "PnlPieVisorCarrusel")
        PnlLnksPaginacionVisorCarrusel = document.getElementById(Raiz + "PnlLnksPaginacionVisorCarrusel")
        LnkAnteriorVisor = document.getElementById(Raiz + "LnkAnteriorVisorCarrusel")
        LnkSiguienteVisor = document.getElementById(Raiz + "LnkSiguienteVisorCarrusel")
        LblPaginacionVisor = document.getElementById(Raiz + "LblPaginacionVisorCarrusel")
        
        
        PnlDeshabilitar.style.display = 'block'
        // Para que a pesar de que la pagina tenga un scroll, se encuentre completamente deshabilitada.
        PnlDeshabilitar.style.bottom = (document.documentElement.clientHeight - document.documentElement.scrollHeight) + 'px'
        
        PnlVisorImagenesCarrusel.style.display = 'block'        
        
        
        // Por si solo hubiera una imagen, para no mostrar los links de paginacion.
        if (TotalImgs == 1)
        {
            PnlLnksPaginacionVisorCarrusel.style.display = 'none'
        }
        else
        {
            PnlLnksPaginacionVisorCarrusel.style.display = 'block'
        }
        
        // Se actualizan los label's que muestran la denominacion de la imagen y la paginacion correspondiente.
        LblDenomImgVisor.innerHTML = ArrayDenominaciones[NumImgVisorCarruselActual]
        if (IdiomaAplicacionJS == 0)
        {
            // Castellano.
            LblPaginacionVisor.innerHTML = IdiomaTextosJS(2, 0) + RellenarCeros((NumImgVisorCarruselActual + 1), TotalImgs) + IdiomaTextosJS(2, 1) + TotalImgs // Imagen X de Y.
        }
        else if (IdiomaAplicacionJS == 1)
        {
            // Euskera.
            LblPaginacionVisor.innerHTML = RellenarCeros((NumImgVisorCarruselActual + 1), TotalImgs) + IdiomaTextosJS(2, 0) + TotalImgs + IdiomaTextosJS(2, 1) // X. irudia Y-tik.
        }

        	
		// Se carga la imagen en el control.
		// ImgVisor.src => "http://localhost:56024/WebUgao/Publico/"
		//                  o
		//                  "http://localhost:56024/WebUgao/CssTipo/UpLoad/CarruselImg/ca/Cod_580/580_0_4_46.jpg"
		//		            o
		//		            "http://www.ugao-miraballes.net/CssTipo/UpLoad/CarruselImg/ca/Cod_843/843_0_4_13.jpg"
		if ((ImgVisor.src).indexOf("/Publico/") != -1)
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf("/Publico") + 1) //"http://localhost:56024/WebUgao/"
		}
		else if ((ImgVisor.src).indexOf("www.") != -1)
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf(".ugao-miraballes.net/") + 21) //"http://www.ugao-miraballes.net/"
		}
		else
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf("/WebUgao/") + 9) //"http://localhost:56024/WebUgao/"
		}        
        ImgVisor.src += ArrayRutas[NumImagen] //"http://localhost:56024/WebUgao/CssTipo/UpLoad/CarruselImg/ca/Cod_580/580_0_4_46.jpg"
        
        
        // Se establecen las dimensiones del panel que contiene la imagen ampliada (en el visor del carrusel).
        // Las dimensiones de este se calcularan en funcion de la imagen de mayores dimensiones.
        // NOTA: para los estilos que conlleven una unidad tras el valor (i.e.: ImgDuplicado.style.width = "800px"), hay
        // ----  que poner la unidad (i.e.: en el ejemplo anterior, "px") para que con navegadores como Mozila (Firefox)
        //       las modificaciones desde javascript de dichos estilos surtan efecto (con IE no es necesario).
        
        var MayorAncho = 0
        var NumImgMayorAncho = 0
        var MayorAlto = 0
        var NumImgMayorAlto = 0
        var AnchoVisorCarrusel = parseInt(ArrayAnchuras[0])//0
        var AltoVisorCarrusel = parseInt(ArrayAlturas[0]) //0
        var i
        for (i=0; i<ArrayAnchuras.length; i++)
        {
            if (parseInt(ArrayAnchuras[i]) > MayorAncho)
            {
                MayorAncho = parseInt(ArrayAnchuras[i])
                NumImgMayorAncho = i
            }
            if (parseInt(ArrayAlturas[i]) > MayorAlto)
            {
                MayorAlto = parseInt(ArrayAlturas[i])
                NumImgMayorAlto = i
            }
        }
        //---------------------------------------------------------------------------
        //------------------------------ INICIO CAMBIOS -----------------------------
        //---------------------------------------------------------------------------
//        if (MayorAncho > 800) 
//        {            
//            AltoVisorCarrusel = MayorAlto / (MayorAncho / 800)
//            AnchoVisorCarrusel = 800
//        }
//        else if (MayorAlto > 600)
//        {            
//            AltoVisorCarrusel = 600
//            AnchoVisorCarrusel = MayorAncho / (MayorAlto / 600)
//        }
//        else
//        {          
//            AltoVisorCarrusel = MayorAlto
//            AnchoVisorCarrusel = MayorAncho
//        }
        var auxPorcentaje = 0
////        if (NumImgMayorAncho == NumImgMayorAlto)
////        {
            // Las dimensiones que superan los límites pertenecen a la misma imagen.
            
            // Ambas dimensiones superan los límites máximos.
            if ((MayorAncho > 800) && (MayorAlto > 600))
            {
                // Se comprueba cual de las dos dimensiones (alto/ancho)
                // excede en mayor medida los maximos establecidos (600*800).
                if ((AnchoImgVisor - 800) > (AltoImgVisor - 600))
                {
                    // La anchura excede el límite en mayor medida que la altura.
                    AnchoVisorCarrusel = 800
                    aux = (800 * 100) / AnchoImgVisor
                    AltoVisorCarrusel = (aux * AltoImgVisor) / 100
                }
                else
                {
                    // La altura excede el límite en mayor medida que el ancho.
                    AltoVisorCarrusel = 600
                    aux = (600 * 100) / AltoImgVisor
                    AnchoVisorCarrusel = (aux * AnchoImgVisor) / 100
                }
            }
            else if (MayorAncho > 800)
            {
                AnchoVisorCarrusel = 800
                AltoVisorCarrusel = (MayorAlto * 800) / MayorAncho //MayorAlto / (MayorAncho / 800)
            }
            else if (MayorAlto > 600)
            {
                AltoVisorCarrusel = 600
                AnchoVisorCarrusel = (MayorAlto * 600) / MayorAncho //MayorAncho / (MayorAlto / 600)
            }
            else
            {
                AltoVisorCarrusel = MayorAlto
                AnchoVisorCarrusel = MayorAncho
            }
////        }
////        else
////        {
////            // Las dimensiones que superan los límites NO pertenecen a la misma imagen.
////            
////            // .................... FALTA ....................
////            // .................... FALTA ....................
////            // .................... FALTA ....................
////            
////        }
        //---------------------------------------------------------------------------
        //------------------------------- FIN CAMBIOS -------------------------------
        //---------------------------------------------------------------------------
        PnlImgVisorCarrusel.style.width = AnchoVisorCarrusel + "px"
        PnlImgVisorCarrusel.style.height = AltoVisorCarrusel + "px"
        PnlPieVisorCarrusel.style.width = AnchoVisorCarrusel + "px"
        PnlDenomImgVisorCarrusel.style.width = AnchoVisorCarrusel + "px"     
        
        //---------------------------------------------------------------------------
        //------------------------------ INICIO CAMBIOS -----------------------------
        //---------------------------------------------------------------------------
//        if (parseInt(ArrayAnchuras[NumImagen]) > 800) 
//        {            
//            AltoImgVisor = parseInt(ArrayAlturas[NumImagen]) / (parseInt(ArrayAnchuras[NumImagen]) / 800)
//            AnchoImgVisor = 800
//        }
//        else if (ArrayAlturas[NumImagen] > 600)
//        {            
//            AltoImgVisor = 600
//            AnchoImgVisor = parseInt(ArrayAnchuras[NumImagen]) / parseInt((ArrayAlturas[NumImagen]) / 600)
//        }        
//        var AnchoAux   
//        var AltoAux
//        if (AltoVisorCarrusel < AltoImgVisor)
//        {
//            // Hay que volver a redimensionar la imagen debido a que la imagen con mayor altura es mayor que la de la imagen actual.
//            AltoAux = AltoVisorCarrusel
//            AnchoAux = AnchoImgVisor / (AltoImgVisor / 600)
//        }
//        else
//        {
//            AltoAux = AltoImgVisor
//            AnchoAux = AnchoImgVisor                
//        }
        if ((AnchoImgVisor > AnchoVisorCarrusel) && (AltoImgVisor > AltoVisorCarrusel))
        {
            // Se comprueba cual de las dimensiones de la imagen (AltoImgVisor/AnchoImgVisor)
            // supera en mayor medida los limites del visor (AltoVisorCarrusel/AnchoVisorCarrusel).
            
            if ((AnchoImgVisor - AnchoVisorCarrusel) > (AltoImgVisor - AltoVisorCarrusel))
            {
                // La anchura excede en mayor medida que la altura.
                AnchoAux = AnchoVisorCarrusel
                auxPorcentaje = (AnchoVisorCarrusel * 100) / AnchoImgVisor
                AltoAux = (auxPorcentaje * AltoImgVisor) / 100
                // Por si el nuevo alto supera la altura del visor.
                if (AltoAux > AltoVisorCarrusel)
                {
                    AltoAux = AltoVisorCarrusel
                    auxPorcentaje = (AltoVisorCarrusel * 100) / AltoImgVisor
                    AnchoAux = (auxPorcentaje * AnchoImgVisor) / 100
                }
            }
            else
            {
                // La altura excede en mayor medida que la anchura.
                AltoAux = AltoVisorCarrusel
                auxPorcentaje = (AltoVisorCarrusel * 100) / AltoImgVisor
                AnchoAux = (auxPorcentaje * AnchoImgVisor) / 100
                // Por si el nuevo ancho supera la anchura del visor.
                if (AnchoAux > AnchoVisorCarrusel)
                {
                    AnchoAux = AnchoVisorCarrusel
                    auxPorcentaje = (AnchoVisorCarrusel * 100) / AnchoImgVisor
                    AltoAux = (auxPorcentaje * AltoImgVisor) / 100
                }
            }           
        }
        else if (AnchoImgVisor > AnchoVisorCarrusel)
        {
            AnchoAux = AnchoVisorCarrusel
            AltoAux =  (AnchoVisorCarrusel * AltoImgVisor) / AnchoImgVisor
        }
        else if (AltoImgVisor > AltoVisorCarrusel)
        {
            AltoAux = AltoVisorCarrusel
            AnchoAux = (AltoVisorCarrusel * AnchoImgVisor) / AltoImgVisor
        }
        else
        {
            AltoAux = AltoImgVisor
            AnchoAux = AnchoImgVisor
        }
        //---------------------------------------------------------------------------
        //------------------------------- FIN CAMBIOS -------------------------------
        //---------------------------------------------------------------------------
        // Se redimensiona la imagen.
        ImgVisor.style.width = AnchoAux + "px"
        ImgVisor.style.height = AltoAux + "px"
        // Se redimensiona el panel con todo el contenido del visor del carrusel.
        PnlVisorImagenesCarrusel.style.width = AnchoAux + "px"
        PnlVisorImagenesCarrusel.style.height = AltoAux + "px"

        
        // Se centra la imagen en la parte que se ve de la pantalla.
        // En el caso de que alguna de las coordenadas (top,left) resulte ser negativa (parte de la imagen
        // quedaria fuera de la pantalla y no podria verse), dicha coordenada se establecera con valor cero.
        // En el caso de que la ventana muestre el scrool, a las coordenadas (top, left) se les sumarán los píxeles "scrollados".
        if (((document.documentElement.clientHeight / 2) - (AltoVisorCarrusel / 2)) < 0)
        {
            PnlVisorImagenesCarrusel.style.top = 0
        }
        else
        {
            PnlVisorImagenesCarrusel.style.top = (((document.documentElement.clientHeight / 2) - (AltoVisorCarrusel / 2)) + document.documentElement.scrollTop) + "px"
        }
        if (((document.documentElement.clientWidth / 2) - (AnchoVisorCarrusel / 2)) < 0)
        {
            PnlVisorImagenesCarrusel.style.left = 0
        }
        else
        {
            PnlVisorImagenesCarrusel.style.left = (((document.documentElement.clientWidth / 2) - (AnchoVisorCarrusel / 2)) + document.documentElement.scrollLeft) + "px"
        }
        if (AltoVisorCarrusel > AltoAux)
        {
            ImgVisor.style.marginTop = ((AltoVisorCarrusel - AltoAux) / 2) + "px"
        }
        else
        {
            ImgVisor.style.marginTop = ""
        }
        
        return false
    }
    
    
    function PaginarVisorCarrusel(Objeto, SentidoPaginacion, CodsImgs, DenominacionesImgs, RutasImgs, AlturasImgs, AnchurasImgs, TotalImgs)
    {
        var Raiz
        var PnlVisorImagenesCarrusel
        var PnlDenomImgVisorCarrusel
        var LblDenomImgVisor
        var ImgVisor
        var PnlPieVisorCarrusel
        var LnkAnteriorVisor
        var LnkSiguienteVisor
        var LblPaginacionVisor
        var ArrayCods
        var ArrayDenominaciones
        var ArrayRutas
        var ArrayAlturas
        var ArrayAnchuras
        var AltoImgVisor
        var AnchoImgVisor
        
        if (CodsImgs.indexOf("#") > -1)
        {
            ArrayCods = CodsImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayCods = new Array
            ArrayCods[0] = CodsImgs
        }        
        if (DenominacionesImgs.indexOf("#") > -1)
        {
            ArrayDenominaciones = DenominacionesImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayDenominaciones = new Array
            ArrayDenominaciones[0] = DenominacionesImgs
        }        
        if (RutasImgs.indexOf("#") > -1)
        {
            ArrayRutas = RutasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayRutas = new Array
            ArrayRutas[0] = RutasImgs
        }        
        if (AlturasImgs.indexOf("#") > -1)
        {
            ArrayAlturas = AlturasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayAlturas = new Array
            ArrayAlturas[0] = AlturasImgs
        }        
        if (AnchurasImgs.indexOf("#") > -1)
        {
            ArrayAnchuras = AnchurasImgs.split("#")
        }
        else
        {
            // Solamente hay un item (no hay '#').
            ArrayAnchuras = new Array
            ArrayAnchuras[0] = AnchurasImgs
        }
        
        
        if (Objeto.id.indexOf("_MenuPrincipal_Fotografias_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Fotografias_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_ContenidoInterior_CarruselImg_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_Buscador_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Buscador_ContenidoInterior_CarruselImg_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_CarruselElemsDenomsAgrupImgs_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_CarruselElemsDenomsAgrupImgs_CarruselImgFotografias_"
        }
        
        // Se recuperan los controles necesarios para mostrar la imagen correcta en el visor del carrusel.
        PnlVisorImagenesCarrusel = document.getElementById(Raiz + "PnlVisorImagenesCarrusel")
        PnlDenomImgVisorCarrusel = document.getElementById(Raiz + "PnlDenomImgVisorCarrusel")
        LblDenomImgVisor = document.getElementById(Raiz + "LblDenomImgVisorCarrusel")
        ImgVisor = document.getElementById(Raiz + "ImgVisorCarrusel")
        PnlPieVisorCarrusel = document.getElementById(Raiz + "PnlPieVisorCarrusel")
        LnkAnteriorVisor = document.getElementById(Raiz + "LnkAnteriorVisorCarrusel")
        LnkSiguienteVisor = document.getElementById(Raiz + "LnkSiguienteVisorCarrusel")
        LblPaginacionVisor = document.getElementById(Raiz + "LblPaginacionVisorCarrusel")
        
        if (SentidoPaginacion == 0)
        {
            // Se ha pulsado el lnk 'LnkAnteriorVisorCarrusel'.
            NumImgVisorCarruselActual -= 1            
        }
        else if (SentidoPaginacion == 1)
        {
            // Se ha pulsado el lnk 'LnkSiguienteVisorCarrusel'.
            NumImgVisorCarruselActual += 1
        }
        
        // Para que el visor de imagenes del carrusel sea ciclico; esto es:
        //   - llegados a la primera imagen, si se pulsa 'anterior' se muestre la ultima imagen.
        //      o
        //   - llegados a la ultima imagen, si se pulsa 'siguiente' se muestre la primera imagen.
        if (NumImgVisorCarruselActual == -1)
        {
            NumImgVisorCarruselActual = TotalImgs - 1
        }
        else if (NumImgVisorCarruselActual == TotalImgs)
        {
            NumImgVisorCarruselActual = 0
        }
        
        // Se actualizan los label's que muestran la denominacion de la imagen y la paginacion correspondiente.
        LblDenomImgVisor.innerHTML = ArrayDenominaciones[NumImgVisorCarruselActual]
        if (IdiomaAplicacionJS == 0)
        {
            // Castellano.
            LblPaginacionVisor.innerHTML = IdiomaTextosJS(2, 0) + RellenarCeros((NumImgVisorCarruselActual + 1), TotalImgs) + IdiomaTextosJS(2, 1) + TotalImgs // Imagen X de Y.
        }
        else if (IdiomaAplicacionJS == 1)
        {
            // Euskera.
            LblPaginacionVisor.innerHTML = RellenarCeros((NumImgVisorCarruselActual + 1), TotalImgs) + IdiomaTextosJS(2, 0) + TotalImgs + IdiomaTextosJS(2, 1) // X. irudia Y-tik.
        }            
		
		
		// Se carga la imagen en el control.
		// ImgVisor.src => "http://localhost:56024/WebUgao/Publico/"
		//                  o
		//                  "http://localhost:56024/WebUgao/CssTipo/UpLoad/CarruselImg/ca/Cod_580/580_0_4_46.jpg"
		//		            o
		//		            "http://www.ugao-miraballes.net/CssTipo/UpLoad/CarruselImg/ca/Cod_843/843_0_4_13.jpg"
		if ((ImgVisor.src).indexOf("/Publico/") != -1)
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf("/Publico") + 1) //"http://localhost:56024/WebUgao/"
		}
		else if ((ImgVisor.src).indexOf("www.") != -1)
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf(".ugao-miraballes.net/") + 21) //"http://www.ugao-miraballes.net/"
		}
		else
		{
		    ImgVisor.src = (ImgVisor.src).substring(0, (ImgVisor.src).indexOf("/WebUgao/") + 9) //"http://localhost:56024/WebUgao/"
		}
        ImgVisor.src += ArrayRutas[NumImgVisorCarruselActual] //"http://localhost:56024/WebUgao/CssTipo/UpLoad/CarruselImg/ca/Cod_580/580_0_4_46.jpg"
        
        
        // Se recuperan las dimensiones reales de la imagen a mostrar.
        AltoImgVisor = parseInt(ArrayAlturas[NumImgVisorCarruselActual])
        AnchoImgVisor = parseInt(ArrayAnchuras[NumImgVisorCarruselActual])
        
        
        // Se establecen las dimensiones del panel que contiene la imagen ampliada (en el visor del carrusel).
        // Las dimensiones de este se calcularan en funcion de la imagen de mayores dimensiones.
        // NOTA: para los estilos que conlleven una unidad tras el valor (i.e.: ImgDuplicado.style.width = "800px"), hay
        // ----  que poner la unidad (i.e.: en el ejemplo anterior, "px") para que con navegadores como Mozila (Firefox)
        //       las modificaciones desde javascript de dichos estilos surtan efecto (con IE no es necesario).
        
        var MayorAncho = 0
        var NumImgMayorAncho = 0
        var MayorAlto = 0
        var NumImgMayorAlto = 0
        var AnchoVisorCarrusel = 0
        var AltoVisorCarrusel = 0
        var i
        for (i=0; i<ArrayAnchuras.length; i++)
        {
            if (parseInt(ArrayAnchuras[i]) > MayorAncho)
            {
                MayorAncho = parseInt(ArrayAnchuras[i])
                NumImgMayorAncho = i
            }
            if (parseInt(ArrayAlturas[i]) > MayorAlto)
            {
                MayorAlto = parseInt(ArrayAlturas[i])
                NumImgMayorAlto = i
            }
        }
        //---------------------------------------------------------------------------
        //------------------------------ INICIO CAMBIOS -----------------------------
        //---------------------------------------------------------------------------
//        if (MayorAncho > 800) 
//        {            
//            AltoVisorCarrusel = MayorAlto / (MayorAncho / 800)
//            AnchoVisorCarrusel = 800
//        }
//        else if (MayorAlto > 600)
//        {            
//            AltoVisorCarrusel = 600
//            AnchoVisorCarrusel = MayorAncho / (MayorAlto / 600)
//        }
//        else
//        {          
//            AltoVisorCarrusel = MayorAlto
//            AnchoVisorCarrusel = MayorAncho
//        }
        var auxPorcentaje = 0
////        if (NumImgMayorAncho == NumImgMayorAlto)
////        {
            // Las dimensiones que superan los límites pertenecen a la misma imagen.
            
            // Ambas dimensiones superan los límites máximos.
            if ((MayorAncho > 800) && (MayorAlto > 600))
            {
                // Se comprueba cual de las dos dimensiones (alto/ancho)
                // excede en mayor medida los maximos establecidos (600*800).
                if ((AnchoImgVisor - 800) > (AltoImgVisor - 600))
                {
                    // La anchura excede el límite en mayor medida que la altura.
                    AnchoVisorCarrusel = 800
                    aux = (800 * 100) / AnchoImgVisor
                    AltoVisorCarrusel = (aux * AltoImgVisor) / 100
                }
                else
                {
                    // La altura excede el límite en mayor medida que el ancho.
                    AltoVisorCarrusel = 600
                    aux = (600 * 100) / AltoImgVisor
                    AnchoVisorCarrusel = (aux * AnchoImgVisor) / 100
                }
            }
            else if (MayorAncho > 800)
            {
                AnchoVisorCarrusel = 800
                AltoVisorCarrusel = (MayorAlto * 800) / MayorAncho //MayorAlto / (MayorAncho / 800)
            }
            else if (MayorAlto > 600)
            {
                AltoVisorCarrusel = 600
                AnchoVisorCarrusel = (MayorAlto * 600) / MayorAncho //MayorAncho / (MayorAlto / 600)
            }
            else
            {
                AltoVisorCarrusel = MayorAlto
                AnchoVisorCarrusel = MayorAncho
            }
////        }
////        else
////        {
////            // Las dimensiones que superan los límites NO pertenecen a la misma imagen.
////            
////            // .................... FALTA ....................
////            // .................... FALTA ....................
////            // .................... FALTA ....................
////            
////        }
        //---------------------------------------------------------------------------
        //------------------------------- FIN CAMBIOS -------------------------------
        //---------------------------------------------------------------------------
        PnlPieVisorCarrusel.style.width = AnchoVisorCarrusel + "px"
        PnlDenomImgVisorCarrusel.style.width = AnchoVisorCarrusel + "px"      
        
        //---------------------------------------------------------------------------
        //------------------------------ INICIO CAMBIOS -----------------------------
        //---------------------------------------------------------------------------
//        if (parseInt(ArrayAnchuras[NumImgVisorCarruselActual]) > 800) 
//        {            
//            AltoImgVisor = parseInt(ArrayAlturas[NumImgVisorCarruselActual]) / (parseInt(ArrayAnchuras[NumImgVisorCarruselActual]) / 800)
//            AnchoImgVisor = 800
//        }
//        else if (ArrayAlturas[NumImgVisorCarruselActual] > 600)
//        {            
//            AltoImgVisor = 600
//            AnchoImgVisor = parseInt(ArrayAnchuras[NumImgVisorCarruselActual]) / parseInt((ArrayAlturas[NumImgVisorCarruselActual]) / 600)
//        }
//        var AnchoAux   
//        var AltoAux
//        if (AltoVisorCarrusel < AltoImgVisor)
//        {
//            // Hay que volver a redimensionar la imagen debido a que la imagen con mayor altura es mayor que la de la imagen actual.
//            AltoAux = AltoVisorCarrusel
//            AnchoAux = AnchoImgVisor / (AltoImgVisor / 600)
//        }
//        else
//        {
//            AltoAux = AltoImgVisor
//            AnchoAux = AnchoImgVisor                
//        }
        if ((AnchoImgVisor > AnchoVisorCarrusel) && (AltoImgVisor > AltoVisorCarrusel))
        {
            // Se comprueba cual de las dimensiones de la imagen (AltoImgVisor/AnchoImgVisor)
            // supera en mayor medida los limites del visor (AltoVisorCarrusel/AnchoVisorCarrusel).
            
            if ((AnchoImgVisor - AnchoVisorCarrusel) > (AltoImgVisor - AltoVisorCarrusel))
            {
                // La anchura excede en mayor medida que la altura.
                AnchoAux = AnchoVisorCarrusel
                auxPorcentaje = (AnchoVisorCarrusel * 100) / AnchoImgVisor
                AltoAux = (auxPorcentaje * AltoImgVisor) / 100
                // Por si el nuevo alto supera la altura del visor.
                if (AltoAux > AltoVisorCarrusel)
                {
                    AltoAux = AltoVisorCarrusel
                    auxPorcentaje = (AltoVisorCarrusel * 100) / AltoImgVisor
                    AnchoAux = (auxPorcentaje * AnchoImgVisor) / 100
                }
            }
            else
            {
                // La altura excede en mayor medida que la anchura.
                AltoAux = AltoVisorCarrusel
                auxPorcentaje = (AltoVisorCarrusel * 100) / AltoImgVisor
                AnchoAux = (auxPorcentaje * AnchoImgVisor) / 100
                // Por si el nuevo ancho supera la anchura del visor.
                if (AnchoAux > AnchoVisorCarrusel)
                {
                    AnchoAux = AnchoVisorCarrusel
                    auxPorcentaje = (AnchoVisorCarrusel * 100) / AnchoImgVisor
                    AltoAux = (auxPorcentaje * AltoImgVisor) / 100
                }
            }           
        }
        else if (AnchoImgVisor > AnchoVisorCarrusel)
        {
            AnchoAux = AnchoVisorCarrusel
            AltoAux =  (AnchoVisorCarrusel * AltoImgVisor) / AnchoImgVisor
        }
        else if (AltoImgVisor > AltoVisorCarrusel)
        {
            AltoAux = AltoVisorCarrusel
            AnchoAux = (AltoVisorCarrusel * AnchoImgVisor) / AltoImgVisor
        }
        else
        {
            AltoAux = AltoImgVisor
            AnchoAux = AnchoImgVisor
        }
        //---------------------------------------------------------------------------
        //------------------------------- FIN CAMBIOS -------------------------------
        //---------------------------------------------------------------------------
        // Se redimensiona la imagen.
        ImgVisor.style.width = AnchoAux + "px"
        ImgVisor.style.height = AltoAux + "px"
        // Se redimensiona el panel con todo el contenido del visor del carrusel.
        PnlVisorImagenesCarrusel.style.width = AnchoAux + "px"
        PnlVisorImagenesCarrusel.style.height = AltoAux + "px"
        
        
        // Se centra la imagen en la parte que se ve de la pantalla.
        // En el caso de que alguna de las coordenadas (top,left) resulte ser negativa (parte de la imagen
        // quedaria fuera de la pantalla y no podria verse), dicha coordenada se establecera con valor cero.
        // En el caso de que la ventana muestre el scrool, a las coordenadas (top, left) se les sumarán los píxeles "scrollados".
        if (((document.documentElement.clientHeight / 2) - (AltoVisorCarrusel / 2)) < 0)
        {
            PnlVisorImagenesCarrusel.style.top = 0
        }
        else
        {
            PnlVisorImagenesCarrusel.style.top = (((document.documentElement.clientHeight / 2) - (AltoVisorCarrusel / 2)) + document.documentElement.scrollTop) + "px"
        }
        if (((document.documentElement.clientWidth / 2) - (AnchoVisorCarrusel / 2)) < 0)
        {
            PnlVisorImagenesCarrusel.style.left = 0
        }
        else
        {
            PnlVisorImagenesCarrusel.style.left = (((document.documentElement.clientWidth / 2) - (AnchoVisorCarrusel / 2)) + document.documentElement.scrollLeft) + "px"
        }
        if (AltoVisorCarrusel > AltoAux)
        {
            ImgVisor.style.marginTop = ((AltoVisorCarrusel - AltoAux) / 2) + "px"
        }
        else
        {
            ImgVisor.style.marginTop = ""
        }
        
        return false
    }


    /* Para conocer donde se ha pinchado. */
    // Se asocia al evento 'onclick' la funcion que se quiere ejecutar cada
    // vez que se pulse fuera de la imagen del visor de imagenes del carrusel.
    document.onclick = CerrarVisorCarruselAux
    
    function CerrarVisorCarruselAux() // NOTA: solo funciona con IE (no con Firefox).
    {
        if (document.activeElement.id.indexOf("_PnlDeshabilitarCarrusel") != -1)
        {
            CerrarVisorCarrusel(document.activeElement)
        }
    }
    
    
    function CerrarVisorCarrusel(Objeto)
    {
        var Raiz
        var PnlDeshabilitar
        var PnlVisorImagenesCarrusel
        
        if (Objeto.id.indexOf("_MenuPrincipal_Fotografias_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Fotografias_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_ContenidoInterior_CarruselImg_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_Buscador_ContenidoInterior_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_Buscador_ContenidoInterior_CarruselImg_"
        }
        else if (Objeto.id.indexOf("_MenuPrincipal_CarruselElemsDenomsAgrupImgs_") != -1)
        {
            Raiz = "MasterPagina_CPHContenido_MenuPrincipal_CarruselElemsDenomsAgrupImgs_CarruselImgFotografias_"
        }
        
        // Se recuperan los controles necesarios para ocultar el visor.
        PnlDeshabilitar = document.getElementById(Raiz + "PnlDeshabilitarCarrusel")
        PnlVisorImagenesCarrusel = document.getElementById(Raiz + "PnlVisorImagenesCarrusel")
        
        PnlDeshabilitar.style.display = 'none'        
        PnlVisorImagenesCarrusel.style.display = 'none'
        
        return false
    }
    
    
    // Funcion que completa con los ceros ('0') necesarios el numero pasado por
    // parametro ('NumeroACompletar') hasta alcanzar la longitud del valor maximo.
    // I.e.:
    //      - NumeroACompletar =>   3
    //      - ValorMaximo ======> 115
    //      - Resultado ========> 003
    function RellenarCeros (NumeroACompletar, ValorMaximo)
    {
        var i
        var StrValorMaximo = ""
        var StrResultado = ""
        
        StrValorMaximo += ValorMaximo
        StrResultado += NumeroACompletar
        
        // Se comprueba que no tenga ya la longitud deseada.
        if (StrResultado.length < StrValorMaximo.length)
        {
            for (i=0; i<StrValorMaximo.length-1; i++)
            {
                StrResultado = "0" + StrResultado
            }
        }
        
        return StrResultado
    }   
/*********************************** Finaliza Javascript para CarruselImg.ascx *********************************************/


/***********************************Empieza Javascript para PopUp *********************************************/

    var DenInicialInformacion = "MasterPagina_CPHContenidoGestor_Informacion_"
    var DenInicialDocumentos = "MasterPagina_CPHContenidoGestor_Documentos_"
    var DenInicialEnlaces = "MasterPagina_CPHContenidoGestor_Enlaces_"
    
    // IDcTeclaPulsadaASCII: identificador del atributo hidden que se empleara para conocer el codigo ASCII de la tecla pulsada por el usuario.
    //                       (Se empleara para que el popUp asociado a la carga de la img1 no se muestre cuando se pulse la tecla "Enter").
    var IDcTeclaPulsadaASCII = DenInicialInformacion + "cTeclaPulsadaASCII"
    
    // IDcAlturaExcesoScroll: identificador del atributo hidden que se empleara para conocer la diferencia la altura del scroll y la de la pagina.
    //                       (Se empleara para que el panel 'PanelInformacionDeshabilitado' se vea a pesar de que el usuario use el scroll).
    var IDcAlturaExcesoScroll = DenInicialInformacion + "cAlturaExcesoScroll"


    /*
     * Funcion que muestra el popUp asociado a la imagen sobre la que el usuario
     * ha pinchado (para poder cargar una imagen o borrar la que hubiera).
     * Parametros:
     *      - IDPanelPopUp: identificador del panel en el que se encuentra el popUp que hay que mostrar.
     *      - Orden: para saber si se trata del popUp asociado a la imagen1(1) o a la imagen2(2).
     */
    function MostrarPopUpImg(IDPanelPopUp, Orden)
    {
        var IDcImgPulsada = DenInicialInformacion + "cImgPulsada"        
        var imgPulsada
        var Popup        
        
        // --- Lo comentado en esta funcion se debe a que ahora se controla toda tecla pulsada por el usuario gracias
        // --- a la linea 'document.onkeypress = TeclaPulsada' (ver funcion 'TeclaPulsada').
        // --- Ademas, para los navegadores como Firefox, la propiedad 'document.activeElement' no es valida.
        
////        imgPulsada = document.getElementById(IDcImgPulsada).value
        Popup = document.getElementById(InicioDenominacionFormulario + IDPanelPopUp)
////        if ((imgPulsada == 1) 
////            || 
////            (imgPulsada == 2)
////            || 
////            (((imgPulsada == "") ||(imgPulsada == 0)) && ((document.activeElement.id.indexOf("Img") != -1))))
////        {
////            // El usuario ha pinchado en una de las 2 imagenes.
////            // (El ultimo OR (el formado por un AND) es por si lo primero que hace el usuario es pinchar sobre una de las imagenes,
////            //  con lo que saltaria antes esta funcion que el evento asociado a dicha imagen, con el que se modifica el valor del hidden).
            
            Popup.style.display='block'            
            // Se guarda en el hidden correspondiente la altura del scroll.
            document.getElementById(IDcAlturaExcesoScroll).value = (document.body.scrollHeight - window.screen.availHeight)
////        }
        return true
    }


    /*
     * Funcion que muestra el popUp asociado al documento/enlace que el usuario pretende eliminar.
     * Parametros:
     *      - IDPanelPopUp: identificador del panel en el que se encuentra el popUp que hay que mostrar.
     *      - Origen: para saber si se trata de un popUp asociado a un documento(1) o a un enlace(2).
     */
    function MostrarPopUpElimDocEnlace(IDPanelPopUp, Origen)
    {
        var Popup
        if (Origen == 1)
        {
            Popup = document.getElementById(DenInicialDocumentos + IDPanelPopUp)
        }
        else if (Origen == 2)
        {
            Popup = document.getElementById(DenInicialEnlaces + IDPanelPopUp)
        }
        Popup.style.display='block'            
        // Se guarda en el hidden correspondiente la altura del scroll.
        document.getElementById(IDcAlturaExcesoScroll).value = (document.body.scrollHeight - window.screen.availHeight)
        return true
    }


    /*
     * Funcion que oculta el popUp cuyo identificador (el del panel en el que se encuentra) que se pasa como parametro.
     */
    function OcultarPopUp(PopUp)
    {
        PopUp.style.display='none' 
        return true
    }
    
    
/***********************************Finaliza Javascript para PopUp*********************************************/