package classes.matuto.utils.form
{
	import classes.matuto.erro.Erro;
	
	
	public class TabIndex 
	{
		
		private static var tabs :Array;
		
		
		public static function registerTabIndex( obj :* ) :void
		{
			
			if ( !tabs ) tabs = new Array();
			
			try
			{
				
				obj.tabIndex = tabs.length;
				tabs.push( obj );
				
			}catch ( e :Error )
			{
				Erro.add("'registerTabIndex' O OBJETO NÃO POSSUI A ROPRIEDADE 'tabIndex' \n\n" + e);
			}
			
		}
		
		
		public static function registerTabIndexTo( obj :*, index :int ) :void
		{
			
			if ( !tabs ) tabs = new Array();
			
			try
			{
				
				obj.tabIndex = index;
				tabs[index] = obj;
				
			}catch ( e :Error )
			{
				Erro.add("'registerTabIndexTo' O OBJETO NÃO POSSUI A ROPRIEDADE 'tabIndex' \n\n" + e);
			}
			
		}
		
		
		public static function getTabIndex( obj:* ) :int
		{
			
			if ( !tabs ) Erro.add("'getTabIndex' NENHUM OBJETO FOI REGISTRADO");
			
			return tabs.indexOf( obj );
			
		}
		
		
		public static function getTabIndexTo( index :int ) :*
		{
			
			var obj :*;
			
			if ( !tabs ) Erro.add("'getTabIndex' NENHUM OBJETO FOI REGISTRADO");
			else {
				
				try{
					obj = tabs[index];
				}catch ( e :Error )
				{
					Erro.add("'getTabIndexTo' OBJETO NÃO ENCONTRADO");
				}
				
			}
			
			return obj;
			
		}
		
		
	}
	
}