package com.guru.project.clinique.game 
{
	import com.guru.call.FunctionCall;
	import com.guru.call.ICall;
	import com.guru.component.sectionStructure.SectionStructureSectionBase;
	import com.guru.project.clinique.game.formStep.GameSectionFormStep;
	import com.guru.project.clinique.game.introStep.GameSectionIntroStep;
	import com.guru.project.clinique.game.questionResultStep.GameSectionQuestionResultStep;
	import com.guru.project.clinique.game.questionStep.GameSectionQuestionStep;
	import com.guru.project.clinique.game.resultStep.GameSectionResultStep;
	import flash.display.MovieClip;
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class GameSection extends SectionStructureSectionBase
	{
		
		public function GameSection(pTimeline_mc:MovieClip)
		{
			super(pTimeline_mc);
			
			mStepClass_array = [GameSectionIntroStep, GameSectionQuestionStep, GameSectionQuestionResultStep, GameSectionFormStep, GameSectionResultStep];
			
			this.gotoStep(0);
		}
		
		override protected function gotoStep3(e:*, pDoneCall:ICall = null, pData_obj:Object = null):void 
		{
			mTimeline_mc.addFrameScript(mTimeline_mc.currentFrame - 1, null);
			
			if (pData_obj == null)
				pData_obj = new Object();
				
			pData_obj["result"] = new FunctionCall(this, gotoStep, mTimeline_mc.totalFrames - 1);
			
			mCurrentStep = new mStepClass_array[mTimeline_mc.currentFrame - 1](mTimeline_mc.step_mc, null, null, pData_obj);
			mCurrentStep.setNextStepCall(new FunctionCall(this, gotoStep, mTimeline_mc.currentFrame%mTimeline_mc.totalFrames));
			mCurrentStep.setPreviousStepCall(new FunctionCall(this, gotoStep, Math.max(0, mTimeline_mc.currentFrame - 2)));
			mCurrentStep.fadeIn(pDoneCall);
		}
		
	}

}