|
- Monocle.DEBUG = true;
-
- (function () {
-
- Monocle.Styles.container.right = "24px";
-
- // Initialize the reader element.
- Monocle.Events.listen(
- window,
- 'load',
- function () {
- var readerOptions = {};
-
- /* PLACE SAVER */
- var bkTitle = bookData.getMetaData('title');
- var placeSaver = new Monocle.Controls.PlaceSaver(bkTitle);
- readerOptions.place = placeSaver.savedPlace();
- readerOptions.panels = Monocle.Panels.Marginal;
- readerOptions.stylesheet = "body { " +
- "color: #210;" +
- "font-family: Palatino, Georgia, serif;" +
- "}";
-
- /* Initialize the reader */
- window.reader = Monocle.Reader(
- 'reader',
- bookData,
- readerOptions,
- function(reader) {
- reader.addControl(placeSaver, 'invisible');
-
- /* SPINNER */
- var spinner = Monocle.Controls.Spinner(reader);
- reader.addControl(spinner, 'page', { hidden: true });
- spinner.listenForUsualDelays('reader');
-
- /* Because the 'reader' element changes size on window resize,
- * we should notify it of this event. */
- Monocle.Events.listen(
- window,
- 'resize',
- function () { window.reader.resized() }
- );
-
- Monocle.Events.listen(window.top.document, 'keyup', function(evt) {
- var eventCharCode = evt.charCode || evt.keyCode;
- var dir = null;
- var flipper = reader.Flipper;
- if (eventCharCode == 33 || eventCharCode == 37) { // Page down or Left arrow
- dir = -1;
- } else if (eventCharCode == 34 || eventCharCode == 39 ) { // Page down or Right arrow
- dir = 1;
- }
- if (dir) {
- reader.moveTo({ direction: dir });
- evt.preventDefault();
- }
- });
-
- /* MAGNIFIER CONTROL */
- var magnifier = new Monocle.Controls.Magnifier(reader);
- reader.addControl(magnifier, 'page');
-
- /* BOOK TITLE RUNNING HEAD */
- var bookTitle = {}
- bookTitle.contentsMenu = Monocle.Controls.Contents(reader);
- reader.addControl(bookTitle.contentsMenu, 'popover', { hidden: true });
- bookTitle.createControlElements = function () {
- var cntr = document.createElement('div');
- cntr.className = "bookTitle";
- var runner = document.createElement('div');
- runner.className = "runner";
- runner.innerHTML = reader.getBook().getMetaData('title');
- cntr.appendChild(runner);
-
- Monocle.Events.listenForContact(
- cntr,
- {
- start: function (evt) {
- if (evt.preventDefault) {
- evt.stopPropagation();
- evt.preventDefault();
- } else {
- evt.returnValue = false;
- }
- reader.showControl(bookTitle.contentsMenu);
- }
- }
- );
-
- return cntr;
- }
- reader.addControl(bookTitle, 'page');
-
-
- /* CHAPTER TITLE RUNNING HEAD */
- var chapterTitle = {
- runners: [],
- createControlElements: function (page) {
- var cntr = document.createElement('div');
- cntr.className = "chapterTitle";
- var runner = document.createElement('div');
- runner.className = "runner";
- cntr.appendChild(runner);
- this.runners.push(runner);
- this.update(page);
- return cntr;
- },
- update: function (page) {
- var place = reader.getPlace(page);
- if (place) {
- this.runners[page.m.pageIndex].innerHTML = place.chapterTitle();
- }
- }
- }
- reader.addControl(chapterTitle, 'page');
- reader.listen(
- 'monocle:pagechange',
- function (evt) { chapterTitle.update(evt.m.page); }
- );
-
-
- /* PAGE NUMBER RUNNING HEAD */
- var pageNumber = {
- runners: [],
- createControlElements: function (page) {
- var cntr = document.createElement('div');
- cntr.className = "pageNumber";
- var runner = document.createElement('div');
- runner.className = "runner";
- cntr.appendChild(runner);
- this.runners.push(runner);
- this.update(page, page.m.place.pageNumber());
- return cntr;
- },
- update: function (page, pageNumber) {
- if (pageNumber) {
- this.runners[page.m.pageIndex].innerHTML = pageNumber;
- }
- }
- }
- reader.addControl(pageNumber, 'page');
- reader.listen(
- 'monocle:pagechange',
- function (evt) {
- pageNumber.update(evt.m.page, evt.m.pageNumber);
- }
- );
-
- /* Scrubber */
- var scrubber = new Monocle.Controls.Scrubber(reader);
- reader.addControl(scrubber, 'popover', { hidden: true });
- var showFn = function (evt) {
- evt.stopPropagation();
- reader.showControl(scrubber);
- scrubber.updateNeedles();
- }
- for (var i = 0; i < chapterTitle.runners.length; ++i) {
- Monocle.Events.listenForContact(
- chapterTitle.runners[i].parentNode,
- { start: showFn }
- );
- Monocle.Events.listenForContact(
- pageNumber.runners[i].parentNode,
- { start: showFn }
- );
- }
- }
- );
- }
- );
- })();
|