<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "e4-Rover Mars Challenge at EclipseCon";
	$pageKeywords	= "eclipse, e4, rover, mars, challenge, eclipsecon, contest, robot, lego, prize";
	$pageAuthor		= "Lynn Gayowski";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 1);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 1);

	# End: page-specific settings
	#
	// This file is linked to from lots of different places.
	// Use absolute paths to make sure that we can actually test
	// that the file renders properly (i.e. testing using) "/index.php",
	// and "/home/index.php" both work.

	# Paste your HTML content between the EOHTML markers!	
	ob_start(); ?>
	<div id="fullcolumn">
	<div id="midcolumn">
		<h1><?=$pageTitle;?></h1>
		<img id="rover" src="rover.png" /><br/><br/>	
		<p>Do you have what it takes to be a rocket scientist? <a href="http://www.eclipsecon.org">EclipseCon 2010</a>
		is your opportunity to play with the top guns. The Eclipse Foundation, in collaboration with NASA JPL,
		is organizing the e4-Rover Mars Challenge. EclipseCon attendees will participate in a contest to create
		the very best robotic control system to drive a robot across a prototypical Mars landscape.</p>
		
		
		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Two Ways to Win</h3>
		<ol>
			<li><b>Best Client:</b> Prove your e4 programming skills by creating the very best e4-Rover client. Start with
			the pre-built client and extend it to make it a more attractive, usable and effective command and
			control system for the e4-Rover. The winner will be determined by a judging panel.<br><br>
			<table>
				<tr>
					<td>
					<span class="emphasize">Grand Prize</span>
					</td>
					<td>
					Trip to visit the NASA robotics lab in Los Angeles, CA, LEGO&reg; Mindstorms NXT 2.0<br> robotics set and $500 credit for Amazon Web Services
					</td>
				</tr>
				<tr>
					<td>
					<span class="emphasize">Runner-Up Prize</span>
					</td>
					<td>
					Eclipse shirt and $100 credit for Amazon Web Services</span>
					</td>
				</tr>
			</table>
			</li> 
			
			<li><b>Top Score:</b> Use an e4 client to operate the Rover through a series of tasks to collect
			points. Use the pre-built e4-Rover client as-is, or modify it to improve your performance and score
			more points. The person with the highest score at the end of the contest is the winner.<br><br>
			<table>
				<tr>
					<td>
					<span class="emphasize">Grand Prize</span>
					</td>
					<td>
					LEGO&reg; Mindstorms NXT 2.0 robotics set and $500 credit for Amazon Web Services
					</td>
				</tr>
				<tr>
					<td>
					<span class="emphasize">Runner-Up Prize</span>
					</td>
					<td>
					Eclipse shirt and $100 credit for Amazon Web Services
					</td>
				</tr>
			</table>
			</li>
		</ol>
		
		<p>Winners will be announced during the Closing Session of EclipseCon.</p>
		
		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Prepare to Play</h3>
		<ol>
			<li>Download Eclipse e4 and the e4-Rover client by following the <a href="getstarted.php">getting started instructions</a>.</li>
			<li>Register at the Mars Challenge Arena to participate as an e4-Rover driver. The arena is in the
			hall outside the Alameda Room. You must present your EclipseCon 2010 badge to register.</li>
			<li> Read the <a href="howtoplay.php">instructions</a> on how to play the game to get top score.</li>
			<li>Read the <a href="improveclient.php">instructions</a> on how to use e4 to extend the e4-Rover client.</li>
		</ol>
		</p>

		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Drive for Top Score</h3>
		<p></p>		
		<p>To drive the e4-Rover and collect points a player starts a "mission". A mission is when you have
		complete control of the e4-Rover. Each mission last 3 minutes and consists of a series of tasks to
		complete to collect points. The more tasks you complete the more points you can collect points.</p>
		<p>You first must register as a player before you can start any missions (see Getting Started #2). To
		start a mission you need to join the queue. If no one is on the queue, your mission will start
		immediately.  At the end of the mission your score will go up on the scoreboard. At the end of the week, the highest score wins.</li>
		</p>

		<p>Read more details on <a href="howtoplay.php">How to Play</a>.</p>
		
		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Create the Best Client</h3>
		<p>
		A basic e4-Rover client has been provided to get you started. Your challenge is to improve the client
		so it is more effective in completing its tasks.  Use the power of e4 to improve the usability and
		workflow of the client. We have created a Getting Started Tutorial to give you some tips. The client is
		built on e4, so this will be a great opportunity to learn all about it. </p>
		
		<p>Learn more about the judging criteria to <a href="improveclient.php">Improve the
		 Client</a>.
		</p>
		
		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Contest Rules</h3>
		<ul>
			<li>You must be a registered attendee of <a href="http://www.eclipsecon.org">EclipseCon 2010</a> to compete.</li>
			<li>The contest opens Monday, March 22, 2010 at 9:00am and finishes Thursday, March 25, 2010 at 11:30am&nbsp;PDT.</li>
			<li>All new clients created for the contest must be based on the e4 platform. The code for the client
			must be licensed under the Eclipse Public license.</li>
			<li>People can work together as teams but there is only one prize per team, so you will need to
			share.</li>
			<li>A person or team can only win one prize. The prize for the Best Client will be awarded first.
			The prize for the Best Score will go to the person with the highest score that did not win the Best
			Client prize.</li>
			<li>In the case of a tie for Top Score, special run-off missions will be run to determine the winner.  
			<li>The Best Client winner will receive a a travel credit of $1,800 USD towards an airplane ticket and 3
			nights hotel to Los Angeles, CA. The tour of the NASA JPL facilities must be arranged in advance
			and at a time convenient to for all parties. The trip must completed before March 1, 2011.
			There is no cash value for this prize and it cannot be transferred to another person.</li>
			<li>AWS credits are provided by Amazon Web Services and will be emailed to the winners after the winners are announced. AWS credits are non-transferable</li>
		</ul>		
				
		<h3><img src="http://dev.eclipse.org/large_icons/actions/media-seek-forward.png" style="position:relative;top:7px;"/>Questions?</h3>
		<p>If you have questions, see the <a href="gethelp.php">getting help page</a>.</p>

		<br><br>
				
	</div>

	<!-- remove the entire <div> tag to omit the right column!  -->
	
</div>
	
	<? $html = ob_get_clean();
	


	# Generate the web page
	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="style.css"/>');
	$App->generatePage("Nova", $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>