public static SecurityItem FromGroup(SecurityGroup group)
		{
			SecurityItem ch = new SecurityItem();
			ch.SID = group.SID;
			ch.Image = global::Sim.AdminForms.Properties.Resources.Group;
			ch.Name = group.Name;
			ch.Desc = group.Description;
			return ch;
		}
		public static SecurityItem FromUser(Person user)
		{
			SecurityItem ch = new SecurityItem();
			ch.SID = user.OID;
			ch.Image = global::Sim.AdminForms.Properties.Resources.User;
			ch.Name = user.ShortName;
			ch.Desc = user.FullName;
			return ch;
		}
		//-------------------------------------------------------------------------------------
		#region << DataGridViews Handlers >>
		private void fdgvGroups_SelectionChanged(object sender, EventArgs e)
		{
			try
			{
				childsList.Clear();
				parentsList.Clear();
				if(fdgvGroups.SelectedRows.Count == 0)
				{
					labelGroupName.Text = "";
					flSID.Text = "";
					btnDelGroup.Enabled = false;
					btnRenameGroup.Enabled = false;

					toolStripParentGroups.Enabled = false;
					toolStripChildGroups.Enabled = false;
					return;
				}

				btnDelGroup.Enabled = true;
				btnRenameGroup.Enabled = true;

				toolStripParentGroups.Enabled = true;
				toolStripChildGroups.Enabled = true;

				SecurityGroup group = (SecurityGroup)((IKeyedValue)fdgvGroups.SelectedRows[0].GetData()).Value;
				labelGroupName.Text = group.Name;
				flSID.Text = group.SID.ToString();

				if(psec.SidsLinks.ContainsKey(group.SID))
					foreach(OID sid in psec.SidsLinks[group.SID])
					{
						if(psec.SecurityGroups.ContainsKey(sid))
							parentsList.Add(SecurityItem.FromGroup(psec.SecurityGroups[sid]));
						else
						{
							SecurityItem i = new SecurityItem();
							i.SID = sid;
							i.Name = "(Unknown)";
							i.Desc = sid.ToString();
							i.Image = global::Sim.AdminForms.Properties.Resources.UnknownGroup;
							parentsList.Add(i);
						}
					}

				foreach(OID sid in psec.SidsLinks.Keys)
					if(psec.SidsLinks[sid].Contains(group.SID))
					{
						if(psec.SecurityGroups.ContainsKey(sid))
						{
							childsList.Add(SecurityItem.FromGroup(psec.SecurityGroups[sid]));
							continue;
						}

						SecurityItem i = new SecurityItem();
						foreach(Person u in users)
							if(u.OID == sid)
							{
								i.SID =  u.OID;
								i.Name = u.ShortName;
								i.Desc = u.FullName;
								i.Image = global::Sim.AdminForms.Properties.Resources.User;
								break;
							}

						if(i.Image == null)
						{
							i.SID = sid;
							i.Name = "(Unknown)";
							i.Desc = sid.ToString();
							i.Image = global::Sim.AdminForms.Properties.Resources.UnknownGroup;
						}
						childsList.Add(i);
					}
			}
			catch(Exception Err)
			{
				ModalErrorBox.Show(Err, PanelBack);
			}
		}