From fcdf86c3d914652a3d63a70706a21eaf96950f4f Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Sun, 15 Apr 2007 23:43:26 +0000 Subject: Bug 182082: Help system should support more browsers - Patch by Teemu Mannermaa r=myk a=LpSolit --- js/util.js | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 js/util.js (limited to 'js/util.js') diff --git a/js/util.js b/js/util.js new file mode 100644 index 000000000..9d2209093 --- /dev/null +++ b/js/util.js @@ -0,0 +1,116 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Cross Platform JavaScript Utility Library. + * + * The Initial Developer of the Original Code is + * Everything Solved. + * Portions created by the Initial Developer are Copyright (C) 2007 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Max Kanat-Alexander + * + * ***** END LICENSE BLOCK ***** */ + +/** + * Locate where an element is on the page, x-wise. + * + * @param obj Element of which location to return. + * @return Current position of the element relative to the left of the + * page window. Measured in pixels. + */ +function bz_findPosX(obj) +{ + var curleft = 0; + + if (obj.offsetParent) { + while (obj) { + curleft += obj.offsetLeft; + obj = obj.offsetParent; + } + } + else if (obj.x) { + curleft += obj.x; + } + + return curleft; +} + +/** + * Locate where an element is on the page, y-wise. + * + * @param obj Element of which location to return. + * @return Current position of the element relative to the top of the + * page window. Measured in pixels. + */ +function bz_findPosY(obj) +{ + var curtop = 0; + + if (obj.offsetParent) { + while (obj) { + curtop += obj.offsetTop; + obj = obj.offsetParent; + } + } + else if (obj.y) { + curtop += obj.y; + } + + return curtop; +} + +/** + * Get the full height of an element, even if it's larger than the browser + * window. + * + * @param fromObj Element of which height to return. + * @return Current height of the element. Measured in pixels. + */ +function bz_getFullHeight(fromObj) +{ + var scrollY; + + // All but Mac IE + if (fromObj.scrollHeight > fromObj.offsetHeight) { + scrollY = fromObj.scrollHeight; + // Mac IE + } else { + scrollY = fromObj.offsetHeight; + } + + return scrollY; +} + +/** + * Get the full width of an element, even if it's larger than the browser + * window. + * + * @param fromObj Element of which width to return. + * @return Current width of the element. Measured in pixels. + */ +function bz_getFullWidth(fromObj) +{ + var scrollX; + + // All but Mac IE + if (fromObj.scrollWidth > fromObj.offsetWidth) { + scrollX = fromObj.scrollWidth; + // Mac IE + } else { + scrollX = fromObj.offsetWidth; + } + + return scrollX; +} -- cgit v1.2.3-24-g4f1b