package classes.gustavo.ui.box 
{
	import classes.greensock.TweenLite;
	import classes.greensock.TweenMax;
	import classes.greensock.easing.*;
	import classes.matuto.interfaces.IDisplay;
	import classes.matuto.loaders.ImagemLoad;
	
	import fl.motion.easing.Exponential;
	import fl.motion.easing.Quadratic;
	import fl.motion.easing.Quintic;
	
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.utils.setTimeout;

	/**
	 * ...
	 * @author gustavo
	 */

	public class FotoBox extends MovieClip implements IDisplay
	{
		
		private var alvo		:MovieClip;
		private var imagem		:ImagemLoad;
		
		
		public function FotoBox() 
		{
			super();
			
			alvo 			= _alvo;
			alvo.stop();
			alvo.alpha  	= 0;
			
			_barra.scaleY 	= 0;
		}
		
		public function load(url:String):void
		{
			TweenMax.to(alvo, .7, { autoAlpha:1, ease:Exponential.easeInOut, onComplete:function():void
			{	
				imagem = new ImagemLoad();
				imagem.setComAlvo = false;
				imagem.load(url);			
				imagem.addEventListener(ImagemLoad.COMPLETE,complete);
				imagem.addEventListener(ImagemLoad.PROGRESS, progressImg);	
			}});		
		}
		
		private function progressImg(e:Event):void 
		{
			TweenLite.to(_barra, 1, { scaleY:imagem.getPorcento / 100} );
		}
		
		private function complete(e:Event):void
		{
			imagem.getBitmap().alpha = 0;
			addChild(imagem);
			
			Box.ref.addEvent();
			
			setChildIndex(imagem, numChildren - 1);

			TweenLite.to(_barra, .2, { scaleY:1,ease:Quintic.easeInOut,onComplete:function():void
			{
				
				TweenLite.to(_barra, .2, { scaleY:0,y:20,ease:Quadratic.easeInOut,onComplete:function():void
				{
					
					removeChild(_barra);
					_barra = null;
					
					imagem.getBitmap().x = -(imagem.getBitmap().width>>1)-5;
					imagem.getBitmap().y = -(imagem.getBitmap().height>>1)-5;
					
					TweenMax.to(alvo,1,{x:alvo.x-5,y:alvo.y-5,width:imagem.getBitmap().width+10,height:imagem.getBitmap().height+10,ease:Exponential.easeInOut});
					TweenMax.to(imagem.getBitmap(), 2, { autoAlpha:1, delay:1, ease:Exponential.easeInOut, onComplete:function():void {				
					}});
					
				}});
					
			}});
			
		
		}
		
		public function init():void 
		{
			
		}
		
		public function close():void 
		{
			TweenMax.to(imagem.getBitmap(),1, { autoAlpha:0, ease:Exponential.easeInOut, onComplete:function():void {				
			} } );
			
			TweenMax.to(alvo,1.3,{frame:10,height:0,y:stage.stageHeight,blurFilter:{blurY:30},delay:.5,ease:Quint.easeInOut});
		}
		
		public function change(url:String):void 
		{
			TweenMax.to(imagem.getBitmap(),.7, { autoAlpha:0, ease:Exponential.easeInOut, onComplete:function():void {				
			} } );
			
			TweenMax.to(alvo,.5,{width:0,height:0,delay:.5,ease:Exponential.easeInOut});
			
		}
		
		public function resize():void 
		{
			
		}
		
		public function dispose():void 
		{
			
		}
		
		
	}

}