﻿//Geometry.js

var Geometry = {};

if (window.screenLeft) {
    Geometry.getWindowX = function() { return window.screenLeft; };
    Geometry.getWindowY = function() { return window.screenTop; };
}
else if (window.screenX) {
    Geometry.getWindowX = function() { return window.screenX; };
    Geometry.getWindowY = function() { return window.screenY; };
}

if (typeof (window.innerWidth) == 'number') {
    Geometry.getViewportWidth = function() { return window.innerWidth };
    Geometry.getViewportHeight = function() { return window.innerHeight };
    Geometry.getHorizontalScroll = function() { return window.pageXOffset; };
    Geometry.getVerticalScroll = function() { return window.pageYOffset; };
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    Geometry.getViewportWidth = function() { return document.documentElement.clientWidth; };
    Geometry.getViewportHeight = function() { return document.documentElement.clientHeight; };
    Geometry.getHorizontalScroll = function() { return document.documentElement.scrollLeft; };
    Geometry.getVerticalScroll = function() { return document.documentElement.scrollTop; };
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
    Geometry.getViewportWidth = function() { return document.body.clientWidth; };
    Geometry.getViewportHeight = function() { return document.body.clientHeight; };
    Geometry.getHorizontalScroll = function() { return document.body.scrollLeft; };
    Geometry.getVerticalScroll = function() { return document.body.scrollTop; };
}

if (document.documentElement && document.documentElement.scrollWidth) {
    Geometry.getDocumentWidth = function() { return document.documentElement.scrollWidth; };
    Geometry.getDocumentHeight = function() { return document.documentElement.scrollHeight; };
}
else if (document.body.scrollWidth) {
    Geometry.getDocumentWidth = function() { return document.body.scrollWidth; };
    Geometry.getDocumentHeight = function() { return document.body.scrollHeight; };
}

function getElementPosition(element, dir) {
    var pos = dir == 'x' ? element.offsetLeft : element.offsetTop;
    var tmp = element.offsetParent;
    while (tmp != null) {
        pos += dir == 'x' ? tmp.offsetLeft : tmp.offsetTop;
        tmp = tmp.offsetParent;
    }
    return pos;
}
