function cmGetBrowseTypeAndVersion() { } function cmGetBrowseType() { return("CCBot\u002f1\u002e0\u0020\u0028\u002bhttp\u003a\u002f\u002fwww\u002ecommoncrawl\u002eorg\u002fbot\u002ehtml\u0029"); } function cmGetAllByNodeName(p_object, p_nodeName) { var result = []; cmGetAllDescendentByNodeName(p_object, p_nodeName, result); return(result); } function cmGetAllDescendentByNodeName(p_object, p_nodeName, p_result) { var childNodes = p_object.childNodes; for (var i=0; i10)) { oX = oX + obj.offsetLeft; oY = oY + obj.offsetTop; } temp = obj.offsetTop; if(obj == document.getElementsByTagName('body')[0]) { break; } else { obj = obj.parentNode; } } /* rX = p_event.pageX - oX; rY = p_event.pageY - oY; */ rX = p_event.clientX - oX + document.body.scrollLeft + document.documentElement.scrollLeft; rY = p_event.clientY - oY + document.body.scrollTop + document.documentElement.scrollTop; } var relPos = {x:rX, y:rY}; return(relPos); } //this function is used to add a child to Document Object function cmAppendDocumentChild(p_document,p_child) { var browserType = cmGetBrowseType(); if (browserType =="FireFox") { var htmlNodeElement = p_document.documentElement; htmlNodeElement.appendChild(p_child); } else { p_document.appendChild(p_child); } } //if must use onmouseenter and onmouseleave in firefox ,you can use those function //containsDOM(), cmCheckMouseEnter(), cmCheckMouseLeave() function containsDOM (p_container, p_containee) { var isParent = false; do { if ((isParent = p_container == p_containee)) { break; } p_containee = p_containee.parentNode; }while (p_containee != null); return isParent; } function cmCheckMouseEnter (p_element, p_event) { if (p_element.contains && p_event.fromElement) { return !p_element.contains(p_event.fromElement); } else if (p_event.relatedTarget) { return !containsDOM(p_element, p_event.relatedTarget); } } function cmCheckMouseLeave (p_element, p_event) { if (p_element.contains && p_event.toElement) { return !p_element.contains(p_event.toElement); } else if (p_event.relatedTarget) { return !containsDOM(p_element, p_event.relatedTarget) } }