/******************************************
 * @author Maria A. Zamora
 * @company Digitec Interactive Inc.
 * @version 0.1
 * @date 12/14/2010
 * 
 * These are helper functions for the CEE application
 * CS5 version of com.digitec.cee.HelperFunctions
 *  
*******************************************/ 
package com.digitec.cee
{	
	import flash.text.TextFormat;	
	
	public class HelperFunctions
	{			
		/***********************************************************************************************************
		 * FUNCTIONS: TO EXTRACT FUNCTION NAME OF THE STRING PASSED AS ARGUMENT
		 * RETURN: ARRAY WITH 1ST ELEMENT, ARRAY[0] = NAME OF FUNCTION
		 * AND ARRAY[1] IS A STRING OF ARGUMENTS
		  **********************************************************************************************************/
		public static function extractFunctionName(str:String):Array
		{							
			//var str:String = "function=viewLesson, args=15852, 15853";			
				var functionArray:Array = new Array(); 				
				var match:RegExp =/function=.+?,/ix; 
				var argumentsStr:String = str.replace( match, "" );
				var arr:Array = str.match(match) ;  //output: function=viewLesson,
				var match2:RegExp =/function=?/ix;  //match: function=				
				var fname:String = arr[0].replace(match2,  "");  //replace match2 (function=) for nothing //output: viewLesson,
				fname = fname.replace("=", ""); //eliminate any comma
				fname = fname.replace(" ", ""); //eliminate anywhite space
				fname = fname.replace(",",  ""); //replace function= for nothing //output: viewLesson,				
				functionArray[0] = fname;
				functionArray[1] = argumentsStr;
				return functionArray;
		}		
	
		/***********************************************************************************
		 * FUNCTION: EXTRACT NUMBER ARRAY OF STRING "36, 49, 45, 25"
		 ***********************************************************************************/
		public static function getNumberArrayFromString(str:String):Array
		{			
			var results:Array = [];
			trace("str                           "+str);
			trace(str.indexOf("," , 0 ));
			if(str.indexOf("," , 0 ) == -1 ){ 
			
				results[0] = str; 
			}else{
				 var re:RegExp = /,/g;
				 results = str.split(re);			
			}
			return results;
		}		
		
		/***********************************************************************************
		 * FUNCTION: EXTRACT ARRAY OF STRING Based in a character
		 ***********************************************************************************/
		public static function getArrayCommaDelimeter(str:String):Array
		{			
			var results:Array;
			if( str.indexOf("," , 0 ) == -1 ){ 
				results[0] = str; 
			}else{
				 var re:RegExp = /,/g;
				 results = str.split(re);			
			}
			return results;
		}		
		
		
		/***********************************************************************************
		 * FUNCTION: EXTRACT STRING ARRAY OF STRING Teacher - Lesson 11,15898|Student - Lesson 11,66190|Student - Exercise 11.1,66191|Student - Exercise 11.2,66192
		 ***********************************************************************************/
		public static function getArrayAltVersion(str:String):Array
		{			
			var results:Array;
			if(str.indexOf("\|" , 0 ) == -1 ){ 
				results[0] = str; 
			}else{
				 var re:RegExp = /\|/g;
				 results = str.split(re);			
			}
			return results;
		}		
		
		/***********************************************************************************
		 * Function getInstanceNumber(String):int -Return the instace number from mcName_num 		
		 ***********************************************************************************/
		public static function getInstanceNumber(str:String):int
		{
			var num:int=0;
			var index_:Number = str.lastIndexOf("_");
			var endindex:Number = str.length;
			
			if( (index_ >= 0)&& (str.length > 0) ){				
				num = int( str.substring((index_+1), endindex ) );
			}			
			return num;
		}
		
		/***********************************************************************************
		 * Force any object that have TextFormat to make text Bold 		
		 ***********************************************************************************/
		public static function forceBoldText(obj:Object):void
		{	
			var popFormat:TextFormat = obj.getTextFormat();
			popFormat.bold = true;	
			obj.setTextFormat(popFormat);		
		}
		
		/***********************************************************************************
		 * GET ANY RANDOM NUMBER FROM 1- 100
		 ***********************************************************************************/
		 public function getRandomNumber():uint {
            return Math.round(Math.random()*100);
        }
				
	
		
	}	
}  







