package com.guru.project.component.step
{
	import com.guru.call.ICall;
	import com.guru.component.fileDownloader.FileDownloader;
	import com.guru.component.sectionStructure.SectionStructureStepBase;
	import flash.display.MovieClip;
	import com.guru.call.FunctionCall;
	import com.guru.display.button.LabelButton;
	import com.guru.display.button.LabelCheckButton;
	import com.guru.display.button.LabelDragButton;
	import com.guru.display.button.LabelPressButton;
	import com.guru.display.externalLoader.ExternalLoader;
	import com.guru.display.Text;
	import com.guru.facebook.FacebookDataBridge;
	import com.guru.facebook.feed.FeedWithAttachment;
	import com.guru.facebook.PostFeed;
	import com.guru.component.CommonFunction;
	import com.guru.component.panel.Panel;
	import com.guru.section.Section;
	import com.guru.utils.TraceUtil;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class ComponentStep0 extends SectionStructureStepBase
	{
		private var mSelfPublishAttachmentBtn:LabelPressButton;
		private var mAllFriendBtn:LabelPressButton;
		private var mRankBtn:LabelPressButton;
		private var mFooterRankBtn:LabelPressButton;
		private var mSwfSectionBtn:LabelPressButton;
		private var mMcSectionBtn:LabelPressButton;
		private var mMainBtn:LabelPressButton;
		private var mDownloadBtn:LabelPressButton;
		private var mInviteBtn:LabelPressButton;
		private var mCheckBtn:LabelCheckButton;
		private var mTncBtn:LabelPressButton;
		private var mExternalLoader:ExternalLoader;
		
		private var mLabelBtn:LabelButton;
		private var mLabelPressBtn:LabelPressButton;
		private var mLabelDragBtn:LabelDragButton;
		
		private var mFileDownloader:FileDownloader;
		
		public function ComponentStep0(pTimeline_mc:MovieClip, pNextCall:ICall = null, pPrevCall:ICall = null, pData_obj:Object = null)
		{
			super(pTimeline_mc, pNextCall, pPrevCall, pData_obj);
			
			mSelfPublishAttachmentBtn = new LabelPressButton(mTimeline_mc.selfPublishAttachmentBtn_mc);
			mAllFriendBtn = new LabelPressButton(mTimeline_mc.allFriendBtn_mc);
			mRankBtn = new LabelPressButton(mTimeline_mc.rankBtn_mc);
			mFooterRankBtn = new LabelPressButton(mTimeline_mc.footerRankBtn_mc);
			mSwfSectionBtn = new LabelPressButton(mTimeline_mc.swfSectionBtn_mc);
			mMcSectionBtn = new LabelPressButton(mTimeline_mc.mcSectionBtn_mc);
			mMainBtn = new LabelPressButton(mTimeline_mc.mainBtn_mc);
			mDownloadBtn = new LabelPressButton(mTimeline_mc.downloadBtn_mc);
			mInviteBtn = new LabelPressButton(mTimeline_mc.inviteBtn_mc);
			mCheckBtn = new LabelCheckButton(mTimeline_mc.checkBtn_mc);
			mTncBtn = new LabelPressButton(mTimeline_mc.tncBtn_mc);
			mLabelBtn = new LabelButton(mTimeline_mc.labelBtn_mc);
			mLabelPressBtn = new LabelPressButton(mTimeline_mc.labelPressBtn_mc);
			mLabelDragBtn = new LabelDragButton(mTimeline_mc.labelDragBtn_mc);
			mExternalLoader = new ExternalLoader(mTimeline_mc.imageLoader_mc);
			
			mSelfPublishAttachmentBtn.setPressingStopCall(new FunctionCall(this, onSelfPublishAttachmentBtnPress));
			mAllFriendBtn.setPressingStopCall(new FunctionCall(this, onAllFriendBtnPress));
			mRankBtn.setPressingStopCall(new FunctionCall(this, onRankBtnPress));
			mFooterRankBtn.setPressingStopCall(new FunctionCall(this, onFooterRankBtnPress));
			mSwfSectionBtn.setPressingStopCall(new FunctionCall(this, onSwfSectionBtnPress));
			mMcSectionBtn.setPressingStopCall(new FunctionCall(this, onMcSectionBtnPress));
			mMainBtn.setPressingStopCall(new FunctionCall(this, onMainBtnPress));
			mDownloadBtn.setPressingStopCall(new FunctionCall(this, onDownloadBtnPress));
			mInviteBtn.setPressingStopCall(new FunctionCall(this, onInviteBtnPress));
			mTncBtn.setPressingStopCall(new FunctionCall(this, onTncBtnPress));
			
			mLabelDragBtn.setDragableArea(new Rectangle(0, 0, Main.getStageWidth() - mLabelDragBtn.getTimeline().width, Main.getStageHeight() - mLabelDragBtn.getTimeline().height));
			mLabelPressBtn.setPressingStartCall(new FunctionCall(mExternalLoader, mExternalLoader.load, "image/face.jpg"));
			mLabelPressBtn.setPressingStopCall(new FunctionCall(mExternalLoader, mExternalLoader.unload));
		}
		
		override public function dispose():void 
		{
			mSelfPublishAttachmentBtn.dispose();
			mAllFriendBtn.dispose();
			mRankBtn.dispose();
			mFooterRankBtn.dispose();
			mSwfSectionBtn.dispose();
			mMcSectionBtn.dispose();
			mMainBtn.dispose();
			mDownloadBtn.dispose();
			mInviteBtn.dispose();
			mCheckBtn.dispose();
			
			super.dispose();
		}
		
		private function onTncBtnPress():void
		{
			Panel.showPanel("tnc");
		}
		
		private function onSelfPublishAttachmentBtnPress():void
		{
			PostFeed.post(new FeedWithAttachment(), FacebookDataBridge.getLoggerUid());
		}
		
		private function onSelectFriend(pFriendData_array:Array):void
		{
			TraceUtil.printArray(pFriendData_array);
		}
		
		private function onAllFriendBtnPress():void
		{
			trace("onAllFriendBtnPress");
			Panel.showPanel("friend", null, null, {onSelect:new FunctionCall(this, onSelectFriend), quota:5});
		}
		
		private function onRankBtnPress():void
		{
			Panel.showPanel("rank");
		}
		
		private function onFooterRankBtnPress():void
		{
			Panel.showPanel("footerRank");
		}
		
		private function onSwfSectionBtnPress():void
		{
			Section.changeSection("swfSection");
		}
		
		private function onMcSectionBtnPress():void
		{
			Section.changeSection("game");
		}
		
		private function onMainBtnPress():void
		{
			Section.changeSection("main");
		}
		
		private function onDownloadBtnPress():void
		{
			mFileDownloader = new FileDownloader("http://www.guruonlineapps.com/aya/largePotato.bmp", new FunctionCall(null, trace, "download success"), new FunctionCall(null, trace, "download fail"));
		}
		
		private function onInviteBtnPress():void
		{
			CommonFunction.inviteFriends();
		}
	}

}
