<?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());

#
# Begin: page-specific settings.  Change these.
$pageTitle 		= "Getting Started with the Mobile Tools for Java&trade;";
$pageKeywords	= "mobile, java, tools";
$pageAuthor		= "Diego Madruga Sandin";


# Paste your HTML content between the EOHTML markers!
$html = <<<EOHTML

<div id="maincontent">
	<div id="midcolumn">
        <h1>$pageTitle</h1>
        <p>
        	Mobile Tools for Java&trade; project creates tools and frameworks to extend Eclipse platform to support embedded and mobile device Java application development.
        </p>
        <div class="homeitem3col">
	        <ul>	
	        	<li>
	        	<a href="/mtj/development/tutorial/prerequisites.php" target="_self">Prerequisites for MTJ to work properly</a>
	        	</li>
	        	<li>
	        	<a href="/mtj/development/tutorial/installation.php" target="_self">How to install or upgrade MTJ</a>
	        	</li>
                <li>
                <a href="/mtj/development/tutorial/supported.php" target="_self">The list of SDKs and Wireless Toolkits</a>
                </li>
	        	<li>
	        	<a href="/mtj/development/tutorial/removal.php" target="_self">How to uninstall MTJ</a>
	        	</li>
	        	<br>
	        </ul>
        </div>
	</div>
</div>

EOHTML;


# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
