<?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">


  <h2 class="h3 padding-top-20">Organizations that join the Eclipse Foundation<br/>can benefit in the following ways:</h2>

  <ul class="fa-ul fa-ul-2x">
    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>Ability to join and participate in the Eclipse Foundation <a href="/org/workinggroups">Working Groups</a>,
    industry collaborations that develop new open source software platforms.</li>

    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>Take advantage of marketing programs that target the Eclipse developer
    community, including advertising on eclipse.org, preferential listing on
    Eclipse Marketplace, exposure for commercial products on Eclipse Marketplace
    Client, organizing Eclipse Demo Camps, plus other programs.</li>

    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>The right to participate in the Eclipse Board of Directors and guide the strategy
    of the Eclipse Foundation, through a direct seat for Strategic Members and elected seat for Sustaining Members.</li>

    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>Discounts on sponsorship and registration fees for Eclipse Foundation events,
    including EclipseCon North America, EclipseCon Europe and EclipseCon France.
    </li>

    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>Networking opportunities with other member organizations through Foundation run events
    and one-on-one introductions by Foundation staff.</li>

    <li><i class="fa-li fa-2x fa fa-check-circle orange"></i>The ability to use the Eclipse Foundation member logo on your own site and have your logo
    listed on our members’ page and in other promotional material.</li>
  </ul>

  <h2>Resources</h2>
  <div class="row text-center">
    <div class="col-sm-8">
      <div class="background-white padding-20 match-height-item">
        <a href="/membership/documents/membership-prospectus.pdf"><i class="fa fa-file-text-o brand-primary margin-bottom-15" style="font-size:42px;"></i></a>
        <p><a href="/membership/documents/membership-prospectus.pdf">Membership Prospectus</a></p>
        <p class="small">Learn about Eclipse Foundation membership, and how you can become a member.</p>
      </div>
      <div class="background-primary padding-10"></div>
    </div>
    <div class="col-sm-8">
      <div class="background-white padding-20 match-height-item">
        <a href="/membership/documents/eclipse-foundation-overview.pdf"><i class="fa fa-file-powerpoint-o brand-primary margin-bottom-15" style="font-size:42px;"></i></a>
        <p><a href="/membership/documents/eclipse-foundation-overview.pdf">Overview Presentation</a></p>
        <p class="small">An introductory overview presentation of the Eclipse Foundation and Eclipse community for new and prospective members.</p>
      </div>
      <div class="background-primary padding-10"></div>
    </div>
    <div class="col-sm-8">
      <div class="background-white padding-20 match-height-item">
        <a href="/community/newsletter/" title="Membership Newsletter"><i class="fa fa-newspaper-o brand-primary margin-bottom-15" style="font-size:42px;"></i></a>
        <p><a href="/community/newsletter/" title="Membership Newsletter">Eclipse Member Newsletter</a></p>
        <p class="small">The Monthly Member Newsletter is available to Member companies and their employees.</p>
      </div>
      <div class="background-primary padding-10"></div>
    </div>
  </div>
</div>
<?php include_once 'en_sidebar.php';?>
