diff --git a/lib/ComicBook.js b/lib/ComicBook.js index 4065b75..415bdbf 100755 --- a/lib/ComicBook.js +++ b/lib/ComicBook.js @@ -117,7 +117,7 @@ function ComicBook(id, srcs, opts) { /** * Tell the library app where the user is up to - **/ + */ function setLastPage(pageNo) { if (!options.data.comicId) { throw 'options.data.comicId is not set.'; } $.post('/comic/setlastpage', { page: pageNo, comic: options.data.comicId }); @@ -141,7 +141,21 @@ function ComicBook(id, srcs, opts) { //setInterval(function() { checkHash(); }, 300); // TODO: enable this when there is no onhashchange event } - /* + /** + * Get the image for a given page. + * + * @return Image + */ + ComicBook.prototype.getPage = function(i) { + + if (typeof pages[i] === "object") { + return pages[i]; + } else { + throw "Invalid page index: " + i; + } + }; + + /** * @see #preload */ ComicBook.prototype.draw = function () { @@ -153,7 +167,7 @@ function ComicBook(id, srcs, opts) { else { this.drawPage(); } }; - /* + /** * Zoom the canvas * * @param new_scale {Number} Scale the canvas to this ratio @@ -161,7 +175,7 @@ function ComicBook(id, srcs, opts) { ComicBook.prototype.zoom = function (new_scale) { options.zoomMode = "manual"; scale = new_scale; - if (typeof pages[pointer] === "object") { this.drawPage(); } + if (typeof this.getPage(pointer) === "object") { this.drawPage(); } }; /** @@ -231,8 +245,8 @@ function ComicBook(id, srcs, opts) { var zoom_scale; var offsetW = 0, offsetH = 0; - var page = pages[pointer]; - var page2 = pages[pointer + 1]; + var page = this.getPage(pointer); + var page2 = this.getPage(pointer + 1); if (typeof page !== "object") { throw "invalid page type '"+ typeof page +"'"; } @@ -341,7 +355,7 @@ function ComicBook(id, srcs, opts) { */ ComicBook.prototype.drawPrevPage = function () { - is_double_page_spread = (pages[pointer-1].width > pages[pointer-1].height); // need to run double page check again here as we are going backwards + is_double_page_spread = (this.getPage(pointer-1).width > this.getPage(pointer-1).height); // need to run double page check again here as we are going backwards if (pointer > 0) { pointer -= (options.displayMode === "single" || is_double_page_spread) ? 1 : 2;