<?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 		= "Supported Wireless Toolkits";
$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 categories of toolkits are supported.
</p>
<ul>
	<li>Sun Wireless Toolkits</li>
	<li>MOTODEV SDK for JavaME</li>
	<li>Nokia SDK S40/S60</li>
	<li>Sony Ericsson J2ME SDK</li>
	<li>Sprint PCS Wireless Toolkit for Java</li>
	<li>Siemens SMTK for Series 60</li>
	<li>mpowerplayer</li>
	<li>Microemulator </li>
</ul>
<p>Other toolkits <i>may</i> work with MTJ, but those toolkits are
neither supported nor tested. MTJ has support for some toolkits that meet 
the Unified Emulator Interface (UEI) Specification. Therefore, toolkits 
that are not in the following list may still work as a "Generic UEI Toolkit".
</p>
	</div>
	<div id="rightcolumn">
        <div class="sideitem">
        	<h6>Getting started</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);
?>
