protected void btnAdd_Click(Object Sender, EventArgs e)
        {
            int    intComponent = Int32.Parse(ddlParent.SelectedItem.Value);
            string strName      = txtName.Text.Trim();

            if (strName == "")
            {
                strName = oServerName.GetComponent(intComponent, "name");
            }
            if (intID == 0)
            {
                intID = oServerName.AddComponentDetail(intComponent, strName, Int32.Parse(ddlZEUSArrayConfig.SelectedItem.Value), Int32.Parse(ddlZEUSBuildType.SelectedItem.Value), (chkApproval.Checked ? 1 : 0), (chkModels.Checked ? 1 : 0), (chkNetworks.Checked ? 1 : 0), (chkInstall.Checked ? 1 : 0), (chkMount.Checked ? 1 : 0), txtNetworkPath.Text, txtInstallPath.Text, txtAD.Text, Int32.Parse(ddlScript.SelectedItem.Value), Int32.Parse(ddlEnvironment.SelectedItem.Value), (chkEnabled.Checked ? 1 : 0));
            }
            else
            {
                // Details
                oServerName.UpdateComponentDetail(intID, intComponent, strName, Int32.Parse(ddlZEUSArrayConfig.SelectedItem.Value), Int32.Parse(ddlZEUSBuildType.SelectedItem.Value), (chkApproval.Checked ? 1 : 0), (chkModels.Checked ? 1 : 0), (chkNetworks.Checked ? 1 : 0), (chkInstall.Checked ? 1 : 0), (chkMount.Checked ? 1 : 0), txtNetworkPath.Text, txtInstallPath.Text, txtAD.Text, Int32.Parse(ddlScript.SelectedItem.Value), Int32.Parse(ddlEnvironment.SelectedItem.Value), (chkEnabled.Checked ? 1 : 0));
                // Update Zeus Array Config Order
                if (Request.Form[hdnArrayConfigOrder.UniqueID] != "")
                {
                    string strOrder = Request.Form[hdnArrayConfigOrder.UniqueID];
                    int    intCount = 0;
                    while (strOrder != "")
                    {
                        intCount++;
                        int intId = Int32.Parse(strOrder.Substring(0, strOrder.IndexOf("&")));
                        strOrder = strOrder.Substring(strOrder.IndexOf("&") + 1);
                        oZeus.UpdateArrayConfigOrder(intId, intCount);
                    }
                }
                // Update Zues Build Type Order
                if (Request.Form[hdnBuildTypeOrder.UniqueID] != "")
                {
                    string strOrder = Request.Form[hdnBuildTypeOrder.UniqueID];
                    int    intCount = 0;
                    while (strOrder != "")
                    {
                        intCount++;
                        int intId = Int32.Parse(strOrder.Substring(0, strOrder.IndexOf("&")));
                        strOrder = strOrder.Substring(strOrder.IndexOf("&") + 1);
                        oZeus.UpdateArrayConfigOrder(intId, intCount);
                    }
                }
                // Class / Environments
                oServerName.DeleteComponentDetailCE(intID);
                foreach (TreeNode oNode in oTreeClassEnvironment.Nodes)
                {
                    SaveClassEnvironment(oNode, Int32.Parse(oNode.Value));
                }
                // Approvers
                // Models
                oServerName.DeleteComponentDetailModel(intID);
                foreach (TreeNode oNodeT in oTreeModels.Nodes)
                {
                    foreach (TreeNode oNodeM in oNodeT.ChildNodes)
                    {
                        SaveModel(oNodeM);
                    }
                }
                // Operating Systems / Service Packs
                oServerName.DeleteComponentDetailOsSp(intID);
                foreach (TreeNode oNode in oTreeOperatingSystemServicePack.Nodes)
                {
                    SaveOsSp(oNode, Int32.Parse(oNode.Value));
                }
                // Associated Components
                oServerName.DeleteComponentDetailRelated(intID, 0);
                foreach (TreeNode oNode in oTreeExclude.Nodes)
                {
                    SaveRelated(oNode, 0);
                }
                oServerName.DeleteComponentDetailRelated(intID, 1);
                foreach (TreeNode oNode in oTreeInclude.Nodes)
                {
                    SaveRelated(oNode, 1);
                }
                // Associated Applications
                oServerName.DeleteComponentDetailRelatedApplication(intID, 0);
                foreach (TreeNode oNode in oTreeExcludeApp.Nodes)
                {
                    SaveRelatedApplication(oNode, 0);
                }
                oServerName.DeleteComponentDetailRelatedApplication(intID, 1);
                foreach (TreeNode oNode in oTreeIncludeApp.Nodes)
                {
                    SaveRelatedApplication(oNode, 1);
                }
                // Networks
                oServerName.DeleteComponentDetailNetwork(intID);
                foreach (TreeNode oNodeC in oTreeNetworks.Nodes)
                {
                    foreach (TreeNode oNodeE in oNodeC.ChildNodes)
                    {
                        foreach (TreeNode oNodeA in oNodeE.ChildNodes)
                        {
                            foreach (TreeNode oNodeV in oNodeA.ChildNodes)
                            {
                                SaveNetwork(oNodeV);
                            }
                        }
                    }
                }
            }
            Response.Redirect(Request.Path + "?id=" + intID.ToString() + "&save=true");
        }