	//var ACTIVEX_PATH = 'http://goormdev-goorm.ktics.co.kr/activex/GRLauncherActiveX.cab#version=1,6,0,1';
	var ACTIVEX_PATH = 'http://bristol.download.xcdnplus.co.kr/activex/GRLauncherActiveX.cab#version=1,6,0,1';
	
	var gameStartClick = false;
	var gameStartObject = false;
	
	var getGameStarter = {
		__getStartReq : function()
		{
			gameStartClick =  true;
			var url = '/game/gameStart.php';
			var param = 'mode=ajax';
    		//Form.serialize
			var myAjax = new Ajax.Request(
			url,
				{method: 'get'
				, parameters: param
				, onSuccess: getGameStarter.__call_res
				, onFailure: getGameStarter.__failure
				}
			);
		},
		
		__getStartReqFrame : function() {
			gameStartClick =  true;
			commonFrame.location='/game/gameStart.php?mode=frame';
		},
		
		__call_res : function(oj) {
			var __rs_data_decode = decodeURIComponent(oj.responseText);
			var __rs_data		 	= eval("(" + __rs_data_decode + ")");
			var intLength 			= __rs_data.__data.length;
			
		   	var error_code = __rs_data.__data[0].error_code;
			var error_msg = __rs_data.__data[0].error_msg;
			
			if (Object.inspect(error_msg) == 'undefined') {
				error_msg = '';
			}
			
			if (error_code < 0) {
				getGameStarter.__getErrorMsg(error_code,error_msg);
				return;
			}
			else if (error_code > 0) {
				var code = new Array();
				code['GameCode'] = __rs_data.__data[0].gamecode;
				code['GameKey'] = __rs_data.__data[0].registry;
				code['GameVersion'] = __rs_data.__data[0].version;
				code['GameTicket'] = __rs_data.__data[0].gameticket;
				code['MainLauncher'] = __rs_data.__data[0].mainlauncher;
				code['SubLauncher'] = __rs_data.__data[0].sublauncher;
				code['MainGame'] = __rs_data.__data[0].mainclient;
				
				getGameStarter.__get_game_start(code);
			}
		},
		
		__get_game_start : function (code) {
			if(window.ActiveXObject) {
				var obj = new Object();
				obj.classid = 'CLSID:6D1BBF7E-C3C7-402A-9704-6BB39AFE55F6';
				obj.id = 'GRLauncherAX';
				obj.name = 'GRLauncherAX';
				obj.width = 0;
				obj.height = 0;
				obj.codebase = ACTIVEX_PATH;
					var param = '';
				obj.param = param;
				goormActiveX(obj,'commonDiv','div');
			}
			try {
				GRLauncherAX.GameKey = code['GameKey'];
				GRLauncherAX.GameCode = code['GameCode'];
				GRLauncherAX.GameVersion = code['GameVersion'];
				GRLauncherAX.GameTicket = code['GameTicket'];
				GRLauncherAX.MainLauncher = code['MainLauncher'];
				GRLauncherAX.SubLauncher = code['SubLauncher'];
				GRLauncherAX.MainGame = code['MainGame'];
				
				//타이머 초기화
				getPeriodTimer.stopTimer();
				
				// 기존 게임런처및 게임 클라이언트 검사
				if (GRLauncherAX.MainLauncherState || GRLauncherAX.SubLauncherState || GRLauncherAX.MainGameState)
				{
					getGameStarter.__getErrorMsg('C01');
					return;
				}
	                        
				var CheckGameLauncher = GRLauncherAX.CheckGameLauncher;
				if (CheckGameLauncher == 20002)
				{
					// start game
					var StartGame = GRLauncherAX.StartGame;
					if(Object.inspect(GRLauncherAX)) {
						gameStartObject = true;
					}
					gameStartClick = false;
				}
				else if(CheckGameLauncher==20004 || CheckGameLauncher == 20005)
				{
					getGameStarter.__getErrorMsg('C03');
				}
				else if(CheckGameLauncher == 20006)
				{
//					getGameStarter.__getErrorMsg('C04');
					if (confirm('게임을 설치해야 합니다.\n\n게임을 다운로드 할까요?'))
					{
						location.href='http://bristol.download.xcdnplus.co.kr/goorm1/FullVersion/BristolSetup.exe'
					}
					// 게임 다운로드 페이지로 보낸다.
//					goGameDownDirect();
				}
				
			}
			catch (e) 
			{
				goWebStarterErrorGuidePage();
			}
		},
		
		__getErrorMsg : function(code,error_msg) {
			var msg = "";
			switch(code) {
				case "-1":
					msg ="로그인을 하신 후 이용하실 수 있습니다.";
				break;
				case "-2":
					msg ="로그인 정보가 잘못 됐습니다.\n\n다시 로그인후 사용하여 주시기 바랍니다.";
				break;
				case "-3": /** 체크 안함 **/
					msg ="인증정보가 일치 하지 않습니다."; 
				break;
				case "-4": /** 인증정보 입력 에러 **/
					msg ="일시적으로 통신이 지연되고 있습니다.\n\n잠시후 다시 시도 하여 주시기 바랍니다."; 
				break;
				case "-98":
					msg ="시스템 점검 중 이오니 잠시 후 다시 시도해 주십시오.";
				break;
				case "-99":
					msg ="게임서버에 접속 할 수 없습니다.\n\n잠시 후에 시도하여 주시기 바랍니다.";
				break;
				
				/**
				 * activex client error msg
				 */
				case "C01":
					msg ="이미 게임 실행 중입니다.\n\n다시 확인해 주시기 바랍니다.";
				break;
				case "C02":
					msg ="죄송합니다.\n\n시스템 점검 중 이오니 잠시 후 다시 시도해 주십시오.";
				break;
				case "C03": /** launcher 설치 에러 **/
				case "C04": /** client 설치 에러 **/
					msg ="게임이 설치 되어 있지 않습니다.\n\n게임 설치후 사용하시기 바랍니다.";
				break;
				default : /** 체크 안함 **/
					msg ="알수 없는에러\n\n관리자에게 문의 바랍니다.(코드 = #)" + code;
				break;	
			}
			
			if (Object.inspect(error_msg) == 'undefined') {
				error_msg = '';
			}
			
			if (error_msg != "") {
				msg = error_msg;
			}
			alert(msg);
			gameStartClick = false;
		},
		
		__failure : function() {
			getGameStarter.__getStartReqFrame();
		}
	}
	
	// Game Start 할때 처리 스트립트
	function getGamestart() {
		if (!getISIECheck() ) {
			return;
		}
		
		if (IS_GAMESTART_KIND == "prev") {
				alert(GAME_START_PREV_MSG);
				return;
		}
		else if(IS_GAMESTART_KIND == "end") {
				alert(GAME_START_END_MSG);
				return;
		}
		else
		{
			if(!LOGIN_FLAG)
			{
				alert("로그인 후 이용 하실 수 있습니다.");
				document.login_form.id.focus();
				return;
			}
			/*
			else if (!IS_TESTER)
			{	
				alert("테스터에 선정되시지 않으셨습니다..\n\n테스터만 게임을 하실수 있습니다.");
			}
			*/
			else
			{
				//5초가 경과 되면 다시 실행할수 있게 해준다.
				if (!gameStartObject && getPeriodTimer.totalTime > 5) {
					getPeriodTimer.stopTimer();
					gameStartClick = false;
				}
				
				//starter 가 실행되 있을 경우 gameStartClick 을 초기화 한다. 클릭 메세지를 gamestarter 메세지로 띄운다.
				if (gameStartObject) {
					gameStartClick = false;
				}
				
				if (gameStartClick) {
					getPeriodTimer.stopTimer();
					gameStartClick = false;
					return;
				}
				else {
					if (gameStartObject) {
						// 기존 게임런처및 게임 클라이언트 검사
						if (GRLauncherAX.MainLauncherState || GRLauncherAX.SubLauncherState || GRLauncherAX.MainGameState)
						{
							getGameStarter.__getErrorMsg('C01');
							return;
						}
						else
						{
							gameStartObject = false;
						}
					} // end if (game start object )
					
					//gameStart Object call
					getGameStarter.__getStartReq();
					getPeriodTimer.startTimer();
				}
			}
		}
	}
	
	function ExecuteLauncherRetCode(nRetCode)
	{
		
	}
	
	function goGameStart() {
		startWebStarter.location.href=GI_HOME_URL + "startGame.do?siteCode=2000";
	}
	
	// Bristol Game Download Direct Link
	function goGameDownDirect() {
		getURL = "/page/gdp.php?tp=support&url=download";
		
		location.href = getURL;
	}
	
	// Web Starter 실행 오류에 대한 가이드 페이지로 링크
	function goWebStarterErrorGuidePage() {
		getURL = PORTAL_HOME_URL + "/page/gdp.php?tp=guide&url=brgameax";
		location.href = getURL;
	}
	
	function getGameDownload() {
		if (IS_GAMEDOWN_KIND == "prev") {
				alert(GAME_DOWNLOAD_PREV_MSG);
		}
		else if(IS_GAMEDOWN_KIND == "end") {
				alert(GAME_DOWNLOAD_END_MSG);
		}
		else
		{
			commonFrame.location.href="http://bristol.download.xcdnplus.co.kr/goorm1/FullVersion/BristolSetup.exe";
		}
	}
	
	function getISIECheck() {
		if ($Agent().IE == false) {
			alert("익스플로러 에서 실행해 주시기 바랍니다.");
			return false;
		} 
		else {
			
			if ($Agent().IE_VER < 6) {
				alert("현재 회원님의 익스플로러 버전은 : MicroSoft InternetExplorer " + $Agent().IE_VER + " 입니다.\n\n익스플러로 6 이상으로 업데이트후 사용해 주시기 바랍니다.");
				return false;
			}
			else {
				return true;
			}
		}
	}
	
	var getPeriodTimer = {
	    endButton: '',
		totalTime : 0,
		startTimer: function() {
	        getPeriodTimer.count = 0;
	        if (!getPeriodTimer.endButton) {
	            getPeriodTimer.countTimer = new PeriodicalExecuter(getPeriodTimer.runPeriodTimer, 1);
	        }
	        getPeriodTimer.endButton = true;
	    },
	
	    runPeriodTimer: function() {
	        getPeriodTimer.count++;
	       getPeriodTimer.totalTime = getPeriodTimer.count;
		},
		
		stopTimer: function() {
	        getPeriodTimer.countTimer.stop();
	        getPeriodTimer.endButton = '';
			getPeriodTimer.totalTime = 0;
		}
	}
	
	function $Agent() {
		var isOpera = !!(window.opera);
		var nu = navigator.userAgent;
		var isIE = !isOpera && /MSIE/.test(nu), ie5=false, ie55=false, ie6=false, ie7=false, macIE=false;
		var ver = 0;
		
		if (isIE) {
			/MSIE ([0-9\.]+)/.exec(nu);
			ver = parseFloat(RegExp.$1);
			switch (ver) {
				case 5   : ie5 =true; break;
				case 5.5 : ie55=true; break;
				case 6   : ie6=true; break;
				case 7   : ie7=true; break;
				default  :
			}
		}
		
		return {
			IE     : isIE,
			IE5    : isIE && ie5,
			IE55   : isIE && ie55,
			IE6    : isIE && ie6,
			IE7    : isIE && ie7,
			IE_VER : ver,
			macIE  : isIE && macIE,
			Gecko  : /Gecko/.test(nu),
			Opera  : isOpera,
			Safari : /WebKit/.test(nu),
			KHTML  : /KHTML/.test(nu)
		};
	}