X-Git-Url: https://svn.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/d2c54b79af112bf32ae357779b1dca0d148e7eb6..992dde21cc051b895d8e5e98509c27edc4e3e304:/skins/photo_lightbox_viewer.js diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 5244a68..9a57ac2 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -14,6 +14,7 @@ var reSelected = /.*selected.*/; Lightbox = function(grid, toolbar) { var self = this; this.grid = grid; + this.lastSlide = this.grid.children[this.grid.children.length-1]; this.toolbar = toolbar; if (toolbar) { this.toolbarFixed = false; @@ -51,6 +52,9 @@ Lightbox.prototype.windowScrollHandler = function(evt) { this.toolbarFixed = false; this.switchToolBarPositioning(false); } + if (window.scrollY > this.lastSlide.firstElementChild.offsetTop - getWindowHeight()) { + this.fetchTail(); + } }; Lightbox.prototype.mouseClickHandler = function(evt) { @@ -321,6 +325,40 @@ Lightbox.prototype._refreshGrid = function(req) { } }; +Lightbox.prototype.fetchTail = function() { + var req = new XMLHttpRequest(); + self = this; + req.onreadystatechange = function() { + switch (req.readyState) { + case 1 : + showProgressImage(); + break; + case 4 : + hideProgressImage(); + if (req.status === 200) { + self._appendTail(req) + } + break; + } + }; + + var url = absolute_url() + + '/portfolio_thumbnails_tail?start:int=' + + String(this.grid.children.length + 1 ) + + '&size:int=10'; + req.open('GET', url, true); + req.send(); +}; + +Lightbox.prototype._appendTail = function(req) { + var doc = req.responseXML.documentElement; + var i; + var slides = this.grid.children; + for (i=0 ; i