/* SPINNER */
function oldBookSpinner(reader) {
  var spinner = Monocle.Controls.Spinner(reader);
  reader.addControl(spinner, 'page', { hidden: true });
  spinner.listenForUsualDelays();
}


/* MAGNIFIER CONTROL */
function oldBookMagnifier(reader) {
  var magnifier = new Monocle.Controls.Magnifier(reader);
  reader.addControl(magnifier, 'page');
}


/* BOOK TITLE RUNNING HEAD */
function oldBookTitle(reader) {
  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.listen(
      cntr,
      typeof Touch == "object" ? "touchstart" : "mousedown",
      function (evt) {
        if (evt.preventDefault) {
          evt.stopPropagation();
          evt.preventDefault();
        } else {
          evt.returnValue = false;
        }
        reader.showControl(bookTitle.contentsMenu);
      }
    );

    return cntr;
  }
  reader.addControl(bookTitle, 'page');
  return bookTitle;
}


/* CHAPTER TITLE RUNNING HEAD */
function oldBookChapterTitle(reader) {
  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); }
  );
  return chapterTitle;
}


/* PAGE NUMBER RUNNING HEAD */
function oldBookPageNumber() {
  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);
      return cntr;
    },
    update: function (page) {
      var place = reader.getPlace(page);
      if (place) {
        this.runners[page.m.pageIndex].innerHTML = place.pageNumber();
      }
    }
  }
  reader.addControl(pageNumber, 'page');
  reader.listen(
    'monocle:pagechange',
    function (evt) { pageNumber.update(evt.m.page) }
  );
  return pageNumber;
}

 /* Scrubber */
function oldBookScrubber(reader, chapterTitle, pageNumber) {
  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 }
    );
  }
}


