<?php
/*******************************************************************************
 * Copyright (c) 2006-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:
 *    Denis Roy (Eclipse Foundation) - initial API and implementation
 *    Christopher Guindon (Eclipse Foundation)
 *******************************************************************************/
  // Record Stats
  $App->AddExtraHtmlHeader('<link rel="stylesheet" href="/downloads/assets/public/stylesheets/thankyou.min.css"/>');
  require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/friends/payment.class.php");
  if (!isset($Payment)) {
    $Payment = new Paypal();
  }
?>
<div class="container-thankyou">
  <?php if (isset($title_1) && isset($title_2) && isset($download_link)):?>
    <div class="row thankyou text-center">
      <h1 class="thankyou-title"><span><?php print $title_1; ?></span> <?php print $title_2;?></h1>
      <span class="direct-link"><?php print $download_link; ?></span>
    </div>
  <?php endif;?>
  <div class="newsletter-body">
    <div class="newsletter">
      <div class="triangle-newsletter triangle-white"></div>
      <div class="container">
        <div class="newsletter-box col-lg-offset-4 col-lg-10 col-md-offset-3 col-md-12">
          <div id="signup_text">
            <span id="signup_1"><em>Stay Up to Date</em></span><br />
            <span id="signup_2"><span class="subscribe">Subscribe</span> to the Eclipse Newsletter</span>
            <hr/>
            <div id="signup_3">
              <!-- Begin MailChimp Signup Form -->
              <form action="<?php print $Payment->get_gateway_process_url();?>" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
                <div class="container-newsletter-form bg-light rounded">
                  <!--  <div id="req_msg"><span class="red">*</span> Indicates required</div>-->
                  <input type="hidden" name="type" value="newsletter"/>
                  <input type="email" value="" name="email" class="email" id="mce-EMAIL" placeholder="Email" required>
                  <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button btn btn-warning">
                </div>
              </form>
              <!--End mc_embed_signup-->
            </div>
          </div>
        </div>
        <div id="newsletter-image" class="col-lg-5 col-md-6">
          <img src="/downloads/images/newsletter-image.png"/>
        </div>
      </div>
    </div>
  </div>
</div>