Index: components/reorderer/js/GeometricManager.js
===================================================================
--- components/reorderer/js/GeometricManager.js	(revision 10153)
+++ components/reorderer/js/GeometricManager.js	(working copy)
@@ -1,6 +1,7 @@
 /*
 Copyright 2008-2010 University of Cambridge
 Copyright 2008-2010 University of Toronto
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -237,10 +238,10 @@
         }
     }
     
-    fluid.dropManager = function () {
+    fluid.dropManager = function () { 
         var targets = [];
         var cache = {};
-        var that = {};
+        var that = {};        
         
         var lastClosest;
         
@@ -459,8 +460,16 @@
             if (index < 0) {
                 index += elements.length;
             }
+            
+            // disable wrap
+            if (!fluid.dropManager.enableWrap) {                   
+                if (index === elements.length || index === (elements.length + folded)) {
+                    return element;
+                }
+            }
+                          
             index %= elements.length;
-            return elements[index];            
+            return elements[index];              
         }
         
         that.logicalFrom = function (element, direction, includeLocked) {
@@ -500,7 +509,7 @@
             var sourceElements = that.getOwningSpan(element, null, true);
             var targetElements = that.getOwningSpan(target, position, true);
             fluid.permuteDom(element, target, position, sourceElements, targetElements);
-        };
+        };              
         
         return that;
     };
@@ -597,8 +606,13 @@
             }
             //fluid.log("Element " + i + " " + dumpelem(elem) + " mindist " + collect.mindist);
         }
-        var wrap = !collect.minelem || backcollect.mindist < collect.mindist;
-        var mincollect = wrap? backcollect: collect;
+        var wrap = !collect.minelem || backcollect.mindist < collect.mindist ;
+        
+        // disable wrap
+        wrap = wrap && fluid.dropManager.enableWrap;       
+                
+        var mincollect = wrap? backcollect: collect;        
+        
         var togo = {
             wrapped: wrap,
             cacheelem: mincollect.minelem
Index: components/reorderer/js/Reorderer.js
===================================================================
--- components/reorderer/js/Reorderer.js	(revision 10153)
+++ components/reorderer/js/Reorderer.js	(working copy)
@@ -1,6 +1,7 @@
 /*
 Copyright 2007-2009 University of Toronto
 Copyright 2007-2010 University of Cambridge
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -114,6 +115,7 @@
      *                                  mouseDrag
      *                                  avatar
      *                  avatarCreator - a function that returns a valid DOM node to be used as the dragging avatar
+     *                  enableWrap  -  the user option to enable or disable wrapping of elements within the container
      */
     fluid.reorderer = function (container, options) {
         if (!container) {
@@ -122,7 +124,10 @@
         var thatReorderer = fluid.initView("fluid.reorderer", container, options);
         options = thatReorderer.options;
         
-        var dropManager = fluid.dropManager();
+        // disable or enable elements wrapping
+        fluid.dropManager.enableWrap = options.enableWrap;
+        
+        var dropManager = fluid.dropManager();        
         
         thatReorderer.layoutHandler = fluid.initSubcomponent(thatReorderer,
             "layoutHandler", [thatReorderer.container, options, dropManager, thatReorderer.dom]);
@@ -613,7 +618,11 @@
             keysets: "replace",
             "selectors.selectables": "selectors.movables",
             "selectors.dropTargets": "selectors.movables"
-        }
+        },
+        
+        // The user option to enable or disable wrapping of elements within the container
+        enableWrap: true        
+        
     });
 
 
Index: demos/reorderer/gridReorderer/js/gridReorderer.js
===================================================================
--- demos/reorderer/gridReorderer/js/gridReorderer.js	(revision 10153)
+++ demos/reorderer/gridReorderer/js/gridReorderer.js	(working copy)
@@ -1,5 +1,6 @@
 /*
 Copyright 2008-2009 University of Toronto
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -19,6 +20,7 @@
     return fluid.reorderGrid('.myGrid', {
         selectors: {
             movables: 'p'
-        }
+        },
+        enableWrap: false
     });
 };
Index: demos/reorderer/imageReorderer/js/imageReorderer.js
===================================================================
--- demos/reorderer/imageReorderer/js/imageReorderer.js	(revision 10153)
+++ demos/reorderer/imageReorderer/js/imageReorderer.js	(working copy)
@@ -2,6 +2,7 @@
 Copyright 2007-2009 University of Cambridge
 Copyright 2007-2009 University of Toronto
 Copyright 2007-2009 University of California, Berkeley
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -22,7 +23,8 @@
         var reorderer = fluid.reorderImages(".flc-imageReorderer", {
             selectors: {
                 movables: ".flc-imageReorderer-item"
-            }
+            },
+            enableWrap: false
         });  
     };
 })(jQuery, fluid);
\ No newline at end of file
Index: demos/reorderer/layoutReorderer/js/layoutReorderer.js
===================================================================
--- demos/reorderer/layoutReorderer/js/layoutReorderer.js	(revision 10153)
+++ demos/reorderer/layoutReorderer/js/layoutReorderer.js	(working copy)
@@ -1,5 +1,6 @@
 /*
 Copyright 2008-2009 University of Toronto
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -22,7 +23,8 @@
                 modules: "> div > div",
                 lockedModules: ".locked",
                 dropWarning: ".flc-reorderer-dropWarning"
-            }
+            },
+            enableWrap: false
         });
     };
 })(jQuery, fluid);
Index: demos/reorderer/listReorderer/js/listReorderer.js
===================================================================
--- demos/reorderer/listReorderer/js/listReorderer.js	(revision 10153)
+++ demos/reorderer/listReorderer/js/listReorderer.js	(working copy)
@@ -2,6 +2,7 @@
 Copyright 2007-2009 University of Cambridge
 Copyright 2007-2009 University of Toronto
 Copyright 2007-2009 University of California, Berkeley
+Copyright 2010-2011 OCAD University
 
 Licensed under the Educational Community License (ECL), Version 2.0 or the New
 BSD license. You may not use this file except in compliance with one these
@@ -22,7 +23,8 @@
         return fluid.reorderList(".todo-list", {
             selectors: {
                 movables: ".movable"
-            }
+            },
+            enableWrap: false
         });
     };
 })(jQuery, fluid);
\ No newline at end of file

