public void AddTool( Mobile m , Item tar, int uses, ToolBox box ) {
			if ( ( tar is BaseTool || tar is BaseHarvestTool ) && uses > 0 ) {
				if ( tar is Hammer || tar is SmithHammer || tar is Tongs )
				{ this.i_S += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is TinkerTools ) { this.i_Ti += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is Skillet || tar is RollingPin || tar is FlourSifter )
				{ this.i_Co += uses; tar.Consume(); box.OW( m ); }
				else if (  tar is DovetailSaw || tar is Saw || tar is DrawKnife || tar is Froe || tar is Inshave || tar is JointingPlane || tar is MouldingPlane || tar is Nails || tar is Scorp || tar is SmoothingPlane )
				{ this.i_C += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is Shovel || tar is Pickaxe ) { this.i_M += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is Blowpipe ) { this.i_G += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is MalletAndChisel ) { this.i_St += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is SewingKit ) { this.i_T += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is FletcherTools ) { this.i_F += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is MortarPestle ) { this.i_A += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is MapmakersPen ) { this.i_Ca += uses; tar.Consume(); box.OW( m ); }
				else if ( tar is ScribesPen ) { this.i_Sc += uses; tar.Consume(); box.OW( m ); }
				else { m.SendMessage( "I do not recognize this type." ); box.NG( m, box ); } }
			else { m.SendMessage( "This is not the appropriate type of item or it has no uses left." ); box.NG( m, box ); } }
		public ToolBoxGump( Mobile m, ToolBox box ) : base( 55, 65 ) {
			m_user = (PlayerMobile)m; i_box = box;
			
			Closable=true; Disposable=true; Dragable=true; Resizable=false;
			AddPage(0); AddBackground( 0, 0, 340, 240, 9200 ); AddLabel( 140, 10, 152, "Tool Box" );
			
			AddLabel( 30, 45, 0, "Smithy:" );
			AddLabel( 110, 45, 0x480, box.i_S.ToString() );
			if ( box.i_S > 0 )
			AddButton( 10, 50, 2361, 2361, 3, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 70, 0, "Carpentry:" );
			AddLabel( 110, 70, 0x480, box.i_C.ToString() );
			if ( box.i_C > 0 )
			AddButton( 10, 75, 2361, 2361, 4, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 95, 0, "Tinkering:" );
			AddLabel( 110, 95, 0x480, box.i_Ti.ToString() );
			if ( box.i_Ti > 0 )
			AddButton( 10, 100, 2361, 2361, 5, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 120, 0, "Tailoring:" );
			AddLabel( 110, 120, 0x480, box.i_T.ToString() );
			if ( box.i_T > 0 )
			AddButton( 10, 125, 2361, 2361, 6, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 145, 0, "Glassblowing:" );
			AddLabel( 110, 145, 0x480, box.i_G.ToString() );
			if ( box.i_G > 0 )
			AddButton( 10, 150, 2361, 2361, 7, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 170, 0, "Inscription:" );
			AddLabel( 110, 170, 0x480, box.i_Sc.ToString() );
			if ( box.i_Sc > 0 )
			AddButton( 10, 175, 2361, 2361, 8, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 45, 0, "Mining:" );
			AddLabel( 280, 45, 0x480, box.i_M.ToString() );
			if ( box.i_M > 0 )
			AddButton( 170, 50, 2361, 2361, 9, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 70, 0, "Cooking:" );
			AddLabel( 280, 70, 0x480, box.i_Co.ToString() );
			if ( box.i_Co > 0 )
			AddButton( 170, 75, 2361, 2361, 10, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 95, 0, "Fletching:" );
			AddLabel( 280, 95, 0x480, box.i_F.ToString() );
			if ( box.i_F > 0 )
			AddButton( 170, 100, 2361, 2361, 11, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 120, 0, "Alchemy:" );
			AddLabel( 280, 120, 0x480, box.i_A.ToString() );
			if ( box.i_A > 0 )
			AddButton( 170, 125, 2361, 2361, 12, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 145, 0, "Stoneworking:" );
			AddLabel( 280, 145, 0x480, box.i_St.ToString() );
			if ( box.i_St > 0 )
			AddButton( 170, 150, 2361, 2361, 13, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 170, 0, "Cartography:" );
			AddLabel( 280, 170, 0x480, box.i_Ca.ToString() );
			if ( box.i_Ca > 0 )
			AddButton( 170, 175, 2361, 2361, 14, GumpButtonType.Reply, 0 );
			
			AddLabel( 215, 210, 0, "Add Type" );
			
			AddButton( 10, 210, 2073, 2072, 1, GumpButtonType.Reply, 0 );
			AddButton( 280, 210, 2143, 2142, 2, GumpButtonType.Reply, 0 );
		}
			public InternalTarget( ToolBox boxa ) : base( 1, false, TargetFlags.None ) { box = boxa; }
		public void NG( Mobile m, ToolBox box ) { m.SendGump( new ToolBoxGump( m, box ) ); }
		public ToolBoxGump( Mobile m, ToolBox box ) : base( 55, 65 )
        {
			m_user = (PlayerMobile)m;
            i_box = box;

            m.CloseGump(typeof(ToolBoxGump));
			
			Closable=true; Disposable=true; Dragable=true; Resizable=false;
			AddPage(0);
            AddBackground( 0, 0, 340, 300, 9200 );
            AddLabel( 140, 10, 152, "Tool House (combines left: " + box.Combines.ToString() + ")" );
			
			AddLabel( 30, 45, 0, "Smithy:" );
			AddLabel( 110, 45, 0x480, box.i_S.ToString() );
			if ( box.i_S > 0 )
			AddButton( 10, 50, 2361, 2361, 3, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 70, 0, "Carpentry:" );
			AddLabel( 110, 70, 0x480, box.i_C.ToString() );
			if ( box.i_C > 0 )
			AddButton( 10, 75, 2361, 2361, 4, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 95, 0, "Tinkering:" );
			AddLabel( 110, 95, 0x480, box.i_Ti.ToString() );
			if ( box.i_Ti > 0 )
			AddButton( 10, 100, 2361, 2361, 5, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 120, 0, "Tailoring:" );
			AddLabel( 110, 120, 0x480, box.i_T.ToString() );
			if ( box.i_T > 0 )
			AddButton( 10, 125, 2361, 2361, 6, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 145, 0, "Lumberjacking:" );
			AddLabel( 110, 145, 0x480, box.i_L.ToString() );
			if ( box.i_L > 0 )
			AddButton( 10, 150, 2361, 2361, 7, GumpButtonType.Reply, 0 );
			
			AddLabel( 30, 170, 0, "Inscription:" );
			AddLabel( 110, 170, 0x480, box.i_Sc.ToString() );
			if ( box.i_Sc > 0 )
			AddButton( 10, 175, 2361, 2361, 8, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 45, 0, "Mining:" );
			AddLabel( 280, 45, 0x480, box.i_M.ToString() );
			if ( box.i_M > 0 )
			AddButton( 170, 50, 2361, 2361, 9, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 70, 0, "Cooking:" );
			AddLabel( 280, 70, 0x480, box.i_Co.ToString() );
			if ( box.i_Co > 0 )
			AddButton( 170, 75, 2361, 2361, 10, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 95, 0, "Fletching:" );
			AddLabel( 280, 95, 0x480, box.i_F.ToString() );
			if ( box.i_F > 0 )
			AddButton( 170, 100, 2361, 2361, 11, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 120, 0, "Alchemy:" );
			AddLabel( 280, 120, 0x480, box.i_A.ToString() );
			if ( box.i_A > 0 )
			AddButton( 170, 125, 2361, 2361, 12, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 145, 0, "Stoneworking:" );
			AddLabel( 280, 145, 0x480, box.i_St.ToString() );
			if ( box.i_St > 0 )
			AddButton( 170, 150, 2361, 2361, 13, GumpButtonType.Reply, 0 );
			
			AddLabel( 190, 170, 0, "Cartography:" );
			AddLabel( 280, 170, 0x480, box.i_Ca.ToString() );
			if ( box.i_Ca > 0 )
			AddButton( 170, 175, 2361, 2361, 14, GumpButtonType.Reply, 0 );

            AddLabel(30, 195, 0, "Garg Pickaxe:");
            AddLabel(110, 195, 0x480, box.i_Garg.ToString());
            if (box.i_Garg > 0)
                AddButton(10, 200, 2361, 2361, 15, GumpButtonType.Reply, 0);

            AddLabel(30, 220, 0, "Glass blowing:");
            AddLabel(110, 220, 0x480, box.i_G.ToString());
            if (box.i_G > 0)
                AddButton(10, 225, 2361, 2361, 17, GumpButtonType.Reply, 0);
        
            AddLabel(190, 195, 0, "Prospect Tool:");
            AddLabel(280, 195, 0x480, box.i_Pros.ToString());
            if (box.i_Pros > 0)
                AddButton(170, 200, 2361, 2361, 16, GumpButtonType.Reply, 0);
			
			AddLabel( 200, 270, 0, "Combine Item" );
			
			AddButton( 10, 270, 2073, 2072, 0, GumpButtonType.Reply, 0 );
			AddButton( 280, 270, 2143, 2142, 2, GumpButtonType.Reply, 0 );
		}