From cf8944526ec56dd1a3522d6eced65a4d1369c321 Mon Sep 17 00:00:00 2001
From: Craig Andrews <candrews@integralblue.com>
Date: Sat, 19 Sep 2009 22:53:39 -0400
Subject: [PATCH] Make the infinite scroll plugin have a non-infinite scroll
 (button click to scroll) mode

---
 .../InfiniteScroll/InfiniteScrollPlugin.php   |  2 +-
 plugins/InfiniteScroll/infinitescroll.js      |  2 +-
 .../InfiniteScroll/jquery.infinitescroll.js   | 22 ++++++++++++++-----
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/plugins/InfiniteScroll/InfiniteScrollPlugin.php b/plugins/InfiniteScroll/InfiniteScrollPlugin.php
index c955298cb9..5928c007fe 100644
--- a/plugins/InfiniteScroll/InfiniteScrollPlugin.php
+++ b/plugins/InfiniteScroll/InfiniteScrollPlugin.php
@@ -40,7 +40,7 @@ class InfiniteScrollPlugin extends Plugin
 
     function onEndShowScripts($action)
     {
-        $action->script('plugins/InfiniteScroll/jquery.infinitescroll.min.js');
+        $action->script('plugins/InfiniteScroll/jquery.infinitescroll.js');
         $action->script('plugins/InfiniteScroll/infinitescroll.js');
     }
 }
diff --git a/plugins/InfiniteScroll/infinitescroll.js b/plugins/InfiniteScroll/infinitescroll.js
index 6513072d06..ae4d53d095 100644
--- a/plugins/InfiniteScroll/infinitescroll.js
+++ b/plugins/InfiniteScroll/infinitescroll.js
@@ -1,6 +1,7 @@
 jQuery(document).ready(function($){
   $('notices_primary').infinitescroll({
     debug: true,
+    infiniteScroll  : false,
     nextSelector    : "li.nav_next a",
     loadingImg      : $('address .url')[0].href+'plugins/InfiniteScroll/ajax-loader.gif',
     text            : "<em>Loading the next set of posts...</em>",
@@ -12,4 +13,3 @@ jQuery(document).ready(function($){
         NoticeAttachments();
     });
 });
-
diff --git a/plugins/InfiniteScroll/jquery.infinitescroll.js b/plugins/InfiniteScroll/jquery.infinitescroll.js
index 670686b0e6..ec31bb0863 100644
--- a/plugins/InfiniteScroll/jquery.infinitescroll.js
+++ b/plugins/InfiniteScroll/jquery.infinitescroll.js
@@ -92,14 +92,14 @@
     
         if (props.isDuringAjax || props.isInvalidPage || props.isDone) return; 
     
-    		if ( !isNearBottom(opts,props) ) return; 
+    		if ( opts.infiniteScroll && !isNearBottom(opts,props) ) return; 
     		  
     		// we dont want to fire the ajax multiple times
     		props.isDuringAjax = true; 
     		
     		// show the loading message and hide the previous/next links
     		props.loadingMsg.appendTo( opts.contentSelector ).show();
-    		$( opts.navSelector ).hide(); 
+    		if(opts.infiniteScroll) $( opts.navSelector ).hide(); 
     		
     		// increment the URL bit. e.g. /page/3/
     		props.currPage++;
@@ -205,10 +205,19 @@
       } 
     });
     
-    // bind scroll handler to element (if its a local scroll) or window  
-    $(opts.localMode ? this : window)
-      .bind('scroll.infscr', function(){ infscrSetup(path,opts,props,callback); } )
-      .trigger('scroll.infscr'); // trigger the event, in case it's a short page
+    if(opts.infiniteScroll){
+      // bind scroll handler to element (if its a local scroll) or window  
+      $(opts.localMode ? this : window)
+        .bind('scroll.infscr', function(){ infscrSetup(path,opts,props,callback); } )
+        .trigger('scroll.infscr'); // trigger the event, in case it's a short page
+    }else{
+      $(opts.nextSelector).click(
+        function(){
+          infscrSetup(path,opts,props,callback);
+          return false;
+        }
+      );
+    }
     
     
     return this;
@@ -222,6 +231,7 @@
   $.infinitescroll = {     
         defaults      : {
                           debug           : false,
+                          infiniteScroll  : true,
                           preload         : false,
                           nextSelector    : "div.navigation a:first",
                           loadingImg      : "http://www.infinite-scroll.com/loading.gif",
-- 
2.39.5