<?php
/*******************************************************************************
 * Copyright (c) 2014, 2015, 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:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *    Wayne Beaton (Eclipse Foundation) - Minor changes
 *******************************************************************************/
?>

<div class="timeline">
  <div class="row">

    <div class="col-md-6 one gs-item">
      <div class="circle">1</div>
      <h1 class="fw-600">Get Started</h1>
		<p>Download and install the Eclipse IDE.</p>
		<p><a href="/downloads/" class="btn btn-warning">Download Eclipse IDE</a></p>
    </div>

    <div class="col-md-6 two gs-item">
      <div class="circle">2</div>
      <h1>Extend Eclipse</h1>
      <p>Eclipse Marketplace is a great source of plug-ins and product that you can add to Eclipse.</p>
      <ul>
        <li>Browse the <a href="//marketplace.eclipse.org">online catalog</a></li>
        <li>Use the Eclipse Marketplace
        Client from within Eclipse: <code>Help&nbsp;&gt;&nbsp;Eclipse Marketplace&hellip;</code></li>
      </ul>
      <p>Popular Plugins: </p>
      <ul>
        <li><a href="http://marketplace.eclipse.org/content/subversive-svn-team-provider">Subversive - SVN Team Provider</a><br/>
          <div class="drag_installbutton">
            <a class="drag" href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=1139">
              <img src="/eclipse.org-common/themes/solstice/public/images/components/drag-drop/installbutton.png"/>
              <div class="tooltip"><h3>Drag to Install!</h3>Drag to your running Eclipse workspace.</div>
            </a>
          </div>
        </li>
        <li><a href="http://marketplace.eclipse.org/content/eclipse-color-theme">Eclipse Color Theme</a><br/>
          <div class="drag_installbutton">
            <a class="drag" href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=27025">
              <img src="/eclipse.org-common/themes/solstice/public/images/components/drag-drop/installbutton.png"/>
              <div class="tooltip"><h3>Drag to Install!</h3>Drag to your running Eclipse workspace.</div>
            </a>
          </div>
        </li>
        <li><a href="http://marketplace.eclipse.org/content/maven-integration-eclipse-juno-and-newer">Maven Integration for Eclipse</a><br/>
          <div class="drag_installbutton">
            <a class="drag" href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=252">
              <img src="/eclipse.org-common/themes/solstice/public/images/components/drag-drop/installbutton.png"/>
              <div class="tooltip"><h3>Drag to Install!</h3>Drag to your running Eclipse workspace.</div>
            </a>
          </div>
        </li>
        <li><a href="http://marketplace.eclipse.org/content/pydev-python-ide-eclipse">PyDev</a><br/>
          <div class="drag_installbutton">
            <a class="drag" href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=114">
              <img src="/eclipse.org-common/themes/solstice/public/images/components/drag-drop/installbutton.png"/>
              <div class="tooltip"><h3>Drag to Install!</h3>Drag to your running Eclipse workspace.</div>
            </a>
          </div>
        </li>
      </ul>
      <p><a href="//marketplace.eclipse.org" class="btn btn-info">Marketplace</a></p>
    </div>

    <div class="col-md-6 three gs-item">
      <div class="circle">3</div>
      <h1>Read Doc</h1>
      <p>Documentation is a great resource to get you started with the Eclipse IDE.</p>
      <ul>
        <li>Getting Started with the <a href="http://help.eclipse.org/mars/nav/0">Eclipse IDE User Guide</a></li>
        <li>Getting Started with <a href="http://help.eclipse.org/mars/nav/1">Java development</a></li>
        <li>All online <a href="http://help.eclipse.org/mars/index.jsp">Documentation</a></li>
        <li>What's new and noteworthy in <a href="/mars/noteworthy/">Eclipse Mars</a></li>
      </ul>
    </div>

    <div class="col-md-6 four gs-item">
      <div class="circle">4</div>
      <h1>Get Help</h1>
      <p>There are many sources of help in the Eclipse community and ecosystem.</p>
      <ul>
        <li>Ask questions on project <a href="https://www.eclipse.org/forums/">forums</a>; if you're not sure where to look, start with the <a href="http://www.eclipse.org/forums/index.php/f/89/">newcomer forum</a></li>
        <li>Open bug reports and feature requests in <a href="<?php print $bugzillaLink; ?>">Eclipse Bugzilla</a></li>
        <li>Connect live with project developers <a href="https://wiki.eclipse.org/IRC">via IRC</a></li>
        <li>Find companies that provide <a href="http://marketplace.eclipse.org/category/markets/training-consulting/title">training and consulting</a></li>
        <li>Investigate paid support options with <a href="http://lts.eclipse.org">Long Term Support</a>.</li>
      </ul>
    </div>

  </div>
</div>