r867 - branches/experimental/ui

r867 - branches/experimental/ui


Author: paul.bakaus
Date: Wed Nov 5 06:19:50 2008
New Revision: 867
Modified:
branches/experimental/ui/ui.core.position.js
Log:
core (experimental): cleanup of variables in positionTo
Modified: branches/experimental/ui/ui.core.position.js
==============================================================================
--- branches/experimental/ui/ui.core.position.js    (original)
+++ branches/experimental/ui/ui.core.position.js    Wed Nov 5 06:19:50 2008
@@ -1,23 +1,32 @@
$.fn.positionTo = function(e, o) {
-    
-    var leftOffset = 0, topOffset = 0;
-    var height = this[0].offsetHeight, width = this[0].offsetWidth;
-    var parentOffset = this.offsetParent().offset();
-    parentOffset = {
-        top: this.offsetParent()[0] == document.body ? 0 : parentOffset.top,
-        left: this.offsetParent()[0] == document.body ? 0 : parentOffset.left
-    };
-    
+
    var options = $.extend({
        relativeTo: 'mouse',
        direction: 'default',
        forceDirection: false    
    }, o);
    
+    var leftOffset    = 0,
+        topOffset    = 0,
+        height        = this[0].offsetHeight,
+        width        = this[0].offsetWidth,
+        parentOffset= this.offsetParent().offset()
+    ;
+
+    //Ugly fix for the issues of offset related to the body element
+    parentOffset = {
+        top: this.offsetParent()[0] == document.body ? 0 : parentOffset.top,
+        left: this.offsetParent()[0] == document.body ? 0 : parentOffset.left
+    };
+    
+
    if($(options.relativeTo).length && $(options.relativeTo)[0].nodeName) {
//If relativeTo is an element
        
-        var element = $(options.relativeTo),offset = element.offset();
-        var relHeight = element[0].offsetHeight, relWidth =
element[0].offsetWidth, height = this[0].offsetHeight, width =
this[0].offsetWidth;
+        var element = $(options.relativeTo),
+            offset = element.offset(),
+            relHeight = element[0].offsetHeight,
+            relWidth = element[0].offsetWidth
+        ;
        
        if((/(left|right)/).test(options.direction)) {
            leftOffset = ( options.direction == 'left' ? (offset.left > width ||
options.forceDirection) : ($(window).width()-offset.left-relWidth < width
&& !options.forceDirection) ) ? -(width) : relWidth;