protected override void OnLoad(EventArgs e)
		{
			base.OnLoad(e);
			_securityHelper = new Business.SecurityHelper(_itatSystem);
			if (!AllowAccess())
			{
                UnauthorizedPageAccess();
			}
		}
		private Business.SearchCriteria GetSearchCriteria()
		{
			Business.SearchCriteria criteria = new Business.SearchCriteria();
			criteria.ManagedItemNumber = txtManagedItemNumber.Text;

			if (ddlTemplate.SelectedIndex > 0)
				criteria.TemplateId = new Guid(ddlTemplate.SelectedValue);
			else
				criteria.TemplateId = null;

			if (ddlStatus.SelectedIndex > 0)
			{
				criteria.Statuses.Add(ddlStatus.SelectedValue);
			}
			else
			{
				//build list of statuses that were in the Status dropdown
				if (_securityHelper == null)
					_securityHelper = new Business.SecurityHelper(_itatSystem);
				List<Business.Status> statuses = _itatSystem.ViewableStatuses(_securityHelper.UserRoles);
				foreach (Business.Status status in statuses)
					criteria.Statuses.Add(status.Name);
			}

			if (!string.IsNullOrEmpty(txtKeywords.Text))
				criteria.KeyWords = txtKeywords.Text;
			else
				criteria.KeyWords = null;

			//Read system term controls
			foreach (Business.Term term in _itatSystem.Terms)
			{
				switch (term.TermType)
				{
					case Kindred.Knect.ITAT.Business.TermType.Date:
					case Kindred.Knect.ITAT.Business.TermType.Renewal:
						switch (term.DBFieldName)
						{
							case Data.DataNames._C_Term3:
							case Data.DataNames._C_Term6:
							case Data.DataNames._C_Term7:
								DateTime dt;
								Business.SearchCriteria.DateRange dateRange = new Business.SearchCriteria.DateRange();
								if (DateTime.TryParse(Request.Form[Helper.ControlID(term.Name, Common.Names._IDENTIFIER_StartDate)], out dt))
									dateRange.Start = dt;
								if (DateTime.TryParse(Request.Form[Helper.ControlID(term.Name, Common.Names._IDENTIFIER_EndDate)], out dt))
									dateRange.End = dt;
								switch (term.DBFieldName)
								{
									case Data.DataNames._C_Term3:
										criteria.DateTerm3Range = dateRange;
										break;

									case Data.DataNames._C_Term6:
										criteria.DateTerm6Range = dateRange;
										break;

									case Data.DataNames._C_Term7:
										criteria.DateTerm7Range = dateRange;
										break;
								}
								break;
						}
						break;

					case Kindred.Knect.ITAT.Business.TermType.Facility:
						Business.FacilityTerm facilityTerm = term as Business.FacilityTerm;
						string strFacID = Request.Form[Helper.ControlID(term.Name, Kindred.Knect.ITAT.Business.TermType.Facility)];
						if (!string.IsNullOrEmpty(strFacID))
						{
							int facID = int.Parse(strFacID);
							if (facID > 0)
							{
								criteria.FacilityIds.Add(int.Parse(strFacID));
							}
							else
							{
								Business.FacilityCollection facilities;
								if (facilityTerm.UseUserSecurity ?? false)
									if (facilityTerm.IncludeChildren ?? false)
										facilities = Business.FacilityCollection.FilteredFacilityList(_securityHelper.AllUserFacilities, facilityTerm);
									else
										facilities = Business.FacilityCollection.FilteredFacilityList(_securityHelper.UserFacilities, facilityTerm);
								else
									facilities = Business.FacilityCollection.FilteredFacilityList(Business.FacilityCollection.FacilityList(Data.Facility.CorporateFacilityId, facilityTerm.IncludeChildren ?? false), facilityTerm);
								criteria.FacilityIds.AddRange(facilities.Keys);
							}
						}
						break;

					default:
						string value = Request.Form[Helper.ControlID(term.Name, term.TermType)];
						if (!string.IsNullOrEmpty(value))
						{
							value = criteria.UpdateTermValue(term.DBFieldName, value, _itatSystem);
							switch (term.DBFieldName)
							{
								case Data.DataNames._C_Term1:
									criteria.TextTerm1 = value;
									break;

								case Data.DataNames._C_Term2:
									criteria.TextTerm2 = value;
									break;

								case Data.DataNames._C_Term4:
									criteria.TextTerm4 = value;
									break;

								case Data.DataNames._C_Term5:
									criteria.TextTerm5 = value;
									break;

								default:
									break;
							}
						}
						break;
				}
			}

			foreach (Business.ExternalInterfaceConfig eic in _itatSystem.ExternalInterfaces)
			{
				Business.ExternalTerm extTerm = _externalTerms[eic.Name];
				if (extTerm.SelectedItems != null)
				{
					ExternalTermControl c = BuildExternalControl(eic);
					Business.ExternalInterfaceSearchCriteria eisc = new Kindred.Knect.ITAT.Business.ExternalInterfaceSearchCriteria();
					eisc.InterfaceConfigName = eic.Name;
					eisc.Values = new List<Business.ExternalInterfaceSearchCriteriaValue>();
					foreach (Business.ExternalInterfaceListItem eili in extTerm.SelectedItems)
					{
						Business.ExternalInterfaceSearchCriteriaValue eiscv = new Kindred.Knect.ITAT.Business.ExternalInterfaceSearchCriteriaValue();
						eiscv.KeyValue = eili.Key;
						foreach (string fieldName in eili.FieldValues.Keys)
							eiscv.Details.Add(new Kindred.Knect.ITAT.Business.ExternalInterfaceSearchCriteriaDetail(fieldName, eili.FieldValues[fieldName]));
						eisc.Values.Add(eiscv);
					}
					criteria.ExternalTermsCriteria.Add(eisc.InterfaceConfigName, eisc);
				}
			}
			return criteria;
		}
 //This returns a list of role names or null if this is an 'AdminViewer'
 protected List<string> UserRolesOrAdminViewer()
 {
     List<string> roles = null;
     if (_securityHelper == null)
         _securityHelper = new Business.SecurityHelper(_itatSystem);
     if (Utility.ListHelper.HaveAMatch(_itatSystem.AllowedRoles(Business.XMLNames._AF_AdminViewer), _securityHelper.UserRoles))
         roles = null;
     else
         roles = _securityHelper.UserRoles;
     return roles;
 }
		private void LoadTemplates()
		{
            if (_securityHelper == null)
                _securityHelper = new Business.SecurityHelper(_itatSystem);
            Helper.LoadListControl(ddlTemplate, Business.Template.GetTemplateListWithStatus(_itatSystem.ID, new short[] { (short)Business.TemplateStatusType.Active }, _securityHelper.UserRoles), "TemplateName", "TemplateID", string.Empty, true, "(Select a Template)", string.Empty);
		}