summaryrefslogtreecommitdiff
path: root/media/admin_media/js/core.js
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2009-02-07 16:38:33 -0600
committerDan McGee <dan@archlinux.org>2009-02-07 16:38:33 -0600
commit8d55746b7eb42b59d5cd5ab66b7d00dd16df8b38 (patch)
tree46a755215be6ed9deb2beaafbd1bd88b0402dfa5 /media/admin_media/js/core.js
parent8d53e928f6fb41954c8f6c1ffd3449b360b7978b (diff)
Update admin_media to latest Django version
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'media/admin_media/js/core.js')
-rw-r--r--media/admin_media/js/core.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/media/admin_media/js/core.js b/media/admin_media/js/core.js
index a17ac8a4..c8d0db6a 100644
--- a/media/admin_media/js/core.js
+++ b/media/admin_media/js/core.js
@@ -1,5 +1,9 @@
// Core javascript helper functions
+// basic browser identification & version
+var isOpera = (navigator.userAgent.indexOf("Opera")>=0) && parseFloat(navigator.appVersion);
+var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]);
+
// Cross-browser event handlers.
function addEvent(obj, evType, fn) {
if (obj.addEventListener) {
@@ -71,9 +75,13 @@ function findPosX(obj) {
var curleft = 0;
if (obj.offsetParent) {
while (obj.offsetParent) {
- curleft += obj.offsetLeft;
+ curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft);
obj = obj.offsetParent;
}
+ // IE offsetParent does not include the top-level
+ if (isIE && obj.parentElement){
+ curleft += obj.offsetLeft - obj.scrollLeft;
+ }
} else if (obj.x) {
curleft += obj.x;
}
@@ -84,9 +92,13 @@ function findPosY(obj) {
var curtop = 0;
if (obj.offsetParent) {
while (obj.offsetParent) {
- curtop += obj.offsetTop;
+ curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop);
obj = obj.offsetParent;
}
+ // IE offsetParent does not include the top-level
+ if (isIE && obj.parentElement){
+ curtop += obj.offsetTop - obj.scrollTop;
+ }
} else if (obj.y) {
curtop += obj.y;
}