anchor.diff:          return { start: { cfi: this.PDFViewerApplication.page } };
         },
   
  +      next: function() {
  +        if ( this.PDFViewerApplication.page < this.PDFViewerApplication.pagesCount ) {
  +          this.PDFViewerApplication.page++;
  +        }
  +      },
  +
  +      prev: function() {
  +        if ( this.PDFViewerApplication.page > 1 ) {
  +          this.PDFViewerApplication.page--;
  +        }
  +      },
  +
  +      _scroll: function(delta) {
  +        switch(delta) {
  +          case 'PREV':
  +            this.prev();
  +            break;
  +          case 'NEXT':
  +            this.next();
  +            break;
  +          case 'HOME':
  +            this.PDFViewerApplication.page = 1;
  +            break;
  +          case 'END':
  +            this.PDFViewerApplication.page = this.PDFViewerApplication.pagesCount;
  +            break;
  +        }
  +      },
  +
         gotoPage: function(cfi) {
           if ( typeof(cfi) == "string" ) {
             cfi = { start: cfi.replace('epubcfi(', '').replace(')','') };
  
positive.code:     // start reader
      reader.start();
  
      console.log("YO HEY DER");
  
      // distinguish these buttons from the links underneath, too much CSS to add otherwise, methinks
      var element = document.getElementById("viewThumbnail");
      element.classList.add("cozy-control", "button--lg");
  
negative.code: 
    <script type="text/javascript">
  
      // jQuery.getScript makes it difficult to debug scripts;
      // this version makes the script visible in browser debuggers.
      jQuery.extend({
          loadScript: function(url, callback) {
            var head = document.getElementsByTagName("head")[0];
            var script = document.createElement("script");
            script.src = url;
  
            // Handle Script loading
            {
               var done = false;
  
               // Attach handlers for all browsers
               script.onload = script.onreadystatechange = function(){
                  if ( !done && (!this.readyState ||
                        this.readyState == "loaded" || this.readyState == "complete") ) {
                     done = true;
                     if (callback)
                        callback();
  
                     // Handle memory leak in IE
                     script.onload = script.onreadystatechange = null;
                  }
               };
            }
  
            head.appendChild(script);
  
            // We handle everything using the script element injection
            return undefined;
         },
      });
      cozy.Control.Preferences.prototype._createPanel = function() {
        var self = this;
        if ( this._modal._container.querySelector('form') ) { return; }
  