package clases
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.display.Shape;
	import clases.sonidoPrecargado;
	import flash.events.Event;

	public class arrastreFlecha extends MovieClip
	{

		public var clip:MovieClip;
		public var pariente:MovieClip;
		public var valorZ:int;
		public var xo:int;
		public var yo:int;
		public var topo:Boolean = false;
		public var tipo:String;
		public var zonaActual:MovieClip;
		public var son1:sonidoPrecargado;
		public var sx:Number;
		public var sy:Number;

		public var dibujo:Shape = new Shape();


		public function arrastreFlecha(clipPasado:MovieClip,ValorZpasado:int,tipoPasado:String)
		{

			clip = clipPasado;
			valorZ = ValorZpasado;
			pariente = MovieClip(clip.parent);

			clip.buttonMode = true;
			clip.useHandCursor = true;
			tipo = tipoPasado;

			son1 = new sonidoPrecargado("sonidos/sonidosGenerales/bien.mp3");

			xo = clip.x;
			yo = clip.y;

			clip.xo = clip.x;
			clip.yo = clip.y;

			sx = clip.scaleX;
			sy = clip.scaleY;
			
			pariente.addChild(dibujo);

			clip.addEventListener(MouseEvent.MOUSE_DOWN,presionado);
			clip.addEventListener(MouseEvent.MOUSE_UP,suelto);
			clip.addEventListener(Event.ENTER_FRAME,dibujar);

		}

		public function presionado(e)
		{
			if (pariente.activo == true)
			{
				for (var i:int = 1; i<valorZ+1; i++)
				{
					if (clip.hitTestObject(pariente["z" + i]))
					{
						pariente["z" + i].tipo = "";
					}
				}
				clip.startDrag();
				pariente.addChild(clip);
				clip.scaleX = sx + 0.05;
				clip.scaleY = sy + 0.05;
			}
		}
		public function dibujar(event)
		{
			dibujo.graphics.clear();
			dibujo.graphics.lineStyle(2,0x0000FF);
			dibujo.graphics.moveTo(clip.xo-30,clip.yo);
			dibujo.graphics.lineTo(clip.x,clip.y);
		}
		public function remover(){
			clip.removeEventListener(Event.ENTER_FRAME,dibujar)
			}

		public function suelto(e)
		{
			if (pariente.activo == true)
			{
				clip.stopDrag();
				clip.scaleX = sx;
				clip.scaleY = sy;
				son1.reproducir();
				for (var i:int = 1; i<valorZ+1; i++)
				{

					if (clip.hitTestObject(pariente["z" + i]))
					{
						clip.x = pariente["z" + i].x + pariente.xi 
						clip.y = pariente["z" + i].y + pariente.yi
						topo = true;
						pariente["z" + i].tipo = tipo;


						for (var j:int = 1; j<4; j++)
						{
							if (pariente["c" + j].name != clip.name)
							{

								if (clip.hitTestObject(pariente["c" + j]))
								{
									pariente["c" + j].x = pariente["c" + j].xo;
									pariente["c" + j].y = pariente["c" + j].yo;
								}
							}
						}

					}
				}
				if (topo == true)
				{
					topo = false;
				}
				else
				{
					clip.x = xo;
					clip.y = yo;

				}
				pariente.ver();

			}
		}
	}

}