package com.guru.conn
{
	import com.guru.facebook.FacebookIFrameCenter;
	import flash.display.LoaderInfo;
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class ConnPath
	{
		private static var sLocalMode_bol:Boolean = true;
		private static var sLogXML_bol:Boolean = false;
		private static var sDirectAccess_bol:Boolean = true;
		
		private static var sAppPrefix_str:String = "http://apps.facebook.com/antiblemish/";
		
		private static var sServerPrefix_str:String = "http://www.clinfbapp.com/antiBlemish/";
		private static var sServerApiFolder_str:String = "api/";
		private static var sServerSwfFolder_str:String = "swf/";
		private static var sServerImageFolder_str:String = "image/";
		
		private static var sLocalPrefix_str:String = "";
		private static var sLocalApiFolder_str:String = "api/";
		private static var sLocalSwfFolder_str:String = "";
		private static var sLocalImageFolder_str:String = "image/";
		
		public function ConnPath()
		{
			
		}
		
		public static function init(pLoaderInfo:LoaderInfo):void
		{
			refreshLocalMode(pLoaderInfo);
			Logger.eddy("Local Mode: " + sLocalMode_bol);
		}
		
		private static function refreshLocalMode(pLoaderInfo:LoaderInfo = null):void
		{
			sLocalMode_bol = (FlashVars.FORCE_LOCAL)?FlashVars.FORCE_LOCAL:((pLoaderInfo == null)?sLocalMode_bol:new RegExp("file://").test(pLoaderInfo.url));
		}
		
		public static function set directAccess(pDirectAccess_bol:Boolean):void
		{
			sDirectAccess_bol = pDirectAccess_bol;
		}
		
		public static function get directAccess():Boolean
		{
			return sDirectAccess_bol;
		}
		
		public static function get logXML():Boolean
		{
			return sLogXML_bol;
		}
		
		public static function set logXML(pLogXML_bol:Boolean):void
		{
			sLogXML_bol = pLogXML_bol;
			Logger.eddy("Log XML: " + sLogXML_bol);
		}
		
		public static function isLocalMode(pLoaderInfo:LoaderInfo = null):Boolean
		{
			if(pLoaderInfo)
				refreshLocalMode(pLoaderInfo);
			
			return sLocalMode_bol;
		}
		
		//**************** PREFIX ****************//
		public static function getAppPrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str;
			else
				prefix_str = sAppPrefix_str;
			
			return prefix_str;
		}
		
		public static function getHostingPrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str;
			else
				prefix_str = sServerPrefix_str;
			
			return prefix_str;
		}
		
		public static function getSwfPrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str + sLocalSwfFolder_str;
			else
				prefix_str = sServerPrefix_str + sServerSwfFolder_str;
			
			return prefix_str;
		}
		
		public static function getServerPrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str;
			else
				prefix_str = sServerPrefix_str;
			
			return prefix_str;
		}
		
		public static function getImagePrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str + sLocalImageFolder_str;
			else
				prefix_str = sServerPrefix_str + sServerImageFolder_str;
			
			return prefix_str;
		}
		
		public static function getAPIPrefix():String
		{
			var prefix_str:String;
			
			if (sLocalMode_bol)
				prefix_str = sLocalPrefix_str + sLocalApiFolder_str;
			else
				prefix_str = sServerPrefix_str + sServerApiFolder_str;
			
			return prefix_str;
		}
		//**************** END ****************//
		
		//**************** PHP CENTER ****************//
		public static function getProfilePath():String
		{
			return getAPIPrefix() + "getProfile.php" + getSessionParam();
		}
		public static function getFriendsPath():String
		{
			return getAPIPrefix() + "getFriends.php" + getSessionParam();
		}
		
		private static function getSessionParam():String
		{
			var param_str:String = "";
			if (FlashVars.SESSION.length > 0 && FlashVars.SID.length > 0)
				param_str = "?session=" + FlashVars.SESSION + "&sid=" + FlashVars.SID;
			
			return param_str;
		}
		//**************** END ****************//
		
		//**************** RANKING ****************//
		public static function getGlobalRankPath():String
		{
			return getAPIPrefix() + "rank/getGlobalRank.php";
		}
		
		public static function getFriendRankPath():String
		{
			return getAPIPrefix() + "rank/getFriendRank.php";
		}
		
		public static function getWeekRankPath():String
		{
			return getAPIPrefix() + "rank/getWeekRank.php";
		}
		//**************** END ****************//
		
		//**************** TRACKING ****************//
		public static function getTrackingPath():String
		{
			return getAPIPrefix() + "tracking.php";
		}
		//**************** END ****************//
		
		//**************** PUBLISH ****************//
		public static function getPublishPath():String
		{
			return getAPIPrefix() + "publish.php" + getSessionParam();
		}
		
		public static function getPublishAttachmentPath():String
		{
			return getAPIPrefix() + "publishAttachment.php" + getSessionParam();
		}
		//**************** END ****************//
		
		public static function getSubmitFormPath():String
		{
			return getAPIPrefix() + "game/submitForm.php" + getSessionParam();
		}
	}

}