r2872 - positionTo: Cleaned up code for collision option (fixed some lint errors and reduced amou...

r2872 - positionTo: Cleaned up code for collision option (fixed some lint errors and reduced amou...


Author: scott.gonzalez
Date: Sun Jul 5 13:32:03 2009
New Revision: 2872
Modified:
branches/dev/positionTo/ui/ui.positionTo.js
Log:
positionTo: Cleaned up code for collision option (fixed some lint errors
and reduced amount of code).
Modified: branches/dev/positionTo/ui/ui.positionTo.js
==============================================================================
--- branches/dev/positionTo/ui/ui.positionTo.js    (original)
+++ branches/dev/positionTo/ui/ui.positionTo.js    Sun Jul 5 13:32:03 2009
@@ -16,11 +16,11 @@
$.fn.positionTo = function(options) {
    options = $.extend({
-        collision: 'flip',
        stackFix: true
    }, options);
    var target = $(options.of),
+        collision = (options.collision || 'flip').split(' '),
        offset = options.offset ? options.offset.split(' ') : [0, 0],
        targetWidth,
        targetHeight,
@@ -58,13 +58,10 @@
        pos[1] = verticalPositions.test(pos[1]) ? pos[1] : verticalDefault;
        options[this] = pos;
    });
-    
+
    // normalize collision option
-    if (options.collision) {
-        var collision = options.collision.split(' ');
-        options.collision = collision.length == 1
-            ? [collision[0], collision[0]]
-            : collision
+    if (collision.length == 1) {
+        collision[1] = collision[0];
    }
    switch (options.at[0]) {
@@ -94,7 +91,8 @@
        var elem = $(this),
            elemWidth = elem.outerWidth(),
            elemHeight = elem.outerHeight(),
-            position = $.extend({}, basePosition);
+            position = $.extend({}, basePosition),
+            over;
        switch (options.my[0]) {
            case 'right':
@@ -116,31 +114,29 @@
        // TODO fit breaks when the window scrolls; need to take scrollLeft/Top
into account
        // TODO fit works at the right/bottom edge
-        if (options.collision) {
-            if (options.collision[0] != "none") {
-                var over = (position.left + elemWidth) - $(window).width();
-                if (over > 0) {
-                    switch(options.collision[0]) {
-                    case 'fit':
-                        position.left -= over;
-                        break;
-                    case 'flip':
-                        // TODO not yet implemented
-                        break;
-                    }
+        if (collision[0] != "none") {
+            over = (position.left + elemWidth) - $(window).width();
+            if (over > 0) {
+                switch(collision[0]) {
+                case 'fit':
+                    position.left -= over;
+                    break;
+                case 'flip':
+                    // TODO not yet implemented
+                    break;
                }
            }
-            if (options.collision[1] != "none") {
-                var over = (position.top + elemHeight) - $(window).height();
-                if (over > 0) {
-                    switch(options.collision[1]) {
-                    case 'fit':
-                        position.top -= over;
-                        break;
-                    case 'flip':
-                        // TODO not yet implemented
-                        break;
-                    }
+        }
+        if (collision[1] != "none") {
+            over = (position.top + elemHeight) - $(window).height();
+            if (over > 0) {
+                switch(collision[1]) {
+                case 'fit':
+                    position.top -= over;
+                    break;
+                case 'flip':
+                    // TODO not yet implemented
+                    break;
                }
            }
        }