package com.guru.project.test
{
	import com.guru.call.FunctionCall;
	import com.guru.component.fileDownloader.FileDownloader;
	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.scrollPanel.GuruScrollBar;
	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 TestSection
	{
		private var mTimeline_mc:MovieClip;
		
		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 mScrollBarVert:GuruScrollBar;
		private var mScrollBarVertText:Text;
		
		private var mScrollBarHori:GuruScrollBar;
		private var mScrollBarHoriText:Text;
		
		private var mFileDownloader:FileDownloader;
		
		public function TestSection(pTimeline_mc:MovieClip)
		{
			mTimeline_mc = pTimeline_mc;
			
			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);
			mScrollBarVert = new GuruScrollBar(mTimeline_mc.scrollBarVert_mc, 20, true);
			mScrollBarVertText = new Text(mTimeline_mc.scrollBarVertText_mc);
			
			mScrollBarHori = new GuruScrollBar(mTimeline_mc.scrollBarHori_mc, 20, false);
			mScrollBarHoriText = new Text(mTimeline_mc.scrollBarHoriText_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/feed_sample.jpg"));
			mLabelPressBtn.setPressingStopCall(new FunctionCall(mExternalLoader, mExternalLoader.unload));
			mScrollBarVert.setUpdateCall(new FunctionCall(this, onScrollUpdate, true));
			mScrollBarHori.setUpdateCall(new FunctionCall(this, onScrollUpdate, false));
			mScrollBarVert.update(50);
		}
		
		public function dispose():void
		{
			mSelfPublishAttachmentBtn.dispose();
			mAllFriendBtn.dispose();
			mRankBtn.dispose();
			mFooterRankBtn.dispose();
			mSwfSectionBtn.dispose();
			mMcSectionBtn.dispose();
			mMainBtn.dispose();
			mDownloadBtn.dispose();
			mInviteBtn.dispose();
			mCheckBtn.dispose();
		}
		
		private function onScrollUpdate(pVert_bol:Boolean, pPercent_num:Number):void
		{
			if(pVert_bol)
				mScrollBarVertText.setText(pPercent_num);
			else
				mScrollBarHoriText.setText(pPercent_num);
		}
		
		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
		{
			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("large_potato.bmp", new FunctionCall(null, trace, "download success"), new FunctionCall(null, trace, "download fail"));
			mFileDownloader.start();
		}
		
		private function onInviteBtnPress():void
		{
			CommonFunction.inviteFriends();
		}
		
	}

}