Your IP : 216.73.217.79


Current Path : /var/www/cesa.co.za/echasl23/
Upload File :
Current File : /var/www/cesa.co.za/echasl23/Certificateslist.php

<?php
session_start(); // Initialize Session data
ob_start(); // Turn on output buffering
?>
<?php include "ewcfg7.php" ?>
<?php include "ewmysql7.php" ?>
<?php include "phpfn7.php" ?>
<?php include "Certificatesinfo.php" ?>
<?php include "adminusersinfo.php" ?>
<?php include "SchoolAttendeesinfo.php" ?>
<?php include "SchoolEventsinfo.php" ?>
<?php include "userfn7.php" ?>
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
header("Cache-Control: private, no-store, no-cache, must-revalidate"); // HTTP/1.1 
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
?>
<?php

// Create page object
$Certificates_list = new cCertificates_list();
$Page =& $Certificates_list;

// Page init
$Certificates_list->Page_Init();

// Page main
$Certificates_list->Page_Main();
?>
<?php include "header.php" ?>
<?php if ($Certificates->Export == "") { ?>
<script type="text/javascript">
<!--

// Create page object
var Certificates_list = new ew_Page("Certificates_list");

// page properties
Certificates_list.PageID = "list"; // page ID
Certificates_list.FormID = "fCertificateslist"; // form ID
var EW_PAGE_ID = Certificates_list.PageID; // for backward compatibility

// extend page with Form_CustomValidate function
Certificates_list.Form_CustomValidate =  
 function(fobj) { // DO NOT CHANGE THIS LINE!

 	// Your custom validation code here, return false if invalid. 
 	return true;
 }
<?php if (EW_CLIENT_VALIDATE) { ?>
Certificates_list.ValidateRequired = true; // uses JavaScript validation
<?php } else { ?>
Certificates_list.ValidateRequired = false; // no JavaScript validation
<?php } ?>

// search highlight properties
Certificates_list.ShowHighlightText = ewLanguage.Phrase("ShowHighlight"); 
Certificates_list.HideHighlightText = ewLanguage.Phrase("HideHighlight");

//-->
</script>
<script type="text/javascript">
<!--
var ew_DHTMLEditors = [];

//-->
</script>
<script language="JavaScript" type="text/javascript">
<!--

// Write your client script here, no need to add script tags.
// To include another .js script, use:
// ew_ClientScriptInclude("my_javascript.js"); 
//-->

</script>
<?php } ?>
<?php if ($Certificates->Export == "") { ?>
<?php
$gsMasterReturnUrl = "SchoolEventslist.php";
if ($Certificates_list->sDbMasterFilter <> "" && $Certificates->getCurrentMasterTable() == "SchoolEvents") {
	if ($Certificates_list->bMasterRecordExists) {
		if ($Certificates->getCurrentMasterTable() == $Certificates->TableVar) $gsMasterReturnUrl .= "?" . EW_TABLE_SHOW_MASTER . "=";
?>
<?php include "SchoolEventsmaster.php" ?>
<?php
	}
}
?>
<?php
$gsMasterReturnUrl = "SchoolAttendeeslist.php";
if ($Certificates_list->sDbMasterFilter <> "" && $Certificates->getCurrentMasterTable() == "SchoolAttendees") {
	if ($Certificates_list->bMasterRecordExists) {
		if ($Certificates->getCurrentMasterTable() == $Certificates->TableVar) $gsMasterReturnUrl .= "?" . EW_TABLE_SHOW_MASTER . "=";
?>
<?php include "SchoolAttendeesmaster.php" ?>
<?php
	}
}
?>
<?php } ?>
<?php
	$bSelectLimit = EW_SELECT_LIMIT;
	if ($bSelectLimit) {
		$Certificates_list->lTotalRecs = $Certificates->SelectRecordCount();
	} else {
		if ($rs = $Certificates_list->LoadRecordset())
			$Certificates_list->lTotalRecs = $rs->RecordCount();
	}
	$Certificates_list->lStartRec = 1;
	if ($Certificates_list->lDisplayRecs <= 0 || ($Certificates->Export <> "" && $Certificates->ExportAll)) // Display all records
		$Certificates_list->lDisplayRecs = $Certificates_list->lTotalRecs;
	if (!($Certificates->Export <> "" && $Certificates->ExportAll))
		$Certificates_list->SetUpStartRec(); // Set up start record position
	if ($bSelectLimit)
		$rs = $Certificates_list->LoadRecordset($Certificates_list->lStartRec-1, $Certificates_list->lDisplayRecs);
?>
<p><span class="phpmaker" style="white-space: nowrap;"><?php echo $Language->Phrase("TblTypeCUSTOMVIEW") ?><?php echo $Certificates->TableCaption() ?>
<?php if ($Certificates->Export == "" && $Certificates->CurrentAction == "") { ?>
&nbsp;&nbsp;<a href="<?php echo $Certificates_list->ExportPrintUrl ?>"><img src="images/print.gif" alt="<?php echo ew_HtmlEncode($Language->Phrase("PrinterFriendly")) ?>" title="<?php echo ew_HtmlEncode($Language->Phrase("PrinterFriendly")) ?>" width="16" height="16" border="0"></a>
&nbsp;&nbsp;<a href="<?php echo $Certificates_list->ExportExcelUrl ?>"><img src='images/exportxls.gif' alt='<?php echo ew_HtmlEncode($Language->Phrase("ExportToExcel")) ?>' title='<?php echo ew_HtmlEncode($Language->Phrase("ExportToExcel")) ?>' width='16' height='16' border='0'></a>
&nbsp;&nbsp;<a href="<?php echo $Certificates_list->ExportWordUrl ?>"><img src='images/exportdoc.gif' alt='<?php echo ew_HtmlEncode($Language->Phrase("ExportToWord")) ?>' title='<?php echo ew_HtmlEncode($Language->Phrase("ExportToWord")) ?>' width='16' height='16' border='0'></a>
&nbsp;&nbsp;<a name="emf_Certificates" id="emf_Certificates" href="javascript:void(0);" onclick="ew_EmailDialogShow({lnk:'emf_Certificates',hdr:ewLanguage.Phrase('ExportToEmail'),f:document.fCertificateslist,sel:false});"><img src='images/exportemail.gif' alt='<?php echo ew_HtmlEncode($Language->Phrase("ExportToEmail")) ?>' title='<?php echo ew_HtmlEncode($Language->Phrase("ExportToEmail")) ?>' width='16' height='16' border='0'></a>
<?php } ?>
</span></p>
<?php if ($Security->CanSearch()) { ?>
<?php if ($Certificates->Export == "" && $Certificates->CurrentAction == "") { ?>
<a href="javascript:ew_ToggleSearchPanel(Certificates_list);" style="text-decoration: none;"><img id="Certificates_list_SearchImage" src="images/collapse.gif" alt="" width="9" height="9" border="0"></a><span class="phpmaker">&nbsp;<?php echo $Language->Phrase("Search") ?></span><br>
<div id="Certificates_list_SearchPanel">
<form name="fCertificateslistsrch" id="fCertificateslistsrch" class="ewForm" action="<?php echo ew_CurrentPage() ?>">
<input type="hidden" id="t" name="t" value="Certificates">
<table class="ewBasicSearch">
	<tr>
		<td><span class="phpmaker">
			<a href="<?php echo $Certificates_list->PageUrl() ?>cmd=reset"><?php echo $Language->Phrase("ShowAll") ?></a>&nbsp;
			<a href="Certificatessrch.php"><?php echo $Language->Phrase("AdvancedSearch") ?></a>&nbsp;
			<?php if ($Certificates_list->sSrchWhere <> "" && $Certificates_list->lTotalRecs > 0) { ?>
			<a href="javascript:void(0);" onclick="ew_ToggleHighlight(Certificates_list, this, '<?php echo $Certificates->HighlightName() ?>');"><?php echo $Language->Phrase("HideHighlight") ?></a>
			<?php } ?>
		</span></td>
	</tr>
</table>
</form>
</div>
<?php } ?>
<?php } ?>
<?php
if (EW_DEBUG_ENABLED)
	echo ew_DebugMsg();
$Certificates_list->ShowMessage();
?>
<br>
<table cellspacing="0" class="ewGrid"><tr><td class="ewGridContent">
<?php if ($Certificates->Export == "") { ?>
<div class="ewGridUpperPanel">
<?php if ($Certificates->CurrentAction <> "gridadd" && $Certificates->CurrentAction <> "gridedit") { ?>
<form name="ewpagerform" id="ewpagerform" class="ewForm" action="<?php echo ew_CurrentPage() ?>">
<table border="0" cellspacing="0" cellpadding="0" class="ewPager">
	<tr>
		<td nowrap>
<?php if (!isset($Certificates_list->Pager)) $Certificates_list->Pager = new cPrevNextPager($Certificates_list->lStartRec, $Certificates_list->lDisplayRecs, $Certificates_list->lTotalRecs) ?>
<?php if ($Certificates_list->Pager->RecordCount > 0) { ?>
	<table border="0" cellspacing="0" cellpadding="0"><tr><td><span class="phpmaker"><?php echo $Language->Phrase("Page") ?>&nbsp;</span></td>
<!--first page button-->
	<?php if ($Certificates_list->Pager->FirstButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->FirstButton->Start ?>"><img src="images/first.gif" alt="<?php echo $Language->Phrase("PagerFirst") ?>" width="16" height="16" border="0"></a></td>
	<?php } else { ?>
	<td><img src="images/firstdisab.gif" alt="<?php echo $Language->Phrase("PagerFirst") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--previous page button-->
	<?php if ($Certificates_list->Pager->PrevButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->PrevButton->Start ?>"><img src="images/prev.gif" alt="<?php echo $Language->Phrase("PagerPrevious") ?>" width="16" height="16" border="0"></a></td>
	<?php } else { ?>
	<td><img src="images/prevdisab.gif" alt="<?php echo $Language->Phrase("PagerPrevious") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--current page number-->
	<td><input type="text" name="<?php echo EW_TABLE_PAGE_NO ?>" id="<?php echo EW_TABLE_PAGE_NO ?>" value="<?php echo $Certificates_list->Pager->CurrentPage ?>" size="4"></td>
<!--next page button-->
	<?php if ($Certificates_list->Pager->NextButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->NextButton->Start ?>"><img src="images/next.gif" alt="<?php echo $Language->Phrase("PagerNext") ?>" width="16" height="16" border="0"></a></td>	
	<?php } else { ?>
	<td><img src="images/nextdisab.gif" alt="<?php echo $Language->Phrase("PagerNext") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--last page button-->
	<?php if ($Certificates_list->Pager->LastButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->LastButton->Start ?>"><img src="images/last.gif" alt="<?php echo $Language->Phrase("PagerLast") ?>" width="16" height="16" border="0"></a></td>	
	<?php } else { ?>
	<td><img src="images/lastdisab.gif" alt="<?php echo $Language->Phrase("PagerLast") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
	<td><span class="phpmaker">&nbsp;<?php echo $Language->Phrase("of") ?>&nbsp;<?php echo $Certificates_list->Pager->PageCount ?></span></td>
	</tr></table>
	</td>	
	<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
	<td>
	<span class="phpmaker"><?php echo $Language->Phrase("Record") ?>&nbsp;<?php echo $Certificates_list->Pager->FromIndex ?>&nbsp;<?php echo $Language->Phrase("To") ?>&nbsp;<?php echo $Certificates_list->Pager->ToIndex ?>&nbsp;<?php echo $Language->Phrase("Of") ?>&nbsp;<?php echo $Certificates_list->Pager->RecordCount ?></span>
<?php } else { ?>
	<?php if ($Security->CanList()) { ?>
	<?php if ($Certificates_list->sSrchWhere == "0=101") { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("EnterSearchCriteria") ?></span>
	<?php } else { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("NoRecord") ?></span>
	<?php } ?>
	<?php } else { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("NoPermission") ?></span>
	<?php } ?>
<?php } ?>
		</td>
<?php if ($Certificates_list->lTotalRecs > 0) { ?>
		<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
		<td><table border="0" cellspacing="0" cellpadding="0"><tr><td><?php echo $Language->Phrase("RecordsPerPage") ?>&nbsp;</td><td>
<input type="hidden" id="t" name="t" value="Certificates">
<select name="<?php echo EW_TABLE_REC_PER_PAGE ?>" id="<?php echo EW_TABLE_REC_PER_PAGE ?>" onchange="this.form.submit();">
<option value="20"<?php if ($Certificates_list->lDisplayRecs == 20) { ?> selected="selected"<?php } ?>>20</option>
<option value="40"<?php if ($Certificates_list->lDisplayRecs == 40) { ?> selected="selected"<?php } ?>>40</option>
<option value="80"<?php if ($Certificates_list->lDisplayRecs == 80) { ?> selected="selected"<?php } ?>>80</option>
<option value="160"<?php if ($Certificates_list->lDisplayRecs == 160) { ?> selected="selected"<?php } ?>>160</option>
<option value="ALL"<?php if ($Certificates->getRecordsPerPage() == -1) { ?> selected="selected"<?php } ?>><?php echo $Language->Phrase("AllRecords") ?></option>
</select></td></tr></table>
		</td>
<?php } ?>
	</tr>
</table>
</form>
<?php } ?>
<span class="phpmaker">
</span>
</div>
<?php } ?>
<form name="fCertificateslist" id="fCertificateslist" class="ewForm" action="" method="post">
<div id="gmp_Certificates" class="ewGridMiddlePanel">
<?php if ($Certificates_list->lTotalRecs > 0) { ?>
<table cellspacing="0" rowhighlightclass="ewTableHighlightRow" rowselectclass="ewTableSelectRow" roweditclass="ewTableEditRow" class="ewTable ewTableSeparate">
<?php echo $Certificates->TableCustomInnerHtml ?>
<thead><!-- Table header -->
	<tr class="ewTableHeader">
<?php

// Render list options
$Certificates_list->RenderListOptions();

// Render list options (header, left)
$Certificates_list->ListOptions->Render("header", "left");
?>
<?php if ($Certificates->EventID->Visible) { // EventID ?>
	<?php if ($Certificates->SortUrl($Certificates->EventID) == "") { ?>
		<td><?php echo $Certificates->EventID->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->EventID) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->EventID->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->EventID->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->EventID->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->ContactFirstName->Visible) { // ContactFirstName ?>
	<?php if ($Certificates->SortUrl($Certificates->ContactFirstName) == "") { ?>
		<td><?php echo $Certificates->ContactFirstName->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->ContactFirstName) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->ContactFirstName->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->ContactFirstName->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->ContactFirstName->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->ContactLastName->Visible) { // ContactLastName ?>
	<?php if ($Certificates->SortUrl($Certificates->ContactLastName) == "") { ?>
		<td><?php echo $Certificates->ContactLastName->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->ContactLastName) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->ContactLastName->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->ContactLastName->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->ContactLastName->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->EmailAddress->Visible) { // EmailAddress ?>
	<?php if ($Certificates->SortUrl($Certificates->EmailAddress) == "") { ?>
		<td><?php echo $Certificates->EmailAddress->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->EmailAddress) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->EmailAddress->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->EmailAddress->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->EmailAddress->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->Attended->Visible) { // Attended ?>
	<?php if ($Certificates->SortUrl($Certificates->Attended) == "") { ?>
		<td><?php echo $Certificates->Attended->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->Attended) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->Attended->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->Attended->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->Attended->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->Paid->Visible) { // Paid ?>
	<?php if ($Certificates->SortUrl($Certificates->Paid) == "") { ?>
		<td><?php echo $Certificates->Paid->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->Paid) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->Paid->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->Paid->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->Paid->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->TestRequired->Visible) { // TestRequired ?>
	<?php if ($Certificates->SortUrl($Certificates->TestRequired) == "") { ?>
		<td><?php echo $Certificates->TestRequired->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->TestRequired) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->TestRequired->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->TestRequired->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->TestRequired->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->QuestionnaireID->Visible) { // QuestionnaireID ?>
	<?php if ($Certificates->SortUrl($Certificates->QuestionnaireID) == "") { ?>
		<td><?php echo $Certificates->QuestionnaireID->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->QuestionnaireID) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->QuestionnaireID->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->QuestionnaireID->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->QuestionnaireID->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->TestCompleted->Visible) { // TestCompleted ?>
	<?php if ($Certificates->SortUrl($Certificates->TestCompleted) == "") { ?>
		<td><?php echo $Certificates->TestCompleted->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->TestCompleted) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->TestCompleted->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->TestCompleted->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->TestCompleted->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->TestPassed->Visible) { // TestPassed ?>
	<?php if ($Certificates->SortUrl($Certificates->TestPassed) == "") { ?>
		<td><?php echo $Certificates->TestPassed->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->TestPassed) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->TestPassed->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->TestPassed->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->TestPassed->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->CertificateSent->Visible) { // CertificateSent ?>
	<?php if ($Certificates->SortUrl($Certificates->CertificateSent) == "") { ?>
		<td><?php echo $Certificates->CertificateSent->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->CertificateSent) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn"><thead><tr><td><?php echo $Certificates->CertificateSent->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->CertificateSent->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->CertificateSent->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php if ($Certificates->Select->Visible) { // Select ?>
	<?php if ($Certificates->SortUrl($Certificates->Select) == "") { ?>
		<td style="white-space: nowrap;"><?php echo $Certificates->Select->FldCaption() ?></td>
	<?php } else { ?>
		<td><div class="ewPointer" onmousedown="ew_Sort(event,'<?php echo $Certificates->SortUrl($Certificates->Select) ?>',2);">
			<table cellspacing="0" class="ewTableHeaderBtn" style="white-space: nowrap;"><thead><tr><td><?php echo $Certificates->Select->FldCaption() ?></td><td style="width: 10px;"><?php if ($Certificates->Select->getSort() == "ASC") { ?><img src="images/sortup.gif" width="10" height="9" border="0"><?php } elseif ($Certificates->Select->getSort() == "DESC") { ?><img src="images/sortdown.gif" width="10" height="9" border="0"><?php } ?></td></tr></thead></table>
		</div></td>		
	<?php } ?>
<?php } ?>		
<?php

// Render list options (header, right)
$Certificates_list->ListOptions->Render("header", "right");
?>
	</tr>
</thead>
<?php
if ($Certificates->ExportAll && $Certificates->Export <> "") {
	$Certificates_list->lStopRec = $Certificates_list->lTotalRecs;
} else {
	$Certificates_list->lStopRec = $Certificates_list->lStartRec + $Certificates_list->lDisplayRecs - 1; // Set the last record to display
}
$Certificates_list->lRecCount = $Certificates_list->lStartRec - 1;
if ($rs && !$rs->EOF) {
	$rs->MoveFirst();
	if (!$bSelectLimit && $Certificates_list->lStartRec > 1)
		$rs->Move($Certificates_list->lStartRec - 1);
}

// Initialize aggregate
$Certificates->RowType = EW_ROWTYPE_AGGREGATEINIT;
$Certificates_list->RenderRow();
$Certificates_list->lRowCnt = 0;
while (($Certificates->CurrentAction == "gridadd" || !$rs->EOF) &&
	$Certificates_list->lRecCount < $Certificates_list->lStopRec) {
	$Certificates_list->lRecCount++;
	if (intval($Certificates_list->lRecCount) >= intval($Certificates_list->lStartRec)) {
		$Certificates_list->lRowCnt++;

	// Init row class and style
	$Certificates->CssClass = "";
	$Certificates->CssStyle = "";
	$Certificates->RowAttrs = array('onmouseover'=>'ew_MouseOver(event, this);', 'onmouseout'=>'ew_MouseOut(event, this);', 'onclick'=>'ew_Click(event, this);');
	if ($Certificates->CurrentAction == "gridadd") {
		$Certificates_list->LoadDefaultValues(); // Load default values
	} else {
		$Certificates_list->LoadRowValues($rs); // Load row values
	}
	$Certificates->RowType = EW_ROWTYPE_VIEW; // Render view

	// Render row
	$Certificates_list->RenderRow();

	// Render list options
	$Certificates_list->RenderListOptions();
?>
	<tr<?php echo $Certificates->RowAttributes() ?>>
<?php

// Render list options (body, left)
$Certificates_list->ListOptions->Render("body", "left");
?>
	<?php if ($Certificates->EventID->Visible) { // EventID ?>
		<td<?php echo $Certificates->EventID->CellAttributes() ?>>
<div<?php echo $Certificates->EventID->ViewAttributes() ?>><?php echo $Certificates->EventID->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->ContactFirstName->Visible) { // ContactFirstName ?>
		<td<?php echo $Certificates->ContactFirstName->CellAttributes() ?>>
<div<?php echo $Certificates->ContactFirstName->ViewAttributes() ?>><?php echo $Certificates->ContactFirstName->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->ContactLastName->Visible) { // ContactLastName ?>
		<td<?php echo $Certificates->ContactLastName->CellAttributes() ?>>
<div<?php echo $Certificates->ContactLastName->ViewAttributes() ?>><?php echo $Certificates->ContactLastName->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->EmailAddress->Visible) { // EmailAddress ?>
		<td<?php echo $Certificates->EmailAddress->CellAttributes() ?>>
<div<?php echo $Certificates->EmailAddress->ViewAttributes() ?>><?php echo $Certificates->EmailAddress->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->Attended->Visible) { // Attended ?>
		<td<?php echo $Certificates->Attended->CellAttributes() ?>>
<div<?php echo $Certificates->Attended->ViewAttributes() ?>><?php echo $Certificates->Attended->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->Paid->Visible) { // Paid ?>
		<td<?php echo $Certificates->Paid->CellAttributes() ?>>
<div<?php echo $Certificates->Paid->ViewAttributes() ?>><?php echo $Certificates->Paid->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->TestRequired->Visible) { // TestRequired ?>
		<td<?php echo $Certificates->TestRequired->CellAttributes() ?>>
<div<?php echo $Certificates->TestRequired->ViewAttributes() ?>><?php echo $Certificates->TestRequired->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->QuestionnaireID->Visible) { // QuestionnaireID ?>
		<td<?php echo $Certificates->QuestionnaireID->CellAttributes() ?>>
<div<?php echo $Certificates->QuestionnaireID->ViewAttributes() ?>><?php echo $Certificates->QuestionnaireID->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->TestCompleted->Visible) { // TestCompleted ?>
		<td<?php echo $Certificates->TestCompleted->CellAttributes() ?>>
<div<?php echo $Certificates->TestCompleted->ViewAttributes() ?>><?php echo $Certificates->TestCompleted->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->TestPassed->Visible) { // TestPassed ?>
		<td<?php echo $Certificates->TestPassed->CellAttributes() ?>>
<div<?php echo $Certificates->TestPassed->ViewAttributes() ?>><?php echo $Certificates->TestPassed->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->CertificateSent->Visible) { // CertificateSent ?>
		<td<?php echo $Certificates->CertificateSent->CellAttributes() ?>>
<div<?php echo $Certificates->CertificateSent->ViewAttributes() ?>><?php echo $Certificates->CertificateSent->ListViewValue() ?></div>
</td>
	<?php } ?>
	<?php if ($Certificates->Select->Visible) { // Select ?>
		<td<?php echo $Certificates->Select->CellAttributes() ?>>
<div<?php echo $Certificates->Select->ViewAttributes() ?>><?php echo $Certificates->Select->ListViewValue() ?></div>
</td>
	<?php } ?>
<?php

// Render list options (body, right)
$Certificates_list->ListOptions->Render("body", "right");
?>
	</tr>
<?php
	}
	if ($Certificates->CurrentAction <> "gridadd")
		$rs->MoveNext();
}
?>
</tbody>
</table>
<?php } ?>
</div>
</form>
<?php

// Close recordset
if ($rs)
	$rs->Close();
?>
<?php if ($Certificates_list->lTotalRecs > 0) { ?>
<?php if ($Certificates->Export == "") { ?>
<div class="ewGridLowerPanel">
<?php if ($Certificates->CurrentAction <> "gridadd" && $Certificates->CurrentAction <> "gridedit") { ?>
<form name="ewpagerform" id="ewpagerform" class="ewForm" action="<?php echo ew_CurrentPage() ?>">
<table border="0" cellspacing="0" cellpadding="0" class="ewPager">
	<tr>
		<td nowrap>
<?php if (!isset($Certificates_list->Pager)) $Certificates_list->Pager = new cPrevNextPager($Certificates_list->lStartRec, $Certificates_list->lDisplayRecs, $Certificates_list->lTotalRecs) ?>
<?php if ($Certificates_list->Pager->RecordCount > 0) { ?>
	<table border="0" cellspacing="0" cellpadding="0"><tr><td><span class="phpmaker"><?php echo $Language->Phrase("Page") ?>&nbsp;</span></td>
<!--first page button-->
	<?php if ($Certificates_list->Pager->FirstButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->FirstButton->Start ?>"><img src="images/first.gif" alt="<?php echo $Language->Phrase("PagerFirst") ?>" width="16" height="16" border="0"></a></td>
	<?php } else { ?>
	<td><img src="images/firstdisab.gif" alt="<?php echo $Language->Phrase("PagerFirst") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--previous page button-->
	<?php if ($Certificates_list->Pager->PrevButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->PrevButton->Start ?>"><img src="images/prev.gif" alt="<?php echo $Language->Phrase("PagerPrevious") ?>" width="16" height="16" border="0"></a></td>
	<?php } else { ?>
	<td><img src="images/prevdisab.gif" alt="<?php echo $Language->Phrase("PagerPrevious") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--current page number-->
	<td><input type="text" name="<?php echo EW_TABLE_PAGE_NO ?>" id="<?php echo EW_TABLE_PAGE_NO ?>" value="<?php echo $Certificates_list->Pager->CurrentPage ?>" size="4"></td>
<!--next page button-->
	<?php if ($Certificates_list->Pager->NextButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->NextButton->Start ?>"><img src="images/next.gif" alt="<?php echo $Language->Phrase("PagerNext") ?>" width="16" height="16" border="0"></a></td>	
	<?php } else { ?>
	<td><img src="images/nextdisab.gif" alt="<?php echo $Language->Phrase("PagerNext") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
<!--last page button-->
	<?php if ($Certificates_list->Pager->LastButton->Enabled) { ?>
	<td><a href="<?php echo $Certificates_list->PageUrl() ?>start=<?php echo $Certificates_list->Pager->LastButton->Start ?>"><img src="images/last.gif" alt="<?php echo $Language->Phrase("PagerLast") ?>" width="16" height="16" border="0"></a></td>	
	<?php } else { ?>
	<td><img src="images/lastdisab.gif" alt="<?php echo $Language->Phrase("PagerLast") ?>" width="16" height="16" border="0"></td>
	<?php } ?>
	<td><span class="phpmaker">&nbsp;<?php echo $Language->Phrase("of") ?>&nbsp;<?php echo $Certificates_list->Pager->PageCount ?></span></td>
	</tr></table>
	</td>	
	<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
	<td>
	<span class="phpmaker"><?php echo $Language->Phrase("Record") ?>&nbsp;<?php echo $Certificates_list->Pager->FromIndex ?>&nbsp;<?php echo $Language->Phrase("To") ?>&nbsp;<?php echo $Certificates_list->Pager->ToIndex ?>&nbsp;<?php echo $Language->Phrase("Of") ?>&nbsp;<?php echo $Certificates_list->Pager->RecordCount ?></span>
<?php } else { ?>
	<?php if ($Security->CanList()) { ?>
	<?php if ($Certificates_list->sSrchWhere == "0=101") { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("EnterSearchCriteria") ?></span>
	<?php } else { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("NoRecord") ?></span>
	<?php } ?>
	<?php } else { ?>
	<span class="phpmaker"><?php echo $Language->Phrase("NoPermission") ?></span>
	<?php } ?>
<?php } ?>
		</td>
<?php if ($Certificates_list->lTotalRecs > 0) { ?>
		<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
		<td><table border="0" cellspacing="0" cellpadding="0"><tr><td><?php echo $Language->Phrase("RecordsPerPage") ?>&nbsp;</td><td>
<input type="hidden" id="t" name="t" value="Certificates">
<select name="<?php echo EW_TABLE_REC_PER_PAGE ?>" id="<?php echo EW_TABLE_REC_PER_PAGE ?>" onchange="this.form.submit();">
<option value="20"<?php if ($Certificates_list->lDisplayRecs == 20) { ?> selected="selected"<?php } ?>>20</option>
<option value="40"<?php if ($Certificates_list->lDisplayRecs == 40) { ?> selected="selected"<?php } ?>>40</option>
<option value="80"<?php if ($Certificates_list->lDisplayRecs == 80) { ?> selected="selected"<?php } ?>>80</option>
<option value="160"<?php if ($Certificates_list->lDisplayRecs == 160) { ?> selected="selected"<?php } ?>>160</option>
<option value="ALL"<?php if ($Certificates->getRecordsPerPage() == -1) { ?> selected="selected"<?php } ?>><?php echo $Language->Phrase("AllRecords") ?></option>
</select></td></tr></table>
		</td>
<?php } ?>
	</tr>
</table>
</form>
<?php } ?>
<?php //if ($Certificates_list->lTotalRecs > 0) { ?>
<span class="phpmaker">
</span>
<?php //} ?>
</div>
<?php } ?>
<?php } ?>
</td></tr></table>
<?php if ($Certificates->Export == "" && $Certificates->CurrentAction == "") { ?>
<?php } ?>
<?php if ($Certificates->Export == "") { ?>
<script language="JavaScript" type="text/javascript">
<!--

// Write your table-specific startup script here
// document.write("page loaded");
//-->

</script>
<?php } ?>
<?php include "footer.php" ?>
<?php
$Certificates_list->Page_Terminate();
?>
<?php

//
// Page class
//
class cCertificates_list {

	// Page ID
	var $PageID = 'list';

	// Table name
	var $TableName = 'Certificates';

	// Page object name
	var $PageObjName = 'Certificates_list';

	// Page name
	function PageName() {
		return ew_CurrentPage();
	}

	// Page URL
	function PageUrl() {
		$PageUrl = ew_CurrentPage() . "?";
		global $Certificates;
		if ($Certificates->UseTokenInUrl) $PageUrl .= "t=" . $Certificates->TableVar . "&"; // Add page token
		return $PageUrl;
	}

	// Page URLs
	var $AddUrl;
	var $EditUrl;
	var $CopyUrl;
	var $DeleteUrl;
	var $ViewUrl;
	var $ListUrl;

	// Export URLs
	var $ExportPrintUrl;
	var $ExportHtmlUrl;
	var $ExportExcelUrl;
	var $ExportWordUrl;
	var $ExportXmlUrl;
	var $ExportCsvUrl;

	// Update URLs
	var $InlineAddUrl;
	var $InlineCopyUrl;
	var $InlineEditUrl;
	var $GridAddUrl;
	var $GridEditUrl;
	var $MultiDeleteUrl;
	var $MultiUpdateUrl;

	// Message
	function getMessage() {
		return @$_SESSION[EW_SESSION_MESSAGE];
	}

	function setMessage($v) {
		if (@$_SESSION[EW_SESSION_MESSAGE] <> "") { // Append
			$_SESSION[EW_SESSION_MESSAGE] .= "<br>" . $v;
		} else {
			$_SESSION[EW_SESSION_MESSAGE] = $v;
		}
	}

	// Show message
	function ShowMessage() {
		$sMessage = $this->getMessage();
		$this->Message_Showing($sMessage);
		if ($sMessage <> "") { // Message in Session, display
			echo "<p><span class=\"ewMessage\">" . $sMessage . "</span></p>";
			$_SESSION[EW_SESSION_MESSAGE] = ""; // Clear message in Session
		}
	}

	// Validate page request
	function IsPageRequest() {
		global $objForm, $Certificates;
		if ($Certificates->UseTokenInUrl) {
			if ($objForm)
				return ($Certificates->TableVar == $objForm->GetValue("t"));
			if (@$_GET["t"] <> "")
				return ($Certificates->TableVar == $_GET["t"]);
		} else {
			return TRUE;
		}
	}

	//
	// Page class constructor
	//
	function __construct() {
		global $conn, $Language;

		// Language object
		$Language = new cLanguage();

		// Table object (Certificates)
		$GLOBALS["Certificates"] = new cCertificates();

		// Initialize URLs
		$this->ExportPrintUrl = $this->PageUrl() . "export=print";
		$this->ExportExcelUrl = $this->PageUrl() . "export=excel";
		$this->ExportWordUrl = $this->PageUrl() . "export=word";
		$this->ExportHtmlUrl = $this->PageUrl() . "export=html";
		$this->ExportXmlUrl = $this->PageUrl() . "export=xml";
		$this->ExportCsvUrl = $this->PageUrl() . "export=csv";
		$this->AddUrl = $GLOBALS["Certificates"]->AddUrl();
		$this->InlineAddUrl = $this->PageUrl() . "a=add";
		$this->GridAddUrl = $this->PageUrl() . "a=gridadd";
		$this->GridEditUrl = $this->PageUrl() . "a=gridedit";
		$this->MultiDeleteUrl = "Certificatesdelete.php";
		$this->MultiUpdateUrl = "Certificatesupdate.php";

		// Table object (adminusers)
		$GLOBALS['adminusers'] = new cadminusers();

		// Table object (SchoolAttendees)
		$GLOBALS['SchoolAttendees'] = new cSchoolAttendees();

		// Table object (SchoolEvents)
		$GLOBALS['SchoolEvents'] = new cSchoolEvents();

		// Page ID
		if (!defined("EW_PAGE_ID"))
			define("EW_PAGE_ID", 'list', TRUE);

		// Table name (for backward compatibility)
		if (!defined("EW_TABLE_NAME"))
			define("EW_TABLE_NAME", 'Certificates', TRUE);

		// Start timer
		$GLOBALS["gsTimer"] = new cTimer();

		// Open connection
		$conn = ew_Connect();

		// List options
		$this->ListOptions = new cListOptions();
	}

	// 
	//  Page_Init
	//
	function Page_Init() {
		global $gsExport, $gsExportFile, $UserProfile, $Language, $Security, $objForm;
		global $Certificates;

		// User profile
		$UserProfile = new cUserProfile();
		$UserProfile->LoadProfile(@$_SESSION[EW_SESSION_USER_PROFILE]);

		// Security
		$Security = new cAdvancedSecurity();
		if (IsPasswordExpired())
			$this->Page_Terminate("changepwd.php");
		if (!$Security->IsLoggedIn()) $Security->AutoLogin();
		if (!$Security->IsLoggedIn()) {
			$Security->SaveLastUrl();
			$this->Page_Terminate("login.php");
		}
		$Security->TablePermission_Loading();
		$Security->LoadCurrentUserLevel($this->TableName);
		$Security->TablePermission_Loaded();
		if (!$Security->IsLoggedIn()) {
			$Security->SaveLastUrl();
			$this->Page_Terminate("login.php");
		}
		if (!$Security->CanList()) {
			$Security->SaveLastUrl();
			$this->Page_Terminate("login.php");
		}
		$Security->UserID_Loading();
		if ($Security->IsLoggedIn()) $Security->LoadUserID();
		$Security->UserID_Loaded();

		// Get export parameters
		if (@$_GET["export"] <> "") {
			$Certificates->Export = $_GET["export"];
		} elseif (ew_IsHttpPost()) {
			if (@$_POST["exporttype"] <> "")
				$Certificates->Export = $_POST["exporttype"];
		} else {
			$Certificates->setExportReturnUrl(ew_CurrentUrl());
		}
		$gsExport = $Certificates->Export; // Get export parameter, used in header
		$gsExportFile = $Certificates->TableVar; // Get export file, used in header
		if ($Certificates->Export == "excel") {
			header('Content-Type: application/vnd.ms-excel');
			header('Content-Disposition: attachment; filename=' . $gsExportFile .'.xls');
		}
		if ($Certificates->Export == "word") {
			header('Content-Type: application/vnd.ms-word');
			header('Content-Disposition: attachment; filename=' . $gsExportFile .'.doc');
		}

		// Global Page Loading event (in userfn*.php)
		Page_Loading();

		// Page Load event
		$this->Page_Load();
	}

	//
	// Page_Terminate
	//
	function Page_Terminate($url = "") {
		global $conn;

		// Page Unload event
		$this->Page_Unload();

		// Global Page Unloaded event (in userfn*.php)
		Page_Unloaded();

		 // Close connection
		$conn->Close();

		// Go to URL if specified
		$this->Page_Redirecting($url);
		if ($url <> "") {
			if (!EW_DEBUG_ENABLED && ob_get_length())
				ob_end_clean();
			header("Location: " . $url);
		}
		exit();
	}

	// Class variables
	var $ListOptions; // List options
	var $lDisplayRecs = 40;
	var $lStartRec;
	var $lStopRec;
	var $lTotalRecs = 0;
	var $lRecRange = 10;
	var $sSrchWhere = ""; // Search WHERE clause
	var $lRecCnt = 0; // Record count
	var $lEditRowCnt;
	var $lRowCnt;
	var $lRowIndex; // Row index
	var $lRecPerRow = 0;
	var $lColCnt = 0;
	var $sDbMasterFilter = ""; // Master filter
	var $sDbDetailFilter = ""; // Detail filter
	var $bMasterRecordExists;	
	var $sMultiSelectKey;
	var $RestoreSearch;

	//
	// Page main
	//
	function Page_Main() {
		global $objForm, $Language, $gsSearchError, $Security, $Certificates;

		// Search filters
		$sSrchAdvanced = ""; // Advanced search filter
		$sSrchBasic = ""; // Basic search filter
		$sFilter = "";
		if ($this->IsPageRequest()) { // Validate request

			// Set up records per page
			$this->SetUpDisplayRecs();

			// Handle reset command
			$this->ResetCmd();

			// Set up master detail parameters
			$this->SetUpMasterDetail();

			// Set up list options
			$this->SetupListOptions();

			// Get and validate search values for advanced search
			$this->LoadSearchValues(); // Get search values
			if (!$this->ValidateSearch())
				$this->setMessage($gsSearchError);

			// Restore search parms from Session
			$this->RestoreSearchParms();

			// Call Recordset SearchValidated event
			$Certificates->Recordset_SearchValidated();

			// Set up sorting order
			$this->SetUpSortOrder();

			// Get search criteria for advanced search
			if ($gsSearchError == "")
				$sSrchAdvanced = $this->AdvancedSearchWhere();
		}

		// Restore display records
		if ($Certificates->getRecordsPerPage() <> "") {
			$this->lDisplayRecs = $Certificates->getRecordsPerPage(); // Restore from Session
		} else {
			$this->lDisplayRecs = 40; // Load default
		}

		// Load Sorting Order
		$this->LoadSortOrder();

		// Build search criteria
		if ($sSrchAdvanced <> "")
			$this->sSrchWhere = ($this->sSrchWhere <> "") ? "(" . $this->sSrchWhere . ") AND (" . $sSrchAdvanced . ")" : $sSrchAdvanced;
		if ($sSrchBasic <> "")
			$this->sSrchWhere = ($this->sSrchWhere <> "") ? "(" . $this->sSrchWhere . ") AND (" . $sSrchBasic. ")" : $sSrchBasic;

		// Call Recordset_Searching event
		$Certificates->Recordset_Searching($this->sSrchWhere);

		// Save search criteria
		if ($this->sSrchWhere <> "") {
			if ($sSrchAdvanced == "")
				$this->ResetAdvancedSearchParms();
			$Certificates->setSearchWhere($this->sSrchWhere); // Save to Session
			if (!$this->RestoreSearch) {
				$this->lStartRec = 1; // Reset start record counter
				$Certificates->setStartRecordNumber($this->lStartRec);
			}
		} else {
			$this->sSrchWhere = $Certificates->getSearchWhere();
		}

		// Build filter
		$sFilter = "";
		if (!$Security->CanList())
			$sFilter = "(0=1)"; // Filter all records

		// Restore master/detail filter
		$this->sDbMasterFilter = $Certificates->getMasterFilter(); // Restore master filter
		$this->sDbDetailFilter = $Certificates->getDetailFilter(); // Restore detail filter
		if ($this->sDbDetailFilter <> "")
			$sFilter = ($sFilter <> "") ? "(" . $sFilter . ") AND (" . $this->sDbDetailFilter . ")" : $this->sDbDetailFilter;
		if ($this->sSrchWhere <> "")
			$sFilter = ($sFilter <> "") ? "(" . $sFilter . ") AND (". $this->sSrchWhere . ")" : $this->sSrchWhere;

		// Load master record
		if ($Certificates->getMasterFilter() <> "" && $Certificates->getCurrentMasterTable() == "SchoolEvents") {
			global $SchoolEvents;
			$rsmaster = $SchoolEvents->LoadRs($this->sDbMasterFilter);
			$this->bMasterRecordExists = ($rsmaster && !$rsmaster->EOF);
			if (!$this->bMasterRecordExists) {
				$Certificates->setMasterFilter(""); // Clear master filter
				$Certificates->setDetailFilter(""); // Clear detail filter
				$this->setMessage($Language->Phrase("NoRecord")); // Set no record found
				$this->Page_Terminate($Certificates->getReturnUrl()); // Return to caller
			} else {
				$SchoolEvents->LoadListRowValues($rsmaster);
				$SchoolEvents->RowType = EW_ROWTYPE_MASTER; // Master row
				$SchoolEvents->RenderListRow();
				$rsmaster->Close();
			}
		}

		// Load master record
		if ($Certificates->getMasterFilter() <> "" && $Certificates->getCurrentMasterTable() == "SchoolAttendees") {
			global $SchoolAttendees;
			$rsmaster = $SchoolAttendees->LoadRs($this->sDbMasterFilter);
			$this->bMasterRecordExists = ($rsmaster && !$rsmaster->EOF);
			if (!$this->bMasterRecordExists) {
				$Certificates->setMasterFilter(""); // Clear master filter
				$Certificates->setDetailFilter(""); // Clear detail filter
				$this->setMessage($Language->Phrase("NoRecord")); // Set no record found
				$this->Page_Terminate($Certificates->getReturnUrl()); // Return to caller
			} else {
				$SchoolAttendees->LoadListRowValues($rsmaster);
				$SchoolAttendees->RowType = EW_ROWTYPE_MASTER; // Master row
				$SchoolAttendees->RenderListRow();
				$rsmaster->Close();
			}
		}

		// Set up filter in session
		$Certificates->setSessionWhere($sFilter);
		$Certificates->CurrentFilter = "";

		// Export data only
		if (in_array($Certificates->Export, array("html","word","excel","xml","csv","email"))) {
			$this->ExportData();
			if ($Certificates->Export <> "email")
				$this->Page_Terminate(); // Terminate response
			exit();
		}
	}

	// Set up number of records displayed per page
	function SetUpDisplayRecs() {
		global $Certificates;
		$sWrk = @$_GET[EW_TABLE_REC_PER_PAGE];
		if ($sWrk <> "") {
			if (is_numeric($sWrk)) {
				$this->lDisplayRecs = intval($sWrk);
			} else {
				if (strtolower($sWrk) == "all") { // Display all records
					$this->lDisplayRecs = -1;
				} else {
					$this->lDisplayRecs = 40; // Non-numeric, load default
				}
			}
			$Certificates->setRecordsPerPage($this->lDisplayRecs); // Save to Session

			// Reset start position
			$this->lStartRec = 1;
			$Certificates->setStartRecordNumber($this->lStartRec);
		}
	}

	// Advanced search WHERE clause based on QueryString
	function AdvancedSearchWhere() {
		global $Security, $Certificates;
		$sWhere = "";
		if (!$Security->CanSearch()) return "";
		$this->BuildSearchSql($sWhere, $Certificates->EventID, FALSE); // EventID
		$this->BuildSearchSql($sWhere, $Certificates->ContactFirstName, FALSE); // ContactFirstName
		$this->BuildSearchSql($sWhere, $Certificates->ContactLastName, FALSE); // ContactLastName
		$this->BuildSearchSql($sWhere, $Certificates->EmailAddress, FALSE); // EmailAddress
		$this->BuildSearchSql($sWhere, $Certificates->Attended, FALSE); // Attended
		$this->BuildSearchSql($sWhere, $Certificates->Paid, FALSE); // Paid
		$this->BuildSearchSql($sWhere, $Certificates->TestRequired, FALSE); // TestRequired
		$this->BuildSearchSql($sWhere, $Certificates->QuestionnaireID, FALSE); // QuestionnaireID
		$this->BuildSearchSql($sWhere, $Certificates->TestCompleted, FALSE); // TestCompleted
		$this->BuildSearchSql($sWhere, $Certificates->TestPassed, FALSE); // TestPassed
		$this->BuildSearchSql($sWhere, $Certificates->AttendeeID, FALSE); // AttendeeID
		$this->BuildSearchSql($sWhere, $Certificates->CertificateSent, FALSE); // CertificateSent

		// Set up search parm
		if ($sWhere <> "") {
			$this->SetSearchParm($Certificates->EventID); // EventID
			$this->SetSearchParm($Certificates->ContactFirstName); // ContactFirstName
			$this->SetSearchParm($Certificates->ContactLastName); // ContactLastName
			$this->SetSearchParm($Certificates->EmailAddress); // EmailAddress
			$this->SetSearchParm($Certificates->Attended); // Attended
			$this->SetSearchParm($Certificates->Paid); // Paid
			$this->SetSearchParm($Certificates->TestRequired); // TestRequired
			$this->SetSearchParm($Certificates->QuestionnaireID); // QuestionnaireID
			$this->SetSearchParm($Certificates->TestCompleted); // TestCompleted
			$this->SetSearchParm($Certificates->TestPassed); // TestPassed
			$this->SetSearchParm($Certificates->AttendeeID); // AttendeeID
			$this->SetSearchParm($Certificates->CertificateSent); // CertificateSent
		}
		return $sWhere;
	}

	// Build search SQL
	function BuildSearchSql(&$Where, &$Fld, $MultiValue) {
		$FldParm = substr($Fld->FldVar, 2);		
		$FldVal = $Fld->AdvancedSearch->SearchValue; // @$_GET["x_$FldParm"]
		$FldOpr = $Fld->AdvancedSearch->SearchOperator; // @$_GET["z_$FldParm"]
		$FldCond = $Fld->AdvancedSearch->SearchCondition; // @$_GET["v_$FldParm"]
		$FldVal2 = $Fld->AdvancedSearch->SearchValue2; // @$_GET["y_$FldParm"]
		$FldOpr2 = $Fld->AdvancedSearch->SearchOperator2; // @$_GET["w_$FldParm"]
		$sWrk = "";

		//$FldVal = ew_StripSlashes($FldVal);
		if (is_array($FldVal)) $FldVal = implode(",", $FldVal);

		//$FldVal2 = ew_StripSlashes($FldVal2);
		if (is_array($FldVal2)) $FldVal2 = implode(",", $FldVal2);
		$FldOpr = strtoupper(trim($FldOpr));
		if ($FldOpr == "") $FldOpr = "=";
		$FldOpr2 = strtoupper(trim($FldOpr2));
		if ($FldOpr2 == "") $FldOpr2 = "=";
		if (EW_SEARCH_MULTI_VALUE_OPTION == 1 || $FldOpr <> "LIKE" ||
			($FldOpr2 <> "LIKE" && $FldVal2 <> ""))
			$MultiValue = FALSE;
		if ($MultiValue) {
			$sWrk1 = ($FldVal <> "") ? ew_GetMultiSearchSql($Fld, $FldVal) : ""; // Field value 1
			$sWrk2 = ($FldVal2 <> "") ? ew_GetMultiSearchSql($Fld, $FldVal2) : ""; // Field value 2
			$sWrk = $sWrk1; // Build final SQL
			if ($sWrk2 <> "")
				$sWrk = ($sWrk <> "") ? "($sWrk) $FldCond ($sWrk2)" : $sWrk2;
		} else {
			$FldVal = $this->ConvertSearchValue($Fld, $FldVal);
			$FldVal2 = $this->ConvertSearchValue($Fld, $FldVal2);
			$sWrk = ew_GetSearchSql($Fld, $FldVal, $FldOpr, $FldCond, $FldVal2, $FldOpr2);
		}
		if ($sWrk <> "") {
			if ($Where <> "") $Where .= " AND ";
			$Where .= "(" . $sWrk . ")";
		}
	}

	// Set search parameters
	function SetSearchParm(&$Fld) {
		global $Certificates;
		$FldParm = substr($Fld->FldVar, 2);
		$FldVal = $Fld->AdvancedSearch->SearchValue; // @$_GET["x_$FldParm"]
		$FldVal = ew_StripSlashes($FldVal);
		if (is_array($FldVal)) $FldVal = implode(",", $FldVal);
		$FldVal2 = $Fld->AdvancedSearch->SearchValue2; // @$_GET["y_$FldParm"]
		$FldVal2 = ew_StripSlashes($FldVal2);
		if (is_array($FldVal2)) $FldVal2 = implode(",", $FldVal2);
		$Certificates->setAdvancedSearch("x_$FldParm", $FldVal);
		$Certificates->setAdvancedSearch("z_$FldParm", $Fld->AdvancedSearch->SearchOperator); // @$_GET["z_$FldParm"]
		$Certificates->setAdvancedSearch("v_$FldParm", $Fld->AdvancedSearch->SearchCondition); // @$_GET["v_$FldParm"]
		$Certificates->setAdvancedSearch("y_$FldParm", $FldVal2);
		$Certificates->setAdvancedSearch("w_$FldParm", $Fld->AdvancedSearch->SearchOperator2); // @$_GET["w_$FldParm"]
	}

	// Get search parameters
	function GetSearchParm(&$Fld) {
		global $Certificates;
		$FldParm = substr($Fld->FldVar, 2);
		$Fld->AdvancedSearch->SearchValue = $Certificates->GetAdvancedSearch("x_$FldParm");
		$Fld->AdvancedSearch->SearchOperator = $Certificates->GetAdvancedSearch("z_$FldParm");
		$Fld->AdvancedSearch->SearchCondition = $Certificates->GetAdvancedSearch("v_$FldParm");
		$Fld->AdvancedSearch->SearchValue2 = $Certificates->GetAdvancedSearch("y_$FldParm");
		$Fld->AdvancedSearch->SearchOperator2 = $Certificates->GetAdvancedSearch("w_$FldParm");
	}

	// Convert search value
	function ConvertSearchValue(&$Fld, $FldVal) {
		$Value = $FldVal;
		if ($Fld->FldDataType == EW_DATATYPE_BOOLEAN) {
			if ($FldVal <> "") $Value = ($FldVal == "1") ? $Fld->TrueValue : $Fld->FalseValue;
		} elseif ($Fld->FldDataType == EW_DATATYPE_DATE) {
			if ($FldVal <> "") $Value = ew_UnFormatDateTime($FldVal, $Fld->FldDateTimeFormat);
		}
		return $Value;
	}

	// Clear all search parameters
	function ResetSearchParms() {
		global $Certificates;

		// Clear search WHERE clause
		$this->sSrchWhere = "";
		$Certificates->setSearchWhere($this->sSrchWhere);

		// Clear advanced search parameters
		$this->ResetAdvancedSearchParms();
	}

	// Clear all advanced search parameters
	function ResetAdvancedSearchParms() {
		global $Certificates;
		$Certificates->setAdvancedSearch("x_EventID", "");
		$Certificates->setAdvancedSearch("x_ContactFirstName", "");
		$Certificates->setAdvancedSearch("x_ContactLastName", "");
		$Certificates->setAdvancedSearch("x_EmailAddress", "");
		$Certificates->setAdvancedSearch("x_Attended", "");
		$Certificates->setAdvancedSearch("x_Paid", "");
		$Certificates->setAdvancedSearch("x_TestRequired", "");
		$Certificates->setAdvancedSearch("x_QuestionnaireID", "");
		$Certificates->setAdvancedSearch("x_TestCompleted", "");
		$Certificates->setAdvancedSearch("x_TestPassed", "");
		$Certificates->setAdvancedSearch("x_AttendeeID", "");
		$Certificates->setAdvancedSearch("x_CertificateSent", "");
	}

	// Restore all search parameters
	function RestoreSearchParms() {
		global $Certificates;
		$bRestore = TRUE;
		if (@$_GET["x_EventID"] <> "") $bRestore = FALSE;
		if (@$_GET["x_ContactFirstName"] <> "") $bRestore = FALSE;
		if (@$_GET["x_ContactLastName"] <> "") $bRestore = FALSE;
		if (@$_GET["x_EmailAddress"] <> "") $bRestore = FALSE;
		if (@$_GET["x_Attended"] <> "") $bRestore = FALSE;
		if (@$_GET["x_Paid"] <> "") $bRestore = FALSE;
		if (@$_GET["x_TestRequired"] <> "") $bRestore = FALSE;
		if (@$_GET["x_QuestionnaireID"] <> "") $bRestore = FALSE;
		if (@$_GET["x_TestCompleted"] <> "") $bRestore = FALSE;
		if (@$_GET["x_TestPassed"] <> "") $bRestore = FALSE;
		if (@$_GET["x_AttendeeID"] <> "") $bRestore = FALSE;
		if (@$_GET["x_CertificateSent"] <> "") $bRestore = FALSE;
		$this->RestoreSearch = $bRestore;
		if ($bRestore) {

			// Restore advanced search values
			$this->GetSearchParm($Certificates->EventID);
			$this->GetSearchParm($Certificates->ContactFirstName);
			$this->GetSearchParm($Certificates->ContactLastName);
			$this->GetSearchParm($Certificates->EmailAddress);
			$this->GetSearchParm($Certificates->Attended);
			$this->GetSearchParm($Certificates->Paid);
			$this->GetSearchParm($Certificates->TestRequired);
			$this->GetSearchParm($Certificates->QuestionnaireID);
			$this->GetSearchParm($Certificates->TestCompleted);
			$this->GetSearchParm($Certificates->TestPassed);
			$this->GetSearchParm($Certificates->AttendeeID);
			$this->GetSearchParm($Certificates->CertificateSent);
		}
	}

	// Set up sort parameters
	function SetUpSortOrder() {
		global $Certificates;

		// Check for Ctrl pressed
		$bCtrl = (@$_GET["ctrl"] <> "");

		// Check for "order" parameter
		if (@$_GET["order"] <> "") {
			$Certificates->CurrentOrder = ew_StripSlashes(@$_GET["order"]);
			$Certificates->CurrentOrderType = @$_GET["ordertype"];
			$Certificates->UpdateSort($Certificates->EventID, $bCtrl); // EventID
			$Certificates->UpdateSort($Certificates->ContactFirstName, $bCtrl); // ContactFirstName
			$Certificates->UpdateSort($Certificates->ContactLastName, $bCtrl); // ContactLastName
			$Certificates->UpdateSort($Certificates->EmailAddress, $bCtrl); // EmailAddress
			$Certificates->UpdateSort($Certificates->Attended, $bCtrl); // Attended
			$Certificates->UpdateSort($Certificates->Paid, $bCtrl); // Paid
			$Certificates->UpdateSort($Certificates->TestRequired, $bCtrl); // TestRequired
			$Certificates->UpdateSort($Certificates->QuestionnaireID, $bCtrl); // QuestionnaireID
			$Certificates->UpdateSort($Certificates->TestCompleted, $bCtrl); // TestCompleted
			$Certificates->UpdateSort($Certificates->TestPassed, $bCtrl); // TestPassed
			$Certificates->UpdateSort($Certificates->CertificateSent, $bCtrl); // CertificateSent
			$Certificates->UpdateSort($Certificates->Select, $bCtrl); // Select
			$Certificates->setStartRecordNumber(1); // Reset start position
		}
	}

	// Load sort order parameters
	function LoadSortOrder() {
		global $Certificates;
		$sOrderBy = $Certificates->getSessionOrderBy(); // Get ORDER BY from Session
		if ($sOrderBy == "") {
			if ($Certificates->SqlOrderBy() <> "") {
				$sOrderBy = $Certificates->SqlOrderBy();
				$Certificates->setSessionOrderBy($sOrderBy);
				$Certificates->ContactLastName->setSort("ASC");
				$Certificates->ContactFirstName->setSort("ASC");
			}
		}
	}

	// Reset command
	// cmd=reset (Reset search parameters)
	// cmd=resetall (Reset search and master/detail parameters)
	// cmd=resetsort (Reset sort parameters)
	function ResetCmd() {
		global $Certificates;

		// Get reset command
		if (@$_GET["cmd"] <> "") {
			$sCmd = $_GET["cmd"];

			// Reset search criteria
			if (strtolower($sCmd) == "reset" || strtolower($sCmd) == "resetall")
				$this->ResetSearchParms();

			// Reset master/detail keys
			if (strtolower($sCmd) == "resetall") {
				$Certificates->getCurrentMasterTable = ""; // Clear master table
				$Certificates->setMasterFilter(""); // Clear master filter
				$this->sDbMasterFilter = "";
				$Certificates->setDetailFilter(""); // Clear detail filter
				$this->sDbDetailFilter = "";
				$Certificates->EventID->setSessionValue("");
				$Certificates->AttendeeID->setSessionValue("");
			}

			// Reset sorting order
			if (strtolower($sCmd) == "resetsort") {
				$sOrderBy = "";
				$Certificates->setSessionOrderBy($sOrderBy);
				$Certificates->EventID->setSort("");
				$Certificates->ContactFirstName->setSort("");
				$Certificates->ContactLastName->setSort("");
				$Certificates->EmailAddress->setSort("");
				$Certificates->Attended->setSort("");
				$Certificates->Paid->setSort("");
				$Certificates->TestRequired->setSort("");
				$Certificates->QuestionnaireID->setSort("");
				$Certificates->TestCompleted->setSort("");
				$Certificates->TestPassed->setSort("");
				$Certificates->CertificateSent->setSort("");
				$Certificates->Select->setSort("");
			}

			// Reset start position
			$this->lStartRec = 1;
			$Certificates->setStartRecordNumber($this->lStartRec);
		}
	}

	// Set up list options
	function SetupListOptions() {
		global $Security, $Certificates;

		// Call ListOptions_Load event
		$this->ListOptions_Load();
		if ($Certificates->Export <> "" ||
			$Certificates->CurrentAction == "gridadd" ||
			$Certificates->CurrentAction == "gridedit")
			$this->ListOptions->HideAllOptions();
	}

	// Render list options
	function RenderListOptions() {
		global $Security, $Language, $Certificates;
		$this->ListOptions->LoadDefault();
		$this->RenderListOptionsExt();

		// Call ListOptions_Rendered event
		$this->ListOptions_Rendered();
	}

	function RenderListOptionsExt() {
		global $Security, $Language, $Certificates;
	}

	// Set up starting record parameters
	function SetUpStartRec() {
		global $Certificates;
		if ($this->lDisplayRecs == 0)
			return;
		if ($this->IsPageRequest()) { // Validate request
			if (@$_GET[EW_TABLE_START_REC] <> "") { // Check for "start" parameter
				$this->lStartRec = $_GET[EW_TABLE_START_REC];
				$Certificates->setStartRecordNumber($this->lStartRec);
			} elseif (@$_GET[EW_TABLE_PAGE_NO] <> "") {
				$this->nPageNo = $_GET[EW_TABLE_PAGE_NO];
				if (is_numeric($this->nPageNo)) {
					$this->lStartRec = ($this->nPageNo-1)*$this->lDisplayRecs+1;
					if ($this->lStartRec <= 0) {
						$this->lStartRec = 1;
					} elseif ($this->lStartRec >= intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1) {
						$this->lStartRec = intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1;
					}
					$Certificates->setStartRecordNumber($this->lStartRec);
				}
			}
		}
		$this->lStartRec = $Certificates->getStartRecordNumber();

		// Check if correct start record counter
		if (!is_numeric($this->lStartRec) || $this->lStartRec == "") { // Avoid invalid start record counter
			$this->lStartRec = 1; // Reset start record counter
			$Certificates->setStartRecordNumber($this->lStartRec);
		} elseif (intval($this->lStartRec) > intval($this->lTotalRecs)) { // Avoid starting record > total records
			$this->lStartRec = intval(($this->lTotalRecs-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1; // Point to last page first record
			$Certificates->setStartRecordNumber($this->lStartRec);
		} elseif (($this->lStartRec-1) % $this->lDisplayRecs <> 0) {
			$this->lStartRec = intval(($this->lStartRec-1)/$this->lDisplayRecs)*$this->lDisplayRecs+1; // Point to page boundary
			$Certificates->setStartRecordNumber($this->lStartRec);
		}
	}

	//  Load search values for validation
	function LoadSearchValues() {
		global $objForm, $Certificates;

		// Load search values
		// EventID

		$Certificates->EventID->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_EventID"]);
		$Certificates->EventID->AdvancedSearch->SearchOperator = @$_GET["z_EventID"];

		// ContactFirstName
		$Certificates->ContactFirstName->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_ContactFirstName"]);
		$Certificates->ContactFirstName->AdvancedSearch->SearchOperator = @$_GET["z_ContactFirstName"];

		// ContactLastName
		$Certificates->ContactLastName->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_ContactLastName"]);
		$Certificates->ContactLastName->AdvancedSearch->SearchOperator = @$_GET["z_ContactLastName"];

		// EmailAddress
		$Certificates->EmailAddress->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_EmailAddress"]);
		$Certificates->EmailAddress->AdvancedSearch->SearchOperator = @$_GET["z_EmailAddress"];

		// Attended
		$Certificates->Attended->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_Attended"]);
		$Certificates->Attended->AdvancedSearch->SearchOperator = @$_GET["z_Attended"];

		// Paid
		$Certificates->Paid->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_Paid"]);
		$Certificates->Paid->AdvancedSearch->SearchOperator = @$_GET["z_Paid"];

		// TestRequired
		$Certificates->TestRequired->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_TestRequired"]);
		$Certificates->TestRequired->AdvancedSearch->SearchOperator = @$_GET["z_TestRequired"];

		// QuestionnaireID
		$Certificates->QuestionnaireID->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_QuestionnaireID"]);
		$Certificates->QuestionnaireID->AdvancedSearch->SearchOperator = @$_GET["z_QuestionnaireID"];

		// TestCompleted
		$Certificates->TestCompleted->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_TestCompleted"]);
		$Certificates->TestCompleted->AdvancedSearch->SearchOperator = @$_GET["z_TestCompleted"];

		// TestPassed
		$Certificates->TestPassed->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_TestPassed"]);
		$Certificates->TestPassed->AdvancedSearch->SearchOperator = @$_GET["z_TestPassed"];

		// AttendeeID
		$Certificates->AttendeeID->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_AttendeeID"]);
		$Certificates->AttendeeID->AdvancedSearch->SearchOperator = @$_GET["z_AttendeeID"];

		// CertificateSent
		$Certificates->CertificateSent->AdvancedSearch->SearchValue = ew_StripSlashes(@$_GET["x_CertificateSent"]);
		$Certificates->CertificateSent->AdvancedSearch->SearchOperator = @$_GET["z_CertificateSent"];
	}

	// Load recordset
	function LoadRecordset($offset = -1, $rowcnt = -1) {
		global $conn, $Certificates;

		// Call Recordset Selecting event
		$Certificates->Recordset_Selecting($Certificates->CurrentFilter);

		// Load List page SQL
		$sSql = $Certificates->SelectSQL();
		if ($offset > -1 && $rowcnt > -1)
			$sSql .= " LIMIT $offset, $rowcnt";

		// Load recordset
		$rs = ew_LoadRecordset($sSql);

		// Call Recordset Selected event
		$Certificates->Recordset_Selected($rs);
		return $rs;
	}

	// Load row based on key values
	function LoadRow() {
		global $conn, $Security, $Certificates;
		$sFilter = $Certificates->KeyFilter();

		// Call Row Selecting event
		$Certificates->Row_Selecting($sFilter);

		// Load SQL based on filter
		$Certificates->CurrentFilter = $sFilter;
		$sSql = $Certificates->SQL();
		$res = FALSE;
		$rs = ew_LoadRecordset($sSql);
		if ($rs && !$rs->EOF) {
			$res = TRUE;
			$this->LoadRowValues($rs); // Load row values

			// Call Row Selected event
			$Certificates->Row_Selected($rs);
			$rs->Close();
		}
		return $res;
	}

	// Load row values from recordset
	function LoadRowValues(&$rs) {
		global $conn, $Certificates;
		$Certificates->EventID->setDbValue($rs->fields('EventID'));
		$Certificates->ContactFirstName->setDbValue($rs->fields('ContactFirstName'));
		$Certificates->ContactLastName->setDbValue($rs->fields('ContactLastName'));
		$Certificates->EmailAddress->setDbValue($rs->fields('EmailAddress'));
		$Certificates->Attended->setDbValue($rs->fields('Attended'));
		$Certificates->Paid->setDbValue($rs->fields('Paid'));
		$Certificates->TestRequired->setDbValue($rs->fields('TestRequired'));
		$Certificates->QuestionnaireID->setDbValue($rs->fields('QuestionnaireID'));
		$Certificates->TestCompleted->setDbValue($rs->fields('TestCompleted'));
		$Certificates->TestPassed->setDbValue($rs->fields('TestPassed'));
		$Certificates->AttendeeID->setDbValue($rs->fields('AttendeeID'));
		$Certificates->CertificateSent->setDbValue($rs->fields('CertificateSent'));
		$Certificates->Select->setDbValue($rs->fields('Select'));
	}

	// Render row values based on field settings
	function RenderRow() {
		global $conn, $Security, $Language, $Certificates;

		// Initialize URLs
		$this->ViewUrl = $Certificates->ViewUrl();
		$this->EditUrl = $Certificates->EditUrl();
		$this->InlineEditUrl = $Certificates->InlineEditUrl();
		$this->CopyUrl = $Certificates->CopyUrl();
		$this->InlineCopyUrl = $Certificates->InlineCopyUrl();
		$this->DeleteUrl = $Certificates->DeleteUrl();

		// Call Row_Rendering event
		$Certificates->Row_Rendering();

		// Common render codes for all row types
		// EventID

		$Certificates->EventID->CellCssStyle = ""; $Certificates->EventID->CellCssClass = "";
		$Certificates->EventID->CellAttrs = array(); $Certificates->EventID->ViewAttrs = array(); $Certificates->EventID->EditAttrs = array();

		// ContactFirstName
		$Certificates->ContactFirstName->CellCssStyle = ""; $Certificates->ContactFirstName->CellCssClass = "";
		$Certificates->ContactFirstName->CellAttrs = array(); $Certificates->ContactFirstName->ViewAttrs = array(); $Certificates->ContactFirstName->EditAttrs = array();

		// ContactLastName
		$Certificates->ContactLastName->CellCssStyle = ""; $Certificates->ContactLastName->CellCssClass = "";
		$Certificates->ContactLastName->CellAttrs = array(); $Certificates->ContactLastName->ViewAttrs = array(); $Certificates->ContactLastName->EditAttrs = array();

		// EmailAddress
		$Certificates->EmailAddress->CellCssStyle = ""; $Certificates->EmailAddress->CellCssClass = "";
		$Certificates->EmailAddress->CellAttrs = array(); $Certificates->EmailAddress->ViewAttrs = array(); $Certificates->EmailAddress->EditAttrs = array();

		// Attended
		$Certificates->Attended->CellCssStyle = ""; $Certificates->Attended->CellCssClass = "";
		$Certificates->Attended->CellAttrs = array(); $Certificates->Attended->ViewAttrs = array(); $Certificates->Attended->EditAttrs = array();

		// Paid
		$Certificates->Paid->CellCssStyle = ""; $Certificates->Paid->CellCssClass = "";
		$Certificates->Paid->CellAttrs = array(); $Certificates->Paid->ViewAttrs = array(); $Certificates->Paid->EditAttrs = array();

		// TestRequired
		$Certificates->TestRequired->CellCssStyle = ""; $Certificates->TestRequired->CellCssClass = "";
		$Certificates->TestRequired->CellAttrs = array(); $Certificates->TestRequired->ViewAttrs = array(); $Certificates->TestRequired->EditAttrs = array();

		// QuestionnaireID
		$Certificates->QuestionnaireID->CellCssStyle = ""; $Certificates->QuestionnaireID->CellCssClass = "";
		$Certificates->QuestionnaireID->CellAttrs = array(); $Certificates->QuestionnaireID->ViewAttrs = array(); $Certificates->QuestionnaireID->EditAttrs = array();

		// TestCompleted
		$Certificates->TestCompleted->CellCssStyle = ""; $Certificates->TestCompleted->CellCssClass = "";
		$Certificates->TestCompleted->CellAttrs = array(); $Certificates->TestCompleted->ViewAttrs = array(); $Certificates->TestCompleted->EditAttrs = array();

		// TestPassed
		$Certificates->TestPassed->CellCssStyle = ""; $Certificates->TestPassed->CellCssClass = "";
		$Certificates->TestPassed->CellAttrs = array(); $Certificates->TestPassed->ViewAttrs = array(); $Certificates->TestPassed->EditAttrs = array();

		// CertificateSent
		$Certificates->CertificateSent->CellCssStyle = ""; $Certificates->CertificateSent->CellCssClass = "";
		$Certificates->CertificateSent->CellAttrs = array(); $Certificates->CertificateSent->ViewAttrs = array(); $Certificates->CertificateSent->EditAttrs = array();

		// Select
		$Certificates->Select->CellCssStyle = "white-space: nowrap;"; $Certificates->Select->CellCssClass = "";
		$Certificates->Select->CellAttrs = array(); $Certificates->Select->ViewAttrs = array(); $Certificates->Select->EditAttrs = array();
		if ($Certificates->RowType == EW_ROWTYPE_VIEW) { // View row

			// EventID
			$Certificates->EventID->ViewValue = $Certificates->EventID->CurrentValue;
			if (strval($Certificates->EventID->CurrentValue) <> "") {
				$sFilterWrk = "`EventID` = " . ew_AdjustSql($Certificates->EventID->CurrentValue) . "";
			$sSqlWrk = "SELECT `EventName`, `StartDate` FROM `SchoolEvents`";
			$sWhereWrk = "";
			if ($sFilterWrk <> "") {
				if ($sWhereWrk <> "") $sWhereWrk .= " AND ";
				$sWhereWrk .= "(" . $sFilterWrk . ")";
			}
			if ($sWhereWrk <> "") $sSqlWrk .= " WHERE " . $sWhereWrk;
				$rswrk = $conn->Execute($sSqlWrk);
				if ($rswrk && !$rswrk->EOF) { // Lookup values found
					$Certificates->EventID->ViewValue = $rswrk->fields('EventName');
					$Certificates->EventID->ViewValue .= ew_ValueSeparator(0) . $rswrk->fields('StartDate');
					$rswrk->Close();
				} else {
					$Certificates->EventID->ViewValue = $Certificates->EventID->CurrentValue;
				}
			} else {
				$Certificates->EventID->ViewValue = NULL;
			}
			$Certificates->EventID->CssStyle = "";
			$Certificates->EventID->CssClass = "";
			$Certificates->EventID->ViewCustomAttributes = "";

			// ContactFirstName
			$Certificates->ContactFirstName->ViewValue = $Certificates->ContactFirstName->CurrentValue;
			$Certificates->ContactFirstName->CssStyle = "";
			$Certificates->ContactFirstName->CssClass = "";
			$Certificates->ContactFirstName->ViewCustomAttributes = "";

			// ContactLastName
			$Certificates->ContactLastName->ViewValue = $Certificates->ContactLastName->CurrentValue;
			$Certificates->ContactLastName->CssStyle = "";
			$Certificates->ContactLastName->CssClass = "";
			$Certificates->ContactLastName->ViewCustomAttributes = "";

			// EmailAddress
			$Certificates->EmailAddress->ViewValue = $Certificates->EmailAddress->CurrentValue;
			$Certificates->EmailAddress->CssStyle = "";
			$Certificates->EmailAddress->CssClass = "";
			$Certificates->EmailAddress->ViewCustomAttributes = "";

			// Attended
			if (strval($Certificates->Attended->CurrentValue) <> "") {
				switch ($Certificates->Attended->CurrentValue) {
					case "y":
						$Certificates->Attended->ViewValue = "Yes";
						break;
					case "n":
						$Certificates->Attended->ViewValue = "No";
						break;
					case "u":
						$Certificates->Attended->ViewValue = "Unknown";
						break;
					default:
						$Certificates->Attended->ViewValue = $Certificates->Attended->CurrentValue;
				}
			} else {
				$Certificates->Attended->ViewValue = NULL;
			}
			$Certificates->Attended->CssStyle = "";
			$Certificates->Attended->CssClass = "";
			$Certificates->Attended->ViewCustomAttributes = "";

			// Paid
			if (strval($Certificates->Paid->CurrentValue) <> "") {
				switch ($Certificates->Paid->CurrentValue) {
					case "y":
						$Certificates->Paid->ViewValue = "Yes";
						break;
					case "n":
						$Certificates->Paid->ViewValue = "No";
						break;
					default:
						$Certificates->Paid->ViewValue = $Certificates->Paid->CurrentValue;
				}
			} else {
				$Certificates->Paid->ViewValue = NULL;
			}
			$Certificates->Paid->CssStyle = "";
			$Certificates->Paid->CssClass = "";
			$Certificates->Paid->ViewCustomAttributes = "";

			// TestRequired
			if (strval($Certificates->TestRequired->CurrentValue) <> "") {
				switch ($Certificates->TestRequired->CurrentValue) {
					case "1":
						$Certificates->TestRequired->ViewValue = "Yes";
						break;
					case "0":
						$Certificates->TestRequired->ViewValue = "No";
						break;
					default:
						$Certificates->TestRequired->ViewValue = $Certificates->TestRequired->CurrentValue;
				}
			} else {
				$Certificates->TestRequired->ViewValue = NULL;
			}
			$Certificates->TestRequired->CssStyle = "";
			$Certificates->TestRequired->CssClass = "";
			$Certificates->TestRequired->ViewCustomAttributes = "";

			// QuestionnaireID
			$Certificates->QuestionnaireID->ViewValue = $Certificates->QuestionnaireID->CurrentValue;
			$Certificates->QuestionnaireID->CssStyle = "";
			$Certificates->QuestionnaireID->CssClass = "";
			$Certificates->QuestionnaireID->ViewCustomAttributes = "";

			// TestCompleted
			if (strval($Certificates->TestCompleted->CurrentValue) <> "") {
				switch ($Certificates->TestCompleted->CurrentValue) {
					case "1":
						$Certificates->TestCompleted->ViewValue = "Yes";
						break;
					case "0":
						$Certificates->TestCompleted->ViewValue = "No";
						break;
					default:
						$Certificates->TestCompleted->ViewValue = $Certificates->TestCompleted->CurrentValue;
				}
			} else {
				$Certificates->TestCompleted->ViewValue = NULL;
			}
			$Certificates->TestCompleted->CssStyle = "";
			$Certificates->TestCompleted->CssClass = "";
			$Certificates->TestCompleted->ViewCustomAttributes = "";

			// TestPassed
			if (strval($Certificates->TestPassed->CurrentValue) <> "") {
				switch ($Certificates->TestPassed->CurrentValue) {
					case "1":
						$Certificates->TestPassed->ViewValue = "Yes";
						break;
					case "0":
						$Certificates->TestPassed->ViewValue = "No";
						break;
					default:
						$Certificates->TestPassed->ViewValue = $Certificates->TestPassed->CurrentValue;
				}
			} else {
				$Certificates->TestPassed->ViewValue = NULL;
			}
			$Certificates->TestPassed->CssStyle = "";
			$Certificates->TestPassed->CssClass = "";
			$Certificates->TestPassed->ViewCustomAttributes = "";

			// CertificateSent
			$Certificates->CertificateSent->ViewValue = $Certificates->CertificateSent->CurrentValue;
			$Certificates->CertificateSent->ViewValue = ew_FormatDateTime($Certificates->CertificateSent->ViewValue, 5);
			$Certificates->CertificateSent->CssStyle = "";
			$Certificates->CertificateSent->CssClass = "";
			$Certificates->CertificateSent->ViewCustomAttributes = "";

			// Select
			$Certificates->Select->ViewValue = $Certificates->Select->CurrentValue;
			$Certificates->Select->CssStyle = "";
			$Certificates->Select->CssClass = "";
			$Certificates->Select->ViewCustomAttributes = "";

			// EventID
			$Certificates->EventID->HrefValue = "";
			$Certificates->EventID->TooltipValue = "";

			// ContactFirstName
			$Certificates->ContactFirstName->HrefValue = "";
			$Certificates->ContactFirstName->TooltipValue = "";
			if ($Certificates->Export == "")
				$Certificates->ContactFirstName->ViewValue = ew_Highlight($Certificates->HighlightName(), $Certificates->ContactFirstName->ViewValue, "", "", $Certificates->getAdvancedSearch("x_ContactFirstName"));

			// ContactLastName
			$Certificates->ContactLastName->HrefValue = "";
			$Certificates->ContactLastName->TooltipValue = "";
			if ($Certificates->Export == "")
				$Certificates->ContactLastName->ViewValue = ew_Highlight($Certificates->HighlightName(), $Certificates->ContactLastName->ViewValue, "", "", $Certificates->getAdvancedSearch("x_ContactLastName"));

			// EmailAddress
			$Certificates->EmailAddress->HrefValue = "";
			$Certificates->EmailAddress->TooltipValue = "";
			if ($Certificates->Export == "")
				$Certificates->EmailAddress->ViewValue = ew_Highlight($Certificates->HighlightName(), $Certificates->EmailAddress->ViewValue, "", "", $Certificates->getAdvancedSearch("x_EmailAddress"));

			// Attended
			$Certificates->Attended->HrefValue = "";
			$Certificates->Attended->TooltipValue = "";

			// Paid
			$Certificates->Paid->HrefValue = "";
			$Certificates->Paid->TooltipValue = "";

			// TestRequired
			$Certificates->TestRequired->HrefValue = "";
			$Certificates->TestRequired->TooltipValue = "";

			// QuestionnaireID
			$Certificates->QuestionnaireID->HrefValue = "";
			$Certificates->QuestionnaireID->TooltipValue = "";

			// TestCompleted
			$Certificates->TestCompleted->HrefValue = "";
			$Certificates->TestCompleted->TooltipValue = "";

			// TestPassed
			$Certificates->TestPassed->HrefValue = "";
			$Certificates->TestPassed->TooltipValue = "";

			// CertificateSent
			$Certificates->CertificateSent->HrefValue = "";
			$Certificates->CertificateSent->TooltipValue = "";

			// Select
			$Certificates->Select->HrefValue = "";
			$Certificates->Select->TooltipValue = "";
		}

		// Call Row Rendered event
		if ($Certificates->RowType <> EW_ROWTYPE_AGGREGATEINIT)
			$Certificates->Row_Rendered();
	}

	// Validate search
	function ValidateSearch() {
		global $gsSearchError, $Certificates;

		// Initialize
		$gsSearchError = "";

		// Check if validation required
		if (!EW_SERVER_VALIDATE)
			return TRUE;

		// Return validate result
		$ValidateSearch = ($gsSearchError == "");

		// Call Form_CustomValidate event
		$sFormCustomError = "";
		$ValidateSearch = $ValidateSearch && $this->Form_CustomValidate($sFormCustomError);
		if ($sFormCustomError <> "") {
			if ($gsSearchError <> "") $gsSearchError .= "<br>";
			$gsSearchError .= $sFormCustomError;
		}
		return $ValidateSearch;
	}

	// Load advanced search
	function LoadAdvancedSearch() {
		global $Certificates;
		$Certificates->EventID->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_EventID");
		$Certificates->ContactFirstName->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_ContactFirstName");
		$Certificates->ContactLastName->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_ContactLastName");
		$Certificates->EmailAddress->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_EmailAddress");
		$Certificates->Attended->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_Attended");
		$Certificates->Paid->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_Paid");
		$Certificates->TestRequired->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_TestRequired");
		$Certificates->QuestionnaireID->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_QuestionnaireID");
		$Certificates->TestCompleted->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_TestCompleted");
		$Certificates->TestPassed->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_TestPassed");
		$Certificates->AttendeeID->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_AttendeeID");
		$Certificates->CertificateSent->AdvancedSearch->SearchValue = $Certificates->getAdvancedSearch("x_CertificateSent");
	}

	// Export data in HTML/CSV/Word/Excel/XML/Email format
	function ExportData() {
		global $Certificates;
		$utf8 = FALSE;
		$bSelectLimit = EW_SELECT_LIMIT;

		// Load recordset
		if ($bSelectLimit) {
			$this->lTotalRecs = $Certificates->SelectRecordCount();
		} else {
			if ($rs = $this->LoadRecordset())
				$this->lTotalRecs = $rs->RecordCount();
		}
		$this->lStartRec = 1;

		// Export all
		if ($Certificates->ExportAll) {
			$this->lDisplayRecs = $this->lTotalRecs;
			$this->lStopRec = $this->lTotalRecs;
		} else { // Export one page only
			$this->SetUpStartRec(); // Set up start record position

			// Set the last record to display
			if ($this->lDisplayRecs < 0) {
				$this->lStopRec = $this->lTotalRecs;
			} else {
				$this->lStopRec = $this->lStartRec + $this->lDisplayRecs - 1;
			}
		}
		if ($bSelectLimit)
			$rs = $this->LoadRecordset($this->lStartRec-1, $this->lDisplayRecs);
		if (!$rs) {
			header("Content-Type:"); // Remove header
			header("Content-Disposition:");
			$this->ShowMessage();
			return;
		}
		if ($Certificates->Export == "xml") {
			$XmlDoc = new cXMLDocument(EW_XML_ENCODING);
			$XmlDoc->AddRoot();
		} else {
			$ExportDoc = new cExportDocument($Certificates, "h");
			$ExportDoc->ExportHeader();
			if ($ExportDoc->Horizontal) { // Horizontal format, write header
				$ExportDoc->BeginExportRow();
				$ExportDoc->ExportCaption($Certificates->EventID);
				$ExportDoc->ExportCaption($Certificates->ContactFirstName);
				$ExportDoc->ExportCaption($Certificates->ContactLastName);
				$ExportDoc->ExportCaption($Certificates->EmailAddress);
				$ExportDoc->ExportCaption($Certificates->Attended);
				$ExportDoc->ExportCaption($Certificates->Paid);
				$ExportDoc->ExportCaption($Certificates->TestRequired);
				$ExportDoc->ExportCaption($Certificates->QuestionnaireID);
				$ExportDoc->ExportCaption($Certificates->TestCompleted);
				$ExportDoc->ExportCaption($Certificates->TestPassed);
				$ExportDoc->ExportCaption($Certificates->CertificateSent);
				$ExportDoc->EndExportRow();
			}
		}

		// Move to first record
		$this->lRecCnt = $this->lStartRec - 1;
		if (!$rs->EOF) {
			$rs->MoveFirst();
			if (!$bSelectLimit && $this->lStartRec > 1)
				$rs->Move($this->lStartRec - 1);
		}
		while (!$rs->EOF && $this->lRecCnt < $this->lStopRec) {
			$this->lRecCnt++;
			if (intval($this->lRecCnt) >= intval($this->lStartRec)) {
				$this->LoadRowValues($rs);

				// Render row
				$Certificates->CssClass = "";
				$Certificates->CssStyle = "";
				$Certificates->RowType = EW_ROWTYPE_VIEW; // Render view
				$this->RenderRow();
				if ($Certificates->Export == "xml") {
					$XmlDoc->AddRow();
					$XmlDoc->AddField('EventID', $Certificates->EventID->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('ContactFirstName', $Certificates->ContactFirstName->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('ContactLastName', $Certificates->ContactLastName->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('EmailAddress', $Certificates->EmailAddress->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('Attended', $Certificates->Attended->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('Paid', $Certificates->Paid->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('TestRequired', $Certificates->TestRequired->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('QuestionnaireID', $Certificates->QuestionnaireID->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('TestCompleted', $Certificates->TestCompleted->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('TestPassed', $Certificates->TestPassed->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
					$XmlDoc->AddField('CertificateSent', $Certificates->CertificateSent->ExportValue($Certificates->Export, $Certificates->ExportOriginalValue));
				} else {
					$ExportDoc->BeginExportRow(TRUE); // Allow CSS styles if enabled
					$ExportDoc->ExportField($Certificates->EventID);
					$ExportDoc->ExportField($Certificates->ContactFirstName);
					$ExportDoc->ExportField($Certificates->ContactLastName);
					$ExportDoc->ExportField($Certificates->EmailAddress);
					$ExportDoc->ExportField($Certificates->Attended);
					$ExportDoc->ExportField($Certificates->Paid);
					$ExportDoc->ExportField($Certificates->TestRequired);
					$ExportDoc->ExportField($Certificates->QuestionnaireID);
					$ExportDoc->ExportField($Certificates->TestCompleted);
					$ExportDoc->ExportField($Certificates->TestPassed);
					$ExportDoc->ExportField($Certificates->CertificateSent);
					$ExportDoc->EndExportRow();
				}
			}
			$rs->MoveNext();
		}
		if ($Certificates->Export <> "xml")
			$ExportDoc->ExportFooter();

		// Close recordset
		$rs->Close();

		// Clean output buffer
		if (!EW_DEBUG_ENABLED && ob_get_length())
			ob_end_clean();

		// Write BOM if utf-8
		if ($utf8 && !in_array($Certificates->Export, array("email", "xml")))
			echo "\xEF\xBB\xBF";

		// Write debug message if enabled
		if (EW_DEBUG_ENABLED)
			echo ew_DebugMsg();

		// Output data
		if ($Certificates->Export == "xml") {
			header("Content-Type: text/xml");
			echo $XmlDoc->XML();
		} elseif ($Certificates->Export == "email") {
			$this->ExportEmail($ExportDoc->Text);
			$this->Page_Terminate($Certificates->ExportReturnUrl());
		} else {
			echo $ExportDoc->Text;
		}
	}

	// Export email
	function ExportEmail($EmailContent) {
		global $Language, $Certificates;
		$sSender = @$_GET["sender"];
		$sRecipient = @$_GET["recipient"];
		$sCc = @$_GET["cc"];
		$sBcc = @$_GET["bcc"];
		$sContentType = @$_GET["contenttype"];

		// Subject
		$sSubject = ew_StripSlashes(@$_GET["subject"]);
		$sEmailSubject = $sSubject;

		// Message
		$sContent = ew_StripSlashes(@$_GET["message"]);
		$sEmailMessage = $sContent;

		// Check sender
		if ($sSender == "") {
			$this->setMessage($Language->Phrase("EnterSenderEmail"));
			return;
		}
		if (!ew_CheckEmail($sSender)) {
			$this->setMessage($Language->Phrase("EnterProperSenderEmail"));
			return;
		}

		// Check recipient
		if (!ew_CheckEmailList($sRecipient, EW_MAX_EMAIL_RECIPIENT)) {
			$this->setMessage($Language->Phrase("EnterProperRecipientEmail"));
			return;
		}

		// Check cc
		if (!ew_CheckEmailList($sCc, EW_MAX_EMAIL_RECIPIENT)) {
			$this->setMessage($Language->Phrase("EnterProperCcEmail"));
			return;
		}

		// Check bcc
		if (!ew_CheckEmailList($sBcc, EW_MAX_EMAIL_RECIPIENT)) {
			$this->setMessage($Language->Phrase("EnterProperBccEmail"));
			return;
		}

		// Check email sent count
		if (!isset($_SESSION[EW_EXPORT_EMAIL_COUNTER]))
			$_SESSION[EW_EXPORT_EMAIL_COUNTER] = 0;
		if (intval($_SESSION[EW_EXPORT_EMAIL_COUNTER]) > EW_MAX_EMAIL_SENT_COUNT) {
			$this->setMessage($Language->Phrase("ExceedMaxEmailExport"));
			return;
		}
		if ($sEmailMessage <> "") {
			$sEmailMessage = ew_RemoveXSS($sEmailMessage);
			$sEmailMessage .= ($sContentType == "url") ? "\r\n\r\n" : "<br><br>";
		}
		if ($sContentType == "url") {
			$sUrl = ew_ConvertFullUrl(ew_CurrentPage() . "?" . $this->ExportQueryString());
			$sEmailMessage .= $sUrl; // send URL only
		} else {
			$sEmailMessage .= $EmailContent; // send HTML
		}

		// Send email
		$Email = new cEmail();
		$Email->Sender = $sSender; // Sender
		$Email->Recipient = $sRecipient; // Recipient
		$Email->Cc = $sCc; // Cc
		$Email->Bcc = $sBcc; // Bcc
		$Email->Subject = $sEmailSubject; // Subject
		$Email->Content = $sEmailMessage; // Content
		$Email->Format = ($sContentType == "url") ? "text" : "html";
		$Email->Charset = EW_EMAIL_CHARSET;
		$EventArgs = array();
		$bEmailSent = FALSE;
		if ($Certificates->Email_Sending($Email, $EventArgs))
			$bEmailSent = $Email->Send();

		// Check email sent status
		if ($bEmailSent) {

			// Update email sent count
			$_SESSION[EW_EXPORT_EMAIL_COUNTER]++;

			// Sent email success
			$this->setMessage($Language->Phrase("SendEmailSuccess"));
		} else {

			// Sent email failure
			$this->setMessage($Email->SendErrDescription);
		}
	}

	// Export QueryString
	function ExportQueryString() {
		global $Certificates;

		// Initialize
		$sQry = "export=html";

		// Build QueryString for search
		$this->AddSearchQueryString($sQry, $Certificates->EventID); // EventID
		$this->AddSearchQueryString($sQry, $Certificates->ContactFirstName); // ContactFirstName
		$this->AddSearchQueryString($sQry, $Certificates->ContactLastName); // ContactLastName
		$this->AddSearchQueryString($sQry, $Certificates->EmailAddress); // EmailAddress
		$this->AddSearchQueryString($sQry, $Certificates->Attended); // Attended
		$this->AddSearchQueryString($sQry, $Certificates->Paid); // Paid
		$this->AddSearchQueryString($sQry, $Certificates->TestRequired); // TestRequired
		$this->AddSearchQueryString($sQry, $Certificates->QuestionnaireID); // QuestionnaireID
		$this->AddSearchQueryString($sQry, $Certificates->TestCompleted); // TestCompleted
		$this->AddSearchQueryString($sQry, $Certificates->TestPassed); // TestPassed
		$this->AddSearchQueryString($sQry, $Certificates->AttendeeID); // AttendeeID
		$this->AddSearchQueryString($sQry, $Certificates->CertificateSent); // CertificateSent

		// Build QueryString for pager
		$sQry .= "&" . EW_TABLE_REC_PER_PAGE . "=" . $Certificates->getRecordsPerPage() . "&" . EW_TABLE_START_REC . "=" . $Certificates->getStartRecordNumber();
		return $sQry;
	}

	// Add search QueryString
	function AddSearchQueryString(&$Qry, &$Fld) {
		global $Certificates;
		$FldParm = substr($Fld->FldVar, 2);
		$FldSearchValue = $Certificates->GetAdvancedSearch("x_" . $FldParm);
		if (strval($FldSearchValue) <> "") {
			$Qry .= "&x_" . $FldParm . "=" . FldSearchValue .
				"&z_" . $FldParm . "=" . $Certificates->GetAdvancedSearch("z_" . $FldParm);
		}
		$FldSearchValue2 = $Certificates->GetAdvancedSearch("y_" . $FldParm);
		if (strval($FldSearchValue2) <> "") {
			$Qry .= "&v_" . $FldParm . "=" . $Certificates->GetAdvancedSearch("v_" . $FldParm) .
				"&y_" . $FldParm . "=" . $FldSearchValue2 .
				"&w_" . $FldParm . "=" . $Certificates->GetAdvancedSearch("w_" . $FldParm);
		}
	}

	// Set up master/detail based on QueryString
	function SetUpMasterDetail() {
		global $Certificates;
		$bValidMaster = FALSE;

		// Get the keys for master table
		if (@$_GET[EW_TABLE_SHOW_MASTER] <> "") {
			$sMasterTblVar = $_GET[EW_TABLE_SHOW_MASTER];
			if ($sMasterTblVar == "") {
				$bValidMaster = TRUE;
				$this->sDbMasterFilter = "";
				$this->sDbDetailFilter = "";
			}
			if ($sMasterTblVar == "SchoolEvents") {
				$bValidMaster = TRUE;
				$this->sDbMasterFilter = $Certificates->SqlMasterFilter_SchoolEvents();
				$this->sDbDetailFilter = $Certificates->SqlDetailFilter_SchoolEvents();
				if (@$_GET["EventID"] <> "") {
					$GLOBALS["SchoolEvents"]->EventID->setQueryStringValue($_GET["EventID"]);
					$Certificates->EventID->setQueryStringValue($GLOBALS["SchoolEvents"]->EventID->QueryStringValue);
					$Certificates->EventID->setSessionValue($Certificates->EventID->QueryStringValue);
					if (!is_numeric($GLOBALS["SchoolEvents"]->EventID->QueryStringValue)) $bValidMaster = FALSE;
					$this->sDbMasterFilter = str_replace("@EventID@", ew_AdjustSql($GLOBALS["SchoolEvents"]->EventID->QueryStringValue), $this->sDbMasterFilter);
					$this->sDbDetailFilter = str_replace("@EventID@", ew_AdjustSql($GLOBALS["SchoolEvents"]->EventID->QueryStringValue), $this->sDbDetailFilter);
				} else {
					$bValidMaster = FALSE;
				}
			}
			if ($sMasterTblVar == "SchoolAttendees") {
				$bValidMaster = TRUE;
				$this->sDbMasterFilter = $Certificates->SqlMasterFilter_SchoolAttendees();
				$this->sDbDetailFilter = $Certificates->SqlDetailFilter_SchoolAttendees();
				if (@$_GET["AttendeeID"] <> "") {
					$GLOBALS["SchoolAttendees"]->AttendeeID->setQueryStringValue($_GET["AttendeeID"]);
					$Certificates->AttendeeID->setQueryStringValue($GLOBALS["SchoolAttendees"]->AttendeeID->QueryStringValue);
					$Certificates->AttendeeID->setSessionValue($Certificates->AttendeeID->QueryStringValue);
					if (!is_numeric($GLOBALS["SchoolAttendees"]->AttendeeID->QueryStringValue)) $bValidMaster = FALSE;
					$this->sDbMasterFilter = str_replace("@AttendeeID@", ew_AdjustSql($GLOBALS["SchoolAttendees"]->AttendeeID->QueryStringValue), $this->sDbMasterFilter);
					$this->sDbDetailFilter = str_replace("@AttendeeID@", ew_AdjustSql($GLOBALS["SchoolAttendees"]->AttendeeID->QueryStringValue), $this->sDbDetailFilter);
				} else {
					$bValidMaster = FALSE;
				}
			}
		}
		if ($bValidMaster) {

			// Save current master table
			$Certificates->setCurrentMasterTable($sMasterTblVar);

			// Reset start record counter (new master key)
			$this->lStartRec = 1;
			$Certificates->setStartRecordNumber($this->lStartRec);
			$Certificates->setMasterFilter($this->sDbMasterFilter); // Set up master filter
			$Certificates->setDetailFilter($this->sDbDetailFilter); // Set up detail filter

			// Clear previous master key from Session
			if ($sMasterTblVar <> "SchoolEvents") {
				if ($Certificates->EventID->QueryStringValue == "") $Certificates->EventID->setSessionValue("");
			}
			if ($sMasterTblVar <> "SchoolAttendees") {
				if ($Certificates->AttendeeID->QueryStringValue == "") $Certificates->AttendeeID->setSessionValue("");
			}
		} else {
			$this->sDbMasterFilter = $Certificates->getMasterFilter(); //  Restore master filter
			$this->sDbDetailFilter = $Certificates->getDetailFilter(); // Restore detail filter
		}
	}

		// Page Load event
function Page_Load() {
    global $Certificates;  
    //echo "Page Load";       
    if (isset($_REQUEST['EventID']) && strlen($_REQUEST['EventID']) > 0) {
      $_SESSION['EventID'] = $_REQUEST['EventID'];
    }
    
    certificatesListMenu();
}     

	// Page Unload event
	function Page_Unload() {

		//echo "Page Unload";
	}

	// Page Redirecting event
	function Page_Redirecting(&$url) {

		// Example:
		//$url = "your URL";

	}

	// Message Showing event
	function Message_Showing(&$msg) {

		// Example:
		//$msg = "your new message";

	}

	// Form Custom Validate event
	function Form_CustomValidate(&$CustomError) {

		// Return error message in CustomError
		return TRUE;
	}

		// ListOptions Load event
function ListOptions_Load() {
    // Example: 
    //$this->ListOptions->Add("new");
    //$this->ListOptions->Items["new"]->OnLeft = TRUE; // Link on left
    //$this->ListOptions->MoveItem("new", 0); // Move to first column
        $this->ListOptions->Add("extras");
        $this->ListOptions->Items["extras"]->CssStyle = "white-space: nowrap;";
}           

		// ListOptions Rendered event
function ListOptions_Rendered() {   
    global $Certificates;
    // Example: 
    //$this->ListOptions->Items["new"]->Body = "xxx";
    $this->ListOptions->Items["extras"]->Body=Certificates_ListOptions_Rendered($Certificates);
    
}   


}
?>