Refactor JS into modules, and add basic MVC.
[quanweb.git] / js / PagingController.js
diff --git a/js/PagingController.js b/js/PagingController.js
new file mode 100644 (file)
index 0000000..d5edea4
--- /dev/null
@@ -0,0 +1,45 @@
+// ================
+// PagingController
+
+var PagingController = (function() {
+    var my = {};
+    
+    var booksModel = undefined;
+    
+    // ==============
+    // Public Methods
+    
+    my.init = function(linkedBooksModel) {
+        booksModel = linkedBooksModel;
+    };
+    
+    my.adjustPos = function (setting) {
+        var value = parseInt(setting);
+    
+        if (booksModel.first === value) {
+            // No change
+            return;
+        }
+    
+        var maxFirst = Math.max(0, booksModel.count - booksModel.pageSize);
+    
+        if (value < 0) {
+            booksModel.first = 0;
+        } else if (value > maxFirst) {
+            booksModel.first = maxFirst;
+        } else {
+            booksModel.first = value;
+        }
+    
+        booksModel.last = booksModel.first + booksModel.pageSize - 1;
+        if (booksModel.last >= booksModel.count) {
+            booksModel.last = booksModel.count - 1;
+        }
+    
+        document.getElementById('slider').value = setting;
+    
+        booksModel.refreshData();
+    };
+
+    return my;
+})();