﻿/* -------------------------------------------------------------------------------------
*   Ajuste del panel principal para encajar en toda la pantalla
* ------------------------------------------------------------------------------------- */
function Set_Cookie(name, value, expires, path, domain, secure) {
    // Establece la hora, está en milisegundos.
    var today = new Date();
    today.setTime(today.getTime());

    // Si la variables expires está establecida, pone la hora correcta de expiración
    // Lo siguiente los establece para un número x de días. Para establecerlo en horas
    // hay que borrar el * 24 y para establecerlo en minutos hay que borrar * 60 * 24. 
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
   ((expires) ? ";expires=" + expires_date.toGMTString() : "") +
   ((path) ? ";path=" + path : "") +
   ((domain) ? ";domain=" + domain : "") +
   ((secure) ? ";secure" : "");
}

function addEvent(obj, evType, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        return false;
    }
}

function ResizeLayer(layer, margin) {
    var layerItem;
    var docHeight;
    layerItem = document.getElementById(layer);
    docHeight = document.documentElement.clientHeight;
    if (layerItem != null) {
        var sHeight = (docHeight - GetTopDistance(layerItem) - GetInternalMargins(layerItem) - margin);
        //layerItem.style.minHeight = sHeight + "px";
        layerItem.height = sHeight + "px";
        Set_Cookie("size_" + layer, sHeight, 60, null, null, null);
    }
}

function GetTopDistance(item) {
    var intTop;
    var parentItem;
    var clientTop;
    intTop = item.offsetTop;
    clientTop = item.clientTop;
    if (clientTop > 0)
        intTop = intTop + clientTop;
    parentItem = item.offsetParent;
    if (parentItem != null)
        intTop += GetTopDistance(parentItem);
    return intTop;
}

function GetLeftDistance(item) {
    var intLeft;
    var parentItem;
    var clientLeft;
    intLeft = item.offsetLeft;
    clientLeft = item.clientLeft;
    if (clientLeft > 0)
        intLeft = intLeft + clientLeft;
    parentItem = item.offsetParent;
    if (parentItem != null)
        intLeft += GetLeftDistance(parentItem);
    return intLeft;
}

function GetInternalMargins(item) {
    var internalMargins = 0;
    if (item.style.height != '') {
        internalMargins = item.clientHeight - parseInt(item.style.height);
    }
    return internalMargins;
}

function fitLayer() {
    if (document.getElementById("ctl00_mainTable") != null)
        ResizeLayer("ctl00_mainTable", 0);
}

//addEvent(window, "resize", fitLayer);
addEvent(window, "load", fitLayer);

/* -------------------------------------------------------------------------------------
*   Visualización y ocultación del indicador de actualización.
* ------------------------------------------------------------------------------------- */

function showUpdateProgress() {
    setLoadingDisabled(true, false);
}

function hideUpdateProgress() {
    setLoadingDisabled(false, false);
}

function showPopUpUpdateProgress() {
    setLoadingDisabled(true, true);
}

function hidePopUpUpdateProgress() {
    setLoadingDisabled(false, true);
}

/* -------------------------------------------------------------------------------------
*   Activación y desactivación de todos los elementos de una capa
* ------------------------------------------------------------------------------------- */

function setDisabled(parentItem, disabled) {
    var arrChildren = parentItem.children;
    for (var i = 0; i < arrChildren.length; i++) {
        var childItem = arrChildren[i];
        try {
            var strTagName = childItem.tagName.toLowerCase();
            try { childItem.disabled = disabled; } catch (exInner1) { };
            try {
                switch (strTagName) {
                    case "input":
                        switch (childItem.type) {
                            case "text": case "password":
                                if (disabled) {
                                    childItem.style.backgroundColor = "#F1F2F4";
                                    childItem.style.borderStyle = "window-inset";
                                }
                                else {
                                    childItem.style.backgroundColor = "";
                                    childItem.style.borderStyle = "";
                                }
                                break;
                            case "submit":
                            case "button":
                                if (disabled) childItem.style.backgroundColor = "#E5E5E5";
                                else childItem.style.backgroundColor = "";
                                break;
                        };
                        break;
                    case "select":
                        if (disabled) childItem.style.backgroundColor = "#F1F2F4";
                        else childItem.style.backgroundColor = "";
                        break;
                };
            }
            catch (exInner2) { };
            setDisabled(childItem, disabled);
        }
        catch (ex) { }
    }
}

function setLoadingDisabled(disabled, popUp) {
    var dvContentLayer = document.getElementById("dvContent");
    var dvLoadingLayer = document.getElementById("dvLoadingLayer");
    var dvLoadingIndicator = document.getElementById("dvLoadingIndicator");

    if (disabled) {
        if (!popUp) {
            dvLoadingLayer.style.position = "absolute";
            dvLoadingLayer.style.left = GetLeftDistance(dvContentLayer) + "px";
            dvLoadingLayer.style.top = GetTopDistance(dvContentLayer) + "px";
            dvLoadingLayer.style.width = dvContentLayer.offsetWidth + "px";
            dvLoadingLayer.style.height = dvContentLayer.offsetHeight + "px";
            dvLoadingLayer.style.display = "";
            dvLoadingLayer.style.zIndex = 10000;
        }
        
        dvLoadingIndicator.style.position = "fixed";
        dvLoadingIndicator.style.left = ((document.documentElement.clientWidth - 175) / 2) + "px";
        dvLoadingIndicator.style.top = ((document.documentElement.clientHeight - 100) / 2) + "px";
        dvLoadingIndicator.style.display = "";
        dvLoadingIndicator.style.zIndex = 10001;
    }
    else {
        dvLoadingLayer.style.display = "none";
        dvLoadingIndicator.style.display = "none";
    }
}
