using System;
using Server.Prompts;
using Server.Network;

namespace Server.Items
{
	[Furniture]
	public class HouseSigns : Item
	{
		[Constructable]
		public HouseSigns() : base(3082)
		{
			Weight = 1.0;
			Movable = true;
			Name = "sign";
		}

		public HouseSigns(Serial serial) : base(serial)
		{
		}

        public override void AddNameProperties(ObjectPropertyList list)
		{
			list.Add( this.Name );
			if ( Movable )
				list.Add( 1070722, "Use Sign To Name It");
        } 

		public override void OnDoubleClick( Mobile from )
		{
			if ( !IsChildOf( from.Backpack ) )
			{
				from.SendLocalizedMessage( 1060640 ); // The item must be in your backpack to use it.
			}
			else
			{
				from.SendMessage("Please Enter The New Name For This Sign");
				from.Prompt = new RenamePrompt( this );
			}
		}

		private class RenamePrompt : Prompt
		{
			private HouseSigns m_Sign;

			public RenamePrompt( HouseSigns sign )
			{
				m_Sign = sign;
			}

			public override void OnResponse( Mobile from, string text )
			{
				m_Sign.Name = text;
				from.SendMessage("The Name has been changed"); 
			}
		}

		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);
			writer.Write((int) 0);
		}

		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
			int version = reader.ReadInt();
		}
	}

	[Flipable(0x0A96,0x0AA6)]
	public class HouseSignHerbalist : HouseSigns
	{
		[Constructable]
		public HouseSignHerbalist()
		{
			Name = "herbalist sign";
			ItemID = 0x0A96;
		}
		public HouseSignHerbalist(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0AA7,0x0AA8)]
	public class HouseSignMiner : HouseSigns
	{
		[Constructable]
		public HouseSignMiner()
		{
			Name = "miner sign";
			ItemID = 0x0AA7;
		}
		public HouseSignMiner(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0906,0x0907)]
	public class HouseSignDocks : HouseSigns
	{
		[Constructable]
		public HouseSignDocks()
		{
			Name = "dock sign";
			ItemID = 0x0906;
		}
		public HouseSignDocks(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0908,0x0909)]
	public class HouseSignArms : HouseSigns
	{
		[Constructable]
		public HouseSignArms()
		{
			Name = "arms sign";
			ItemID = 0x0908;
		}
		public HouseSignArms(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0B3B,0x0B4D)]
	public class HouseSignFisherman : HouseSigns
	{
		[Constructable]
		public HouseSignFisherman()
		{
			Name = "fisherman sign";
			ItemID = 0x0B3B;
		}
		public HouseSignFisherman(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0B95,0x0B96)]
	public class HouseSignLibrary : HouseSigns
	{
		[Constructable]
		public HouseSignLibrary()
		{
			Name = "library sign";
			ItemID = 0x0B95;
		}
		public HouseSignLibrary(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BA3,0x0BA4)]
	public class HouseSignFood : HouseSigns
	{
		[Constructable]
		public HouseSignFood()
		{
			Name = "food sign";
			ItemID = 0x0BA3;
		}
		public HouseSignFood(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BA5,0x0BA6)]
	public class HouseSignTailor : HouseSigns
	{
		[Constructable]
		public HouseSignTailor()
		{
			Name = "tailor sign";
			ItemID = 0x0BA5;
		}
		public HouseSignTailor(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BA7,0x0BA8)]
	public class HouseSignTinker : HouseSigns
	{
		[Constructable]
		public HouseSignTinker()
		{
			Name = "tinker sign";
			ItemID = 0x0BA7;
		}
		public HouseSignTinker(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BA9,0x0BAA)]
	public class HouseSignButcher : HouseSigns
	{
		[Constructable]
		public HouseSignButcher()
		{
			Name = "butcher sign";
			ItemID = 0x0BA9;
		}
		public HouseSignButcher(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BAB,0x0BAC)]
	public class HouseSignHealer : HouseSigns
	{
		[Constructable]
		public HouseSignHealer()
		{
			Name = "healer sign";
			ItemID = 0x0BAB;
		}
		public HouseSignHealer(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BAD,0x0BAE)]
	public class HouseSignMage : HouseSigns
	{
		[Constructable]
		public HouseSignMage()
		{
			Name = "mage sign";
			ItemID = 0x0BAD;
		}
		public HouseSignMage(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BAF,0x0BB0)]
	public class HouseSignCarpenter : HouseSigns
	{
		[Constructable]
		public HouseSignCarpenter()
		{
			Name = "carpenter sign";
			ItemID = 0x0BAF;
		}
		public HouseSignCarpenter(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BB1,0x0BB2)]
	public class HouseSignMaps : HouseSigns
	{
		[Constructable]
		public HouseSignMaps()
		{
			Name = "maps sign";
			ItemID = 0x0BB1;
		}
		public HouseSignMaps(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BB3,0x0BB4)]
	public class HouseSignInn : HouseSigns
	{
		[Constructable]
		public HouseSignInn()
		{
			Name = "inn sign";
			ItemID = 0x0BB3;
		}
		public HouseSignInn(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BB5,0x0BB6)]
	public class HouseSignShipbuilder : HouseSigns
	{
		[Constructable]
		public HouseSignShipbuilder()
		{
			Name = "shipbuilder sign";
			ItemID = 0x0BB5;
		}
		public HouseSignShipbuilder(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BB7,0x0BB8)]
	public class HouseSignStable : HouseSigns
	{
		[Constructable]
		public HouseSignStable()
		{
			Name = "stable sign";
			ItemID = 0x0BB7;
		}
		public HouseSignStable(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BBB,0x0BBC)]
	public class HouseSignBard : HouseSigns
	{
		[Constructable]
		public HouseSignBard()
		{
			Name = "bard sign";
			ItemID = 0x0BBB;
		}
		public HouseSignBard(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BBD,0x0BBE)]
	public class HouseSignBowyer : HouseSigns
	{
		[Constructable]
		public HouseSignBowyer()
		{
			Name = "bowyer sign";
			ItemID = 0x0BBD;
		}
		public HouseSignBowyer(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BBF,0x0BC0)]
	public class HouseSignWeapons : HouseSigns
	{
		[Constructable]
		public HouseSignWeapons()
		{
			Name = "weapons sign";
			ItemID = 0x0BBF;
		}
		public HouseSignWeapons(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BC1,0x0BC2)]
	public class HouseSignJewels : HouseSigns
	{
		[Constructable]
		public HouseSignJewels()
		{
			Name = "jewelry sign";
			ItemID = 0x0BC1;
		}
		public HouseSignJewels(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BC3,0x0BC4)]
	public class HouseSignTavern : HouseSigns
	{
		[Constructable]
		public HouseSignTavern()
		{
			Name = "tavern sign";
			ItemID = 0x0BC3;
		}
		public HouseSignTavern(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BC5,0x0BC6)]
	public class HouseSignAlchemy : HouseSigns
	{
		[Constructable]
		public HouseSignAlchemy()
		{
			Name = "alchemy sign";
			ItemID = 0x0BC5;
		}
		public HouseSignAlchemy(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BC7,0x0BC8)]
	public class HouseSignSmithing : HouseSigns
	{
		[Constructable]
		public HouseSignSmithing()
		{
			Name = "smithing sign";
			ItemID = 0x0BC7;
		}
		public HouseSignSmithing(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BCB,0x0BCC)]
	public class HouseSignProvisions : HouseSigns
	{
		[Constructable]
		public HouseSignProvisions()
		{
			Name = "provisions sign";
			ItemID = 0x0BCB;
		}
		public HouseSignProvisions(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BCD,0x0BCE)]
	public class HouseSignArchery : HouseSigns
	{
		[Constructable]
		public HouseSignArchery()
		{
			Name = "archery sign";
			ItemID = 0x0BCD;
		}
		public HouseSignArchery(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BCF,0x0BD0)]
	public class HouseSignWooden : HouseSigns
	{
		[Constructable]
		public HouseSignWooden()
		{
			Name = "wooden sign";
			ItemID = 0x0BCF;
		}
		public HouseSignWooden(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0BD1,0x0BD2)]
	public class HouseSignBrass : HouseSigns
	{
		[Constructable]
		public HouseSignBrass()
		{
			Name = "brass sign";
			ItemID = 0x0BD1;
		}
		public HouseSignBrass(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}

	[Flipable(0x0C0B,0x0C0C)]
	public class HouseSignGold : HouseSigns
	{
		[Constructable]
		public HouseSignGold()
		{
			Name = "gold sign";
			ItemID = 0x0C0B;
		}
		public HouseSignGold(Serial serial) : base(serial){}
		public override void Serialize(GenericWriter writer){ base.Serialize(writer); writer.Write((int) 0); }
		public override void Deserialize(GenericReader reader){ base.Deserialize(reader); int version = reader.ReadInt(); }
	}
}