<?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 		= "Prerequisites";
$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>The following are prerequisites for Mobile Tools for Java<sup><small>TM</small></sup> 
		to work properly:</p>
		<ul>
			<li>Sun Java 1.5.x or greater</li>
			<li>Eclipse 3.3 or greater is required.</li>
			<li><a href="/dsdp/mtj/development/tutorial/supported.php">A supported wireless toolkit</a></li>
		</ul>
		<p>The following items are optional:</p>
		<ul>
			<li><a href="http://proguard.sourceforge.net" target="_blank">ProGuard
			Obfuscator</a>.<br>
			This is necessary if you want to produce obfuscated packages with this
			plug-in.</li>
		</ul>
	</div>
	<div id="rightcolumn">
        <div class="sideitem">
        	<h6><a style="text-decoration: none" href="/dsdp/mtj/development/tutorial/gettingstarted.php" target="_self">Getting started</a></h6>
        	<ul>				
        		<a href="/dsdp/mtj/development/tutorial/prerequisites.php" target="_self">Prerequisites</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/dsdp/mtj/development/tutorial/supported.php" target="_self">Supported Wireless Toolkits</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/dsdp/mtj/development/tutorial/installation.php" target="_self">Installation Instructions</a>
        		</li>
        	</ul>
        	<ul>				
        		<a href="/dsdp/mtj/development/tutorial/removal.php" target="_self">Removal Instructions</a>
        		</li>
        	</ul>
        </div>
	</div>
</div>

EOHTML;


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