<?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://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Nathan Gervais (Eclipse Foundation) - Initial implementation
 *    Eric Poirier (Eclipse Foundation)
 *******************************************************************************/
?>
<div id="juno">
  <div id="fullcolumn" class="juno friends">
    <h1>Eclipse.org - Juno Simultaneous Release : Friends of Eclipse</h1>
    <a href="/juno/"><img id="junoLogo" src="/juno/images/juno-logo.png" /></a>
    <!--  <span id="release-date">Coming June 27, 2012</span>-->
    <div id="container">

      <div id="nav">
        <ul>
          <li><a class="textshadow"
            href="/downloads/packages/release/juno/sr2">Downloads</a></li>
          <li><a class="textshadow" href="/juno/projects.php">Projects</a></li>
          <li><a class="textshadow"
            href="http://wiki.eclipse.org/Eclipse_DemoCamps_Juno_2012">DemoCamps</a></li>
          <li class="last"><a class="textshadow active"
            href="/juno/friends.php">Friends of Juno</a></li>
        </ul>
      </div>
      <div id="window">
        <div id="main">
          <h2>Friends of Juno</h2>
          <p>
            Everyday millions of people use Eclipse. <a href="/donate/">Friends
              of Eclipse</a> allows you to contribute back to the
            Eclipse community.
          </p>
          <p>
            For a US$35 contribution, you can become a Friend of
            Eclipse. As a special thank you, Friends will get early
            access to the <a href="/juno/">Juno release</a>, direct from
            the download server at the Eclipse Foundation. Your
            contribution will also help support the Eclipse community.
          </p>
          <div class="row">
            <div class="col-sm-12">
              <a class="btn-donate" href="/donate"><img
                src='images/icons/star.png' /><span>Join Now!</span></a>
            </div>
            <div class="col-sm-12">
              <div class="progress-bar rounded shadow">
                <div class="progress-current l-rounded"
                  style="width: 15%">
                  <div class="progress-text textshadow">
                    75</strong> friends of Juno
                  </div>
                </div>
              </div>
            </div>


          </div>
          <p class="legal">[1] Friends of Eclipse get special access to
            the Eclipse Foundation download server. This server will be
            available to Friends of Eclipse while the download packages
            are being synchronized to our mirrors. This typically means
            the packages will be available up to 24 hrs before everyone
            else. The Eclipse Foundation will also be dedicating extra
            bandwidth to this download server, so Friends should
            experience a faster download.</p>
        </div>
        <div id="sidebar" class="tmp-white">
          <div class="container-friends">
            <h3>Recent Friends</h3>
            <ul class="donorList clearfix">
              <li>Anonymous - $100</li>
              <li>Anonymous - $35</li>
              <li>Anonymous - $35</li>
              <li>Anonymous - $50</li>
              <li>Anonymous - $100</li>
              <li>Anonymous - $35</li>
              <li>Anonymous - $50</li>
              <li>Anonymous - $55</li>
            </ul>
            <a class="button" href="/donate/donorlist.php?showAll=0">More</a>
          </div>
        </div>
      </div>
    </div>
  </div>
  <img src="/juno/images/eclipse-sm-logo.png" id="eclipse-logo-sm" /> <a
    class="button rounded shadow" id="btn_continue" href="/home">Click
    here to continue to Eclipse.org</a>
  <script type="text/javascript">
