<?php
/**
 * Copyright (c) 2014, 2015, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Nathan Gervais (Eclipse Foundation) - Initial implementation (2007-11-07)
 *   Edouard Poitras (Eclipse Foundation) - Further modifications
 *   Christopher Guindon (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<div>
    <h1><?php print $pageTitle; ?></h1>
    <div role="tabpanel">
      <ul class="nav nav-tabs tabs" role="tablist">
        <li role="presentation" class="active"><a href="#best-friends" aria-controls="best-friends" role="tab" data-toggle="tab">Best Friends</a></li>
        <li role="presentation"><a href="#friends" aria-controls="friends" role="tab" data-toggle="tab">Friends</a></li>
        <li role="presentation"><a href="#all" aria-controls="all" role="tab" data-toggle="tab">All</a></li>
        <li role="presentation"><a href="/donate">Join Us</a></li>
      </ul>
    </div>
    <div class="tab-content">
      <div role="tabpanel" class="tab-pane fade in active" id="best-friends">
        <?php
          print $DonationList->displayPager($bfstart, $pageValue, $totalBestFriends, 'bfstart', '#best-friends');
          print $DonationList->displayFriends($bestFriends);
          print $DonationList->displayPager($bfstart, $pageValue, $totalBestFriends, 'bfstart', '#best-friends');
        ?>
      </div>
      <div role="tabpanel" class="tab-pane fade" id="friends">
        <?php
          print $DonationList->displayPager($fstart, $pageValue, $totalFriends, 'fstart', '#friends');
          print $DonationList->displayFriends($friends);
          print $DonationList->displayPager($fstart, $pageValue, $totalFriends, 'fstart', '#friends');
        ?>
      </div>
      <div role="tabpanel" class="tab-pane fade" id="all">
        <?php
          print $DonationList->displayPager($start, $pageValue, $totalContributionsCount, 'start', '#all');
          print $DonationList->displayTable($contributions);
          print $DonationList->displayPager($start, $pageValue, $totalContributionsCount, 'start', '#all');
        ?>
      </div>
    </div>
</div>