protected void ActivityActionSelection_OnSelectedIndexChanged(Object sender, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs eventArgs)
        {
            if (MercuryApplication == null)
            {
                return;
            }


            Client.Core.Individual.CareInterventionActivity careInterventionActivity = EditCareInterventionActivity;

            if (ActivityActionSelection.SelectedItem != null)
            {
                switch (ActivityTypeSelection.SelectedValue)
                {
                case "1":     // AUTOMATION

                    Int64 actionId = Convert.ToInt64(ActivityActionSelection.SelectedValue);

                    careInterventionActivity.Action = MercuryApplication.ActionById(actionId);



                    break;

                case "2":                                                               // WORKFLOW

                    careInterventionActivity.Action = MercuryApplication.ActionById(1); // WORKFLOW

                    careInterventionActivity.Action.ActionParameters["Workflow"].Value = ActivityActionSelection.SelectedValue;

                    careInterventionActivity.Action.ActionParameters["Workflow"].ValueDescription = ActivityActionSelection.SelectedItem.Text;

                    careInterventionActivity.Action.RebindActionParameters(MercuryApplication);

                    break;
                }
            }

            EditCareInterventionActivity = careInterventionActivity;

            InitializeActivityParametersGrid();

            return;
        }
        protected void InitializeActivitiesPageActivityType()
        {
            // CLEAR ASSIGNED ACTION ON CHANGE (FOR ALL CHANGES)

            Client.Core.Individual.CareInterventionActivity careInterventionActivity = EditCareInterventionActivity;

            careInterventionActivity.Action = null;

            EditCareInterventionActivity = careInterventionActivity;



            switch (ActivityTypeSelection.SelectedValue)
            {
            case "0":     // MANUAL

                ActivityActionSelection.Items.Clear();

                ActivityActionSelection.Enabled = false;


                ActivityTypeManualNameDescription.Style.Clear();

                ActivityParameters.Style.Add("display", "none");


                break;

            case "1":     // AUTOMATION

                InitializeActivitySelectionForAutomation();


                ActivityTypeManualNameDescription.Style.Add("display", "none");

                ActivityParameters.Style.Clear();

                break;


            case "2":     // WORKFLOW

                InitializeActivitySelectionForWorkflow();


                ActivityTypeManualNameDescription.Style.Add("display", "none");

                ActivityParameters.Style.Clear();

                break;

            case "3":     // MONITOR

                ActivityActionSelection.Items.Clear();

                ActivityActionSelection.Enabled = false;


                ActivityTypeManualNameDescription.Style.Add("display", "none");

                ActivityParameters.Style.Add("display", "none");


                break;
            }

            return;
        }
        protected void ActivityThresholdsGrid_OnItemCommand(Object sender, Telerik.Web.UI.GridCommandEventArgs eventArgs)
        {
            Client.Core.Individual.CareInterventionActivity careInterventionActivity = EditCareInterventionActivity;

            Mercury.Client.Core.Activity.ActivityThreshold threshold;

            String parameterName;

            Telerik.Web.UI.RadNumericTextBox thresholdRelativeDateValue;

            Telerik.Web.UI.RadComboBox thresholdRelativeDateQualifier;

            Telerik.Web.UI.RadComboBox thresholdStatusSelection;

            Telerik.Web.UI.RadComboBox thresholdActionSelection;

            Telerik.Web.UI.RadComboBox parameterValueSelection;

            Telerik.Web.UI.RadTextBox parameterFixedValue;

            Int64 actionId = 0;


            if (MercuryApplication == null)
            {
                return;
            }


            // SaveResponseLabel.Text = String.Empty;

            switch (eventArgs.CommandName)
            {
            case Telerik.Web.UI.RadGrid.EditCommandName:

                #region Edit Command

                switch (eventArgs.Item.OwnerTableView.Name)
                {
                case "Thresholds":

                    Telerik.Web.UI.GridEditCommandColumn editColumn = (Telerik.Web.UI.GridEditCommandColumn)ActivityThresholdsGrid.MasterTableView.GetColumn("EditCommandColumn");

                    if (!editColumn.Visible)
                    {
                        editColumn.Visible = true;
                    }

                    Telerik.Web.UI.GridEditableItem editItem = (Telerik.Web.UI.GridEditableItem)eventArgs.Item;

                    break;


                case "ThresholdParameters":

                    editColumn = (Telerik.Web.UI.GridEditCommandColumn)eventArgs.Item.OwnerTableView.GetColumn("EditCommandColumn");

                    if (!editColumn.Visible)
                    {
                        editColumn.Visible = true;
                    }

                    break;
                }

                #endregion

                break;

            case Telerik.Web.UI.RadGrid.InitInsertCommandName:

                break;

            case Telerik.Web.UI.RadGrid.PerformInsertCommandName:

                #region Perform Insert Command

                Telerik.Web.UI.GridEditableItem insertedItem = (Telerik.Web.UI.GridEditableItem)eventArgs.Item;

                thresholdRelativeDateValue = (Telerik.Web.UI.RadNumericTextBox)insertedItem.FindControl("ActivityThresholdRelativeDateValue");

                thresholdRelativeDateQualifier = (Telerik.Web.UI.RadComboBox)insertedItem.FindControl("ActivityThresholdRelativeDateQualifier");

                thresholdStatusSelection = (Telerik.Web.UI.RadComboBox)insertedItem.FindControl("ActivityThresholdStatusSelection");

                thresholdActionSelection = (Telerik.Web.UI.RadComboBox)insertedItem.FindControl("ActivityThresholdActionSelection");


                try {
                    if (thresholdRelativeDateValue.Value == null)
                    {
                        throw new ApplicationException("No Threshold Date Specified.");
                    }


                    threshold = careInterventionActivity.GetNewThreshold();

                    threshold.RelativeDateValue = Int32.Parse(thresholdRelativeDateValue.Value.ToString());

                    threshold.RelativeDateQualifier = (Mercury.Server.Application.DateQualifier)Int32.Parse(thresholdRelativeDateQualifier.SelectedItem.Value);

                    threshold.Status = (Mercury.Server.Application.ActivityStatus)Int32.Parse(thresholdStatusSelection.SelectedValue);


                    // RESERVED IF ACTIONS ARE ADDED TO CARE LEVEL ACTIVITY THRESHOLDS

                    //actionId = Int64.Parse (thresholdActionSelection.SelectedValue);

                    //threshold.Action = MercuryApplication.ActionById (actionId);

                    //if (threshold.Action == null) { threshold.Action = new Mercury.Client.Core.Action.Action (MercuryApplication); }


                    if (!EditCareInterventionActivity.HasThreshold(threshold))
                    {
                        careInterventionActivity.Thresholds.Add(threshold);

                        EditCareInterventionActivity = careInterventionActivity;
                    }

                    else
                    {
                        throw new ApplicationException("Duplicate Threshold");
                    }
                }

                catch (Exception MercuryApplicationException) {
                    // SaveResponseLabel.Text = "Error: " + MercuryApplicationException.Message;
                }

                #endregion

                break;

            case Telerik.Web.UI.RadGrid.UpdateCommandName:

                #region Update Command

                Telerik.Web.UI.GridEditableItem updatedItem = (Telerik.Web.UI.GridEditableItem)eventArgs.Item;

                switch (eventArgs.Item.OwnerTableView.Name)
                {
                case "Thresholds":

                    thresholdRelativeDateValue = (Telerik.Web.UI.RadNumericTextBox)updatedItem.FindControl("ActivityThresholdRelativeDateValue");

                    thresholdRelativeDateQualifier = (Telerik.Web.UI.RadComboBox)updatedItem.FindControl("ActivityThresholdRelativeDateQualifier");

                    thresholdStatusSelection = (Telerik.Web.UI.RadComboBox)updatedItem.FindControl("ActivityThresholdStatusSelection");

                    thresholdActionSelection = (Telerik.Web.UI.RadComboBox)updatedItem.FindControl("ActivityThresholdActionSelection");

                    threshold = careInterventionActivity.SortedThresholds.Values[updatedItem.ItemIndex];

                    threshold.RelativeDateValue = Int32.Parse(thresholdRelativeDateValue.Value.ToString());

                    threshold.RelativeDateQualifier = (Mercury.Server.Application.DateQualifier)Int32.Parse(thresholdRelativeDateQualifier.SelectedItem.Value);

                    threshold.Status = (Mercury.Server.Application.ActivityStatus)Int32.Parse(thresholdStatusSelection.SelectedValue);


                    // RESERVED IF ACTIONS ARE ADDED TO CARE LEVEL ACTIVITY THRESHOLDS

                    //actionId = Int64.Parse (thresholdActionSelection.SelectedValue);

                    //if (threshold.Action.Id != actionId) {

                    //    threshold.Action = MercuryApplication.ActionById (actionId);

                    //    if (threshold.Action == null) { threshold.Action = new Mercury.Client.Core.Action.Action (MercuryApplication); }

                    //}

                    break;

                case "ThresholdParameters":         // RESERVED IF ACTIONS ARE ADDED TO CARE LEVEL ACTIVITY THRESHOLDS

                    Int64 thresholdKey = Int64.Parse((String)((Telerik.Web.UI.GridEditableItem)eventArgs.Item).OwnerTableView.DataKeyValues[eventArgs.Item.ItemIndex]["ThresholdKey"]);

                    threshold = careInterventionActivity.SortedThresholds[thresholdKey];

                    parameterName = (String)((Telerik.Web.UI.GridEditableItem)eventArgs.Item).OwnerTableView.DataKeyValues[eventArgs.Item.ItemIndex]["ParameterName"];

                    if (threshold.Action.ActionParameters.ContainsKey(parameterName))
                    {
                        parameterValueSelection = (Telerik.Web.UI.RadComboBox)eventArgs.Item.FindControl("ActivityThresholdParameterValue");

                        parameterFixedValue = (Telerik.Web.UI.RadTextBox)eventArgs.Item.FindControl("ActivityThresholdParameterFixedValue");

                        if ((parameterValueSelection.SelectedItem != null) || (!String.IsNullOrEmpty(parameterFixedValue.Text)))
                        {
                            if ((threshold.Action.ActionParameters[parameterName].AllowFixedValue) && (!String.IsNullOrEmpty(parameterFixedValue.Text)))
                            {
                                threshold.Action.ActionParameters[parameterName].ValueType = Mercury.Server.Application.ActionParameterValueType.FixedValue;

                                threshold.Action.ActionParameters[parameterName].Value = parameterFixedValue.Text;

                                threshold.Action.ActionParameters[parameterName].ValueDescription = parameterFixedValue.Text;
                            }

                            else
                            {
                                threshold.Action.ActionParameters[parameterName].ValueType = Mercury.Server.Application.ActionParameterValueType.DataMapping;

                                threshold.Action.ActionParameters[parameterName].Value = parameterValueSelection.SelectedItem.Value;

                                threshold.Action.ActionParameters[parameterName].ValueDescription = parameterValueSelection.SelectedItem.Text;
                            }


                            if ((threshold.Action.Name == "Workflow") && (parameterName == "Workflow"))
                            {
                                threshold.Action.RebindActionParameters(MercuryApplication);
                            }
                        }
                    }

                    break;
                }

                #endregion

                break;

            case Telerik.Web.UI.RadGrid.ExpandCollapseCommandName:

                #region Expand/Collapse Command

                System.Data.DataTable parameterTable = (System.Data.DataTable)Session[SessionCachePrefix + "ActivityThresholdsGrid.ParameterTable"];

                parameterTable.Rows.Clear();

                Int32 currentThresholdIndex = 0;

                foreach (Mercury.Client.Core.Activity.ActivityThreshold currentThreshold in careInterventionActivity.SortedThresholds.Values)
                {
                    if (currentThreshold.Action != null)
                    {
                        foreach (String currentParameterName in currentThreshold.Action.ActionParameters.Keys)
                        {
                            parameterTable.Rows.Add(currentThresholdIndex, currentParameterName, currentThreshold.Action.ActionParameters[currentParameterName].ValueDescription);
                        }
                    }

                    currentThresholdIndex = currentThresholdIndex + 1;
                }

                ActivityThresholdsGrid.MasterTableView.DetailTables[0].DataSource = parameterTable;

                ActivityThresholdsGrid.MasterTableView.DetailTables[0].DataBind();

                #endregion

                break;

            case Telerik.Web.UI.RadGrid.DeleteCommandName:

                Int32 deleteIndex = eventArgs.Item.DataSetIndex;

                if ((deleteIndex > -1) && (deleteIndex < careInterventionActivity.Thresholds.Count))
                {
                    threshold = careInterventionActivity.SortedThresholds.Values[deleteIndex];

                    careInterventionActivity.Thresholds.Remove(threshold);
                }

                break;

            default:

                System.Diagnostics.Debug.WriteLine(eventArgs.CommandName);

                break;
            }


            EditCareInterventionActivity = careInterventionActivity;

            return;
        }
        protected void ActivityParametersGrid_OnItemCommand(Object sender, Telerik.Web.UI.GridCommandEventArgs eventArgs)
        {
            String parameterName;

            Telerik.Web.UI.RadComboBox parameterValueSelection;

            Telerik.Web.UI.RadTextBox parameterFixedValue;

            Client.Core.Individual.CareInterventionActivity careInterventionActivity = EditCareInterventionActivity;


            if (MercuryApplication == null)
            {
                return;
            }


            switch (eventArgs.CommandName)
            {
            case Telerik.Web.UI.RadGrid.EditCommandName:

                #region Edit Command

                Telerik.Web.UI.GridEditCommandColumn editColumn = (Telerik.Web.UI.GridEditCommandColumn)ActivityParametersGrid.MasterTableView.GetColumn("EditCommandColumn");

                if (!editColumn.Visible)
                {
                    editColumn.Visible = true;
                }

                Telerik.Web.UI.GridEditableItem editItem = (Telerik.Web.UI.GridEditableItem)eventArgs.Item;

                #endregion

                break;

            case Telerik.Web.UI.RadGrid.UpdateCommandName:

                #region Update Command

                parameterValueSelection = (Telerik.Web.UI.RadComboBox)eventArgs.Item.FindControl("ActivityParameterValueSelection");

                parameterFixedValue = (Telerik.Web.UI.RadTextBox)eventArgs.Item.FindControl("ActivityParameterFixedValue");

                if ((parameterValueSelection.SelectedItem != null) || (!String.IsNullOrEmpty(parameterFixedValue.Text)))
                {
                    parameterName = (String)((Telerik.Web.UI.GridEditableItem)eventArgs.Item).OwnerTableView.DataKeyValues[eventArgs.Item.ItemIndex]["ParameterName"];

                    if ((careInterventionActivity.Action.ActionParameters[parameterName].AllowFixedValue) && (!String.IsNullOrEmpty(parameterFixedValue.Text)))
                    {
                        careInterventionActivity.Action.ActionParameters[parameterName].ValueType = Mercury.Server.Application.ActionParameterValueType.FixedValue;

                        careInterventionActivity.Action.ActionParameters[parameterName].Value = parameterFixedValue.Text;

                        careInterventionActivity.Action.ActionParameters[parameterName].ValueDescription = parameterFixedValue.Text;
                    }

                    else
                    {
                        careInterventionActivity.Action.ActionParameters[parameterName].ValueType = Mercury.Server.Application.ActionParameterValueType.DataMapping;

                        careInterventionActivity.Action.ActionParameters[parameterName].Value = parameterValueSelection.SelectedItem.Value;

                        careInterventionActivity.Action.ActionParameters[parameterName].ValueDescription = parameterValueSelection.SelectedItem.Text;
                    }

                    if ((careInterventionActivity.Action.Name == "Workflow") && (parameterName == "Workflow"))
                    {
                        careInterventionActivity.Action.RebindActionParameters(MercuryApplication);
                    }
                }

                #endregion

                break;
            }

            EditCareInterventionActivity = careInterventionActivity;

            InitializeActivityParametersGrid();

            return;
        }