<?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 MTJ";
$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<sup><small>TM</small></sup> creates new frameworks and tools to 
        	extend eclipse platform to support mobile Java development.
        </p>
        <div class="homeitem3col">
	        <h3>Installation Instructions</h3>
	        <br>
	        <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/supported.php" target="_self">The list of supported Wireless Toolkits</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/removal.php" target="_self">How to uninstall MTJ</a>
	        	</li>
	        	<br>
	        </ul>
        </div>
        <div class="homeitem3col">
            <h3>Videos</h3>
            <br>
            <ul>    
                <li>
                <a href="http://live.eclipse.org/node/614">Getting Started with MTJ</a>
                <ul>    
                <li>This screen cast will guide you through the process of using the Mobile Tools for Java (MTJ) to develop Java ME applications. You will learn how to configure Eclipse and also how to create, run and debug MIDlets using MTJ.
                </li> 
                </ul>
                </li>
                <br>
            </ul>
        </div>        
	</div>
</div>

EOHTML;


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