package com.guru.project.brother.vote.voteStep 
{
	import com.guru.call.FunctionCall;
	import com.guru.call.ICall;
	import com.guru.display.button.LabelButton;
	import com.guru.form.FormTextElement;
	import flash.display.MovieClip;
	import flash.events.Event;
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class SearchManager
	{
		private var mSearchText:FormTextElement;
		private var mSearchBtn:LabelButton;
		private var mShowAllBtn:LabelButton;
		private var mSearchCall:ICall;
		private var mShowAll_bol:Boolean;
		
		public function SearchManager(pSearchText_mc:MovieClip, pSearchBtn_mc:MovieClip, pShowAllBtn_mc:MovieClip)
		{
			mSearchText = new FormTextElement(pSearchText_mc);
			mSearchBtn = new LabelButton(pSearchBtn_mc);
			mShowAllBtn = new LabelButton(pShowAllBtn_mc);
			mShowAll_bol = true;
			
			mSearchBtn.setPressCall(new FunctionCall(this, onSearchBtnPress));
			mShowAllBtn.setPressCall(new FunctionCall(this, onShowAllBtnPress));
			
			mSearchBtn.getTimeline().stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
		}
		
		public function setSearchCall(pCall:ICall):void
		{
			mSearchCall = pCall;
		}
		
		public function dispose():void
		{
			mSearchBtn.getTimeline().stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
			mSearchBtn.dispose();
			mShowAllBtn.dispose();
			mSearchText.dispose();
			mSearchCall = null;
		}
		
		public function searchDone(pShowAll_bol:Boolean):void
		{
			trace("!!!!!!!!!!!!!!!!!!!!!!!!!!!! " + pShowAll_bol);
			mShowAll_bol = pShowAll_bol;
			mSearchBtn.reset();
			mShowAllBtn.reset();
		}
		
		public function reset():void
		{
			
		}
		
		private function doSearch(pSerach_str:String = ""):void
		{
			mSearchCall.execute(1, pSerach_str);
		}
		
		private function onSearchBtnPress():void
		{
			if (!mSearchText.checkError())
			{
				this.doSearch(mSearchText.getData());
			}
			else
			{
				mSearchText.showError();
				this.searchDone(mShowAll_bol);
			}
		}
		
		private function onShowAllBtnPress():void
		{
			mSearchText.setText("");
			this.doSearch();
		}
		
		private function onEnterFrameHandler(e:Event):void
		{
			trace("mShowAll_bol: " + mShowAll_bol );
			if (mShowAll_bol && mShowAllBtn.enabled)
			{
				mShowAllBtn.enabled = false;
			}
			
			if (!mShowAll_bol && !mShowAllBtn.enabled && mSearchText.getData().length > 0)
			{
				mShowAllBtn.enabled = true;
			}
			
			if (mSearchBtn.enabled && mSearchText.getData().length == 0)
			{
				mSearchBtn.enabled = false;
			}
			
			if (!mSearchBtn.enabled && mSearchText.getData().length > 0)
			{
				mSearchBtn.enabled = true;
			}
			
		}
	}

}