protected void Page_Load(object sender, EventArgs e)
        {
            //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            //InitializedSfdcbinding();

            if ((String)Session["AccountId"] != null)
            {
                strAccountId = (String)Session["AccountId"];
            }

            if ((String)Session["Email"] != null)
            {
                strEmail = (String)Session["Email"];
            }

            if ((String)Session["ContactId"] != null)
            {
                strPrimaryContactId = (String)Session["ContactId"];
            }
            else
            {
                String strQueryForPrimaryContactId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                                     "and cmm_Household_Role__c = 'Head of Household'";

                SForce.QueryResult qrPrimaryContactId = Sfdcbinding.query(strQueryForPrimaryContactId);

                if (qrPrimaryContactId.size > 0)
                {
                    SForce.Contact ctPrimaryContactId = qrPrimaryContactId.records[0] as SForce.Contact;

                    strPrimaryContactId = ctPrimaryContactId.Id;
                }
            }
            if ((String)Session["SpouseId"] != null)
            {
                strSpouseId = (String)Session["SpouseId"];
            }
            else
            {
                String strQueryForSpouseId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                             "and cmm_Household_Role__c = 'Spouse'";

                SForce.QueryResult qrSpouseId = Sfdcbinding.query(strQueryForSpouseId);

                if (qrSpouseId.size > 0)
                {
                    SForce.Contact ctSpouseId = qrSpouseId.records[0] as SForce.Contact;

                    strSpouseId = ctSpouseId.Id;
                }
            }

            String strQueryForChildrenId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                           "and cmm_Household_Role__c = 'Child'";

            SForce.QueryResult qrChildrenId = Sfdcbinding.query(strQueryForChildrenId);

            if (qrChildrenId.size > 0)
            {
                for (int i = 0; i < qrChildrenId.size; i++)
                {
                    SForce.Contact ctChildId = qrChildrenId.records[i] as SForce.Contact;

                    lstChildId.Add(ctChildId.Id);
                }
            }

            String strQueryForMedicareDetails = "select c4g_Qualifies_for_Medicare__c, c4g_Qualifies_for_Medicare_A_and_B__c from Contact " +
                                                " where cmm_Household__c = '" + strAccountId + "' and cmm_Household_Role__c = 'Head of Household'";

            SForce.QueryResult qrQualifyForMedicare = Sfdcbinding.query(strQueryForMedicareDetails);

            if (qrQualifyForMedicare.size > 0)
            {
                SForce.Contact ctQualifyForMedicare = qrQualifyForMedicare.records[0] as SForce.Contact;

                if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare__c == true && ctQualifyForMedicare.c4g_Qualifies_for_Medicare__cSpecified == true)
                {
                    rbListMedicareYesNo.SelectedIndex = 0;
                }
                else if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare__c == false && ctQualifyForMedicare.c4g_Qualifies_for_Medicare__cSpecified == true)
                {
                    rbListMedicareYesNo.SelectedIndex = 1;
                }

                if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__c == true && ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__cSpecified == true)
                {
                    rbListMedicareAandB.SelectedIndex = 0;
                }
                else if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__c == false && ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__cSpecified == true)
                {
                    rbListMedicareAandB.SelectedIndex = 1;
                }
            }

            if (!IsPostBack)
            {
                String strQueryForMemberPlan = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                               "and cmm_Household_Role__c = 'Head of Household'";

                SForce.QueryResult qrMemberPlan = Sfdcbinding.query(strQueryForMemberPlan);

                if (qrMemberPlan.size > 0)
                {
                    SForce.Contact ctMemberPlan = qrMemberPlan.records[0] as SForce.Contact;

                    if (ctMemberPlan.c4g_Plan__r != null)
                    {
                        switch (ctMemberPlan.c4g_Plan__r.Name)
                        {
                        case "Gold Medi-I":
                            ddlParticipantProgram.SelectedIndex = 1;
                            break;

                        case "Gold Medi-II":
                            ddlParticipantProgram.SelectedIndex = 2;
                            break;

                        case "Gold Plus":
                            ddlParticipantProgram.SelectedIndex = 3;
                            break;

                        case "Gold":
                            ddlParticipantProgram.SelectedIndex = 4;
                            break;

                        case "Silver":
                            ddlParticipantProgram.SelectedIndex = 5;
                            break;

                        case "Bronze":
                            ddlParticipantProgram.SelectedIndex = 6;
                            break;
                        }
                    }
                }

                String strQueryForSpousePlan = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                               "and cmm_Household_Role__c = 'Spouse'";

                SForce.QueryResult qrSpousePlan = Sfdcbinding.query(strQueryForSpousePlan);

                if (qrSpousePlan.size > 0)
                {
                    SForce.Contact ctSpousePlan = qrSpousePlan.records[0] as SForce.Contact;

                    if (ctSpousePlan.c4g_Plan__r != null)
                    {
                        switch (ctSpousePlan.c4g_Plan__r.Name)
                        {
                        case "Gold Medi-I":
                            ddlSpouseProgram.SelectedIndex = 1;
                            break;

                        case "Gold Medi-II":
                            ddlSpouseProgram.SelectedIndex = 2;
                            break;

                        case "Gold Plus":
                            ddlSpouseProgram.SelectedIndex = 3;
                            break;

                        case "Gold":
                            ddlSpouseProgram.SelectedIndex = 4;
                            break;

                        case "Silver":
                            ddlSpouseProgram.SelectedIndex = 5;
                            break;

                        case "Bronze":
                            ddlSpouseProgram.SelectedIndex = 6;
                            break;
                        }
                    }
                }

                String strQueryForChildren = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                             "and cmm_Household_Role__c = 'Child'";

                SForce.QueryResult qrChildrenProgram = Sfdcbinding.query(strQueryForChildren);

                if (qrChildrenProgram.size > 0)
                {
                    SForce.Contact ctChildProgram = qrChildrenProgram.records[0] as SForce.Contact;

                    if (ctChildProgram.c4g_Plan__r != null)
                    {
                        switch (ctChildProgram.c4g_Plan__r.Name)
                        {
                        case "Gold Plus":
                            ddlChildrenProgram.SelectedIndex = 1;
                            break;

                        case "Gold":
                            ddlChildrenProgram.SelectedIndex = 2;
                            break;

                        case "Silver":
                            ddlChildrenProgram.SelectedIndex = 3;
                            break;

                        case "Bronze":
                            ddlChildrenProgram.SelectedIndex = 4;
                            break;
                        }
                    }
                }
            }

            String strQueryForChurchId = "select Id, c4g_Church__c from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                         "and cmm_Household_Role__c = 'Head of Household'";

            SForce.QueryResult qrChurchId = Sfdcbinding.query(strQueryForChurchId);

            if (qrChurchId.size > 0)
            {
                SForce.Contact ctChurchId = qrChurchId.records[0] as SForce.Contact;

                String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where RecordTypeId = '01237000000R6cjAAC' and " +
                                               "Id = '" + ctChurchId.c4g_Church__c + "'";

                SForce.QueryResult qrAcctChurchInfo = Sfdcbinding.query(strQueryForChurchInfo);

                if (qrAcctChurchInfo.size > 0)
                {
                    SForce.Account acctChurchInfo = qrAcctChurchInfo.records[0] as SForce.Account;

                    txtChurchName.Text          = acctChurchInfo.Name;
                    txtSeniorPastor.Text        = acctChurchInfo.Senior_Pastor_s_Name__c;
                    txtChurchStreetAddress.Text = acctChurchInfo.ShippingAddress.street;
                    txtChurchZipCode.Text       = acctChurchInfo.ShippingAddress.postalCode;
                    ddlChurchState.Items.Add(new ListItem(acctChurchInfo.ShippingAddress.state));
                    ddlChurchState.SelectedIndex = 0;
                    ddlChurchCity.Items.Add(new ListItem(acctChurchInfo.ShippingAddress.city));
                    ddlChurchCity.SelectedIndex = 0;
                    txtChurchPhone.Text         = acctChurchInfo.Phone;
                }
            }

            //SForce.DescribeSObjectResult describeSObjectResult = Sfdcbinding.describeSObject("Contact");

            //// Get the fields
            //if (describeSObjectResult != null)
            //{
            //    SForce.Field[] fields = describeSObjectResult.fields;

            //    for (int i = 0; i < fields.Length; i++)
            //    {
            //        SForce.Field field = fields[i];

            //        if (field.name == "Referral_Source__c")
            //        {
            //            SForce.PicklistEntry[] pickListValues = field.picklistValues;
            //            if (pickListValues != null)
            //            {
            //                //ddlReferredBy.Items.Clear();
            //                foreach (SForce.PicklistEntry pickListEntry in pickListValues)
            //                {
            //                    ddlReferredBy.Items.Add(pickListEntry.value);
            //                }
            //            }
            //        }
            //    }
            //}


            //String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where RecordTypeId = '01237000000R6cjAAC' and " +
            //                   "Id = '" + strAccountId + "'";

            //String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where Id = '" + strAccountId + "'";

            if (!IsPostBack)
            {
                ////////////////////////////////////////////////////////////////////////
                // if no spouse is added, then clear the ddlSpouseProgram dropdownlist
                SForce.QueryResult qrSpouse = Sfdcbinding.query(strQueryForSpouse);
                if (qrSpouse.size == 0)
                {
                    ddlSpouseProgram.Items.Clear();
                }

                // if no child is added, then clear the ddlChildProgram dropdownlist
                SForce.QueryResult qrChild = Sfdcbinding.query(strQueryForChildren);
                if (qrChild.size == 0)
                {
                    ddlChildrenProgram.Items.Clear();
                }

                SForce.DescribeSObjectResult describeSObjectResult = Sfdcbinding.describeSObject("Membership__c");

                // Get the fields
                if (describeSObjectResult != null)
                {
                    SForce.Field[] fields = describeSObjectResult.fields;

                    for (int i = 0; i < fields.Length; i++)
                    {
                        SForce.Field field = fields[i];

                        if (field.name == "Referred_By__c")
                        {
                            SForce.PicklistEntry[] pickListValues = field.picklistValues;
                            if (pickListValues != null)
                            {
                                //ddlReferredBy.Items.Clear();
                                foreach (SForce.PicklistEntry pickListEntry in pickListValues)
                                {
                                    ddlReferredBy.Items.Add(pickListEntry.value);
                                }
                            }
                        }
                    }
                }
            }

            //strAccountID = (String)Session["AccountId"];
            //strSpouseId = (String)Session["ContactId"];
        }
        protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validate the user password
                var manager       = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();

                //var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
                //var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
                //var user = new ApplicationUser() { UserName = MemberEmail, Email = MemberEmail };
                //IdentityResult result = manager.Create(user, txtPassword.Text);


                // Confirm the user email whether or not the user is portal user
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;
                //SetSQLStatementForPortalUser();
                //InitializedSfdcbinding();

                //SForce.QueryResult qrPortalUser = Sfdcbinding.query(strQueryContactForPortalUser);
                //if (qrPortalUser.size > 0)
                //{
                //SForce.Contact ctPortalUser = (SForce.Contact)qrPortalUser.records[0];

                //if (ctPortalUser.causeview__PortalUser__c == true)
                //{
                // Code for Login and Response.Redirect to MainForm.aspx page should be here

                // This doen't count login failures towards account lockout
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false);

                HttpBrowserCapabilities browser = Request.Browser;

                switch (result)
                {
                case SignInStatus.Success:
                    //IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
                    //if (browser.Type.Contains("Firefox") ||
                    //    browser.Type.Contains("Chrome") ||
                    //    browser.Type.Contains("Edge") ||
                    //    browser.Type.Contains("InternetExplorer11") ||
                    //    browser.Type.ToUpper().Contains("IE"))
                    //{
                    //    Response.Redirect("~/MainForm.aspx", false);
                    //}
                    //if (browser.Type.Contains("Safari")) Response.Redirect("~/MainFormSafari.aspx", false);
                    String strQueryForAccountCreationStep = "select cmm_Account_Creation_Step_Code__c, Id from Account where cmm_Email__c = '" + Email.Text + "'";

                    SForce.QueryResult qrAcctCreationStep = Sfdcbinding.query(strQueryForAccountCreationStep);

                    if (qrAcctCreationStep.size > 0)
                    {
                        SForce.Account acctCreationStep = qrAcctCreationStep.records[0] as SForce.Account;

                        Session["Email"]        = Email.Text;
                        Session["AccountId"]    = acctCreationStep.Id;
                        Session["PreviousPage"] = "Login";

                        switch (acctCreationStep.cmm_Account_Creation_Step_Code__c)
                        {
                        case "2":
                            Response.Redirect("~/PersonalDetails.aspx");
                            break;

                        case "3":
                            Response.Redirect("~/FamilyDetails.aspx");
                            break;

                        case "4":
                            Response.Redirect("~/MembershipDetails.aspx");
                            break;

                        case "5":
                            Response.Redirect("~/PaymentInfo.aspx");
                            break;

                        case "6":
                            Response.Redirect("~/HealthHistory.aspx");
                            break;

                        case "7":
                            Response.Redirect("~/Agreement.aspx");
                            break;

                        case "8":
                            // Show the message informing the user is already registered, tell the user to log on instead of registering
                            Response.Redirect("~/MainForm.aspx");
                            break;
                        }
                    }

                    break;

                case SignInStatus.LockedOut:
                    Response.Redirect("/Account/Lockout");
                    break;

                //case SignInStatus.RequiresVerification:
                //    Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
                //                                    Request.QueryString["ReturnUrl"],
                //                                    RememberMe.Checked),
                //                      true);
                //    break;
                case SignInStatus.Failure:
                    Context.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                    //Response.Redirect("~/Account/Login.aspx");
                    lblFailureText.Text         = "Invalid login attempt";
                    pnlLoginFailureText.Visible = true;

                    break;

                default:
                    lblFailureText.Text         = "Invalid login attempt";
                    pnlLoginFailureText.Visible = true;
                    break;
                }
                //}
                //else
                //{
                //    FailureText.Text = "You are not a portal user";
                //    ErrorMessage.Visible = true;
                //}
                //}
            }
        }
        protected void btnNext_Click(object sender, EventArgs e)
        {
            rfvMedicareEligibility.Validate();
            rfvMedicareAandB.Validate();
            rfvParticipantProgram.Validate();

            if ((String)Session["AccountId"] != null)
            {
                strAccountId = (String)Session["AccountId"];
            }

            if ((String)Session["ContactId"] != null)
            {
                strPrimaryContactId = (String)Session["ContactId"];
            }
            else
            {
                String strQueryForPrimaryContactId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                                     "and cmm_Household_Role__c = 'Head of Household'";

                SForce.QueryResult qrPrimaryContactId = Sfdcbinding.query(strQueryForPrimaryContactId);

                if (qrPrimaryContactId.size > 0)
                {
                    SForce.Contact ctPrimaryContactId = qrPrimaryContactId.records[0] as SForce.Contact;

                    strPrimaryContactId = ctPrimaryContactId.Id;
                }
            }
            if ((String)Session["SpouseId"] != null)
            {
                strSpouseId = (String)Session["SpouseId"];
            }
            else
            {
                String strQueryForSpouseId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                             "and cmm_Household_Role__c = 'Spouse'";

                SForce.QueryResult qrSpouseId = Sfdcbinding.query(strQueryForSpouseId);

                if (qrSpouseId.size > 0)
                {
                    SForce.Contact ctSpouseId = qrSpouseId.records[0] as SForce.Contact;

                    strSpouseId = ctSpouseId.Id;
                }
            }


            SForce.Contact ctUpdate = new SForce.Contact();

            ctUpdate.Id = strPrimaryContactId;
            ctUpdate.cmm_Household__c      = strAccountId;
            ctUpdate.cmm_Household_Role__c = "Head of Household";

            // whether or not qualifying medicare
            if (rbListMedicareYesNo.SelectedIndex == 0)
            {
                ctUpdate.c4g_Qualifies_for_Medicare__c          = true;
                ctUpdate.c4g_Qualifies_for_Medicare__cSpecified = true;
            }
            if (rbListMedicareYesNo.SelectedIndex == 1)
            {
                ctUpdate.c4g_Qualifies_for_Medicare__c          = false;
                ctUpdate.c4g_Qualifies_for_Medicare__cSpecified = true;
            }

            // whether or not qualifying medicare A and B
            if (rbListMedicareAandB.SelectedIndex == 0)
            {
                ctUpdate.c4g_Qualifies_for_Medicare_A_and_B__c          = true;
                ctUpdate.c4g_Qualifies_for_Medicare_A_and_B__cSpecified = true;
            }
            if (rbListMedicareAandB.SelectedIndex == 1)
            {
                ctUpdate.c4g_Qualifies_for_Medicare_A_and_B__c          = false;
                ctUpdate.c4g_Qualifies_for_Medicare_A_and_B__cSpecified = true;
            }

            String strPrimaryProgram = ddlParticipantProgram.SelectedValue.Substring(0, ddlParticipantProgram.SelectedValue.IndexOf('(')).Trim();

            String strQueryForPrimaryProgramId = "select Id from c4g_Plan__c where Name = '" + strPrimaryProgram + "'";

            SForce.QueryResult qrPrimaryProgramId = Sfdcbinding.query(strQueryForPrimaryProgramId);

            if (qrPrimaryProgramId.size > 0)
            {
                SForce.c4g_Plan__c primaryPlan = qrPrimaryProgramId.records[0] as SForce.c4g_Plan__c;

                ctUpdate.c4g_Plan__c = primaryPlan.Id;

                SForce.SaveResult[] updateResultsPrimary = Sfdcbinding.update(new SForce.sObject[] { ctUpdate });

                if (updateResultsPrimary[0].success)
                {
                    // the primary member's program info added successfully
                }
            }

            String strSpouseProgram = String.Empty;

            if (ddlSpouseProgram.Items.Count != 0)
            {
                strSpouseProgram = ddlSpouseProgram.SelectedValue.Substring(0, ddlSpouseProgram.SelectedValue.IndexOf('(')).Trim();
            }

            String strQueryForSpouseProgramId = "select Id from c4g_Plan__c where Name = '" + strSpouseProgram + "'";

            SForce.QueryResult qrSpouseProgramId = Sfdcbinding.query(strQueryForSpouseProgramId);

            if (qrSpouseProgramId.size > 0)
            {
                SForce.c4g_Plan__c spousePlan = qrSpouseProgramId.records[0] as SForce.c4g_Plan__c;

                SForce.Contact ctSpouseUpdate = new SForce.Contact();
                ctSpouseUpdate.Id          = strSpouseId;
                ctSpouseUpdate.c4g_Plan__c = spousePlan.Id;

                SForce.SaveResult[] updateResultsSpouse = Sfdcbinding.update(new SForce.sObject[] { ctSpouseUpdate });

                if (updateResultsSpouse[0].success)
                {
                    // the spouse's program info is added
                }
            }

            String strChildProgram = String.Empty;

            if (ddlChildrenProgram.Items.Count != 0)
            {
                strChildProgram = ddlChildrenProgram.SelectedValue.Substring(0, ddlChildrenProgram.SelectedValue.IndexOf('(')).Trim();
            }

            String strQueryForChildProgramId = "select Id from c4g_Plan__c where Name = '" + strChildProgram + "'";

            SForce.QueryResult qrChildProgramId = Sfdcbinding.query(strQueryForChildProgramId);

            if (qrChildProgramId.size > 0)
            {
                SForce.c4g_Plan__c childPlan = qrChildProgramId.records[0] as SForce.c4g_Plan__c;

                foreach (String strChildId in lstChildId)
                {
                    SForce.Contact ctChildUpdate = new SForce.Contact();

                    ctChildUpdate.Id          = strChildId;
                    ctChildUpdate.c4g_Plan__c = childPlan.Id;

                    SForce.SaveResult[] updateResultsChild = Sfdcbinding.update(new SForce.sObject[] { ctChildUpdate });

                    if (updateResultsChild[0].success)
                    {
                        // the child's program info is added
                    }
                }
            }

            ///// This section insert church info to membership detail aspx

            String strQueryForHeadOfHouseholdId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " + "and cmm_Household_Role__c = 'Head of Household'";

            SForce.QueryResult qrHeadOfHouseholdId = Sfdcbinding.query(strQueryForHeadOfHouseholdId);

            //String strHeadOfHouseholdId = null;

            if (qrHeadOfHouseholdId.size > 0)
            {
                SForce.Contact ctHead = (SForce.Contact)qrHeadOfHouseholdId.records[0];

                String strHeadOfHouseholdId = ctHead.Id;


                SForce.Account acctChurchInfo = new SForce.Account();


                acctChurchInfo.RecordTypeId            = "01237000000R6cjAAC";
                acctChurchInfo.Name                    = txtChurchName.Text;
                acctChurchInfo.Senior_Pastor_s_Name__c = txtSeniorPastor.Text;

                if (txtChurchStreetAddress.Text != String.Empty)
                {
                    acctChurchInfo.ShippingStreet = txtChurchStreetAddress.Text;
                }
                if (txtChurchZipCode.Text != String.Empty)
                {
                    acctChurchInfo.ShippingPostalCode = txtChurchZipCode.Text;
                }
                if (ddlChurchState.Items != null)
                {
                    acctChurchInfo.ShippingState = ddlChurchState.SelectedItem.Text;
                }
                if (ddlChurchCity.Items != null)
                {
                    acctChurchInfo.ShippingCity = ddlChurchCity.SelectedItem.Text;
                }
                if (txtChurchPhone.Text != String.Empty)
                {
                    acctChurchInfo.Phone = txtChurchPhone.Text;
                }

                SForce.SaveResult[] saveAcctResults = Sfdcbinding.create(new SForce.sObject[] { acctChurchInfo });

                if (saveAcctResults[0].success)
                {
                    SForce.Contact ctHeadOfHousehold = new SForce.Contact();

                    ctHeadOfHousehold.Id = strHeadOfHouseholdId;
                    //ctHeadOfHousehold.Referral_Source__c = ddlReferredBy.SelectedValue;
                    ctHeadOfHousehold.c4g_Church__c = saveAcctResults[0].id;

                    SForce.SaveResult[] updateResults = Sfdcbinding.update(new SForce.sObject[] { ctHeadOfHousehold });

                    if (updateResults[0].success)
                    {
                        // notify the user that church information added to household
                    }
                }
            }

            if (ddlReferredBy.SelectedValue != "")
            {
                if (ddlReferredBy.SelectedValue == "Member Referral" && txtMembershipNumber.Text != "" && ddlReferrerName.SelectedValue != "")
                {
                    String strMembershipNumber = String.Empty;

                    if (txtMembershipNumber.Text.Contains("MEMB-"))
                    {
                        strMembershipNumber = txtMembershipNumber.Text;
                    }
                    else
                    {
                        strMembershipNumber = txtMembershipNumber.Text;
                        if (txtMembershipNumber.Text.Length < 7)
                        {
                            for (int i = txtMembershipNumber.Text.Length; i < 7; i++)
                            {
                                strMembershipNumber = '0' + strMembershipNumber;
                            }
                        }
                        strMembershipNumber = "MEMB-" + strMembershipNumber;
                    }

                    String strQueryForContact = "select Id from Contact where c4g_Membership__r.Name = '" + strMembershipNumber + "' and Name = '" + ddlReferrerName.SelectedValue + "'";

                    SForce.QueryResult qrContactForMembership = Sfdcbinding.query(strQueryForContact);

                    if (qrContactForMembership.size > 0)
                    {
                        SForce.Contact       ctReferrer      = qrContactForMembership.records[0] as SForce.Contact;
                        SForce.Membership__c memReferralInfo = new SForce.Membership__c();

                        memReferralInfo.Paying_Member__c = strPrimaryContactId;
                        memReferralInfo.Referred_By__c   = ddlReferredBy.SelectedValue;
                        memReferralInfo.Referrer__c      = ctReferrer.Id;
                        if ((String)Session["Email"] != null)
                        {
                            memReferralInfo.Email__c = (String)Session["Email"];
                        }

                        SForce.SaveResult[] saveResults = Sfdcbinding.create(new SForce.sObject[] { memReferralInfo });

                        if (saveResults[0].success)
                        {
                            // Membership object is created successfully
                            String             strQueryForFamilyMembers = "select Id from Contact where cmm_Household__c = '" + strAccountId + "'";
                            SForce.QueryResult qrFamilyMembers          = Sfdcbinding.query(strQueryForFamilyMembers);

                            if (qrFamilyMembers.size > 0)
                            {
                                for (int i = 0; i < qrFamilyMembers.size; i++)
                                {
                                    SForce.Contact ctFamilyMemberId = qrFamilyMembers.records[i] as SForce.Contact;

                                    SForce.Contact ctFamilyMember = new SForce.Contact();
                                    ctFamilyMember.Id = ctFamilyMemberId.Id;
                                    ctFamilyMember.c4g_Membership__c = saveResults[0].id;

                                    SForce.SaveResult[] updateResults = Sfdcbinding.update(new SForce.sObject[] { ctFamilyMember });
                                    if (updateResults[0].success)
                                    {
                                        // Membership object added to each member of the household
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    SForce.Membership__c memReferralInfo = new SForce.Membership__c();

                    memReferralInfo.Paying_Member__c = strPrimaryContactId;
                    memReferralInfo.Referred_By__c   = ddlReferredBy.SelectedValue;
                    if ((String)Session["Email"] != null)
                    {
                        memReferralInfo.Email__c = (String)Session["Email"];
                    }

                    SForce.SaveResult[] saveResults = Sfdcbinding.create(new SForce.sObject[] { memReferralInfo });

                    if (saveResults[0].success)
                    {
                        // Membership object is created successfully

                        // Membership object is created successfully
                        String             strQueryForFamilyMembers = "select Id from Contact where cmm_Household__c = '" + strAccountId + "'";
                        SForce.QueryResult qrFamilyMembers          = Sfdcbinding.query(strQueryForFamilyMembers);

                        if (qrFamilyMembers.size > 0)
                        {
                            for (int i = 0; i < qrFamilyMembers.size; i++)
                            {
                                SForce.Contact ctFamilyMemberId = qrFamilyMembers.records[i] as SForce.Contact;

                                SForce.Contact ctFamilyMember = new SForce.Contact();
                                ctFamilyMember.Id = ctFamilyMemberId.Id;
                                ctFamilyMember.c4g_Membership__c = saveResults[0].id;

                                SForce.SaveResult[] updateResults = Sfdcbinding.update(new SForce.sObject[] { ctFamilyMember });
                                if (updateResults[0].success)
                                {
                                    // Membership object added to each member of the household
                                }
                            }
                        }
                    }
                }
            }



            SForce.Account acctPrimary = new SForce.Account();
            acctPrimary.Id = strAccountId;
            acctPrimary.cmm_Account_Creation_Step_Code__c = "5";

            SForce.SaveResult[] srAccount = Sfdcbinding.update(new SForce.sObject[] { acctPrimary });

            if (srAccount[0].success)
            {
                Session["PreviousPage"] = "MembershipDetails";
                Response.Redirect("~/PaymentInfo.aspx");
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //Response.Write("<div id='mydiv' >");
            //Response.Write("_");
            //Response.Write("</div>");
            //Response.Write("<script>mydiv.innerText = '';</script>");

            //Response.Write("<script language=javascript>;");
            //Response.Write("var dots = 0;var dotmax = 10;function ShowWait()");
            //Response.Write("{var output; output = 'Loading';dots++;if(dots>=dotmax)dots=1;");
            //Response.Write("for(var x = 0;x < dots;x++){output += '.';}mydiv.innerText =  output;}");
            //Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; window.setInterval('ShowWait()', 1000);}");
            //Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';window.clearInterval();}");
            //Response.Write("StartShowWait();</script>");
            //Response.Flush();
            //Thread.Sleep(10000) ;


            //strEmail = (string)Session["Email"];
            //strLastName = (string)Session["LastName"];
            //strFirstName = (string)Session["FirstName"];

            //txtEmail.Text = strEmail;
            //txtLastName.Text = strLastName;
            //txtFirstName.Text = strFirstName;

            if ((String)Session["Email"] != String.Empty)
            {
                strEmail      = (String)Session["Email"];
                txtEmail.Text = strEmail;
            }
            if ((String)Session["AccountId"] != String.Empty)
            {
                strAccountId = (String)Session["AccountId"];
            }
            else
            {
                String strQueryForAccountIdOnEmail = "select Id from Account where cmm_Email__c = '" + strEmail + "'";

                SForce.QueryResult qrAccountId = Sfdcbinding.query(strQueryForAccountIdOnEmail);

                if (qrAccountId.size > 0)
                {
                    SForce.Account acctHousehold = qrAccountId.records[0] as SForce.Account;

                    strAccountId = acctHousehold.Id;
                }
            }

            //if (!IsPostBack)
            //{


            if ((String)Session["LastName"] != null && (String)Session["FirstName"] != null)
            {
                if ((String)Session["LastName"] != String.Empty)
                {
                    txtLastName.Text = (String)Session["LastName"];
                }
                if ((String)Session["FirstName"] != String.Empty)
                {
                    txtFirstName.Text = (String)Session["FirstName"];
                }
            }
            //else if ((String)Session["LastName"] == null || (String)Session["FirstName"] == null)
            //{

            if (!IsPostBack)
            {
                String strQueryForPrimaryContactInfo = "select Email, Title, LastName, FirstName, MiddleName, Birthdate, cmm_Gender__c, Social_Security_Number__c, " +
                                                       "Phone, HomePhone, MobilePhone, OtherPhone from Contact " +
                                                       "where cmm_Household__c = '" + strAccountId + "' and cmm_Household_Role__c = 'Head of Household'";


                SForce.QueryResult qrPrimaryContactInfo = Sfdcbinding.query(strQueryForPrimaryContactInfo);

                if (qrPrimaryContactInfo.size > 0)
                {
                    SForce.Contact ctPrimary = qrPrimaryContactInfo.records[0] as SForce.Contact;

                    txtEmail.Text = ctPrimary.Email;
                    switch (ctPrimary.Title)
                    {
                    case "Jr.":
                        ddlTitle.SelectedIndex = 1;
                        break;

                    case "Mr.":
                        ddlTitle.SelectedIndex = 2;
                        break;

                    case "Mrs.":
                        ddlTitle.SelectedIndex = 3;
                        break;

                    case "Ms.":
                        ddlTitle.SelectedIndex = 4;
                        break;
                    }
                    txtLastName.Text   = ctPrimary.LastName;
                    txtFirstName.Text  = ctPrimary.FirstName;
                    txtMiddleName.Text = ctPrimary.MiddleName;

                    int?nYear  = null;
                    int?nMonth = null;
                    int?nDay   = null;

                    if (ctPrimary.Birthdate != null)
                    {
                        nYear  = ctPrimary.Birthdate.Value.Year;
                        nMonth = ctPrimary.Birthdate.Value.Month;
                        nDay   = ctPrimary.Birthdate.Value.Day;
                        DateTime dtPrimaryBirthdate = new DateTime((int)nYear, (int)nMonth, (int)nDay);
                        txtDateOfBirth.Text = dtPrimaryBirthdate.ToString("MM/dd/yyyy");
                    }

                    if (ctPrimary.cmm_Gender__c == "Male")
                    {
                        rbGenderList.SelectedIndex = 0;
                    }
                    else if (ctPrimary.cmm_Gender__c == "Female")
                    {
                        rbGenderList.SelectedIndex = 1;
                    }

                    if (ctPrimary.Social_Security_Number__c != null)
                    {
                        txtSSN.Text     = ctPrimary.Social_Security_Number__c;
                        txtSSN.ReadOnly = true;
                        revSSN.Enabled  = false;
                    }

                    if (ctPrimary.Phone != null)
                    {
                        txtTelephone1.Text = ctPrimary.Phone;
                    }
                    if (ctPrimary.MobilePhone != null)
                    {
                        txtTelephone2.Text = ctPrimary.MobilePhone;
                    }
                    if (ctPrimary.OtherPhone != null)
                    {
                        txtTelephone3.Text = ctPrimary.OtherPhone;
                    }
                }


                String strQueryForHousehold = "select ShippingAddress from Account where Id = '" + strAccountId + "' and cmm_Email__c = '" + strEmail + "'";

                SForce.QueryResult qrHousehold = Sfdcbinding.query(strQueryForHousehold);

                if (qrHousehold.size > 0)
                {
                    SForce.Account acctHousehold = qrHousehold.records[0] as SForce.Account;

                    if (acctHousehold.ShippingAddress != null)
                    {
                        txtAddress.Text = acctHousehold.ShippingAddress.street;
                        txtZipCode.Text = acctHousehold.ShippingAddress.postalCode;

                        InitializeStateNames();
                        ddlState.SelectedValue = acctHousehold.ShippingAddress.state;

                        String strConnectionString = @"Data Source=10.1.10.79; Port=3306; Database=cmmworld_admin; User ID=Hj_p007; Password='******'";
                        String strQueryForCityName = "select distinct name, state_code from city where state_code = '" + ddlState.SelectedValue.ToString() + "' order by name";

                        MySqlConnection  conn        = new MySqlConnection(strConnectionString);
                        MySqlCommand     cmdCityName = new MySqlCommand(strQueryForCityName, conn);
                        DataSet          dsCity      = new DataSet();
                        MySqlDataAdapter da          = new MySqlDataAdapter(cmdCityName);

                        da.Fill(dsCity);
                        ddlCity.DataSource     = dsCity.Tables[0];
                        ddlCity.DataTextField  = "name";
                        ddlCity.DataValueField = "name";
                        ddlCity.DataBind();

                        ddlCity.SelectedValue = acctHousehold.ShippingAddress.city;
                    }
                }

                if (qrPrimaryContactInfo.size == 0 && qrHousehold.size == 0)
                {
                    //if (!IsPostBack)
                    //{

                    //calexDateOfBirth.DefaultView = AjaxControlToolkit.CalendarDefaultView.Years;

                    // This section is commented out, is needed for production code
                    txtSSN.ReadOnly = false;
                    revSSN.Enabled  = true;
                    //revSSN.EnableClientScript = true;

                    String strQueryForStateName = "select distinct name, state_code from state order by name";
                    String strConnectionString  = @"Data Source=10.1.10.79; Port=3306; Database=cmmworld_admin; User ID=Hj_p007; Password='******'";

                    MySqlConnection connState = new MySqlConnection(strConnectionString);
                    MySqlCommand    cmdState  = new MySqlCommand(strQueryForStateName, connState);

                    DataSet dsState = new DataSet();

                    MySqlDataAdapter da = new MySqlDataAdapter(cmdState);

                    da.Fill(dsState);

                    ddlState.DataSource     = dsState.Tables[0];
                    ddlState.DataTextField  = "name";
                    ddlState.DataValueField = "state_code";
                    ddlState.DataBind();
                    ddlState.Items.Insert(0, new ListItem(String.Empty, String.Empty));
                    ddlState.SelectedIndex = 0;
                }
                LoadPrimarySDAInfo();
            }
        }
        protected void btnNext_Click(object sender, EventArgs e)
        {
            Set_smoking_drug_alcohol_buttons();

            if (IsValid &&
                btnCurrentSmokerYes.BackColor == Color.LightGray &&
                btnNarcoticYes.BackColor == Color.LightGray &&
                btnAlcoholYes.BackColor == Color.LightGray)
            {
                String strAccountName = strLastName + " (" + strFirstName + ") Household";

                Session["Title"]       = ddlTitle.SelectedItem.Text;
                Session["MiddleName"]  = txtMiddleName.Text;
                Session["DateOfBirth"] = txtDateOfBirth.Text;
                //if (rbMale.Checked) Session["Gender"] = "Male";
                //if (rbFemale.Checked) Session["Gender"] = "Female";
                Session["SSN"]           = txtSSN.Text;
                Session["Telephone1"]    = txtTelephone1.Text;
                Session["Telephone2"]    = txtTelephone2.Text;
                Session["Telephone3"]    = txtTelephone3.Text;
                Session["StreetAddress"] = txtAddress.Text;

                // This section should uncommented in production code
                Session["ZipCode"] = txtZipCode.Text;
                Session["State"]   = ddlState.SelectedItem.Text;
                Session["City"]    = ddlCity.SelectedItem.Text;

                //Session["ZipCode"] = "60714";
                //Session["State"] = "Illinois";
                //Session["City"] = "Niles";

                //InitializedSfdcbinding();


                //String strQueryForAccountIdOnEmail = "select Id from Account where cmm_Email__c = '" + strEmail + "'";

                //SForce.QueryResult qrAccountId = Sfdcbinding.query(strQueryForAccountIdOnEmail);

                //if (qrAccountId.size > 0)
                //{
                //SForce.Account acctHouseholdId = qrAccountId.records[0] as SForce.Account;

                //}


                //SForce.SaveResult[] srNewContact = Sfdcbinding.create(new SForce.sObject[] { ctPrimary });

                //String strPrimaryContactId = null;

                //if (srNewContact[0].success)
                //{
                //    lblSaveSuccessFailure.Text += "Contact added successfully";

                //    strPrimaryContactId = srNewContact[0].id;
                //    Session["ContactId"] = srNewContact[0].id;
                //}
                //else
                //{
                //    lblSaveSuccessFailure.Text += srNewContact[0].errors[0].message;
                //}

                Boolean bUpdatePrimarySuccess = false;
                String  strPrimaryContactId   = null;
                String  strQueryForPrimaryId  = "select Id from Contact where Email = '" + txtEmail.Text + "'";

                SForce.QueryResult qrPrimary = Sfdcbinding.query(strQueryForPrimaryId);

                if (qrPrimary.size > 0)
                {
                    SForce.Contact ctPrimary = new SForce.Contact();
                    ctPrimary.Id = qrPrimary.records[0].Id;
                    ctPrimary.cmm_Household__c = strAccountId;
                    //ctPrimary.Email = txtEmail.Text;
                    ctPrimary.Title = ddlTitle.SelectedItem.Text;
                    //ctPrimary.LastName = txtLastName.Text;
                    //ctPrimary.FirstName = txtFirstName.Text;
                    ctPrimary.MiddleName            = txtMiddleName.Text;
                    ctPrimary.cmm_Household_Role__c = "Head of Household";

                    String strBirthDate = txtDateOfBirth.Text;

                    String[] arryBirthDate = strBirthDate.Split('/');

                    int nBirthMonth = Int32.Parse(arryBirthDate[0]);
                    int nBirthDay   = Int32.Parse(arryBirthDate[1]);
                    int nBirthYear  = Int32.Parse(arryBirthDate[2]);

                    ctPrimary.Birthdate          = new DateTime(nBirthYear, nBirthMonth, nBirthDay);
                    ctPrimary.BirthdateSpecified = true;

                    ctPrimary.cmm_Gender__c = rbGenderList.SelectedItem.Text;

                    ctPrimary.Social_Security_Number__c = txtSSN.Text;
                    ctPrimary.Phone       = txtTelephone1.Text;
                    ctPrimary.HomePhone   = txtTelephone1.Text;
                    ctPrimary.MobilePhone = txtTelephone2.Text;
                    ctPrimary.OtherPhone  = txtTelephone3.Text;

                    SForce.SaveResult[] srUpdatePrimary = Sfdcbinding.update(new SForce.sObject[] { ctPrimary });

                    if (srUpdatePrimary[0].success)
                    {
                        strPrimaryContactId   = qrPrimary.records[0].Id;
                        Session["ContactId"]  = qrPrimary.records[0].Id;
                        bUpdatePrimarySuccess = true;
                    }
                }


                String strQueryForContactId = "select Name from Contact where Email = '" + txtEmail.Text + "'";

                SForce.QueryResult qrContactId = Sfdcbinding.query(strQueryForContactId);

                //String strContactId = strPrimaryContactId;
                //String strMemberName = null;

                if (qrContactId.size > 0)
                {
                    SForce.Contact ctName = (SForce.Contact)qrContactId.records[0];
                    //strContactId = ctId.Id;
                    //strMemberName = ctId.Name;
                    //Session["ContactId"] = strContactId;

                    //               MemberSmokingDrugAlcohol primarySDA = new MemberSmokingDrugAlcohol();

                    //               primarySDA.AccountId = strAccountId;
                    //               primarySDA.HouseholdRole = HouseholdRoles.Primary;
                    //               primarySDA.ContactId = strPrimaryContactId;
                    //               primarySDA.Name = ctName.Name;
                    //               primarySDA.bCurrentSmoker = false;
                    //               primarySDA.bCurrentDrug = false;
                    //primarySDA.bAlcohol = false;
                    //               if (btnFormerSmokerYes.BackColor == Color.Green) primarySDA.bFormerSmoker = true;
                    //               if (btnFormerSmokerNo.BackColor == Color.Blue) primarySDA.bFormerSmoker = false;
                    //               if (btnFormerNarcoticYes.BackColor == Color.Green) primarySDA.bFormerDrug = true;
                    //               if (btnFormerNarcoticNo.BackColor == Color.Blue) primarySDA.bFormerDrug = false;
                    //               //if (btnAlcoholYes.BackColor == Color.Green) primarySDA.bAlcohol = true;
                    //               //if (btnAlcoholNo.BackColor == Color.Blue) primarySDA.bAlcohol = false;

                    //               lstMemberSDA.Add(primarySDA);
                    //               Session["MemberSmokingDrugAlcohol"] = lstMemberSDA;

                    // Save lstMemberSDA to salesforce for incomplete application - done
                    string strQueryForPrimarySDA = "select Id from tmp_SmokingDrugAlcohol__c where cmm_Account__c = '" + strAccountId + "' and " +
                                                   "cmm_Household_Role__c = 'Head of Household'";

                    SForce.QueryResult qrTmpPrimarySDA = Sfdcbinding.query(strQueryForPrimarySDA);
                    if (qrTmpPrimarySDA.size > 0)
                    {
                        SForce.tmp_SmokingDrugAlcohol__c tmpHeadSDA = qrTmpPrimarySDA.records[0] as SForce.tmp_SmokingDrugAlcohol__c;

                        SForce.tmp_SmokingDrugAlcohol__c tmpPrimarySDA = new SForce.tmp_SmokingDrugAlcohol__c();

                        tmpPrimarySDA.Id = tmpHeadSDA.Id;
                        tmpPrimarySDA.cmm_bCurrentSmoker__c = "No";
                        tmpPrimarySDA.cmm_bCurrentDrug__c   = "No";
                        tmpPrimarySDA.cmm_bAlcohol__c       = "No";
                        if (btnFormerSmokerYes.BackColor == Color.Green)
                        {
                            tmpPrimarySDA.cmm_bFormerSmoker__c = "Yes";
                        }
                        if (btnFormerSmokerNo.BackColor == Color.Blue)
                        {
                            tmpPrimarySDA.cmm_bFormerSmoker__c = "No";
                        }
                        if (btnFormerNarcoticYes.BackColor == Color.Green)
                        {
                            tmpPrimarySDA.cmm_bFormerDrug__c = "Yes";
                        }
                        if (btnFormerNarcoticNo.BackColor == Color.Blue)
                        {
                            tmpPrimarySDA.cmm_bFormerDrug__c = "No";
                        }

                        SForce.SaveResult[] srUpdateTmpPrimarySDA = Sfdcbinding.update(new SForce.sObject[] { tmpPrimarySDA });

                        if (srUpdateTmpPrimarySDA[0].success)
                        {
                            // temporary instance of salesforc object is udpated successfully
                        }
                    }
                    else if (qrTmpPrimarySDA.size == 0)
                    {
                        SForce.tmp_SmokingDrugAlcohol__c tmpPrimarySDA = new SForce.tmp_SmokingDrugAlcohol__c();

                        tmpPrimarySDA.cmm_Account_Creation_Step_Code__c          = 3;
                        tmpPrimarySDA.cmm_Account_Creation_Step_Code__cSpecified = true;
                        tmpPrimarySDA.cmm_Account__c        = strAccountId;
                        tmpPrimarySDA.cmm_Contact__c        = strPrimaryContactId;
                        tmpPrimarySDA.cmm_Household_Role__c = "Head of Household";
                        tmpPrimarySDA.cmm_Name__c           = ctName.Name;
                        tmpPrimarySDA.cmm_bCurrentSmoker__c = "No";
                        tmpPrimarySDA.cmm_bCurrentDrug__c   = "No";
                        tmpPrimarySDA.cmm_bAlcohol__c       = "No";
                        if (btnFormerSmokerYes.BackColor == Color.Green)
                        {
                            tmpPrimarySDA.cmm_bFormerSmoker__c = "Yes";
                        }
                        if (btnFormerSmokerNo.BackColor == Color.Blue)
                        {
                            tmpPrimarySDA.cmm_bFormerSmoker__c = "No";
                        }
                        if (btnFormerNarcoticYes.BackColor == Color.Green)
                        {
                            tmpPrimarySDA.cmm_bFormerDrug__c = "Yes";
                        }
                        if (btnFormerNarcoticNo.BackColor == Color.Blue)
                        {
                            tmpPrimarySDA.cmm_bFormerDrug__c = "No";
                        }
                        //if (btnAlcoholYes.BackColor == Color.Green) tmpPrimarySDA.cmm_bAlcohol__c = "Yes";
                        //if (btnAlcoholNo.BackColor == Color.Blue) tmpPrimarySDA.cmm_bAlcohol__c = "No";

                        SForce.SaveResult[] srTmpPrimarySDA = Sfdcbinding.create(new SForce.sObject[] { tmpPrimarySDA });

                        if (srTmpPrimarySDA[0].success)
                        {
                            // temporary instance of salesforce object is created successfully
                        }
                    }
                }


                //SForce.Account acctUpdate = new SForce.Account();

                //if (strAccountId != null) acctUpdate.Id = strAccountId;
                //if (strPrimaryContactId != null) acctUpdate.cmm_Contact__c = strPrimaryContactId;

                //SForce.SaveResult[] updateResultsAccount = Sfdcbinding.update(new SForce.sObject[] { acctUpdate });

                //if (updateResultsAccount[0].success)
                //{
                //    lblSaveSuccessFailure.Text += "Account update succeeded";
                //}
                //else
                //{
                //    lblSaveSuccessFailure.Text += updateResultsAccount[0].errors[0].message;
                //}

                //SForce.Contact ctUpdate = new SForce.Contact();

                //if (strPrimaryContactId != null) ctUpdate.Id = strPrimaryContactId;
                //if (strAccountId != null) ctUpdate.cmm_Household__c = strAccountId;

                //SForce.SaveResult[] updateResultsContact = Sfdcbinding.update(new SForce.sObject[] { ctUpdate });

                //if (updateResultsContact[0].success)
                //{
                //    lblSaveSuccessFailure.Text += "Contact update succeeded";
                //}
                //else
                //{
                //    lblSaveSuccessFailure.Text += updateResultsContact[0].errors[0].message;
                //}



                Boolean bUpdateAcctHouseholdSuccess = false;

                SForce.Account acctHousehold = new SForce.Account();
                acctHousehold.Id = strAccountId;
                acctHousehold.cmm_Account_Creation_Step_Code__c = "3";
                acctHousehold.cmm_Contact__c     = strPrimaryContactId;
                acctHousehold.ShippingStreet     = txtAddress.Text;
                acctHousehold.ShippingCity       = ddlCity.SelectedValue;
                acctHousehold.ShippingState      = ddlState.SelectedValue;
                acctHousehold.ShippingPostalCode = txtZipCode.Text;

                acctHousehold.BillingStreet     = txtAddress.Text;
                acctHousehold.BillingCity       = ddlCity.SelectedValue;
                acctHousehold.BillingState      = ddlState.SelectedValue;
                acctHousehold.BillingPostalCode = txtZipCode.Text;

                SForce.SaveResult[] updateResults = Sfdcbinding.update(new SForce.sObject[] { acctHousehold });

                if (updateResults[0].success)
                {
                    // The Household account updated with Shipping address
                    //Session["PreviousPage"] = "PersonalDetails";
                    //Response.Redirect("~/FamilyDetails.aspx");
                    bUpdateAcctHouseholdSuccess = true;
                }

                if (bUpdatePrimarySuccess && bUpdateAcctHouseholdSuccess)
                {
                    Session["PreviousPage"] = "PersonalDetails";
                    Response.Redirect("~/FamilyDetails.aspx");
                }


                //if (updateResultsAccount[0].success && updateResultsContact[0].success)
                //{

                //    //SForce.Account acctPrimary = new SForce.Account();
                //    //if (strAccountId != null) acctPrimary.Id = strAccountId;
                //    //acctPrimary.cmm_Account_Creation_Step_Code__c = "2";

                //    //SForce.SaveResult[] srAccount = Sfdcbinding.update(new SForce.sObject[] { acctPrimary });

                //    //if (srAccount[0].success)
                //    //{
                //    //    Session["PreviousPage"] = "CreateAccount";
                //    //    Response.Redirect("~/PersonalDetails.aspx");
                //    //}

                //    SForce.Account acctPrimary = new SForce.Account();
                //    acctPrimary.Id = strAccountId;
                //    acctPrimary.cmm_Account_Creation_Step_Code__c = "3";

                //    acctPrimary.BillingStreet = txtAddress.Text;
                //    acctPrimary.BillingCity = ddlCity.SelectedItem.Text;
                //    acctPrimary.BillingState = ddlState.SelectedItem.Text;
                //    acctPrimary.BillingPostalCode = txtZipCode.Text;

                //    SForce.SaveResult[] srAccount = Sfdcbinding.update(new SForce.sObject[] { acctPrimary });

                //    if (srAccount[0].success)
                //    {
                //        // the update has succeeded
                //        Session["PreviousPage"] = "PersonalDetails";
                //        Response.Redirect("~/FamilyDetails.aspx");
                //    }
                //}
            }
            else
            {
                // user is current smoker or taking narcotic drug
                mpeUserSmokingDrugAlcohol.Show();
            }
        }
        protected void btnConfirmPersonalInfo_Click(object sender, EventArgs e)
        {
            // Send the email to confirm that the user entered correct email address and send the link to CreateAccount page to allow user to create account
            //SmtpClient smtpClient = new SmtpClient("mail.logosmissions.com");

            //smtpClient.Port = 25;
            //smtpClient.Credentials = new System.Net.NetworkCredential("hyungpark", "0particle8");
            //smtpClient.EnableSsl = true;
            //smtpClient.UseDefaultCredentials = false;


            //MailAddress from = new MailAddress("*****@*****.**", "Christian Mutual MedAid", System.Text.Encoding.UTF8);
            //MailAddress to = new MailAddress(txtEmail.Text);

            //MailMessage message = new MailMessage(from, to);
            //message.Body = "This is test email from Christian Mutual MedAid";
            //message.BodyEncoding = System.Text.Encoding.UTF8;
            //message.Subject = "CMM Confirmation Email";
            //message.SubjectEncoding = System.Text.Encoding.UTF8;

            //smtpClient.Send(message);

            //String strQueryForEmail = "select Id from Account where cmm_Email__c = '" + txtEmail.Text + "'";
            //SForce.QueryResult qrAccountForEmail = Sfdcbinding.query(strQueryForEmail);

            //if (qrAccountForEmail.size == 0)
            //{

            Session["FirstName"] = txtFirstName.Text;
            Session["LastName"]  = txtLastName.Text;
            Session["Email"]     = txtEmail.Text;

            //FirstName = txtFirstName.Text;
            //LastName = txtLastName.Text;
            //Email = txtEmail.Text;

            //Server.Transfer("~/CreateAccount.aspx", true);

            //String strAccountName = strLastName + " (" + strFirstName + ") Household";

            String strAccountName = txtLastName.Text + " (" + txtFirstName.Text + ") Household";

            Session["AccountName"] = strAccountName;

            SForce.Account acctPrimary = new SForce.Account();
            acctPrimary.Name            = strAccountName;
            acctPrimary.RecordType      = new SForce.RecordType();
            acctPrimary.RecordType.Name = "Household";
            acctPrimary.cmm_Account_Creation_Step_Code__c = "1";
            acctPrimary.cmm_Email__c = txtEmail.Text;

            SForce.SaveResult[] srAcctPrimary = Sfdcbinding.create(new SForce.sObject[] { acctPrimary });

            if (srAcctPrimary[0].success)
            {
                Session["AccountId"]    = srAcctPrimary[0].id;
                Session["PreviousPage"] = "PersonalInfo";
                Response.Redirect("~/CreateAccount.aspx");
            }
            else
            {
                // Error: creating account failed
            }
            //}
            //else if (qrAccountForEmail.size > 0)
            //{
            // Display message that indicates the email is already in salesforce database

            //String strQueryForAcctInfo = "select cmm_Account_Creation_Step_Code__c, Id from Account where cmm_Email__c = '" + txtEmail.Text + "'";

            //SForce.QueryResult qrAcctInfo = Sfdcbinding.query(strQueryForAcctInfo);

            //if (qrAcctInfo.size > 0)
            //{
            //    SForce.Account acctAcctInfo = qrAcctInfo.records[0] as SForce.Account;

            //    Session["FirstName"] = txtFirstName.Text;
            //    Session["LastName"] = txtLastName.Text;
            //    Session["Email"] = txtEmail.Text;

            //    Session["AccountId"] = acctAcctInfo.Id;

            //    String strAccountName = txtLastName.Text + " (" + txtFirstName.Text + ") Household";

            //    Session["AccountName"] = strAccountName;
            //    //Session["AccountId"] = acctAcctInfo.Id;
            //    Session["PreviousPage"] = "PersonalInfo";



            //    switch (acctAcctInfo.cmm_Account_Creation_Step_Code__c)
            //    {
            //        case "1":
            //            Response.Redirect("~/CreateAccount.aspx");
            //            break;
            //        case "2":
            //            Response.Redirect("~/PersonalDetails.aspx");
            //            break;
            //        case "3":
            //            Response.Redirect("~/FamilyDetails.aspx");
            //            break;
            //        case "4":
            //            Response.Redirect("~/MembershipDetails.aspx");
            //            break;
            //        case "5":
            //            Response.Redirect("~/PaymentInfo.aspx");
            //            break;
            //        case "6":
            //            Response.Redirect("~/HealthHistory.aspx");
            //            break;
            //        case "7":
            //            Response.Redirect("~/Agreement.aspx");
            //            break;
            //        case "8":
            //            // Show the message informing the user is already registered, tell the user to log on instead of registering
            //            Response.Redirect("~/Account/Login.aspx");
            //            break;
            //    }

            //}
            //}
        }
        protected void BtnSubmit_Click(object sender, EventArgs e)
        {
            //lblSeverSideCode.Text = "The personal information is submitted.";

            //if (Page.IsValid)
            //{


            /////// Should be uncommented for the application to work

            var manager       = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var signInManager = Context.GetOwinContext().Get <ApplicationSignInManager>();
            var user          = new ApplicationUser()
            {
                UserName = MemberEmail, Email = MemberEmail
            };
            IdentityResult result = manager.Create(user, txtPassword.Text);

            bool bCreateUserSucceeded = result.Succeeded;

            if (result.Succeeded)
            {
                SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());
                SqlCommand    cmd = new SqlCommand();
                strSQLSetEmailConfirmed = "Update AspNetUsers Set EmailConfirmed = @bEmailConfirmed where Email = @EmailAddr";
                cmd.CommandText         = strSQLSetEmailConfirmed;
                cmd.Connection          = cnn;

                cmd.Parameters.Add("@bEmailConfirmed", SqlDbType.Bit);
                cmd.Parameters["@bEmailConfirmed"].Value = true;
                cmd.Parameters.Add("@EmailAddr", SqlDbType.NVarChar);
                cmd.Parameters["@EmailAddr"].Value = MemberEmail;

                try
                {
                    cnn.Open();
                    int nRowsAffected = cmd.ExecuteNonQuery();
                    cnn.Close();
                }
                catch (Exception ex)
                {
                    //ErrorMessage.Text = ex.Message;
                }
                //signInManager.SignIn(user, isPersistent: false, rememberBrowser: false);
            }
            //}

            /// Should be uncommented up to this line
            ////////////////////////////////////////////////////////////////

            //lblReCaptchaError.Text = "Recaptcha Error!";

            //lblErrorMessage.Text = "This is ReCaptcha succeeded";

            //if (reCaptcha.Validate())
            //{
            //    lblReCaptchaError.Text = "ReCaptcha validation succeeded";
            //}
            //else
            //{
            //    lblReCaptchaError.Text = "ReCaptcha validation failed";
            //}

            //String strQueryForAcctId = "select Id from Account where cmm_Email__c = '" + MemberEmail + "'";

            //SForce.QueryResult qrAccountId = Sfdcbinding.query(strQueryForAcctId);

            //if (qrAccountId.size > 0)
            //{
            //SForce.Account acctPrimaryId = qrAccountId.records[0] as SForce.Account;

            SForce.Account acctPrimary = new SForce.Account();
            if (strAccountId != null)
            {
                acctPrimary.Id = strAccountId;
            }
            acctPrimary.cmm_Account_Creation_Step_Code__c = "2";

            SForce.SaveResult[] srAccount = Sfdcbinding.update(new SForce.sObject[] { acctPrimary });

            if (srAccount[0].success)
            {
                SForce.Contact ctPrimary = new SForce.Contact();

                ctPrimary.cmm_Household__c      = strAccountId;
                ctPrimary.Email                 = txtEmail.Text;
                ctPrimary.LastName              = txtLastName.Text;
                ctPrimary.FirstName             = txtFirstName.Text;
                ctPrimary.cmm_Household_Role__c = "Head of Household";

                SForce.SaveResult[] srPrimary = Sfdcbinding.create(new SForce.sObject[] { ctPrimary });

                if (srPrimary[0].success)
                {
                    SForce.Account acctHousehold = new SForce.Account();

                    acctHousehold.Id             = strAccountId;
                    acctHousehold.cmm_Contact__c = srPrimary[0].id;

                    SForce.SaveResult[] updateHousehold = Sfdcbinding.update(new SForce.sObject[] { acctHousehold });

                    if (updateHousehold[0].success)
                    {
                    }

                    SForce.Contact ctUpdate = new SForce.Contact();
                    ctUpdate.Id = srPrimary[0].id;
                    ctUpdate.cmm_Household__c = strAccountId;

                    SForce.SaveResult[] srUpdatePrimary = Sfdcbinding.update(new SForce.sObject[] { ctUpdate });

                    if (srUpdatePrimary[0].success)
                    {
                    }
                }

                var signInResult = signInManager.PasswordSignIn(txtEmail.Text, txtPassword.Text, false, shouldLockout: false);

                switch (signInResult)
                {
                case SignInStatus.Success:
                    Session["PreviousPage"] = "CreateAccount";
                    Response.Redirect("~/PersonalDetails.aspx");
                    break;

                case SignInStatus.LockedOut:
                    Response.Redirect("~/Account/Lockout.aspx");
                    break;

                case SignInStatus.Failure:
                    Context.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                    Response.Redirect("~/Account/Login.aspx");
                    break;
                }
            }
        }