rem: var n = curnode["offsetLeft"]; 
add: var n = curnode.offsetLeft; 
context: 	dojo._abs = function(/*DomNode*/node, /*Boolean?*/includeScroll){		//	summary:		//		Gets the absolute position of the passed element based on the		//		document itself. Returns an object of the form:		//			{ x: 100, y: 300 }		//		if includeScroll is passed, the x and y values will include any		//		document offsets that may affect the position relative to the		//		viewport.		// FIXME: need to decide in the brave-new-world if we're going to be		// margin-box or border-box.		var ownerDocument = node.ownerDocument;		var ret = {			x: 0,			y: 0		};		var hasScroll = false;		// targetBoxType == "border-box"		var db = dojo.body();		if(dojo.isIE){			var client = node.getBoundingClientRect();			var offset = dojo._getIeDocumentElementOffset();			ret.x = client.left - offset.x;			ret.y = client.top - offset.y;		}else if(ownerDocument["getBoxObjectFor"]){			// mozilla			var bo = ownerDocument.getBoxObjectFor(node);			ret.x = bo.x - _sumAncestorProperties(node, "scrollLeft");			ret.y = bo.y - _sumAncestorProperties(node, "scrollTop");		}else{			if(node["offsetParent"]){				hasScroll = true;				var endNode;				// in Safari, if the node is an absolutely positioned child of				// the body and the body has a margin the offset of the child				// and the body contain the body's margins, so we need to end				// at the body				// FIXME: getting contrary results to the above in latest WebKit.				if(dojo.isSafari &&					//(node.style.getPropertyValue("position") == "absolute") &&					(gcs(node).position == "absolute") &&					(node.parentNode == db)){					endNode = db;				}else{					endNode = db.parentNode;				}				if(node.parentNode != db){					var nd = node;					if(dojo.isOpera || (dojo.isSafari >= 3)){ nd = db; }					ret.x -= _sumAncestorProperties(nd, "scrollLeft");					ret.y -= _sumAncestorProperties(nd, "scrollTop");				}				var curnode = node;				do{					var n = curnode["offsetLeft"];					//FIXME: ugly hack to workaround the submenu in 					//popupmenu2 does not shown up correctly in opera. 					//Someone have a better workaround?					if(!dojo.isOpera || n>0){						ret.x += isNaN(n) ? 0 : n;					}					var m = curnode["offsetTop"];					ret.y += isNaN(m) ? 0 : m;					curnode = curnode.offsetParent;				}while((curnode != endNode)&&curnode);			}else if(node["x"]&&node["y"]){				ret.x += isNaN(node.x) ? 0 : node.x;				ret.y += isNaN(node.y) ? 0 : node.y;			}		}		// account for document scrolling		// if offsetParent is used, ret value already includes scroll position		// so we may have to actually remove that value if !includeScroll		if(hasScroll || includeScroll){			var scroll = dojo._docScroll();			var m = hasScroll ? (!includeScroll ? -1 : 0) : 1;			ret.y += m*scroll.y;			ret.x += m*scroll.x;		}		return ret; // object	}
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/361ad3932721e916d958483cd91d314ba0f88410/html.js/clean/_base/html.js