public AContractGump(string target, Mobile issuer, Mobile owner, int copper, int expiration, Mobile from, AContract acontract) : base(0, 0)
            {
                m_From      = from;
                m_AContract = acontract;
                if (target == null)
                {
                    target = "Nobody";
                }
                if (issuer == null)
                {
                    issuer = from;
                }
                if (owner == null)
                {
                    owner = from;
                }


                this.Closable   = true;
                this.Disposable = true;
                this.Dragable   = true;
                this.Resizable  = false;
                this.AddPage(0);
                this.AddBackground(7, 6, 285, 270, 9380);
                this.AddLabel(67, 47, 0, @"Contract of Assasination");
                this.AddImage(33, 50, 59);
                this.AddImage(228, 50, 57);
                this.AddImage(98, 181, 52);
                this.AddLabel(43, 70, 0, @"I hereby employ " + owner.Name + " to");
                this.AddLabel(151, 189, 0, @issuer.Name);
                this.AddLabel(43, 85, 0, @"assassinate " + target + " within the");
                this.AddLabel(43, 150, 0, @"this contract and I will provide");
                this.AddLabel(43, 100, 0, @"next " + expiration + " day(s) for the amount of");
                this.AddLabel(43, 115, 0, @copper + " copper pieces.");
                this.AddLabel(43, 135, 0, @"Upon completion, return to me with");
                this.AddLabel(43, 165, 0, @"your reward.");
                if (acontract.m_Owner == from)
                {
                    if (acontract.m_Expired == false)
                    {
                        this.AddButton(137, 220, 1210, 1209, 1, GumpButtonType.Reply, 1);
                        if (acontract.m_Completed != true)
                        {
                            this.AddLabel(156, 218, 0, @"Verify Kill");
                        }
                        else
                        {
                            this.AddLabel(156, 218, 0, @"Claim Reward");
                        }
                    }
                    else
                    {
                        this.AddLabel(137, 218, 0, @"Contract Expired");
                    }
                }
                else
                {
                    this.AddLabel(137, 218, 0, @"Not your Contract");
                }
            }
            public override void OnResponse(NetState state, RelayInfo info)
            {
                Mobile from = state.Mobile;

                if (info.ButtonID == 2)
                {
                    try
                    {
                        if (info.GetTextEntry(3) != null && info.GetTextEntry(4) != null && info.GetTextEntry(5) != null)
                        {
                            if (info.GetTextEntry(3).Text == "")
                            {
                                m_Issuer.SendMessage("Please fill in all blanks.");
                                from.SendGump(new CreateAContractGump(m_Issuer, m_Owner));
                                return;
                            }
                            m_Target     = info.GetTextEntry(3).Text as string;
                            m_Expiration = Convert.ToInt32(info.GetTextEntry(4).Text, 10);
                            if (m_Expiration < 1)
                            {
                                m_Issuer.SendMessage("This contract must last at least 1 day.");
                                from.SendGump(new CreateAContractGump(m_Issuer, m_Owner));
                                return;
                            }
                            m_Copper = Convert.ToInt32(info.GetTextEntry(5).Text, 10);
                            if (!Banker.Withdraw(from, m_Copper))
                            {
                                from.SendMessage("You cannot afford a reward of {0}!", m_Copper);
                                from.SendGump(new CreateAContractGump(m_Issuer, m_Owner));
                                return;
                            }

                            AContract x = (new AContract(m_Expiration));
                            x.m_Owner  = m_Owner;
                            x.m_Issuer = m_Issuer;
                            x.m_Target = m_Target;
                            x.m_Copper = m_Copper;
                            m_Owner.SendGump(new ConfirmAContractGump(m_Issuer, m_Owner, x, m_Target, m_Copper, m_Expiration));
                        }
                        else
                        {
                            m_Issuer.SendMessage("Please fill in all blanks.");
                            m_Issuer.SendGump(new CreateAContractGump(m_Issuer, m_Owner));
                        }
                    }
                    catch
                    {
                        from.SendMessage("Bad format. #### expected.");
                        m_Issuer.SendGump(new CreateAContractGump(m_Issuer, m_Owner));
                    }
                    //else if ( info.ButtonID == 2 ) Close;
                }
            }
        public ConfirmAContractGump(Mobile from, Mobile toplayer, AContract acontract, string target, int copper, int expiration) : base(0, 0)
        {
            m_From       = from;
            m_ToPlayer   = toplayer;
            m_AContract  = acontract;
            m_Copper     = copper;
            m_Expiration = expiration;
            m_Target     = target;

            Closable  = false;
            Resizable = false;

            this.Closable   = false;
            this.Disposable = false;
            this.Dragable   = true;
            this.Resizable  = false;
            this.AddPage(0);
            this.AddBackground(-1, 0, 341, 369, 9200);
            this.AddBackground(22, 40, 285, 270, 9380);
            this.AddLabel(82, 81, 0, @"Contract of Assasination");
            this.AddImage(48, 84, 59);
            this.AddImage(243, 84, 57);
            this.AddImage(113, 215, 52);
            this.AddLabel(58, 99, 0, @"I hereby request " + m_ToPlayer.Name + " to");
            this.AddLabel(166, 223, 0, m_From.Name);
            this.AddLabel(58, 114, 0, @"assasinate " + m_Target + " within the");
            this.AddLabel(58, 179, 0, @"this contract and I will provide");
            this.AddLabel(58, 194, 0, @"your reward.");
            this.AddLabel(58, 129, 0, @"next " + m_Expiration + " day(s) for the amount of");
            this.AddLabel(58, 164, 0, @"Upon completion, return to me with");
            this.AddLabel(58, 144, 0, @m_Copper + " copper pieces.");
            this.AddLabel(13, 13, 0, @"You have been offered the following contract:");
            this.AddLabel(13, 328, 0, @"Do you choose to accept it?");
            this.AddButton(228, 328, 4005, 4006, 1, GumpButtonType.Reply, 0);
            this.AddLabel(200, 329, 0, @"Yes");
            this.AddLabel(271, 329, 0, @"No");
            this.AddButton(292, 328, 4005, 4006, 2, GumpButtonType.Reply, 0);
        }
 public M_Target(AContract acontract) : base(12, false, TargetFlags.None)
 {
     m_AContract = acontract;
 }
 public ExpireContractTimer(int timeleft, AContract acontract) : base(TimeSpan.FromHours(1))
 {
     m_TimeLeft  = timeleft;
     m_AContract = acontract;
     Priority    = TimerPriority.OneMinute;
 }
 public ExpireContractDebugTimer(int timeleft, AContract acontract) : base(TimeSpan.FromMinutes(1))
 {
     m_TimeLeft  = timeleft;
     m_AContract = acontract;
     Priority    = TimerPriority.OneSecond;
 }
		public ConfirmAContractGump( Mobile from, Mobile toplayer, AContract acontract, string target, int copper, int expiration ) : base( 0, 0 )
		{
			m_From = from;
			m_ToPlayer = toplayer;
			m_AContract = acontract;
			m_Copper = copper;
			m_Expiration = expiration;
			m_Target = target;

			Closable = false;
			Resizable = false;
			
			this.Closable=false;
			this.Disposable=false;
			this.Dragable=true;
			this.Resizable=false;
			this.AddPage(0);
			this.AddBackground(-1, 0, 341, 369, 9200);
			this.AddBackground(22, 40, 285, 270, 9380);
			this.AddLabel(82, 81, 0, @"Contract of Assasination");
			this.AddImage(48, 84, 59);
			this.AddImage(243, 84, 57);
			this.AddImage(113, 215, 52);
			this.AddLabel(58, 99, 0, @"I hereby request " + m_ToPlayer.Name + " to");
			this.AddLabel(166, 223, 0, m_From.Name);
			this.AddLabel(58, 114, 0, @"assasinate " + m_Target + " within the");
			this.AddLabel(58, 179, 0, @"this contract and I will provide");
			this.AddLabel(58, 194, 0, @"your reward.");
			this.AddLabel(58, 129, 0, @"next " + m_Expiration + " day(s) for the amount of");
			this.AddLabel(58, 164, 0, @"Upon completion, return to me with");
			this.AddLabel(58, 144, 0, @m_Copper + " copper pieces.");
			this.AddLabel(13, 13, 0, @"You have been offered the following contract:");
			this.AddLabel(13, 328, 0, @"Do you choose to accept it?");
			this.AddButton(228, 328, 4005, 4006, 1, GumpButtonType.Reply, 0);
			this.AddLabel(200, 329, 0, @"Yes");
			this.AddLabel(271, 329, 0, @"No");
			this.AddButton(292, 328, 4005, 4006, 2, GumpButtonType.Reply, 0);

		}
				public M_Target( AContract acontract ) : base( 12, false, TargetFlags.None )
				{
					m_AContract = acontract;
				}
			public AContractGump( string target, Mobile issuer, Mobile owner, int copper, int expiration, Mobile from, AContract acontract ) : base(0, 0)
			{
				m_From = from;
				m_AContract = acontract;
				if ( target == null ) target = "Nobody";
				if ( issuer == null ) issuer = from;
				if ( owner == null ) owner = from;


				this.Closable=true;
				this.Disposable=true;
				this.Dragable=true;
				this.Resizable=false;
				this.AddPage(0);
				this.AddBackground(7, 6, 285, 270, 9380);
				this.AddLabel(67, 47, 0, @"Contract of Assasination");
				this.AddImage(33, 50, 59);
				this.AddImage(228, 50, 57);
				this.AddImage(98, 181, 52);
				this.AddLabel(43, 70, 0, @"I hereby employ " + owner.Name + " to");
				this.AddLabel(151, 189, 0, @issuer.Name);
				this.AddLabel(43, 85, 0, @"assassinate " + target + " within the");
				this.AddLabel(43, 150, 0, @"this contract and I will provide");
				this.AddLabel(43, 100, 0, @"next " + expiration + " day(s) for the amount of");
				this.AddLabel(43, 115, 0, @copper + " copper pieces.");
				this.AddLabel(43, 135, 0, @"Upon completion, return to me with");
				this.AddLabel(43, 165, 0, @"your reward.");
				if ( acontract.m_Owner == from )
				{
					if ( acontract.m_Expired == false ) 
					{
						this.AddButton(137, 220, 1210, 1209, 1, GumpButtonType.Reply, 1);
						if ( acontract.m_Completed != true ) this.AddLabel(156, 218, 0, @"Verify Kill");
						else this.AddLabel(156, 218, 0, @"Claim Reward");
					}
					else this.AddLabel(137, 218, 0, @"Contract Expired");
				}	
				else this.AddLabel(137, 218, 0, @"Not your Contract");
					
				
			}
			public ExpireContractDebugTimer( int timeleft, AContract acontract ) : base( TimeSpan.FromMinutes( 1 ) )
			{
				m_TimeLeft = timeleft;
				m_AContract = acontract;
				Priority = TimerPriority.OneSecond;
			}
			public ExpireContractTimer( int timeleft, AContract acontract ) : base( TimeSpan.FromHours( 1 ) )
			{
				m_TimeLeft = timeleft;
				m_AContract = acontract;
				Priority = TimerPriority.OneMinute;
			}