package com.guru.section 
{
	import com.guru.call.FunctionCall;
	import com.guru.call.ICall;
	import com.guru.component.panel.PanelBase;
	import com.guru.display.LabelMovieClip;
	import com.guru.display.Text;
	import flash.display.MovieClip;
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class SectionLoadingBar extends PanelBase
	{
		private var mTotal:Text;
		private var mLoaded:Text;
		private var mPercentage:Text;
		
		public function SectionLoadingBar(pTimeline_mc:MovieClip)
		{
			super("sectionLoading", pTimeline_mc);
			
			mTotal = new Text(mContent_mc.total_mc);
			mLoaded = new Text(mContent_mc.loaded_mc);
			mPercentage = new Text(mContent_mc.percentage_mc);
			this.setPercent(0);
		}
		
		public function updateProgress(pLoaded_num:Number, pTotal_num:Number):void
		{
			var loadedKB_num:Number = Math.ceil(pLoaded_num / 1024);
			var totalKB_num:Number = Math.ceil(pLoaded_num / 1024);
			var unit_str:String = " KB";
			mLoaded.setText(loadedKB_num + unit_str);
			mTotal.setText(totalKB_num + unit_str);
			this.setPercent(Math.round(loadedKB_num/totalKB_num*100));
		}
		
		override public function dispose():void 
		{
			super.dispose();
		}
		
		override protected function onPanelHideDone(pDoneCall:ICall = null):void 
		{
			mLoaded.setText("");
			mTotal.setText("");
			this.setPercent(0);
			
			super.onPanelHideDone(pDoneCall);
		}
		
		private function setPercent(pPercent_num:Number):void
		{
			mPercentage.setText(pPercent_num);
			mContent_mc.gotoAndStop(Math.max(Math.min(pPercent_num, 100), 1));
		}
	}

}