<?php
function returnSubProjects ($projectID) {
	$subProjectList = new projectList();
	$subProjectList->selectProjectList(NULL, NULL, NULL, $projectID, NULL, "PRJ.project_id");
	for ($j=0; $j < $subProjectList->getCount(); $j++)
	{	
		$subProject = $subProjectList->getItemAt($j);
		$subProjectInfoData = new ProjectInfoData($subProject->project_id);
		$description = retrieveDescription($subProjectInfoData->paragraphurl);
		$order = array("\r\n", "\n", "\r");
		$description = str_replace($order, ' ', trim($description));
		
		if ($subProjectInfoData->projectname != "" && $subProjectInfoData->projecturl != "")
		{
			if (strpos($subProjectInfoData->projectname, "[archived]")) continue;
			?>
			<tr class="subProject<? if ($j == ($subProjectList->getCount() -1)) echo " bottomRow";?>">
				<td>				
					<? if ($subProjectInfoData->downloadsurl != "") { ?>
						<a class="packageTitle smaller"  <? if ($description != "") { echo "title=\"$description\""; } ?> href="<?=$subProjectInfoData->downloadsurl;?>"><?=$subProjectInfoData->projectname;?></a>
					<? }
					   else { ?>
						<span class="packageTitle smaller"><?=$subProjectInfoData->projectname;?></span>
					<? }?>
					<? if ($subProjectInfoData->projecturl != "") {?>
						<a href="<?=$subProjectInfoData->projecturl;?>"><img align="top" src="http://www.eclipse.org/home/categories/images/homepage.gif"></a>
					<? } ?>
					
				</td>
			<tr>
		<?}
	}
	
}
?>