<?php
/*******************************************************************************
 * Copyright (c) 2015 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
 *******************************************************************************/
 ?>
<div class="row">
  <div id="content" class="col-xs-24">
    <div class="margin-bottom-20">
      <!-- Nav tabs -->
        <?php foreach($members as $key => $value):?>
          <?php if (empty($value['members'])): ?>
            <?php continue; ?>
          <?php endif; ?>
          <h2 class="h3" id="<?php print ucfirst($value['level']); ?>-section"><?php print ucfirst($value['level']); ?> Members</h2>
          <div class="row">
            <?php foreach ($value['members'] as $mkey => $mvalue):?>
            <div class="col-xs-24 col-sm-12 col-md-8 margin-bottom-20">
              <div class="bordered-box text-center">
                <div class="box-header background-light-grey vertical-align" data-mh="m-header">
                  <h3 class="h4 margin-0"><?php print $mvalue['title_link']?></h3>
                </div>
                <div class="box-body vertical-align" style="height: 160px">
                  <div class="image-container">
                    <?php if(!empty($mvalue['id'])): ?>
                      <a href="/membership/showMember.php?member_id=<?php print $mvalue['id'] ?>" title="<?php print $mvalue['name'] ?>">
                    <?php endif; ?>
                    <img src="<?php print $mvalue['small_logo_src'] ?>" class="img-responsive margin-auto" alt="<?php print $mvalue['name'] ?> logo">
                    <?php if(!empty($mvalue['id'])): ?>
                      </a>
                    <?php endif; ?>
                  </div>
                </div>
              </div>
            </div>
          <?php endforeach;?> <!-- End of member box -->
          </div>
      <?php endforeach;?> <!-- End of tabpanel -->
      <a class="col-xs-18 col-sm-12 col-sm-offset-6 col-md-offset-8 col-md-8 text-center btn btn-primary margin-bottom-10" href="#">Become a Member</a>
    </div>
</div>