public override void OnResponse(NetState state, RelayInfo info)
        {
            Mobile m = state.Mobile;

            if (info.ButtonID > 299)
            {
                int change = info.ButtonID - 300;
                LokaiSkillUtilities.ChangeShowLokaiSkill(change);
                m.SendGump(new ShowLokaiSkillsGump(m, m_Value));
            }
            else if (info.ButtonID > 199)
            {
                LokaiSkillName showAb     = (LokaiSkillName)(info.ButtonID - 200);
                LokaiSkill     lokaiSkill = LokaiSkillUtilities.XMLGetSkills(m)[showAb];
                int            offset     = ((int)showAb * 17) - 9;
                switch (showAb)
                {
                case LokaiSkillName.Butchering: m.SendGump(new ShowButcheringGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Skinning: m.SendGump(new ShowSkinningGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.DetectEvil: m.SendGump(new ShowDetectEvilGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.CureDisease: m.SendGump(new ShowCureDiseaseGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.PickPocket: m.SendGump(new ShowPickPocketGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Pilfering: m.SendGump(new ShowPilferingGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Ventriloquism: m.SendGump(new ShowVentriloquismGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Hypnotism: m.SendGump(new ShowHypnotismGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.SpeakToAnimals: m.SendGump(new ShowSpeakToAnimalsGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Brewing: m.SendGump(new ShowBrewingGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Commerce: m.SendGump(new ShowCommerceGump(m, lokaiSkill, offset)); break;

                case LokaiSkillName.Herblore: m.SendGump(new ShowHerbloreGump(m, lokaiSkill, offset)); break;
                }
                m.SendGump(new ShowLokaiSkillsGump(m, m_Value));
            }
            else if (info.ButtonID > 99)
            {
                int useSkill = info.ButtonID - 100;
                if (m.Spell == null && !m.Meditating)
                {
                    if (LokaiSkillInfo.Table[useSkill].Callback != null)
                    {
                        if (m.NextSkillTime <= Core.TickCount || (LokaiSkillName)useSkill == LokaiSkillName.SpeakToAnimals)
                        {
                            m.NextSkillTime = Core.TickCount + (int)LokaiSkillInfo.Table[useSkill].Callback(m).TotalSeconds;
                        }
                        else
                        {
                            m.SendMessage("You must wait to use another skill.");
                        }
                    }
                    else
                    {
                        m.SendMessage("That skill is not yet active.");
                    }
                }
                else
                {
                    m.SendMessage("You are too busy to use that skill now.");
                }

                m.SendGump(new ShowLokaiSkillsGump(m, m_Value));
            }
            else if (info.ButtonID == 19)
            {
                m.SendGump(new ShowLokaiSkillsGump(m, false));
            }
            else if (info.ButtonID == 29)
            {
                m.SendGump(new ShowLokaiSkillsGump(m, true));
            }
        }