using System;
using Server;
using Server.Targeting;
using Server.Mobiles;

namespace Server.Items
{
	public class ItemIdentification
	{
		public static void Initialize()
		{
			SkillInfo.Table[(int)SkillName.ItemID].Callback = new SkillUseCallback( OnUse );
		}

		public static TimeSpan OnUse( Mobile from )
		{
			from.SendLocalizedMessage( 500343 ); // What do you wish to appraise and identify?
			from.Target = new InternalTarget();

			return TimeSpan.FromSeconds( 1.0 );
		}

		[PlayerVendorTarget]
		private class InternalTarget : Target
		{
			public InternalTarget() :  base ( 8, false, TargetFlags.None )
			{
				AllowNonlocal = true;
			}

			protected override void OnTarget( Mobile from, object o )
			{
				if ( o is Item )
				{
					if ( from.CheckTargetSkill( SkillName.ItemID, o, 0, 100 ) )
					{
						if ( o is BaseWeapon )
						{
							((BaseWeapon)o).Identified = true;
						   from.SendMessage( 596, "Predmet byl uspesne identifikovan." );
                  }
						else if ( o is BaseArmor )
						{
							((BaseArmor)o).Identified = true;
						   from.SendMessage( 596, "Predmet byl uspesne identifikovan." );
                  }

						if ( !Core.AOS )
							((Item)o).OnSingleClick( from );
					}
					else
					{
						from.SendLocalizedMessage( 500353 ); // You are not certain...
					}
				}
            else if ( o is Mobile )
            {
            	from.SendLocalizedMessage( 500353 ); // You are not certain...
            }
            else
            {
            	from.SendLocalizedMessage( 500353 ); // You are not certain...
            }
            //allows the identify skill to reveal attachments
            Server.Engines.XmlSpawner2.XmlAttach.RevealAttachments(from,o);

			}
		}
	}
}