package classes.matuto.ui
{
	import classes.fl.motion.easing.*;
	import classes.greensock.*;
	import classes.matuto.core.*;
	import classes.matuto.core.module.*;
	import classes.matuto.model.*;
	
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;
	import flash.utils.*;
			
	public class PesquisaInput extends MovieClip
	{
		
		private var texto			:TextField;
		private var dados			:Array;	
		private var dadosAtual		:Array;
		private var resposta		:String;
		private var textoRolando	:String;
		private var estaComAmigo	:Boolean = false;
		private var podeOut			:Boolean = true;
		private var defaultText		:String;
		
		public function PesquisaInput(_texto:TextField,_defaultText:String)
		{
			texto 		= _texto;
			defaultText = _defaultText;
			texto.text  = defaultText; 
		}
	
		public function init(value:Array):void
		{
			dados      = value;			
			addEvents();
		}
		
		private function addEvents():void
		{
			texto.addEventListener(FocusEvent.FOCUS_IN,onIn);
			texto.addEventListener(FocusEvent.FOCUS_OUT,onOut);
			texto.addEventListener(Event.CHANGE,onChange);
		}
		
		public function removeFocus():void
		{
			texto.removeEventListener(FocusEvent.FOCUS_OUT,onOut);
		}
		
		public function addFocus():void
		{
			texto.addEventListener(FocusEvent.FOCUS_OUT,onOut);
		}
		
		private function onIn(e:FocusEvent):void
		{			
			if(!estaComAmigo)
			texto.text = "";
			
			dispatchEvent(new Event("dentro"));
			
			return void;
		}
		
		private function onOut(e:FocusEvent=null):void
		{		
			resposta   = texto.text;
	
			if(!estaComAmigo)
			{
				texto.text = defaultText;	
			}
			
			return void;
		}
		
		private function onChange(e:Event):void
		{			
			var textoRolando	:String 		= texto.text.toLowerCase();
			var total			:int 			= texto.length;
			
			dadosAtual			= [];
			
			if(total>0)
			{
				for(var i:int=0; i<dados.length; i++)
				{	
					var user:String = dados[i].toString().substr(0,total).toLocaleLowerCase();
					
					if(user == textoRolando)
					{
						dadosAtual.push(dados[i]);
					}
				}	
				
				initRender();
				
			}else
			{	
				dispatchEvent(new Event("vazio"));
			}
			
			if(texto.text=="")
			{
				estaComAmigo = false;
				dispatchEvent(new Event("all"));
			}
				
			return void;		
		}
		
		private function initRender():void
		{		
			if(dadosAtual.length<=0)
			{
				estaComAmigo = false;
				dispatchEvent(new Event("semDado"));
				
			}else
			{			
				estaComAmigo = true;
				dispatchEvent(new Event("render"));
			}
			
			if(dadosAtual)
			dadosAtual = [];
		}
	
		public function validacao():Boolean
		{
			var aux:String = texto.text
			if(aux==defaultText)
				return false;
			else 
				return true;
		}
		
		public function get getResposta():String
		{
			return texto.text.toString();
		}
		
		public function get getDados():Array
		{
		   return dadosAtual;
		}
		
		public function close():void
		{
			return void;
		}
	
		
	}
	
}//end class