/**  * Geometry.js: portable functions for querying window and document geometry 
 * 
 * This module defines functions for querying window and document geometry. 
 * 
 * getWindowX/Y( ): return the position of the window on the screen 
 * getViewportWidth/Height( ): return the size of the browser viewport area 
 * getDocumentWidth/Height( ): return the size of the document 
 * getHorizontalScroll( ): return the position of the horizontal scrollbar 
 * getVerticalScroll( ): return the position of the vertical scrollbar 
 * 
 * Note that there is no portable way to query the overall size of the 
 * browser window, so there are no getWindowWidth/Height( ) functions. 
 * 
 * IMPORTANT: This module must be included in the <body> of a document 
 *            instead of the <head> of the document. 
 */ 

var Geometry = {}; 

if (window.screenLeft) { // IE and others 
	Geometry.getWindowX = function( ) { return window.screenLeft; }; 
	Geometry.getWindowY = function( ) { return window.screenTop; }; 
} 
else if (window.screenX) { // Firefox and others 
	Geometry.getWindowX = function( ) { return window.screenX; }; 
	Geometry.getWindowY = function( ) { return window.screenY; }; 
} 

if (window.innerWidth) { // All browsers but IE 
	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) { 
	// These functions are for IE 6 when there is a DOCTYPE 
	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.clientWidth) { 
	// These are for IE4, IE5, and IE6 without a DOCTYPE 
	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; }; 
} 

// These functions return the size of the document. They are not window 
// related, but they are useful to have here anyway. 
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; }; 
}
