<?php
/*******************************************************************************
 * Copyright (c) 2014 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:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *    Edouard Poitras (Eclipse Foundation) - Some modifications
 *******************************************************************************/
?>
<div id="content">
  <div class="row">
    <div class="col-md-18">
      <h1><?php print $pageTitle; ?></h1>
      <p>Participate in our success. Together we can make Eclipse even better! Each donation supports the Eclipse community.</p>
    </div>
    <div class="col-md-6">
      <img src="images/friendslogo.png" class="friends-logo-top" />
    </div>
    <div class="col-md-24 donation-help">
      <small>Contact <a href="mailto:friends@eclipse.org">friends at eclipse.org</a> for help regarding donations.</small>
    </div>
  </div>
  <div class="row boxes">
    <div class="col-md-5-eclipse donation-box">
      <div>
        <p class="donation-amount"><sup>$</sup>5</p>
        <h2>Acquaintance</h2>
        <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST">
          <input type="hidden" name="amount" value="5"/>
          <input type="submit" class="btn btn-warning donation-button" value="Donate" />
        </form>
      </div>
      <div class="background-purple">
        <p>
          Contributes to our ongoing success and we are grateful!
        </p>
      </div>
    </div>
    <div class="col-md-5-eclipse donation-box">
      <div>
        <p class="donation-amount"><sup>$</sup>10</p>
        <h2>Supporter</h2>
        <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST">
          <input type="hidden" name="amount" value="10"/>
          <input type="submit" class="btn btn-warning donation-button" value="Donate" />
        </form>
      </div>
      <div class="background-purple">
        <p>
          Keeps the Eclipse Community vibrant and amazing!
        </p>
      </div>
    </div>
    <div class="col-md-5-eclipse donation-box">
      <div>
        <p class="donation-amount"><sup>$</sup>35</p>
        <h2>Friend</h2>
        <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST">
          <input type="hidden" name="amount" value="35"/>
          <input type="submit" class="btn btn-warning donation-button" value="Donate" />
        </form>
      </div>
      <div class="background-purple">
        <h5 class="you-get-label">You Get:</h5>
        <ul class="donation-benefits">
          <li>Eclipse Mirror Site</li>
          <li>Friends of Eclipse Logo</li>
          <li>40% off prints and 50% off ebooks at oreilly.com</li>
        </ul>
      </div>
    </div>
    <div class="col-md-5-eclipse donation-box">
      <div>
        <p class="donation-amount"><sup>$</sup>100</p>
        <img class="tshirt-ribbon" src="images/tshirt-ribbon.png"></img>
        <h2>Best Friend</h2>
        <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST">
          <input type="hidden" name="amount" value="100"/>
          <input type="submit" class="btn btn-warning donation-button" value="Donate" />
        </form>
      </div>
      <div class="background-purple">
        <h5 class="you-get-label">You Get:</h5>
        <ul class="donation-benefits">
          <li>Friend Benefits</li>
          <li>Eclipse T-Shirt</li>
          <li>EclipseCon Discount</li>
        </ul>
      </div>
    </div>
    <div class="col-md-5-eclipse donation-box">
      <div>
        <p class="donation-amount"><sup>$</sup>250</p>
        <h2>Webmaster Idol</h2>
        <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST">
          <input type="hidden" name="amount" value="250"/>
          <input type="submit" class="btn btn-warning donation-button" value="Donate" />
        </form>
      </div>
      <div class="background-purple">
        <h5 class="you-get-label">You Get:</h5>
        <ul class="donation-benefits">
          <li>Best Friend Benefits</li>
          <li>Eternal Gratitude of the Eclipse Webmasters</li>
        </ul>
      </div>
    </div>
  </div>
  <div id="custom-donation" class="row">
    <div class="col-md-24">
      <form action="<?php print $Paypal->get_gateway_process_url();?>" method="POST" onsubmit="return validate_amount();">
        <div class="col-md-offset-8 col-md-4 col-sm-offset-4 col-sm-8 col-xs-12">
          <input type="text" name="amount" id="donation-amount" placeholder="Or enter amount..." value=""/>
        </div>
        <div class="col-md-4 col-sm-8 col-xs-12">
          <input type="submit" id="custom-donation-button" class="btn btn-warning" value="Donate" />
        </div>
      </form>
    </div>
  </div>
  <div class="row donation-footer">
    <div id="friends-benefits" class="col-md-8">
      <h2>Friend of Eclipse Benefits</h2>
      <p>Donate between US$35 and US$99.99 and you will be identified as a Friend of Eclipse for 1 year. Benefits include:</p>
      <ul class="friends-list fa-ul">
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          Friend of Eclipse Mirror Site - This will allow you to download new
          versions of Eclipse faster**
        </li>
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          "Friend of Eclipse" logo***
        </li>
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          40% off prints and 50% off ebooks at oreilly.com
        </li>
      </ul>
    </div>
    <div id="best-friends-benefits" class="col-md-8">
      <h2>Best Friend of Eclipse Benefits</h2>
      <p>Donate more than US$100 and you will be identified as a Best Friend of Eclipse for 1 year. Benefits include:</p>
      <ul class="friends-list fa-ul">
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          Friend of Eclipse Benefits (described above)
        </li>
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          Eclipse T-Shirt
        </li>
        <li><i class="fa fa-li fa-chevron-circle-right orange"></i>
          EclipseCon Friend of Eclipse discount****
        </li>
      </ul>
      <a href="/donate/faq.php">More Information</a>
    </div>
    <div id="recent-donations" class="col-md-8">
      <h2>Recent Donations</h2>
      <?php print $DonationList->donorListTable(8); ?>
      <a href="/donate/donorlist.php">Donor List</a>
    </div>
  </div>
  <div class="donation-fine-print">
    <div id="fine-print" class="col-md-24">
      <p class="small">
        *Eclipse Foundation Inc. is a not-for-profit, member supported
        corporation. Please note that contributions or gifts to the Eclipse
        Foundation Inc. are not tax deductible as charitable contributions.
        Contributions will not be restricted to the activities described, but
        will be put into a general operating fund.
        <br /><br />
        **Eclipse Foundation Inc. cannot guarantee that the Friends mirror will
        be faster than its other mirrors, however it will give users of this
        mirror priority. This Friends Mirror is only available for downloads
        through our website.<br />
        When you donate US$35 or more you will have access to the Friends of Eclipse Mirror Site.
        You will need an Eclipse.org account to gain access to this mirror.
        If you need an account <a href="https://dev.eclipse.org/site_login/createaccount.php" target="_blank">click here</a> to launch the registration page is a new window.
        <br /><br />
        ***The Friends of Eclipse program is for individuals, so the logo
        should not be used on an organization web site.
        <br /><br />
        ****The discount is valid for a year and can be used for all three
        EclipseCon events. The discount amount varies for each individual
        conference and will be identified on their respective registration
        pages at eclipsecon.org. The friend discount cannot be combined with
        other EclipseCon discounts such as alumni, member, etc.
      </p>
    </div>
  </div>
</div>
