<?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="col-md-14 col-lg-16">
  <h1><?php print $pageTitle;?></h1>

  <ul class="nav margin-bottom-20">
    <li class="padding-bottom-0"><a href="#work-member">I work for a member company and want to...</a></li>
    <li class="padding-bottom-0"><a href="#membership">I am considering membership and I want to...</a></li>
    <li class="padding-bottom-0"><a href="#visiting">I am just visiting eclipse.org and want to...</a></li>
  </ul>
  <hr/>
  <div class="sideitem" id="work-member">
    <h2>I work for a member company and want to</h2>
     <ul class="fa-ul">
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="updateContactInfo.php">Update our address and/or company representative and other contact information.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="editMembershipPage.php">Edit our Membership Pages.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="resetPortalPassword.php">Reset my Portal Password.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="promoteMemberProduct.php">Learn the many ways I can promote my organization's products and services.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="/projects/dev_process/index.php">Do something related to Eclipse Projects.</a></li>
    </ul>
  </div>
  <div class="sideitem" id="membership">
    <h2>I am considering membership and I want to</h2>
    <ul class="fa-ul">
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="../become_a_member/benefits.php">Learn about the benefits of membership.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="../become_a_member/membershipTypes.php">Understand the different kinds of membership.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="../become_a_member/membershipProcess.php">Know the steps to become a member.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="corporateVSmember.php">Understand the distinction between Members and Corporate Sponsors.</a></li>
    </ul>
  </div>
  <div class="sideitem" id="visiting">
    <h2>I am just visiting eclipse.org and want to</h2>
    <ul class="fa-ul">
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="../exploreMembership.php">Learn about Eclipse members and find the products/services they offer.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="http://marketplace.eclipse.org/">Find Eclipse Plug-ins.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="/org">Understand the role of the Eclipse Foundation.</a></li>
      <li><i class="fa-li fa fa-chevron-circle-right orange"></i><a href="../faq/recruitNewEmployees.php">Find Employees with Eclipse skills for my company.</a></li>
    </ul>
  </div>
</div>

<?php require_once('../content/en_sidebar.php')?>