﻿// JScript File

function ScrollOffsets(anchor) {
    var aryScrolls = new Array(0, 0);

    try {
        var parentElem = anchor.parentElement;

        while (parentElem != null) {
            if (parentElem.scrollTop != null) {
                aryScrolls[0] += parseInt(parentElem.scrollTop, 10);
                aryScrolls[1] += parseInt(parentElem.scrollLeft, 10);
            }

            parentElem = parentElem.parentElement;
        }
    }
    catch (ex) {
        // continue
    }
    return aryScrolls;
}

function getObjLeft(obj) { return obj.offsetLeft + (obj.offsetParent ? getObjLeft(obj.offsetParent) : obj.x ? obj.x : 0); }

function getObjTop(obj) { return (obj.offsetParent ? obj.offsetTop + getObjTop(obj.offsetParent) : obj.y ? obj.y : 0); }

function getLeft(anObject) {
    return (getObjLeft(anObject));
}

function getTop(anObject) {
    return (getObjTop(anObject) + ScrollOffsets(anObject)[0]);
}

function SuppressSelects(myDiv) {
    var selObjects = document.getElementsByTagName("SELECT");

    for (var i = 0; i < selObjects.length; i++) {
        if (selObjects[i].style.visibility == 'visible' || selObjects[i].style.visibility == '') {
            if (ObjectOverlap(myDiv, selObjects[i])) {
                selObjects[i].style.visibility = 'hidden';
                // Mark as ballonhidden
                selObjects[i].OverlapHidden = true;
            }
        }
    }
}

function RestoreSelects() {
    var selObjects = document.getElementsByTagName("SELECT");

    for (var i = 0; i < selObjects.length; i++) {
        if (selObjects[i].OverlapHidden) {
            selObjects[i].style.visibility = 'visible';
            // Mark as ballonhidden
            selObjects[i].OverlapHidden = false;
        }
    }
}

function ObjectOverlap(obj1, obj2) {
    var obj1TopX = getLeft(obj1);
    var obj1TopY = getTop(obj1);
    var obj1BottomX = getLeft(obj1) + obj1.offsetWidth;
    var obj1BottomY = getTop(obj1) + obj1.offsetHeight;

    var obj2TopX = getLeft(obj2);
    var obj2TopY = getTop(obj2);
    var obj2BottomX = getLeft(obj2) + obj2.offsetWidth;
    var obj2BottomY = getTop(obj2) + obj2.offsetHeight;

    var overlapOnX = (obj1TopX < obj2BottomX && obj2TopX < obj1BottomX);
    var overlapOnY = (obj1TopY < obj2BottomY && obj2TopY < obj1BottomY);

    return (overlapOnX && overlapOnY);
}

window.size = function () {
    var w = 0;
    var h = 0;

    //IE
    if (!window.innerWidth) {
        //strict mode
        if (!(document.documentElement.clientWidth == 0)) {
            w = document.documentElement.clientWidth;
            h = document.documentElement.clientHeight;
        }
        //quirks mode
        else {
            w = document.body.clientWidth;
            h = document.body.clientHeight;
        }
    }
    //w3c
    else {
        w = window.innerWidth;
        h = window.innerHeight;
    }
    return { width: w, height: h };
}

window.center = function (objWidth, objHeight) {
    objWidth = (objWidth != null) ? objWidth : 0;
    objHeight = (objHeight != null) ? objHeight : 0;

    var _x = 0;
    var _y = 0;
    var offsetX = 0;
    var offsetY = 0;

    //IE
    if (!window.pageYOffset) {
        //strict mode
        if (!(document.documentElement.scrollTop == 0)) {
            offsetY = document.documentElement.scrollTop;
            offsetX = document.documentElement.scrollLeft;
        }
        //quirks mode
        else {
            offsetY = document.body.scrollTop;
            offsetX = document.body.scrollLeft;
        }
    }
    //w3c
    else {
        offsetX = window.pageXOffset;
        offsetY = window.pageYOffset;
    }

    _x = ((this.size().width - objWidth) / 2) + offsetX;
    _y = ((this.size().height - objHeight) / 2) + offsetY;

    return { x: _x, y: _y };
}

function showCenterDiv(mydiv) {
    var point = window.center(mydiv.offsetWidth, mydiv.offsetHeight);

    mydiv.style.position = "absolute";

    mydiv.style.top = point.y + "px";
    mydiv.style.left = point.x + "px";
}

function showCenterDivDiv(divID) {
    var mydiv = document.getElementById(divID);
    mydiv.style.display = 'block';
    showCenterDiv(mydiv);
    mydiv.style.top = "250px";
    SuppressSelects(mydiv);
}

function hideDiv(divID) {
    var mydiv = document.getElementById(divID);
    mydiv.style.display = 'none';
    RestoreSelects();
}