/// <summary>
        /// Creaza un departamente din arbore
        /// </summary>
        /// <param name="parinte">Departamentul parinte</param>
        /// <param name="nivel">Nivelul departametnului</param>
        private void CreateDepartamente(int parinte, int nivel)
        {
            AdminDepartament adminDept = new AdminDepartament();

            adminDept.DeptParinte = parinte;
            DataSet ds = adminDept.LoadInfoDepartamente();

            DataTable myTable = new DataTable();

            myTable = ds.Tables[0];
            string nivel_text = "";

            for (int j = 0; j < nivel; j++)
            {
                nivel_text += ".  .  ";
            }
            for (int i = 0; i < myTable.Rows.Count; i++)
            {
                DataRow myRow = myTable.Rows[i];

                outStr += "window.opener.FillDepartamentCombo('" +
                          nivel_text + myRow["nume"].ToString() + "'," +
                          myRow["DepartamentID"].ToString() + ");";

                nivel++;
                CreateDepartamente(Convert.ToInt32(myRow["DepartamentID"]), nivel);
                nivel--;
            }
        }
        /// <summary>
        /// Adauga un departament
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, System.EventArgs e)
        {
            try
            {
                this.lstDeptParinte.Enabled = true;
                AdminDepartament newDepartament = new AdminDepartament();

                newDepartament.DepartamentId = -1;
                newDepartament.Denumire      = txtDenumire.Text;
                newDepartament.CentruCostId  = int.Parse(lstCentruCost.SelectedValue);

                if (this.lstSef.Items.Count != 0)
                {
                    newDepartament.SefId = int.Parse(this.lstSef.SelectedValue);
                }
                else
                {
                    newDepartament.SefId = -1;
                }
                newDepartament.InlocSefId = int.Parse(this.lstInlocSef.SelectedValue);
                //newDepartament.SecretaraId = int.Parse(lstSecretara.SelectedValue);
                newDepartament.Secretariat = txtSecretariat.Text;

                if (lstDeptParinte.Items.Count > 0)
                {
                    newDepartament.DeptParinte = int.Parse(this.lstDeptParinte.SelectedValue);
                }
                else
                {
                    newDepartament.DeptParinte = 0;
                }

                if (newDepartament.CheckIfAdminDepartamentCanBeAdded())
                {
                    newDepartament.InsertDepartament();
                }
                else
                {
                    Response.Write("<script> alert('Mai exista un departament cu aceste date!'); </script>");
                }
                UtilitiesDb utilDb = new UtilitiesDb(settings.ConnectionString);
                lstDeptParinte.Items.Clear();
                utilDb.CreateDepartamenteSelectBox(0, 0, this.lstDeptParinte);

                //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                CreateRefreshFunction();

                ListareDepartamente();
            }
            catch (Exception ex)
            {
                litError.Text  = "The following error occurred: <br>";
                litError.Text += ex.Message;
            }

            //this.ListareDepartamente();
        }
        /// <summary>
        /// Completeaza campurile cu datele unui departament
        /// </summary>
        private void FillEditForm()
        {
            try
            {
                int DepartamentID = Convert.ToInt32(this.txtDeptID.Value);
                AdminDepartament infoDepartament = new AdminDepartament();
                infoDepartament.DepartamentId = DepartamentID;
                DataRow departament = infoDepartament.GetDepartamentInfo().Tables[0].Rows[0];

                txtDenumire.Text            = departament["Denumire"].ToString();
                lstCentruCost.SelectedValue = departament["CentruCostId"].ToString();
                if ((lstInlocSef.Items.Count > 0) && (departament["InlocSefId"].ToString() != ""))
                {
                    lstInlocSef.SelectedValue = departament["InlocSefId"].ToString();
                }
                if ((lstSef.Items.Count > 0) && (departament["SefId"].ToString() != ""))
                {
                    lstSef.SelectedValue = departament["SefId"].ToString();
                }
                txtSecretariat.Text = departament["Secretariat"].ToString();
//				if ( (lstSecretara.Items.Count > 0) && (departament["SecretaraId"].ToString() != "") )
//				{
//					lstSecretara.SelectedValue = departament["SecretaraId"].ToString();
//				}
                if (int.Parse(departament["DeptParinte"].ToString()) != 0)
                {
                    lstDeptParinte.SelectedValue = departament["DeptParinte"].ToString();
                }
                if ((lstDeptParinte.Items.Count > 0) && (departament["DeptParinte"].ToString() != "0"))
                {
                    DeptParinteID.Value                = departament["DeptParinte"].ToString();
                    lstDeptParinte.Visible             = true;
                    labelExistentaDepartamente.Visible = false;
                }
                else
                {
                    DeptParinteID.Value                = departament["DeptParinte"].ToString();
                    lstDeptParinte.Visible             = false;
                    labelExistentaDepartamente.Visible = true;
                }
                td_addLine.Visible  = false;
                td_editLine.Visible = true;
                add_form.Style.Add("display", "");
                add_buttonLine.Visible = false;
                tdTitle.InnerText      = "Editare Departament";

                //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                //In acest caz va fi goala ...
                CreateEmptyRefreshFunction();
            }
            catch (Exception ex)
            {
                litError.Text  = "The following error occurred: <br>";
                litError.Text += ex.Message;
            }
        }
        /// <summary>
        /// Construieste arborele de departamente
        /// </summary>
        /// <param name="ContainerID"></param>
        private void BuildTree(string ContainerID)
        {
            AdminDepartament ad = new AdminDepartament();
            string           aux;
            int ID = 0;

            aux = "<script> var Departament_" + ID + " = new CreateNodeElement('Dept_" + ID + "','','',false,'" + ContainerID + "','','#','','');</script>" + BuildTree(ad, ID);
            Response.Write(aux);
            Response.Write("<script>Departament_0.ExpandAll();Departament_0.Render()</script>");
        }
        /// <summary>
        /// Sterge un departament
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelete_Click(object sender, System.EventArgs e)
        {
            try
            {
                int departamentId            = Convert.ToInt32(txtDeptID.Value);
                AdminDepartament departament = new AdminDepartament();
                departament.DepartamentId = departamentId;
                int sePoateSterge = departament.CheckIfDepartamentCanBeDeleted();

                if (sePoateSterge == 1)
                {
                    Response.Write("<script> alert('Departamentul nu poate fi sters! Este inca asociat unor angajati!'); </script>");
                    FillEditForm();
                    //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                    CreateRefreshFunction();
                }
                if (sePoateSterge == 2)
                {
                    Response.Write("<script> alert('Departamentul nu poate fi sters! Contine alte departamente!'); </script>");
                    FillEditForm();
                    //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                    CreateRefreshFunction();
                }
                if (sePoateSterge == 3)
                {
                    Response.Write("<script> alert('Operatiunea nu a fost efectuata deoarece nomenclatoul trebuie sa contina cel putin un departament.'); </script>");
                    FillEditForm();
                    //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                    CreateRefreshFunction();
                }
                if (sePoateSterge == 0)
                {
                    departament.DeleteDepartament();

                    UtilitiesDb utilDb = new UtilitiesDb(settings.ConnectionString);
                    lstDeptParinte.Items.Clear();
                    utilDb.CreateDepartamenteSelectBox(0, 0, this.lstDeptParinte);

                    //Daca pagina de administrare a fost deschisa din alta pagina cream functia care va face refresh la combo-ul cu departamente
                    CreateRefreshFunction();

                    ListareDepartamente();
                }
            }
            catch (Exception ex)
            {
                litError.Text  = "The following error occurred: <br>";
                litError.Text += ex.Message;
            }
        }
        /// <summary>
        /// Construieste arborele de departamente
        /// </summary>
        /// <param name="ad">Departamenentul</param>
        /// <param name="parentId">Departamentul parinte</param>
        /// <returns></returns>
        private string BuildTree(AdminDepartament ad, int parentId)
        {
            ad.DeptParinte = parentId;
            DataSet ds  = ad.LoadInfoDepartamente();
            string  aux = "";

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string ID   = dr["DepartamentID"].ToString();
                string Text = dr["Cod"].ToString() + " - " + dr["Denumire"].ToString();

                //In cazul in care se incearca editarea dept parinte cu numele angajtorului NU se intampla nimic ... pentru ca datele despre acest departament nu pot fi modificate
                //Pentru a identifica pe partea de client acest dept retinem id-ul acestuia
                if (parentId == 0)
                {
                    aux += "<script> var FirstDeptID = " + ID + ";</script> ";
                }
                aux += "<script> var Departament_" + ID + " = new CreateNodeElement('Dept_" + ID + "','" + Text + "','',false,null,'" + Text + "','#','','SelectLine( " + ID + ")');getNode('Dept_" + parentId + "').AddSubNode('Dept_" + ID + "')</script>" + BuildTree(ad, int.Parse(ID));
            }

            return(aux);
        }