package com.guru.form 
{
	import com.guru.call.ICall;
	import fl.controls.ComboBox;
	import flash.display.MovieClip;
	import flash.events.Event;
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class GuruComboBox
	{
		private var mComboBox:ComboBox;
		private var mLabel_array:Array;
		private var mSelectCall:ICall;
		
		public function GuruComboBox(pComboBox:ComboBox, pTabIndex_num:Number = 0)
		{
			mComboBox = pComboBox;
			mLabel_array = new Array();
			mComboBox.tabIndex = pTabIndex_num;
			mComboBox.addEventListener(Event.CHANGE, onSelectItem);
		}
		
		public function dispose():void
		{
			mComboBox.removeEventListener(Event.CHANGE, onSelectItem);
			mComboBox.removeAll();
		}
		
		public function setSelectCall(pCall:ICall ):void
		{
			mSelectCall = pCall;
		}
		
		public function switchToLabel(pLabel_str:String):void
		{
			for (var i:Number = 0; i < mLabel_array.length; i++ )
			{
				if (mLabel_array[i] == pLabel_str)
					break;
			}
			
			mComboBox.selectedIndex = i;
		}
		
		public function addItem(pLabel_array:Array, pValue_array:Array):void
		{
			for (var i:Number = 0; i < pLabel_array.length; i++ )
			{
				mLabel_array.push(pLabel_array[i]);
				mComboBox.addItem({label:pLabel_array[i], value:pValue_array[i]});
			}
		}
		
		public function checkError():Boolean
		{
			return false;
		}
		
		public function getSelectedIndex():Number
		{
			return mComboBox.selectedIndex;
		}
		
		public function getSelectedValue():String
		{
			return mComboBox.selectedItem["value"];
		}
		
		public function getSelectedLabel():String
		{
			return mComboBox.selectedItem["label"];
		}
		
		private function onSelectItem(e:Event):void
		{
			if(mSelectCall != null)
				mSelectCall.execute(this.getSelectedValue());
		}
		
	}

}