private void CTPopView_VisibleChanged(object sender, EventArgs e)
        {
            try
            {
                CTHolder.TaskName = CTPopTaskName.Text;
                CTHolder.CompleteCount = Convert.ToInt32(CTPopCompleteCount.Text);
                CTHolder.Item = CTPopItemName.Text;
                CTHolder.NPCInfo = CTPopNPCInfo.Text;
                CTHolder.NPCCoords = CTPopNPCCoords.Text;
                CTHolder.NPCYellowFlagText = CTPopNPCFlagTxt.Text;
                CTHolder.NPCYellowCompleteText = CTPopNPCCompleteTxt.Text;

                mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.RemoveWhere(x => x.TaskName == OldCTName);
                mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Add(CTHolder);

                iLockerUpdate.bSubmitGeneralSettings = true;
                CollectItemsHash = new HashSet<string>(mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Select(x => @x.Item));

                CTHolder = null;
                OldCTName = String.Empty;

                CTPopDispose();
                UpdateTaskPanel();
            }catch(Exception ex){LogError(ex);}
        }
        private void CollectTask_ChangeObject(object sender, int ObjectId)
        {
            try
            {
                AetherObject ao = AetherObjects.Collection[ObjectId];
                if(LastCollectTask == null || @LastCollectTask.Item != @ao.Name)
                {
                    if(!CollectItemsHash.Contains(@ao.Name)){return;}
                    else{LastCollectTask = mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Where(x => @x.Item == @ao.Name).FirstOrDefault();}
                }

                if(LastCollectStatus == null || LastCollectStatus.TaskId != LastCollectTask.CollectTaskId)
                {
                    LastCollectStatus = mCharacterSettings.CollectTaskStatus.Where(x => x.TaskId == LastCollectTask.CollectTaskId).FirstOrDefault();
                    if(LastCollectStatus == null)
                    {
                        LastCollectStatus = new TaskStatus();
                        LastCollectStatus.TaskId = LastCollectTask.CollectTaskId;
                        LastCollectStatus.active = true;
                        mCharacterSettings.CollectTaskStatus.Add(LastCollectStatus);
                    }
                }

                LastCollectStatus.CurrentCount = mCurrentInventory.InvCountByName(@LastCollectTask.Item);

                if(LastCollectStatus.CurrentCount >= LastCollectTask.CompleteCount){LastCollectStatus.complete = true;}
                else{LastCollectStatus.complete = false;}

                UpdateTaskPanel();
            }catch(Exception ex){LogError(ex);}
        }
        private void CollectTaskEdit_Hit(object sender, EventArgs e)
        {
            try
            {
                CTHolder = mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Where(x => x.TaskName == CollectTaskSelected.Text).FirstOrDefault();;
                if(CTHolder == null)
                {
                    WriteToChat("First select a collect task.");
                    return;
                }

                OldCTName = CTHolder.TaskName;
                RenderCollectTaskPopUp();
            }catch(Exception ex){LogError(ex);}
        }
        private void CollectTaskNew_Hit(object sender, EventArgs e)
        {
            try
            {
                CollectTask NewCollectTask = new CollectTask();

                NewCollectTask.TaskName = "NewTask " + DateTime.Now;
                int i = 0;
                for(i = 0; i <= mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Count; )
                {
                    if(!mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Any(x => x.CollectTaskId == i)) {break;}
                    else{i++;}
                }
                NewCollectTask.CollectTaskId = i;
                CTHolder = NewCollectTask;
                OldCTName = NewCollectTask.TaskName;
                RenderCollectTaskPopUp();
            }catch(Exception ex){LogError(ex);}
        }
        private void CollectTaskDelete_Hit(object sender, EventArgs e)
        {
            try
            {
                int scroll = CollectTaskList.ScrollPosition;

                CollectTask deltask = mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.Where(x => x.TaskName == CollectTaskSelected.Text).FirstOrDefault();
                if(deltask == null)
                {
                    WriteToChat("First select a collect task.");
                    return;
                }

                mGeneralSettings.GearTaskerSettings.MasterCollectTaskHash.RemoveWhere(x => x.TaskName == deltask.TaskName);

                CollectTaskSelected.Text = null;
                OldCTName = String.Empty;
                CTHolder = null;

                UpdateTaskPanel();

                CollectTaskList.ScrollPosition = scroll;

            }catch(Exception ex){LogError(ex);}
        }