<?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 class="col-xs-24">
    <h1><?php print $pageTitle; ?></h1>
  </div>
</div>
<div class="row">
<div class="col-md-14 col-lg-16">
  <div class="row tabs-sidebar">
    <div class="col-sm-6">
      <nav class="nav-sidebar">
        <ul class="nav tabs">
          <?php foreach($members as $key => $value):?>
            <?php if (!empty($value['members'])):?>
              <li class="<?php print $value['list_class'];?>">
                <a class="text-uppercase text-center" style="<?php print ($value['level'] === 'strategic' ? 'color:#f7941e;' : ''); ?>" href="#tab-<?php print $key;?>" data-toggle="tab">
                  <strong><?php print $value['level']?> Members</strong>
                </a>
              </li>
            <?php endif; ?>
          <?php endforeach;?>
        </ul>
      </nav>
      <p class="text-center"><a id="showalltabs" href="#allmembers" class="btn btn-warning">All members</a></p>
    </div>
    <div class="col-sm-18">
      <!-- tab content -->
      <div class="tab-content background-white no-border">
        <?php foreach($members as $key => $value):?>
          <?php if (!empty($value['members'])):?>
            <div class="<?php print $value['content_class'];?>" id="tab-<?php print $key;?>">
              <h3 class="block-heading"><?php print $value['title'];?></h3>
              <?php foreach ($value['members'] as $mkey => $mvalue):?>
                <div class="row clearfix">
                  <div class="col-md-6">
                  <?php print $mvalue['small_logo_link']?>
                  </div>
                  <div class="col-md-18">
                    <h4 class="h5 margin-top-0 fw-600">
                      <?php print $mvalue['title_link']?>
                    </h4>
                    <p><?php print $mvalue['body']?></p>
                  </div>
                </div>
              <?php endforeach;?>
            </div>
          <?php endif; ?>
        <?php endforeach;?>
      </div>
      <h2 class="h4 text-center">Learn about our many <a href="/corporate_sponsors/">corporate sponsors.</a></h2>
    </div>
  </div>
</div>
<?php include_once 'en_sidebar.php';?>
</div>