public StaffVendorGump( Mobile from, TokenVendorStone stone )
            : base(125, 125)
        {
            m_Stone = stone;

            m_Stone.CloseGumps( from );

            AddPage( 0 );

            AddBackground( 0, 0, 160, 140, 0x2436 );

            AddButton( 10, 10, 4005, 4007, 1, GumpButtonType.Reply, 0 );
            AddLabel( 40, 10, 1152, "Vendor Gump" );
            AddButton( 10, 30, 4005, 4007, 2, GumpButtonType.Reply, 0 );
            AddLabel( 40, 30, 1152, "Add Item" );

            if ( from.AccessLevel == AccessLevel.Administrator )
                AddButton( 10, 50, 4005, 4007, 3, GumpButtonType.Reply, 0 );
            if ( m_Stone.AccessLevel == AccessLevel.Administrator )
                AddLabel( 40, 50, 1302, "Administrator" );
            else if ( m_Stone.AccessLevel == AccessLevel.Seer )
                AddLabel( 40, 50, 324, "Seer" );
            else if ( m_Stone.AccessLevel == AccessLevel.GameMaster )
                AddLabel( 40, 50, 33, "Game Master" );
            else if ( m_Stone.AccessLevel == AccessLevel.Counselor )
                AddLabel( 40, 50, 2, "Counselor" );
            else if ( m_Stone.AccessLevel == AccessLevel.Player )
                AddLabel( 40, 50, 88, "Player" );

            AddButton( 10, 70, 4005, 4007, 4, GumpButtonType.Reply, 0 );
            if ( m_Stone.EditMode )
                AddLabel( 40, 70, 5, "Edit Mode" );
            else
                AddLabel( 40, 70, 33, "Edit Mode" );
            AddLabel( 10, 90, 1152, "Currency:" );
            AddTextEntry( 70, 90, 85, 15, 1152, 0, m_Stone.Currency );

            AddButton( 10, 110, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 40, 110, 33, "Close" );
        }
        public TokenVendorStoneEditGump( Mobile from, VSItem vsi, TokenVendorStone stone )
            : base(125, 125)
        {
            m_Stone = stone;
            m_VSI = vsi;

            m_Stone.CloseGumps( from );

            AddPage( 0 );

            AddBackground( 0, 0, 420, 300, 0x2436 );

            AddLabel( 13, 10, 1152, "Item Type:" );
            AddTextEntry( 83, 10, 100, 15, 1152, 0, m_VSI.Item );

            AddLabel( 13, 30, 1152, "Gump Name:" );
            AddTextEntry( 90, 30, 90, 15, 1152, 1, m_VSI.Name );

            AddLabel( 13, 50, 1152, "Price:" );
            AddTextEntry( 53, 50, 85, 15, 1152, 2, ""+m_VSI.Price );

            AddLabel( 13, 70, 1152, "Amount:" );
            AddTextEntry( 63, 70, 85, 15, 1152, 3, ""+m_VSI.Amount );

            AddCheck( 15, 90, 0x2342, 0x2343, m_VSI.BlessBond, 1 );
            AddLabel( 45, 90, 1152, "Bless/Bond:" );

            AddLabel( 13, 110, 1152, "Bless/Bond Price:" );
            AddTextEntry( 123, 110, 225, 15, 1152, 4, ""+m_VSI.BBPrice );

            AddLabel( 13, 130, 1152, "Description:" );
            AddTextEntry( 13, 150, 387, 75, 1152, 5, m_VSI.Description );

            AddButton( 15, 245, 4005, 4007, 2, GumpButtonType.Reply, 0 );
            AddLabel( 45, 245, 33, "Remove" );

            AddButton( 15, 265, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 45, 265, 33, "Back" );
            AddButton( 85, 265, 4005, 4007, 1, GumpButtonType.Reply, 0 );
            AddLabel( 115, 265, 33, "Apply" );
        }
        public TokenVendorStoneBuyGump( VSShopper shopper, TokenVendorStone stone )
            : base(125, 125)
        {
            m_Shopper = shopper;
            m_Stone = stone;

            m_Stone.CloseGumps( m_Shopper.Owner );

            AddPage( 0 );

            AddBackground( 0, 0, 375, 210, 0x2436 );

            AddLabel( 12, 17, 5, "Your Buy List" );
            AddLabel( 110, 22, 5, "Total Purchase: "+m_Shopper.TotalPrice() );

            AddButton( 15, 160, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 45, 160, 33, "Back" );
            AddButton( 110, 160, 4005, 4007, 1, GumpButtonType.Reply, 0 );
            AddLabel( 140, 160, 1152, "Buy" );

            for ( int i = 0; i < m_Shopper.ItemList.Count; ++i )
            {
                int item = (int)m_Shopper.ItemList[i];

                if ( (i % 5) == 0 )
                {
                    if ( i != 0 )
                    {
                        AddButton( 190, 235, 0x1196, 0x1196, 1152, GumpButtonType.Page, (i / 5) + 1 );
                        AddLabel( 190, 220, 1152, "Next page" );
                    }

                    AddPage( (i / 5) + 1 );

                    if ( i != 0 )
                    {
                        AddButton( 10, 235, 0x119a, 0x119a, 1152, GumpButtonType.Page, (i / 5) );
                        AddLabel( 10, 220, 1152, "Previous page" );
                    }
                }

                VSItem vsi = (VSItem)m_Stone.ItemList[item];

                string blessbond = (vsi.BlessBond ? "(B)" : "");

                AddButton( 13, 40 + ((i % 5) * 20), 0x26AF, 0x26B1, i+2, GumpButtonType.Reply, 0 );
                if ( m_Stone.Currency.ToLower() == "daat99tokens" )
                    AddLabel( 40, 40 + ((i % 5) * 20), 1152, vsi.Amount+" "+vsi.Name+" "+blessbond+" "+vsi.Price+" Token Ledger Tokens" );
                else
                    AddLabel( 40, 40 + ((i % 5) * 20), 1152, vsi.Amount+" "+vsi.Name+" "+blessbond+" "+vsi.Price+" "+m_Stone.Currency );
            }
        }
        public TokenVendorStoneBlessBondGump( Mobile from, VSItem vsi, TokenVendorStone stone, ArrayList objects )
            : base(125, 125)
        {
            m_Stone = stone;
            m_VSI = vsi;
            m_Objects = objects;

            m_Stone.CloseGumps( from );

            AddPage( 0 );

            AddBackground( 0, 0, 375, 85, 0x2436 );

            if ( objects.Count > 0 && objects[0] is Item )
                AddLabel( 13, 10, 1152, "Would you like to bless this item: '"+ vsi.Name +"'?" );
            else if ( objects.Count > 0 && objects[0] is Mobile )
                AddLabel( 13, 10, 1152, "Would you like to bond this pet: '"+ vsi.Name +"'?" );
            AddLabel( 13, 25, 1152, "Price: "+ vsi.BBPrice );

            AddButton( 15, 50, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 45, 50, 33, "No" );
            AddButton( 85, 50, 4005, 4007, 1, GumpButtonType.Reply, 0 );
            AddLabel( 115, 50, 33, "Yes" );
        }
        public TokenVendorStoneAddItemGump( Mobile mobile, TokenVendorStone stone )
            : base(25, 50)
        {
            m_Mobile = mobile;
            m_Stone = stone;

            m_Stone.CloseGumps( m_Mobile );

            AddPage( 0 );

            AddBackground( 25, 10, 420, 430, 0x2436 );

            AddImageTiled( 33, 20, 401, 411, 2624 );
            AddAlphaRegion( 33, 20, 401, 411 );

            AddLabel( 125, 40, 1152, "Vendor Stone" );

            AddLabel( 40, 60, 1152, "Add a Mobile or Item:" );
            AddTextEntry( 40, 80, 225, 15, 5, 0, "Item Here" );
            AddLabel( 40, 100, 1152, "Gump Name:" );
            AddTextEntry( 40, 120, 225, 15, 5, 1, "Name Here" );
            AddLabel( 40, 140, 1152, "Price:" );
            AddTextEntry( 40, 160, 225, 15, 5, 2, "0" );
            AddLabel( 40, 180, 1152, "Item Amount:" );
            AddTextEntry( 40, 200, 225, 15, 5, 3, "1" );

            AddCheck( 40, 220, 0x2342, 0x2343, false, 1 );
            AddLabel( 70, 220, 1152, "Bless/Bond:" );

            AddLabel( 40, 240, 1152, "Bless/Bond Price:" );
            AddTextEntry( 40, 260, 225, 15, 5, 4, "0" );

            AddLabel( 40, 280, 1152, "Description:" );
            AddTextEntry( 40, 300, 360, 75, 5, 5, "Des Here" );

            AddButton( 40, 390, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 70, 393, 1152, "Back" );
            AddButton( 120, 390, 4005, 4007, 1, GumpButtonType.Reply, 0 );
            AddLabel( 150, 393, 1152, "Apply" );
        }
        public VendorGump( VSShopper shopper, TokenVendorStone stone )
            : base(25, 25)
        {
            m_Stone = stone;
            m_Shopper = shopper;

            m_Stone.CloseGumps( m_Shopper.Owner );

            AddPage( 0 );

            AddBackground( 0, 0, 550, 480, 0x2436 );
            AddAlphaRegion( 10, 10, 530, 460 );

            AddImageTiled( 10, 40, 530, 5, 2624 );
            AddImageTiled( 10, 58, 390, 5, 2624 );

            AddImageTiled( 90, 40, 5, 430, 2624 );
            AddImageTiled( 125, 40, 5, 430, 2624 );
            AddImageTiled( 160, 40, 5, 430, 2624 );
            AddImageTiled( 310, 40, 5, 430, 2624 );
            AddImageTiled( 400, 40, 5, 430, 2624 );

            if ( m_Stone.Name != null && m_Stone.Name != "" )
                AddHtml( 10, 10, 510, 20, Color( Center( m_Stone.Name ), 0xFFFFFF ), false, false );
            else
                AddHtml( 10, 10, 510, 20, Color( Center( "Vendor Stone" ), 0xFFFFFF ), false, false );

            AddLabel( 420, 60, 5, "Stone Currency:" );
            if ( m_Stone.Currency.ToLower() == "daat99tokens"  )
                AddLabel( 420, 80, 5, "Token Ledger" );
            else if ( m_Stone.Currency != null  )
                AddLabel( 420, 80, 5, m_Stone.Currency );
            else
                AddLabel( 420, 80, 33, "None" );

            AddHtml( 10, 42, 85, 20, Color( Center( "Item Amount" ), 0xFFFFFF ), false, false );
            AddHtml( 95, 42, 30, 20, Color( Center( ((m_Stone.EditMode && shopper.Owner.AccessLevel >= m_Stone.AccessLevel) ? "Edit" : "Buy") ), 0xFFFFFF ), false, false );
            AddHtml( 130, 42, 30, 20, Color( Center( "Des" ), 0xFFFFFF ), false, false );
            AddHtml( 165, 42, 145, 20, Color( Center( "Item" ), 0xFFFFFF ), false, false );
            AddHtml( 315, 42, 85, 20, Color( Center( "Price" ), 0xFFFFFF ), false, false );

            if ( !m_Stone.EditMode )
            {
                AddButton( 420, 120, 1209, 1210, 1, GumpButtonType.Reply, 0 );
                AddLabel( 440, 120, 1152, "Buy Items" );
            }

            AddLabel( 410, 160, 1152, "The (B) beside" );
            AddLabel( 410, 175, 1152, "items and creatures" );
            AddLabel( 410, 190, 1152, "stands for blessing" );
            AddLabel( 410, 205, 1152, "or bonding." );

            AddLabel( 420, 400, 906, "Created By" );
            AddLabel( 420, 420, 906, "~Raelis~" );

            AddButton( 420, 440, 4005, 4007, 0, GumpButtonType.Reply, 0 );
            AddLabel( 450, 440, 33, "Close" );

            int index = 0;
            int page = 1;

            AddPage( 1 );

            for ( int i = 0; i < m_Stone.ItemList.Count; ++i )
            {
                if ( index >= AmountPerPage )
                {
                    AddButton( 420, 365, 0x1196, 0x1196, 1152, GumpButtonType.Page, page + 1 );
                    AddLabel( 420, 350, 1152, "Next page" );

                    ++page;
                    index = 0;

                    AddPage( page );

                    AddButton( 420, 315, 0x119a, 0x119a, 1152, GumpButtonType.Page, page - 1 );
                    AddLabel( 420, 300, 1152, "Previous page" );
                }

                int price = ((VSItem)m_Stone.ItemList[i]).Price;
                int amount = ((VSItem)m_Stone.ItemList[i]).Amount;
                string gumpname = ((VSItem)m_Stone.ItemList[i]).Name;

                AddLabel( 165, 60 + (index * 20), 1152, gumpname +( ((VSItem)m_Stone.ItemList[i]).BlessBond ? " (B)" : "") );
                AddLabel( 25, 60 + (index * 20), 1152, ""+ amount );
                AddLabel( 320, 60 + (index * 20), 1152, ""+ price );

                AddButton( 100, 65 + (index * 20), 1209, 1210, i+2, GumpButtonType.Reply, 0 );
                if ( ((VSItem)m_Stone.ItemList[i]).Description != null && ((VSItem)m_Stone.ItemList[i]).Description != "" )
                    AddButton( 135, 65 + (index * 20), 0x1523, 0x1523, i+m_Stone.ItemList.Count+3, GumpButtonType.Reply, 0 );

                AddImageTiled( 10, 80 + (index * 20), 390, 3, 2624 );

                index++;
            }
        }