/**
   * Build Table-of-Contents
   *
   * @param referencePageModel
   */
  private void buildTOCMenu(PageModel referencePageModel) {
    Log.d(TAG, "Trying to create TOC");
    try {
      BookModel book = referencePageModel.getBook(false);
      if (book != null) {
        ArrayList<PageModel> chapters = book.getChapterCollection();
        for (PageModel chapter : chapters) {
          if (chapter.getPage().contentEquals(referencePageModel.getPage())) {
            chapter.setHighlighted(true);
          } else chapter.setHighlighted(false);
        }
        Log.d(TAG, "TOC Found: " + chapters.size());

        int resourceId = R.layout.jumpto_list_item;
        // if (UIHelper.IsSmallScreen(this)) {
        // resourceId = R.layout.jumpto_list_item;
        // }
        jumpAdapter = new PageModelAdapter(this, resourceId, chapters);
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(getResources().getString(R.string.content_toc));
        builder.setAdapter(
            jumpAdapter,
            new OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                PageModel page = jumpAdapter.getItem(which);
                jumpTo(page);
              }
            });
        builder.setNegativeButton(
            R.string.back_to_index,
            new OnClickListener() {

              @Override
              public void onClick(DialogInterface dialog, int which) {
                backToIndex();
              }
            });
        tocMenu = builder.create();
      }
    } catch (Exception e) {
      Log.e(TAG, "Cannot get current page for TOC menu.", e);
    }
  }