<?php
/*******************************************************************************
 * Copyright (c) 2016 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:
 *    Eric Poirier (Eclipse Foundation) - Initial implementation
 *******************************************************************************/

// Get only the 64 bit links
$links = $EclipseInstaller->getInstallerLinks('64bit');
?>
<div class="neon-container">

  <!-- NEON HEADER -->
  <div class="neon-header">
    <div class="container">
      <h1 class="neon-header-h1">
        <span class="neon-title">n<span class="blink-one">e</span>o<span class="blink-two">n</span></span><br>
      </h1>
      <?php foreach ($links['links'] as $link): ?>
        <p><a class="btn btn-neon btn-download btn-white-text" href="<?php print $link; ?>">Download</a></p>
      <?php endforeach;?>
      <p><a href="/downloads/eclipse-packages" class="other-packages-link">Other Package Downloads</a></p>
    </div>
  </div>

  <div class="neon-redirect">
    <div class="container">
      <p class="text-center"><a class="neon-redirect-link" href="/home">Click here to continue to eclipse.org</a></p>
    </div>
  </div>

  <div class="neon-content">
    <div class="container">

      <!-- Neon Section -->
      <div class="neon-section">
        <div class="row">

          <!-- New and Noteworthy -->
          <div class="col-md-19 col-sm-18" id="new-noteworthy">
            <h2 class="noteworthy-h2">Highlights</h2>
            <div class="row">

              <div class="col-md-12">

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-pink">1</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>New tools for JavaScript developers, including a JSON editor, support for Grunt/Gulp and new Chromium V8 Debugger.</p>
                  </div>
                </div>

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-blue">2</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>Key Eclipse Platform improvements include HiDPI support and autosave. JDT's Content Assist now highlights matched characters and provides substring completion.</p>
                  </div>
                </div>

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-green">3</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>New Eclipse PDT 4.0 release for PHP developers with complete support for PHP 7 and improved performance.</p>
                  </div>
                </div>

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-yellow">4</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>The Eclipse Automated Error Reporting client can now be integrated into any third-party Eclipse plug-in or standalone RCP application.</p>
                  </div>
                </div>

              </div>
              <div class="col-md-12">

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-pink">5</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>Eclipse users can now save settings, like Marketplace  Favorites, with their Eclipse account.</p>
                  </div>
                </div>

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-blue">6</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>New Projects: Eclipse Plug-ins for Gradle (first prime release), EGerrit, Paho, Andmore - Eclipse Android Tooling, EMF Parsley and Eclipse Tools for Cloud Foundry.</p>
                  </div>
                </div>

                <!-- Item -->
                <div class="row">
                  <div class="col-sm-2 col-xs-3"><span class="neon-circle neon-circle-green">7</span></div>
                  <div class="col-sm-22 col-xs-21">
                    <p>Improved support for Docker tooling.</p>
                  </div>
                </div>

              </div>
            </div>
          </div>

          <!-- Resources -->
          <div class="col-lg-4 col-md-5 col-sm-6 col-lg-offset-1">
            <h2 class="resources-h2">Resources</h2>
            <p><a class="btn btn-neon btn-neon-pink btn-same-width btn-white-text" href="/neon/noteworthy">Features</a></p>
            <p><a class="btn btn-neon btn-neon-blue btn-same-width btn-white-text" href="https://projects.eclipse.org/releases/neon">Projects</a></p>
            <p><a class="btn btn-neon btn-neon-yellow btn-same-width btn-white-text" href="/donate">Donate</a></p>
          </div>
        </div>
      </div>

      <!-- Neon Section -->
      <div class="neon-section text-center">
        <hr>
        <div class="row">

          <!-- Donate - Get a t-shirt -->
          <div class="col-sm-10 col-sm-offset-5">
            <p class="neon-donate-text text-center">Get your limited edition <strong>Neon T-Shirt!</strong></p>
          </div>
          <div class="col-sm-4"><a href="/donate"><img src="/neon/assets/public/images/neon-buy-now.png" alt="Buy Now"></a></div>
        </div>
      </div>

      <!-- Neon Section -->
      <div class="neon-section">
        <div class="row">
          <!-- News - Web series -->
          <div class="col-sm-17">
            <h2 class="social-h2"><span class="small-social-h2">Let's get</span> <br>Social <img class="hidden-xs" src="/neon/assets/public/images/social-arrow.png"></h2>

            <!-- News -->
            <div class="row">
              <div class="col-sm-12 neon-news-item">
                <h2 class="news-h3">Press Release</h3>

                <span class="social-news-date">2016/06/22</span>
                <h4 class="social-h4"><a href="/org/press-release/20160622_neon.php">Eclipse Neon Release Train Now Available</a></h4>

              </div>
              <div class="col-sm-12 neon-news-item">
                <h2 class="news-h3">News</h3>

                <span class="social-news-date">2016/06/22</span>
                <h4 class="social-h4"><a href="http://www.infoworld.com/article/3086860/application-development/eclipses-annual-release-train-focuses-on-javascript-php.html">Eclipse's annual release train focuses on JavaScript, PHP</a></h4>

                <span class="social-news-date">2016/06/22</span>
                <h4 class="social-h4"><a href="https://www.infoq.com/news/2016/06/eclipse-neon">Eclipse Foundation Releases Neon</a></h4>

              </div>
            </div>

            <!-- Web Series -->
            <h3 class="web-series-h3">Webinar Series</h3>
            <p>Details can be found <a href="/community/webinars">here</a>, or register below.</p>
            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=aWv-QmXDydo">
              <span class="span-block row">
                <span class="span-block col-sm-14">
                  <span class="span-block row">
                    <span class="span-block col-xs-2"><strong>001 </strong></span>
                    <span class="span-block col-xs-22">Eclipse Neon and Beyond - The JDT Perspective</span>
                  </span>
                </span>
                <span class="span-block col-sm-10">
                  <span class="span-block web-series-dates">
                     <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=UxGwu2adzIc">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>002 </strong></span>
                    <span class="col-xs-22">JSDT 2.0</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                    <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=xI8PdCNegO0">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>003 </strong></span>
                    <span class="col-xs-22">The Eclipse User Storage Service: Creating a Better User Experience for Developers</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                    <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=S3C0YTX7hSI">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>004</strong></span>
                    <span class="col-xs-22">Eclipse Tools for Cloud Foundry Overview</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                    <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=Eto5Zfo_MQc">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>005</strong></span>
                    <span class="col-xs-22">What's New for PHP Developers in Eclipse Neon?</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                   <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=PTVZXkvUnWQ&list=PLy7t4z5SYNaTzWo4OTOxRisfKNby7dENY&index=6">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>006</strong></span>
                    <span class="col-xs-22">Docker Tooling for Eclipse Neon</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                    <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>

            <a class="neon-well btn btn-neon btn-neon-green span-block btn-white-text" href="https://www.youtube.com/watch?v=TDSv9Tm7hGA&list=PLy7t4z5SYNaTzWo4OTOxRisfKNby7dENY&index=7">
              <span class="row">
                <span class="col-sm-14">
                  <span class="row">
                    <span class="col-xs-2"><strong>007</strong></span>
                    <span class="col-xs-22">Automated Error Reporting (AERI) now available for any Eclipse Plugin</span>
                  </span>
                </span>
                <span class="col-sm-10">
                  <span class="web-series-dates">
                    <strong>Watch Now</strong>
                  </span>
                </span>
              </span>
            </a>
          </div>


          <!-- Twitter -->
          <div class="col-sm-7">
            <h3 class="social-h3">#EclipseNeon</h3>
            <div class="neon-timeline">
              <a class="twitter-timeline"
              data-dnt="true"
              href="https://twitter.com/hashtag/eclipseneon"
              data-widget-id="730471218692788224"
              data-chrome="noheader transparent noscrollbar nofooter"
              data-link-color="#d89810"
              data-border-color="#000">#eclipseneon Tweets</a>
              <script>
                !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';
                if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";
                fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
              </script>
            </div>
            <div class="text-center">
              <p class="align-center eclipse-logo"><img alt="Eclipse Foundation" src="/neon/assets/public/images/logo-eclipse-neon.png"></p>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>