if(obj.offsetParent) {
var copyObj = obj;
while(1) {
+ var borderLeft = getComputedStyle(copyObj).borderLeft || "0";
+ curleft += parseInt(borderLeft, 10) ;
curleft += copyObj.offsetLeft;
if(!copyObj.offsetParent) {
break;
if(obj.offsetParent) {
var copyObj = obj;
while(1) {
+ var borderTop = getComputedStyle(copyObj).borderTop || "0";
+ curtop += parseInt(borderTop, 10) ;
curtop += copyObj.offsetTop;
if(!copyObj.offsetParent) {
break;
return null;
};
+
+/**
+ * Is one element contained by another?
+ * @param {Element} containee The contained element.
+ * @param {Element} container The container element.
+ * @return {boolean} Whether containee is inside (or equal to) container.
+ * @private
+ */
+Dygraph.isElementContainedBy = function(containee, container) {
+ if (container === null || containee === null) {
+ return false;
+ }
+ while (containee && containee !== container) {
+ containee = containee.parentNode;
+ }
+ return (containee === container);
+};