﻿// JScript File
function findPositionAbsolute(obj) {
    var curleft = curtop = 0;

    if (obj.offsetParent) {
        curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;

            if (obj["parentbreak"] == "1" || (obj.attributes["parentbreak"] != null && obj.attributes["parentbreak"].value == "1")) break;
        }
    }
    return { top: curtop, left: curleft };
}

function showPanel(panel, htmlObjectReference, depth, topOffset, leftOffset) {
    if (panel != null && htmlObjectReference != null) {
        if (panel.style.display == "none") {
            var pos = findPositionAbsolute(htmlObjectReference);
            pos.top += topOffset;
            pos.left += leftOffset;

            panel.style.position = "absolute";
            panel.style.display = "block";
            panel.style.zIndex = depth;
            panel.style.top = pos.top + "px"; // + htmlObjectReference.offsetHeight/2 ;
            panel.style.left = pos.left + "px"; // + leftOffset + htmlObjectReference.offsetWidth;

        } else {
            panel.style.display = "none";
        }
    }
}

function movePanel(panel, htmlObjectReference, depth, topOffset, leftOffset) {
    if (panel != null && htmlObjectReference != null) {
        var pos = findPositionAbsolute(htmlObjectReference);
        pos.top += topOffset;
        pos.left += leftOffset;
        panel.style.position = "absolute";
        panel.style.display = "block";
        panel.style.zIndex = depth;
        panel.style.top = pos.top + "px"; // + htmlObjectReference.offsetHeight/2 ;
        panel.style.left = pos.left + "px"; // + leftOffset + htmlObjectReference.offsetWidth;
    }
}

//NOTA: para redimencionar un control html al tamaño del área de trabajo de 
//una ventana, se deben adicionar los siguientes estilos la pagina, los cuales
//se encargan de ocultar la barra de scroll de la ventana:
//  html { overflow: hidden; }
//  body{ overflow:hidden; }
//Si no son adicionados, cuando el control html sea redimencionado al tamaño
//del área de trabajo de la ventana, está sacará el scroll, y si el control 
//html tambien tiene scroll se veria un doble scroll en pantalla.
function getScreenSize() {
    var size = { width: 0, height: 0 };

    if (typeof window.document.documentElement != 'undefined'
      && typeof window.document.documentElement.clientWidth != 'undefined'
      && window.document.documentElement.clientWidth != 0) {
        size.width = window.document.documentElement.clientWidth,
        size.height = window.document.documentElement.clientHeight
    }
    else if (typeof window.innerWidth != 'undefined') {
        size.width = window.innerWidth;
        size.height = window.innerHeight;
    }
    else {
        size.width = window.document.getElementsByTagName('body')[0].clientWidth;
        size.height = window.document.getElementsByTagName('body')[0].clientHeight;
    }

    return size;
}
