package com.guru.form 
{
	import com.guru.call.ICall;
	import fl.controls.RadioButton;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	import fl.controls.RadioButtonGroup;
	
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class RadioButtonGroup
	{
		private var mRadioButtonMovieClip_array:Array;
		private var mLabel_array:Array;
		private var mValue_array:Array;
		private var mSelectCall:ICall;
		private var mCurrentRadioButton:RadioButton;
		
		public function RadioButtonGroup(pRadioButtonMovieClip_array:Array, pLabel_array:Array, pValue_array:Array, pGroupName_str:String)
		{
			mRadioButtonMovieClip_array = pRadioButtonMovieClip_array;
			mLabel_array = pLabel_array;
			mValue_array = pValue_array;
			
			for (var i:Number = 0; i < mRadioButtonMovieClip_array.length; i++ )
			{
				var radioButton:RadioButton = mRadioButtonMovieClip_array[i];
				radioButton.label = mLabel_array[i];
				radioButton.value = {value:mValue_array[i], index:i};
				radioButton.groupName = pGroupName_str;
				radioButton.addEventListener(MouseEvent.CLICK, onRadioButtonSelect);
			}
		}
		
		public function dispose():void
		{
			while (mRadioButtonMovieClip_array.length > 0)
			{
				var radioButton:RadioButton = mRadioButtonMovieClip_array.shift();
				radioButton.removeEventListener(MouseEvent.CLICK, onRadioButtonSelect);
				radioButton.label = null;;
				radioButton.value = null;
				radioButton.groupName = null;
			}
		}
		
		public function checkError():Boolean
		{
			return mCurrentRadioButton == null;
		}
		
		public function getData():String
		{
			if(mCurrentRadioButton != null)
				return String(mCurrentRadioButton.value["value"]);
			
			return null;
		}
		
		public function setSelectCall(pCall:ICall):void
		{
			mSelectCall = pCall;
		}
		
		public function onRadioButtonSelect(e:MouseEvent):void
		{
			mCurrentRadioButton = RadioButton(e.currentTarget);
			
			if(mSelectCall != null)
				mSelectCall.execute(mCurrentRadioButton.value["index"]);
		}
	}

}