var LS = {
    Subdirectorio: "/empresas",
    NombreContenedor: "Contenido",
    
    //Función que recibe el id de un objeto y lo devuelve.
    ObtenerPorId: function(Id)
    {
        //Obtengo el objeto con la Id literal.
        var Objeto = document.getElementById(Id);

        //Si no existe, que puede ser porque el servidor le modifico el Id
        if (Objeto == undefined || Objeto == null)
        {
            //Cantidad de veces que se va a agregar prefijos al Id para encontrarlo.
            var Intentos = 10;
            var Prefijo = "";

            var i = 0;
            //Modifico el Id, agregandole prefijos que usa el servidor hasta encontrar el objeto o hacer la cantidad de intentos establecida.
            while (i < Intentos && (Objeto == undefined || Objeto == null))
            {
                Prefijo += "ctl00_";
                Objeto = document.getElementById(Prefijo + LS.NombreContenedor + "_" + Id);
                i++;
            }
        }

        return Objeto;
    },

    //Función que recibe el nombre de un objeto y lo devuelve.
    ObtenerPorNombre: function(Nombre)
    {
        //Obtengo el objeto con el Nombre literal.
        var Objeto = document.getElementsByName(Nombre);

        //Si no existe, que puede ser porque el servidor le modifico el Nombre
        if (Objeto == undefined || Objeto == null)
        {
            //Cantidad de veces que se va a agregar prefijos al Nombre para encontrarlo.
            var Intentos = 10;
            var Prefijo = "";

            var i = 0;
            //Modifico el Nombre, agregandole prefijos que usa el servidor hasta encontrar el objeto o hacer la cantidad de intentos establecida.
            while (i < Intentos && (Objeto == undefined || Objeto == null))
            {
                Prefijo += "ctl00$";
                Objeto = document.getElementsByName(Prefijo + LS.NombreContenedor + "$" + Nombre);
                i++;
            }
        }

        return Objeto;
    },

    //Función que recibe como parametro varias rutas de imagenes y las almacena en un array de imagenes en cache para precargarlas.
    PrecargarImagenes: function()
    {
        //Si el documento acepta imagenes.
        if (document.images)
        {
            //Si no está creado el array de imagenes en cache, lo creo.
            if (!document.LSImagenes)
            {
                document.LSImagenes = new Array();
            }

            //Creo i para recorrer todos los parametros que vinieron en la función.
            //Creo j para agregar al array de imagenes en cache nuevos elementos.
            //Creo Parametros que es la lista de parametros que vinieron en la función.
            var i, j = document.LSImagenes.length, Parametros = LS.PrecargarImagenes.arguments;

            //Por cada parametro que vino, lo agrego al array de imagenes en cache.
            for (i = 0; i < Parametros.length; i++)
            {
                document.LSImagenes[j] = new Image();
                document.LSImagenes[j++].src = LS.Subdirectorio + "/imagenes/" + Parametros[i];
            }
        }
    },

    //Función que devuelve los tamaños de la ventana
    ObtenerTamanioVentana: function(Indice)
    {
        var xScroll, yScroll;

        //Obtengo el scroll que hay en la página, según el explorador cambia la instrucción.
        //Si está en IE > 5.5
        if (window.innerHeight && window.scrollMaxY)
        {
            xScroll = window.innerWidth + window.scrollMaxX;
            yScroll = window.innerHeight + window.scrollMaxY;
        }
        //Si está en cualquier explorador excepto Safari
        else if (document.body.scrollHeight > document.body.offsetHeight)
        {
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
        }
        //Si está en Safari.
        else
        {
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
        }

        //Obtengo el ancho y alto de la ventana.
        var AnchoVentana, AltoVentana;

        //Si está en cualquiera excepto IE.
        if (self.innerHeight)
        {
            if (document.documentElement.clientWidth)
            {
                AnchoVentana = document.documentElement.clientWidth;
            }
            else
            {
                AnchoVentana = self.innerWidth;
            }
            AltoVentana = self.innerHeight;
        }
        //Si está en IE 6 
        else if (document.documentElement && document.documentElement.clientHeight)
        {
            AnchoVentana = document.documentElement.clientWidth;
            AltoVentana = document.documentElement.clientHeight;
        }
        //Si está en otros IE 
        else if (document.body)
        {
            AnchoVentana = document.body.clientWidth;
            AltoVentana = document.body.clientHeight;
        }

        //Obtengo el ancho y alto total de la página.
        var AnchoPagina, AltoPagina;

        //Si el scroll es menor al alto de la ventana, entonces devuelvo el alto de la ventana.
        if (yScroll < AltoVentana)
        {
            AltoPagina = AltoVentana;
        }
        //Si no, el alto de la página. 
        else
        {
            AltoPagina = yScroll;
        }

        //Si el scroll es menor al ancho de la ventana, entonces devuelvo el ancho de la ventana.
        if (xScroll < AnchoVentana)
        {
            AnchoPagina = xScroll;
        }
        else
        //Si no, el ancho de la página.
        {
            AnchoPagina = AnchoVentana;
        }

        //Creo el array con medidas a devolver.
        var ArrayMedidas = new Array(AnchoPagina, AltoPagina, AnchoVentana, AltoVentana);

        //Si está definido el indice, es decir, la medida que se pretende se devuelve solo esa.
        if (Indice != undefined) return ArrayMedidas[Indice];

        //Si no, se devuelve todo el array.
        return ArrayMedidas;
    }
}
