/**
  * Site: Bluedilla.com
  * File: GetPositions.js
  * @author Chad E. Jennings
  * @copyright 2007, Bluedilla, LLC. 
  * @version $Id: v 1.0.0 06/18/2007 $;
  *
  * Changelog:
  *
  * ver 1.0.0 (06/18/2007)
  *   Added: Wrote initial code. - Chad
  */
var GetPositions = {
    '_position':null,
    '_positionX':0,
    '_positionY':0,
    '_size':null,
    
    /**
     * Get scrolling position of the browser window.
     */
    getScrollingPosition: function() {
        if (typeof window.pageXOffset != 'undefined') {
            GetPositions._position = [
                window.pageXOffset,
                window.pageYOffset
            ];
        }
        else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) {
            GetPositions._position = [
                document.documentElement.scrollLeft,
                document.documentElement.scrollTop
            ];
        }
        else if (typeof document.body.scrollTop != 'undefined') {
            GetPositions._position = [
                document.body.scrollLeft,
                document.body.scrollTop
            ];
        }
        
        return GetPositions._position;
    },
    
    /**
     * Get the screen position of the passed element.
     */
    getPosition: function(theElement) {
        while (theElement != null) {
            GetPositions._positionX += theElement.offsetLeft;
            GetPositions._positionY += theElement.offsetTop;
        }
        
        return [GetPositions._positionX, GetPositions._positionY];
    },
    
    /**
     * Calculates size of user's browsers viewable area.
     */
    getViewPortSize: function() {
        if (typeof window.innerWidth != 'undefined') {
            GetPositions._size = [
                window.innerWidth,
                window.innerHeight
            ];
        }
        else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
            GetPositions._size = [
                document.documentElement.clientWidth,
                document.documentElement.clientHeight
            ];
        }
        else {
            GetPositions._size = [
                document.getElementsByTagName('body')[0].clientWidth,
                document.getElementsByTagName('body')[0].clientHeight
            ];
        }
        
        return GetPositions._size;
    }
}

