/// <summary>
    /// Fills given drop-down list with the items of particular type.
    /// </summary>
    private void DisplayAvailableItems()
    {
        if (RelatedObject != null)
        {
            // Prepare the site where
            string where = null;
            if (RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN)
            {
                int selectedSiteId = -1;

                // Add where
                if (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null)
                {
                    selectedSiteId = ValidationHelper.GetInteger(siteSelector.Value, -1);
                }

                if (selectedSiteId == 0)
                {
                    where = RelatedObject.SiteIDColumn + " IS NULL";
                }
                else
                {
                    where = RelatedObject.SiteIDColumn + " = " + selectedSiteId;
                }
            }

            // Load the object selectors
            if (ActiveLeft)
            {
                // Active left selector
                selLeftObj.Enabled        = true;
                selLeftObj.ObjectType     = RelatedObject.ObjectType;
                selLeftObj.WhereCondition = where;
                selLeftObj.Reload(true);

                if (!selLeftObj.HasData)
                {
                    selLeftObj.DropDownSingleSelect.Items.Add(new ListItem(GetString("General.NoneAvailable"), ""));
                    selLeftObj.Enabled = false;
                }
            }
            else
            {
                // Active right selector
                selRightObj.Enabled        = true;
                selRightObj.ObjectType     = RelatedObject.ObjectType;
                selRightObj.WhereCondition = where;
                selRightObj.Reload(true);

                if (!selRightObj.HasData)
                {
                    selRightObj.DropDownSingleSelect.Items.Add(new ListItem(GetString("General.NoneAvailable"), ""));
                    selRightObj.Enabled = false;
                }
            }
        }
    }
    /// <summary>
    /// Gets the where condition for the selected object type.
    /// </summary>
    /// <param name="selectedObjectType">Selected object type</param>
    public string GetWhereCondition(string selectedObjectType)
    {
        if (Object != null)
        {
            string where = null;

            if (RelatedObject != null)
            {
                // Get the site name

                if ((RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN) && (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null))
                {
                    if (siteSelector.DropDownSingleSelect.Items.Count == 0)
                    {
                        siteSelector.Value = CMSContext.CurrentSiteID;
                    }

                    if (siteSelector.HasData)
                    {
                        // Set the site name for registration
                        int selectedSiteId = ValidationHelper.GetInteger(siteSelector.Value, 0);
                        if (selectedSiteId >= 0)
                        {
                            string siteWhere = QueryProvider.GetQuery(RelatedObject.ObjectType + ".selectall", RelatedObject.IDColumn, SqlHelperClass.GetSiteIDWhereCondition(RelatedObject.SiteIDColumn, selectedSiteId), null, 0);

                            // Where condition for the left object
                            string rightWhere = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, false, true, selectedObjectType);
                            rightWhere += " AND RelationshipLeftObjectID IN (" + siteWhere + ")";

                            // Where condition for the left object
                            string leftWhere = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, true, false, selectedObjectType);
                            leftWhere += " AND RelationshipRightObjectID IN (" + siteWhere + ")";

                            // --- Add site conditions here

                            where = SqlHelperClass.AddWhereCondition(leftWhere, rightWhere, "OR");
                        }
                    }
                }
            }

            if (String.IsNullOrEmpty(where))
            {
                // Get using regular where
                where = ObjectRelationshipInfoProvider.GetWhereCondition(ObjectID, ObjectType, 0, true, true, selectedObjectType);
            }

            return(where);
        }

        return(null);
    }
    /// <summary>
    /// Refreshes the selection of site.
    /// </summary>
    protected void RefreshNewSiteSelection()
    {
        if (RelatedObject != null)
        {
            if ((RelatedObject.SiteIDColumn != TypeInfo.COLUMN_NAME_UNKNOWN) && (CMSObjectHelper.GetSiteBindingObject(RelatedObject) == null))
            {
                pnlSite.Visible = true;

                siteSelector_OnSelectionChanged(null, null);
            }
            else
            {
                pnlSite.Visible = false;
            }
        }
    }