protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            int emailID = Convert.ToInt32(Request.QueryString["emailID"]);

            // create object
            qCom_EmailTool email = new qCom_EmailTool(emailID);

            qPtl_User user = new qPtl_User(Convert.ToInt32(Context.Items["UserID"]));
            txtEmail.Text = user.Email;

            lblSubject.Text = email.emailSubject;

            // get headers and footers
            string query = "SELECT TOP(1) * FROM qCom_EmailPreferences WHERE Available = 'Yes'";
            qDbs_SQLcode sql = new qDbs_SQLcode();
            SqlDataReader eReader = sql.GetDataReader(query);

            eReader.Read();
            string header = Convert.ToString(eReader["Header"]);
            string footer = Convert.ToString(eReader["Footer"]);
            string unsubscribe = Convert.ToString(eReader["Unsubscribe"]);
            eReader.Close();

            // if email type is bulk, then add footer
            string completeMessage = header + email.emailDraft + footer;
            if (email.emailType == "bulk")
            {
                completeMessage += unsubscribe;
            }

            lblBody.Text = completeMessage;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string sqlCode = string.Empty;
            qDbs_SQLcode sql = new qDbs_SQLcode();

            // get emails
            sqlCode = "SELECT EmailID, URI FROM qCom_EmailItem WHERE Type <> 'Individual Email' AND ScopeID = " + Context.Items["ScopeID"] + " ORDER BY Subject ASC";

            DataTable dtEmails;
            dtEmails = sql.GetDataTable(sqlCode);

            ddlEmails.DataSource = dtEmails;
            ddlEmails.DataValueField = "EmailID";
            ddlEmails.DataTextField = "URI";
            ddlEmails.DataBind();

            // get searches
            sqlCode = "SELECT SearchID, SavedName FROM qDbs_Searches WHERE Saved = 'Yes' AND YesEmail = 'Yes' ORDER BY SavedName ASC";

            DataTable dtSearches;
            dtSearches = sql.GetDataTable(sqlCode);

            ddlSearches.DataSource = dtSearches;
            ddlSearches.DataValueField = "SearchID";
            ddlSearches.DataTextField = "SavedName";
            ddlSearches.DataBind();

            // get prior data if edit mode
            if (Request.QueryString["sendEventID"] != null && Request.QueryString["sendEventID"] != "")
            {
                sqlCode = "SELECT * FROM qCom_SendEvents WHERE SendEventID = " + Request.QueryString["sendEventID"];

                using (SqlDataReader eReader = sql.GetDataReader(sqlCode))
                {
                    eReader.Read();
                    ddlEmails.SelectedValue = Convert.ToString(eReader["EmailID"]);
                    ddlSearches.SelectedValue = Convert.ToString(eReader["SearchID"]);
                    DateTime startDate = new DateTime();
                    startDate = Convert.ToDateTime(eReader["StartDate"]);
                    datStart.SelectedDate = startDate;
                    rblRecurring.SelectedValue = Convert.ToString(eReader["Recurring"]);
                    rblRunning.SelectedValue = Convert.ToString(eReader["Running"]);
                    rblHeader.SelectedValue = Convert.ToString(eReader["IncludeHeader"]);
                    rblFooter.SelectedValue = Convert.ToString(eReader["IncludeFooter"]);
                    rblUnsubscribe.SelectedValue = Convert.ToString(eReader["IncludeUnsubscribe"]);
                    eReader.Close();
                }
            }

        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            profile_id = Convert.ToInt32(Request.QueryString["userID"]);

            qPtl_User profile = new qPtl_User(profile_id);
            username = profile.UserName;

            string curr_tab = string.Empty;
            curr_tab = Request.QueryString["currTab"];
            lit1Class.Text = "";
            lit2Class.Text = "";
            lit3Class.Text = "";
            lit4Class.Text = "";
            lit5Class.Text = "";
            litTab1Class.Text = "class=\"tab-pane\"";
            litTab2Class.Text = "class=\"tab-pane\"";
            litTab3Class.Text = "class=\"tab-pane\"";
            litTab4Class.Text = "class=\"tab-pane\"";
            litTab5Class.Text = "class=\"tab-pane\"";
            if (curr_tab == "overview")
            {
                lit1Class.Text = "class='active'";
                litTab1Class.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblTab1Message.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "trainings")
            {
                lit2Class.Text = "class='active'";
                litTab2Class.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblTab2Message.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "assessments")
            {
                lit3Class.Text = "class='active'";
                litTab3Class.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblTab3Message.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "certificates")
            {
                lit4Class.Text = "class='active'";
                litTab4Class.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblTab4Message.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "tools")
            {
                lit5Class.Text = "class='active'";
                litTab5Class.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblTab5Message.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else
            {
                lit1Class.Text = "class='active'";
                litTab1Class.Text = "class=\"tab-pane active\"";
            }

            // tab 2 - assigned trainings
            var u_trainings = qLrn_UserTraining_View.GetUserTrainings(profile_id);
            string u_training_html = string.Empty;

            if (u_trainings != null)
            {
                foreach (var t in u_trainings)
                {
                    u_training_html += "<strong>" + t.Title + "</strong><br>Status: " + t.Status + "<br><br>";
                }
                litUserTrainingList.Text = u_training_html;
            }
            else
                litUserTrainingList.Text = "No trainings assigned";

            // tab 3 - assessments
            userAssessments.SelectCommand = "SELECT * FROM qLrn_UserAssessments_View WHERE UserID = " + profile_id + " AND Available = 'Yes' AND MarkAsDelete = 0 AND Created > '" + System.Configuration.ConfigurationManager.AppSettings["Solution_StartDate"] + "' ORDER BY Created DESC";

            startDate = null;
            endDate = null;

            // tab 4 - certificates
            var certificates = qLrn_UserTrainingCertificates.GetUserTrainingCertificates(profile_id);

            if (certificates != null)
            {
                string cert_html = string.Empty;

                foreach (var c in certificates)
                {
                    if (c.UserTrainingCertificateID > 0)
                    {
                        qLrn_UserTraining_View training = new qLrn_UserTraining_View(c.UserTrainingID);

                        cert_html += "<li><i class=\"icon-download-alt\"></i>  <a href=\"/user_data/" + profile.UserName + "/" + c.FileName + "\"><strong>" + training.Title + "</strong></a> uploaded at: " + c.Created + "</li>";
                    }
                }

                if (!String.IsNullOrEmpty(cert_html))
                    litCertificates.Text = cert_html;
                else
                    litCertificates.Text = "No Certificates.";
            }
            else
            {
                litCertificates.Text = "No Certificates.";
            }

            // tab 5 - tools
            // TOOL: Add Trainings
            string sqlCode = string.Empty;
            qDbs_SQLcode sql = new qDbs_SQLcode();
            q_Helper helper = new q_Helper();

            // get roles
            sqlCode = "SELECT TrainingID, Title FROM qLrn_Trainings WHERE Available = 'Yes' ORDER BY TrainingID";

            DataTable dtTrainings;

            using (dtTrainings = sql.GetDataTable(sqlCode))
            {

                cblTrainings.DataSource = dtTrainings;
                cblTrainings.DataValueField = "TrainingID";
                cblTrainings.DataTextField = "Title";
                cblTrainings.DataBind();
            }

            // mark current trainings
            sqlCode = "SELECT TrainingID FROM qLrn_UserTrainings WHERE UserID = " + Request.QueryString["userID"];

            SqlDataReader rReader;

            int i = 0;
            using (rReader = sql.GetDataReader(sqlCode))
            {
                while (rReader.Read())
                {
                    ListItem currentCheckBox = cblTrainings.Items.FindByValue(rReader["TrainingID"].ToString());
                    if (currentCheckBox != null)
                    {
                        currentCheckBox.Selected = true;
                    }
                    i++;
                }
            }
            litNumTrainings.Text = "Member is enrolled in <strong>" + i + " trainings</strong>";

            // TOOL: Reset/Delete Trainings
            plhTrainings.Visible = false;
            plhResetOptions.Visible = false;
            btnProcessTrainings.Visible = false;
            dpkStartDate.SelectedDate = DateTime.Now.AddDays(-1);
            txtDaysAvailable.Text = "4000";

            var u_assessments = qLrn_UserAssessment.GetUserAssessments(profile_id, "");
            int num_assessments = 0;
            if (u_assessments != null)
                num_assessments = u_assessments.Count;
            litNumAssessments.Text = "Member has taken <strong>" + num_assessments + " assessments</strong>";
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            // get all send events
            string sqlCode = string.Empty;

            sqlCode = "SELECT * FROM qCom_SendEvents_View WHERE (Available = 'Yes' AND Running = 'Yes' AND Recurring = 'Yes' AND GetDate() > StartDate) OR (Available = 'Yes' AND Running = 'Yes' AND Recurring = 'No' AND (GetDate() Between StartDate AND StartDate+1)) ORDER BY Priority ASC";
            qDbs_SQLcode sql = new qDbs_SQLcode();
            SqlDataReader eReader = sql.GetDataReader(sqlCode);

            if (eReader.HasRows)
            {
                while (eReader.Read())
                {
                    // see if there are custom email preferences if this send event is associated with a campaign
                    int campaign_id = 0;
                    string custom_email = string.Empty;
                    string custom_email_from = string.Empty;
                    bool get_custom_did = false;

                    if (!String.IsNullOrEmpty(Convert.ToString(eReader["CampaignID"])))
                        campaign_id = Convert.ToInt32(eReader["CampaignID"]);

                    if (campaign_id > 0)
                    {
                        var pref = qCom_CampaignPreference.GetCampaignPreferences(campaign_id);
                        if (pref != null)
                        {
                            if (pref.CampaignPreferenceID > 0)
                            {
                                if (!String.IsNullOrEmpty(pref.CampaignEmail))
                                    custom_email = pref.CampaignEmail;
                                if (!String.IsNullOrEmpty(pref.CampaignEmailFrom))
                                    custom_email_from = pref.CampaignEmailFrom;

                                // see if we need to get / integrated a custom DID
                                if (pref.IncludeCustomDID == true)
                                    get_custom_did = true;
                            }
                        }
                    }

                    // get email preferences
                    string sqlCode2 = "SELECT TOP(1) * FROM qCom_EmailPreferences WHERE Available = 'Yes'";
                    SqlDataReader pReader = sql.GetDataReader(sqlCode2);

                    pReader.Read();
                    string header = Convert.ToString(pReader["Header"]);
                    string footer = Convert.ToString(pReader["Footer"]);
                    string unsubscribe = Convert.ToString(pReader["Unsubscribe"]);
                    string fromEmailAddress = string.Empty;
                    string fromName = string.Empty;
                    if (!String.IsNullOrEmpty(custom_email))
                        fromEmailAddress = custom_email;
                    else
                        fromEmailAddress = Convert.ToString(pReader["FromEmailAddress"]);
                    if (!String.IsNullOrEmpty(custom_email_from))
                        fromName = custom_email_from;
                    else
                        fromName = Convert.ToString(pReader["fromName"]);
                    pReader.Close();

                    //try
                    //{
                        lblMessage.Text += "<br>Sending...";
                        // create object
                        int emailID = Convert.ToInt32(eReader["emailID"]);
                        string contactQuery = "SELECT " + Convert.ToString(eReader["sqlSELECT"]) + " FROM " + Convert.ToString(eReader["sqlFROM"]) + " WHERE " + Convert.ToString(eReader["sqlWHERE"]);
                        bool is_contact_list = false;
                        if (Convert.ToString(eReader["sqlFROM"]).Contains("qCom_Contacts"))
                            is_contact_list = true;

                        qCom_EmailTool email = new qCom_EmailTool(emailID);

                        // get addresses
                        string[][] contacts = email.GetSendEventContacts(contactQuery, get_custom_did, campaign_id, Convert.ToInt32(Context.Items["ScopeID"]), is_contact_list);

                        string messageBody = string.Empty;
                        string includeHeader = Convert.ToString(eReader["IncludeHeader"]);
                        string includeFooter = Convert.ToString(eReader["IncludeFooter"]);
                        string includeUnsubscribe = Convert.ToString(eReader["IncludeUnsubscribe"]);

                        if (includeHeader == "Yes")
                        {
                            messageBody += header;
                        }

                        messageBody += email.emailDraft;

                        if (includeFooter == "Yes")
                        {
                            messageBody += footer;
                        }
                        if (includeUnsubscribe == "Yes")
                        {
                            messageBody += unsubscribe;
                        }

                        //(string[][] addresses, string strFrom, string strFromEmail, string requestURL, string strSubject, string rawEmailContent, string userID, string value1, string value2, bool sendCopyToAdmins, bool noDuplicatesToday, bool noDontSend, int emailID)
                        ArrayList[] output = email.SendMail(contacts, fromName, fromEmailAddress, "bulkemail", email.emailSubject, messageBody, "", "", "", "", "", false, true, true, emailID, get_custom_did, campaign_id);

                        lblMessage.Text += "finished sending email: " + email.emailSubject + "; send event id = " + Convert.ToString(eReader["SendEventID"]) + "; number of recipients=" + contacts.Length;
                    //}
                    //catch
                    //{
                    //    lblMessage.Text += "A problem has occurred<br>";
                    //}
                }

                eReader.Close();

            }
            else
            {
                lblMessage.Text += "There are no scheduled send events.<br>";
            }

        }
        else
        {
            lblMessage.Text += "Problem with key or page incorrectly loaded.<br>";
        }
    }
    protected void AddRoleCampaigns(int role_id, int scope_id, qPtl_User user)
    {
        //Add role campaigns
        string sqlCode = string.Empty;
        string returnMessage = string.Empty;
        qDbs_SQLcode sql = new qDbs_SQLcode();

        sqlCode = string.Format("SELECT * FROM qSoc_RoleCampaigns WHERE RoleID = " + role_id + " AND Available = 'Yes' AND ScopeID = " + scope_id);

        int campaignID = 0;
        string progressMode = string.Empty;

        using (SqlDataReader sReader = sql.GetDataReader(sqlCode))
        {
            if (sReader.HasRows)
            {
                while (sReader.Read())
                {
                    campaignID = Convert.ToInt32(sReader["CampaignID"]);

                    qSoc_UserCampaign checkc = new qSoc_UserCampaign(user.UserID, campaignID);
                    if (checkc.UserCampaignID == 0)
                    {
                        //create campaign for user
                        qSoc_UserCampaign campaign = new qSoc_UserCampaign();
                        qSoc_Campaign cam = new qSoc_Campaign(campaign.CampaignID);

                        campaign.ScopeID = 1;
                        campaign.CampaignID = campaignID;
                        campaign.Available = "Yes";
                        campaign.Created = DateTime.Now;
                        campaign.CreatedBy = user.UserID;
                        campaign.UserID = user.UserID;
                        campaign.CampaignStatus = "In Progress";
                        // following parameters are defaults based on these campaigns being created associated to user roles and not spaces
                        campaign.SpaceID = 0;
                        campaign.EnrollmentType = "role";
                        campaign.Enrolled = DateTime.Now;
                        if (cam.SetupRequired != true)
                        {
                            campaign.CampaignStart = DateTime.Now;
                        }

                        //add campaign actions
                        int j = 0;
                        var cActions = qSoc_CampaignAction.GetCampaignActions(campaignID);
                        foreach (var i in cActions)
                        {
                            // get values
                            qSoc_UserCampaignAction cUserAction = new qSoc_UserCampaignAction();

                            cUserAction.UserID = user.UserID;
                            cUserAction.ScopeID = 1;
                            cUserAction.Available = "Yes";
                            cUserAction.Created = DateTime.Now;
                            cUserAction.CreatedBy = 0;
                            cUserAction.CampaignActionID = i.CampaignActionID;
                            if (j == 0)
                            {
                                cUserAction.Status = "In Progress";
                                campaign.CurrentCampaignActionID = i.CampaignActionID;
                            }
                            else
                            {
                                cUserAction.Status = "Not Started";
                            }

                            cUserAction.Insert();

                            j++;
                        }

                        // create campaign record now that have current campaign actionID
                        campaign.Insert();
                    }
                }
            }
        }
    }
    protected void AddSpaceCampaigns(qSoc_Space space, qPtl_User user, int scope_id)
    {
        //Add space campaigns
        string sqlCode = string.Empty;
        string returnMessage = string.Empty;
        qDbs_SQLcode sql = new qDbs_SQLcode();

        sqlCode = string.Format("SELECT * FROM qSoc_SpaceCampaigns WHERE SpaceID = " + space.SpaceID + " AND Available = 'Yes' AND ScopeID = " + scope_id);

        int campaignID = 0;
        string progressMode = string.Empty;

        using (SqlDataReader sReader = sql.GetDataReader(sqlCode))
        {
            if (sReader.HasRows)
            {
                while (sReader.Read())
                {
                    campaignID = Convert.ToInt32(sReader["CampaignID"]);

                    qSoc_UserCampaign checkc = new qSoc_UserCampaign(user.UserID, campaignID);
                    if (checkc.UserCampaignID == 0)
                    {
                        //create campaign for user
                        qSoc_Campaign campaign = new qSoc_Campaign(campaignID);

                        AddUserCampaign(campaign.CampaignID, scope_id, user);
                    }
                }
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            profile_id = Convert.ToInt32(Request.QueryString["userID"]);

            qPtl_User profile = new qPtl_User(profile_id);

            hplManageTrainings.NavigateUrl = "member-learning.aspx?userID=" + profile_id;
            string nav_mode = System.Configuration.ConfigurationManager.AppSettings["Site_NavMode"];
            if (nav_mode == "lms")
                plhSchoolDisplay.Visible = false;

            string img_url = string.Empty;
            string baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/";

            if (!String.IsNullOrEmpty(profile.ProfilePict))
                img_url = baseUrl + "user_data/" + profile.UserName + "/" + profile.ProfilePict + ".ashx?width=84&height=84&mode=crop";
            else
                img_url = baseUrl + "images/mylife_portrait_default.jpg.ashx?width=84&height=84&mode=crop";

            litProfilePict.Text = "<img src=\"" + img_url + "\" />";

            lblUsername.Text = profile.UserName;
            lblFullName.Text = profile.FirstName + " " + profile.LastName;
            lblEmail.Text = profile.Email;
            lblUserID.Text = Convert.ToString(profile.UserID);
            lblCreated.Text = Convert.ToString(profile.Created);
            lblMostRecentLogin.Text = Convert.ToString(profile.LastTimeSeen);
            lblMostRecentIPAddress.Text = profile.LastIPAddress;
            lblRoleName.Text = profile.HighestRole;

            txtFirstName.Text = profile.FirstName;
            txtLastName.Text = profile.LastName;
            txtEmail.Text = profile.Email;
            lblUsernameProfile.Text = profile.UserName;
            if (profile.HighestRole == "Mobile")
            {
                lblMemberTypeProfile.Text = "Mobile Only";
            }
            else
            {
                lblMemberTypeProfile.Text = "Social";
                required_indicator = " *";
                if (race_required == true)
                    race_required_indicator = " *";
            }

            qPtl_UserProfile full_profile = new qPtl_UserProfile(profile_id);
            DateTime check = new DateTime();
            check = Convert.ToDateTime("1/1/1900");
            if (full_profile.DOB != check)
            {
                try
                {
                    rdtDOB.SelectedDate = Convert.ToDateTime(full_profile.DOB).Date;
                }
                catch
                {
                    // do nothing
                }
            }

            var user_space = qSoc_UserSpace_View.GetMostRecentUserspace(profile_id);

            if (user_space != null)
            {
                if (user_space.UserSpaceID > 0)
                {
                    lblSchool.Text = user_space.School;
                    string full_info = string.Empty;
                    full_info = user_space.SpaceShortName;
                    if (!String.IsNullOrEmpty(user_space.CategoryName))
                        full_info += " [" + user_space.CategoryName + "]";
                    if (!String.IsNullOrEmpty(user_space.School))
                        full_info += " at " + user_space.School;
                    lblGroupTabGroupName.Text = "<a href=\"/manage/members/space-edit.aspx?spaceID=" + user_space.SpaceID + "\">" + full_info + " <i class=\"icon-circle-arrow-right\"></i></a>";
                    string full_group_name = user_space.SpaceShortName;
                    if (!String.IsNullOrEmpty(user_space.CategoryName))
                        full_group_name += " [" + user_space.CategoryName + "]";
                    lblGroupName.Text = "<a href=\"/manage/members/space-edit.aspx?spaceID=" + user_space.SpaceID + "\">" + full_group_name + " <i class=\"icon-circle-arrow-right\"></i></a>";
                }
                else
                {
                    btnChangeGroup.Text = "Add To Group";
                }
            }

            // profile gender
            string gender_options = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Register_SupportedGenderValues"]);
            ddlGender.Items.FindByValue("Intersex").Enabled = false;
            ddlGender.Items.FindByValue("Transgender").Enabled = false;
            if (gender_options.Contains("Intersex"))
                ddlGender.Items.FindByValue("Intersex").Enabled = true;
            if (gender_options.Contains("Transgender"))
                ddlGender.Items.FindByValue("Transgender").Enabled = true;
            ddlGender.SelectedValue = full_profile.Gender;

            // evaluate race
            if (!String.IsNullOrEmpty(full_profile.Race))
            {
                if (full_profile.Race.Contains("Asian/SouthAsian"))
                    cblRace.Items.FindByValue("Asian/SouthAsian").Selected = true;
                if (full_profile.Race.Contains("Biracial"))
                    cblRace.Items.FindByValue("Biracial").Selected = true;
                if (full_profile.Race.Contains("Black/African American"))
                    cblRace.Items.FindByValue("Black/African American").Selected = true;
                if (full_profile.Race.Contains("Latino/a"))
                    cblRace.Items.FindByValue("Latino/a").Selected = true;
                if (full_profile.Race.Contains("Middle Eastern"))
                    cblRace.Items.FindByValue("Middle Eastern").Selected = true;
                if (full_profile.Race.Contains("Multiracial"))
                    cblRace.Items.FindByValue("Multiracial").Selected = true;
                if (full_profile.Race.Contains("Pacific Islander"))
                    cblRace.Items.FindByValue("Pacific Islander").Selected = true;
                if (full_profile.Race.Contains("White/European-American"))
                    cblRace.Items.FindByValue("White/European-American").Selected = true;
            }

            // **** PERMISSIONS ****
            string sqlCode = string.Empty;
            qDbs_SQLcode sql = new qDbs_SQLcode();
            q_Helper helper = new q_Helper();

            // get roles
            sqlCode = "SELECT RoleID, RoleName FROM qPtl_Roles WHERE Available = 'Yes' ORDER BY RoleRank";

            DataTable dtRoles;

            using (dtRoles = sql.GetDataTable(sqlCode))
            {

                cblRoles.DataSource = dtRoles;
                cblRoles.DataValueField = "RoleID";
                cblRoles.DataTextField = "RoleName";
                cblRoles.DataBind();
            }

            // mark current permissions
            sqlCode = "SELECT RoleID FROM qPtl_UserRoles WHERE UserID = " + Request.QueryString["userID"];

            SqlDataReader rReader;

            using (rReader = sql.GetDataReader(sqlCode))
            {
                while (rReader.Read())
                {
                    ListItem currentCheckBox = cblRoles.Items.FindByValue(rReader["RoleID"].ToString());
                    if (currentCheckBox != null)
                    {
                        currentCheckBox.Selected = true;
                    }
                }
            }

            // *** GROUP ***
            // load group information and all other available groups
            ddlSpaces.DataSource = qSoc_Space.GetSpaces();
            ddlSpaces.DataTextField = "SpaceShortName";
            ddlSpaces.DataValueField = "SpaceID";
            ddlSpaces.DataBind();
            ddlSpaces.Items.Insert(0, new ListItem("", "0"));

            /* // no longer used since we now want to automatically remove any existing user spaces from the list of options for adding
            if (user_space != null)
            {
                if (user_space.UserSpaceID > 0)
                {
                    ddlSpaces.SelectedValue = Convert.ToString(user_space.SpaceID);
                }
            }
            */

            // get other groups enrolled
            var u_groups = qSoc_UserSpace_View.GetAllAvailableUserSpacesOrderMostRecent(profile_id);
            if (u_groups != null)
            {
                int j = 0;
                string group_list = string.Empty;
                foreach (var g in u_groups)
                {
                    Quartz.Controls.MemberEnrolledGroup curr_group = (Quartz.Controls.MemberEnrolledGroup)LoadControl("~/manage/members/controls/MemberEnrolledGroup.ascx");
                    curr_group.UserSpaceID = g.UserSpaceID;
                    curr_group.UserID = g.UserID;
                    curr_group.SpaceID = g.SpaceID;
                    if (g.PrimarySpace == true)
                        curr_group.IsPrimary = true;
                    pnlUserGroups.Controls.Add(curr_group);

                    // remove each of these spaces from the spaces pull down
                    if (ddlSpaces.Items.Count > 0)
                    {
                        try
                        {
                            ddlSpaces.Items.FindByValue(Convert.ToString(g.SpaceID)).Enabled = false;
                        }
                        catch
                        {
                            // do nothing
                        }
                    }
                    j++;
                }
            }

            // *** TAB MANAGEMENT ***
            string curr_tab = string.Empty;
            curr_tab = Request.QueryString["currTab"];
            litOverviewClass.Text = "";
            litProfileClass.Text = "";
            litPermissionClass.Text = "";
            litGroupClass.Text = "";
            litWarningsClass.Text = "";
            litTabOverviewClass.Text = "class=\"tab-pane\"";
            litTabProfileClass.Text = "class=\"tab-pane\"";
            litTabPermissionsClass.Text = "class=\"tab-pane\"";
            litTabWarningsClass.Text = "class=\"tab-pane\"";
            litTabGroupClass.Text = "class=\"tab-pane\"";
            if (curr_tab == "profile")
            {
                litProfileClass.Text = "class='active'";
                litTabProfileClass.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblProfileMessage.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "permissions")
            {
                litPermissionClass.Text = "class='active'";
                litTabPermissionsClass.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblPermissionsMessage.Text = " *** " + Request.QueryString["message"] + "***";
            }
            else if (curr_tab == "group")
            {
                litGroupClass.Text = "class='active'";
                litTabGroupClass.Text = "class=\"tab-pane active\"";
                if (!String.IsNullOrEmpty(Request.QueryString["message"]))
                    lblGroupMessage.Text = " *** " + Request.QueryString["message"] + "***<br><br>";
            }
            else if (curr_tab == "warnings")
            {
                litWarningsClass.Text = "class='active'";
                litTabWarningsClass.Text = "class=\"tab-pane active\"";
            }
            else
            {
                litOverviewClass.Text = "class='active'";
                litTabOverviewClass.Text = "class=\"tab-pane active\"";
            }
        }
    }