﻿(function($) {
    $.scrollTop = function() {
        var scrollTop = document.body.scrollTop;

        if (scrollTop == 0) {
            if (window.pageYOffset)
                scrollTop = window.pageYOffset;
            else
                scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
        }

        return scrollTop;
    };

    $.documentClientHeight = function() {
        return document.documentElement.clientHeight;
    };

    $.documentClientWidth = function() {
        return document.documentElement.clientWidth;
    };

    function getAbsoluteLeft(element) {
        var left = 0;
        while (element != null) {
            left += element.offsetLeft;
            element = element.offsetParent;
        }
        return left;
    }

    function getAbsoluteTop(element) {
        var top = 0;
        while (element != null) {
            top += element.offsetTop;
            element = element.offsetParent;
        }
        return top;
    }

    $.fn.absolutePosition = function() {
        return { top: getAbsoluteTop(this[0]), left: getAbsoluteLeft(this[0]) };
    }
    
    $.fn.isVisible = function() {
        return this.css('display') != 'none';
    }
})(jQuery);
