function(node, root) {
		var x = 0, y = 0, parent, doc = document, nodeRect, rootRect;

		node = node;
		root = root || doc.body;

		// Returns the x, y cordinate for an element on IE 6 and IE 7
		function getIEPos(node) {
			var bodyElm, rect, x = 0, y = 0;

			if (node) {
				rect = node.getBoundingClientRect();
				bodyElm = doc.compatMode === "CSS1Compat" ? doc.documentElement : doc.body;
				x = rect.left + bodyElm.scrollLeft;
				y = rect.top + bodyElm.scrollTop;
			}

			return {
				x : x,
				y : y
			};
		}

		// Use getBoundingClientRect on IE 6 and IE 7 but not on IE 8 in standards mode
		if (node && node.getBoundingClientRect && Env.browser === 'IE' && (!doc.documentMode || doc.documentMode < 8)) {
			nodeRect = getIEPos(node);
			rootRect = getIEPos(root);

			return {
				x : nodeRect.x - rootRect.x,
				y : nodeRect.y - rootRect.y
			};
		}

		parent = node;
		while (parent && parent != root && parent.nodeType) {
			x += parent.offsetLeft || 0;
			y += parent.offsetTop || 0;
			parent = parent.offsetParent;
		}

		parent = node.parentNode;
		while (parent && parent != root && parent.nodeType) {
			x -= parent.scrollLeft || 0;
			y -= parent.scrollTop || 0;
			parent = parent.parentNode;
		}

		return {
			x : x,
			y : y
		};
	}
function(node, root) {
		var x = 0, y = 0, parent, doc = document, nodeRect, rootRect;

		node = node;
		root = root || doc.body;

		// Returns the x, y cordinate for an element on IE 6 and IE 7
		function getIEPos(node) {
			var bodyElm, rect, x = 0, y = 0;

			if (node) {
				rect = node.getBoundingClientRect();
				bodyElm = doc.compatMode === "CSS1Compat" ? doc.documentElement : doc.body;
				x = rect.left + bodyElm.scrollLeft;
				y = rect.top + bodyElm.scrollTop;
			}

			return {
				x : x,
				y : y
			};
		}

		// Use getBoundingClientRect on IE 6 and IE 7 but not on IE 8 in standards mode
		if (node && node.getBoundingClientRect && Env.browser === 'IE' && (!doc.documentMode || doc.documentMode < 8)) {
			nodeRect = getIEPos(node);
			rootRect = getIEPos(root);

			return {
				x : nodeRect.x - rootRect.x,
				y : nodeRect.y - rootRect.y
			};
		}

		parent = node;
		while (parent && parent != root && parent.nodeType) {
			x += parent.offsetLeft || 0;
			y += parent.offsetTop || 0;
			parent = parent.offsetParent;
		}

		parent = node.parentNode;
		while (parent && parent != root && parent.nodeType) {
			x -= parent.scrollLeft || 0;
			y -= parent.scrollTop || 0;
			parent = parent.parentNode;
		}

		return {
			x : x,
			y : y
		};
	}
function ( node , root ) { var x = 0 , y = 0 , parent , doc = document , nodeRect , rootRect ; node = node ; root = root || doc . body ; // Returns the x, y cordinate for an element on IE 6 and IE 7 function getIEPos ( node ) { var bodyElm , rect , x = 0 , y = 0 ; if ( node ) { rect = node . getBoundingClientRect ( ) ; bodyElm = doc . compatMode === "CSS1Compat" ? doc . documentElement : doc . body ; x = rect . left + bodyElm . scrollLeft ; y = rect . top + bodyElm . scrollTop ; } return { x : x , y : y } ; } // Use getBoundingClientRect on IE 6 and IE 7 but not on IE 8 in standards mode if ( node && node . getBoundingClientRect && Env . browser === 'IE' && ( ! doc . documentMode || doc . documentMode < 8 ) ) { nodeRect = getIEPos ( node ) ; rootRect = getIEPos ( root ) ; return { x : nodeRect . x - rootRect . x , y : nodeRect . y - rootRect . y } ; } parent = node ; while ( parent && parent != root && parent . nodeType ) { x += parent . offsetLeft || 0 ; y += parent . offsetTop || 0 ; parent = parent . offsetParent ; } parent = node . parentNode ; while ( parent && parent != root && parent . nodeType ) { x -= parent . scrollLeft || 0 ; y -= parent . scrollTop || 0 ; parent = parent . parentNode ; } return { x : x , y : y } ; }
Returns the absolute x, y position of an Element. The position will be returned in a object with x, y fields.

@method getPos
@static
@param {Element} node HTML element or element id to get x, y position from.
@param {Element} root Optional root element to stop calculations at.
@return {object} Absolute position of the specified element object with x, y fields.
Returns the absolute x y position of an Element . The position will be returned in a object with x y fields .