if (!sb_windowTools) { var sb_windowTools = new Object(); };
 sb_windowTools = {
    scrollBarPadding: 17,
	    centerElementOnScreen: function(element) {
	        var pageDimensions = this.updateDimensions();
	        element.style.top = ((this.pageDimensions.verticalOffset() + this.pageDimensions.windowHeight() / 2) - (this.scrollBarPadding + element.offsetHeight / 2)) + 'px';
	        element.style.left = (((this.pageDimensions.windowWidth() / 2) - (this.scrollBarPadding + element.offsetWidth / 2)))-30 + 'px';
	        element.style.position = 'absolute';
	    },
	    updateDimensions: function() {
	        this.updatePageSize();
	        this.updateWindowSize();
	        this.updateScrollOffset();
	    },
		updatePageSize: function() {
	        var viewportWidth, viewportHeight;
	        if (window.innerHeight && window.scrollMaxY) {
	            viewportWidth = document.body.scrollWidth;
	            viewportHeight = window.innerHeight + window.scrollMaxY;
	        } else if (document.body.scrollHeight > document.body.offsetHeight) {
	           viewportWidth = document.body.scrollWidth;
	            viewportHeight = document.body.scrollHeight;
	        } else {
	           viewportWidth = document.body.offsetWidth;
	            viewportHeight = document.body.offsetHeight;
	        };
	        this.pageSize = {
	            viewportWidth: viewportWidth,
	            viewportHeight: viewportHeight
	        };
	    },
	 updateWindowSize: function() {
	        var windowWidth, windowHeight;
	        if (self.innerHeight) {
	           windowWidth = self.innerWidth;
	            windowHeight = self.innerHeight;
	        } else if (document.documentElement && document.documentElement.clientHeight) {
	            windowWidth = document.documentElement.clientWidth;
	            windowHeight = document.documentElement.clientHeight;
	        } else if (document.body) {
	           windowWidth = document.body.clientWidth;
	            windowHeight = document.body.clientHeight;
	        };
	        this.windowSize = {
	            windowWidth: windowWidth,
	            windowHeight: windowHeight
	        };
	    },
updateScrollOffset: function() {
	       var horizontalOffset, verticalOffset;
	        if (self.pageYOffset) {
	            horizontalOffset = self.pageXOffset;
	            verticalOffset = self.pageYOffset;
	        } else if (document.documentElement && document.documentElement.scrollTop) {
	          horizontalOffset = document.documentElement.scrollLeft;
	            verticalOffset = document.documentElement.scrollTop;
	        } else if (document.body) {
	            horizontalOffset = document.body.scrollLeft;
	            verticalOffset = document.body.scrollTop;
	        };
	        this.scrollOffset = {
	            horizontalOffset: horizontalOffset,
	            verticalOffset: verticalOffset
	        };
	    },
 pageSize: {},
	    windowSize: {},
    scrollOffset: {},
	pageDimensions: {
	        pageWidth: function() {
	            return sb_windowTools.pageSize.viewportWidth > sb_windowTools.windowSize.windowWidth ?
	                sb_windowTools.pageSize.viewportWidth :
	                sb_windowTools.windowSize.windowWidth;
	        },
	        pageHeight: function() {
	            return sb_windowTools.pageSize.viewportHeight > sb_windowTools.windowSize.windowHeight ?
	                sb_windowTools.pageSize.viewportHeight :
	                sb_windowTools.windowSize.windowHeight;
	        },
	        windowWidth: function() {
	            return sb_windowTools.windowSize.windowWidth;
	        },
	        windowHeight: function() {
	            return sb_windowTools.windowSize.windowHeight;
	        },
	        horizontalOffset: function() {
	            return sb_windowTools.scrollOffset.horizontalOffset;
	        },
	        verticalOffset: function() {
	            return sb_windowTools.scrollOffset.verticalOffset;
        }
	    }
	};
