//
// XML
//
var oXMLHTTP;
try {
	oXMLHTTP=new ActiveXObject("Microsoft.XMLHTTP")
} catch (e) {
	try {
		oXMLHTTP=new ActiveXObject("Msxml2.XMLHTTP")
	} catch (E) {
		oXMLHTTP=false
	}
}

function XMLGetData(remoteURL) {
 
	oXMLHTTP.open("GET", remoteURL, false);
	oXMLHTTP.setRequestHeader("Content-type:","text/html; charset=UTF-8");   
	oXMLHTTP.setRequestHeader("Referer:",remoteURL);  

	oXMLHTTP.send();

	return oXMLHTTP.responseText;
}


//
// 시스템 사양 정보를 가지고 있는 스트링
var systemInfoStr = "";
// 다운로드 컨트롤이 INIT 되었는지 여부
var isInitAx = 0;
// 게임 실행 관련
var isRunGame = 0;

function writeActiveX()
{
	document.write("    <OBJECT id=\"FeelOnlineAx\" ");
	document.write("      classid=\"CLSID:B4230FDA-58B2-4207-841C-C87DC25E3716\" ");
	document.write("      width=\"0\" height=\"0\" ");
	document.write("      CODEBASE=\"http://www.feelonline.co.kr/activex/FeelOnlineAx.dll#version=1,0,0,4\">");
	document.write("    </OBJECT>");
}


function isInstalledActiveX()
{
	var isInstall = false;
	try {
		var obj = new ActiveXObject("FeelOnlineAx.StartFeel.1");

		//xxx.xxx.1 은 HKEY_CLASSES_ROOT에 등록된 ProgID
		// 설치되어 있으면 obj 값은 [object], 안되어 있으면 undefine      
		if(obj) isInstall = true;
		else isInstall = false;
	} catch(e) {
		isInstall = false;
	}
	return isInstall;
}

function isInstalledNowCDN()
{
	return true;
	var isInstall = false;
	try {
		var obj = new ActiveXObject("DOWNSTARTER2.DownStarter2Ctrl.1");

		//xxx.xxx.1 은 HKEY_CLASSES_ROOT에 등록된 ProgID
		// 설치되어 있으면 obj 값은 [object], 안되어 있으면 undefine      
		if(obj) isInstall = true;
		else isInstall = false;
	} catch(e) {
		isInstall = false;
	}

	return isInstall;
}   

function getInfo2()
{
	var retStr = "";

	var iRet = document.FeelOnlineAx.IsNeedElevation();
	if (iRet == 1 || iRet == 3) {
		retStr = document.FeelOnlineAx.ElevatedGetSysInfo();
	}
	else {
		retStr = document.FeelOnlineAx.GetSysInfo();
	}

	var tokenStr = retStr.split("\t");

	if (tokenStr[0] == "SUCCESS")
	{
		var os = trim(tokenStr[1]);
		var cpu = trim(tokenStr[2]);
		var ram = trim(tokenStr[3]);
		var video = trim(tokenStr[4]);
		var disk = trim(tokenStr[5]);
		var dx = trim(tokenStr[6]);

		var obj = document.getElementById("span_os");
		obj.innerHTML = os;
		obj = document.getElementById("span_cpu");
		obj.innerHTML = cpu;
		obj = document.getElementById("span_ram");
		obj.innerHTML = ram;
		obj = document.getElementById("span_video");
		obj.innerHTML = video;
		obj = document.getElementById("span_disk");
		obj.innerHTML = disk;
		obj = document.getElementById("span_dx");
		obj.innerHTML = dx;
	}
	else {
		alert("시스템 사양 체크에 실패하였습니다.");
	}

}


function getInfo()
{
	// method가 성공하면 정상적인 값이.. 실패하면 FAILED가 리턴된다.
	var retStr = "";

	var iRet = document.FeelOnlineAx.IsNeedElevation();
	if (iRet == 1 || iRet == 3) {
		retStr = document.FeelOnlineAx.ElevatedGetSysInfo();
	}
	else {
		retStr = document.FeelOnlineAx.GetSysInfo();
	}

	var tokenStr = retStr.split("\t");

	if (tokenStr[0] == "SUCCESS")
	{
		var os = trim(tokenStr[1]);
		var cpu = trim(tokenStr[2]);
		var ram = trim(tokenStr[3]);
		var video = trim(tokenStr[4]);
		var disk = trim(tokenStr[5]);
		var dx = trim(tokenStr[6]);

		systemInfoStr = "\n OS : "+ os +
						"\n CPU : " + cpu + 
						"\n 메모리 : " + ram +
						"\n 그래픽카드 : " + video +
						"\n 하드 디스크 여유 공간 : " + disk + 
						"\n DirectX 버전 : " + dx +
						"\n 웹브라우저 : " + window.navigator.userAgent;
	}
	else
	{
		systemInfoStr = "\n 정보얻기 실패" + 
						"\n 웹브라우저 : " + window.navigator.userAgent;
	}
}

//
// 셋업 파일 다운로드
//
function GoDown()
{

	if (isInitAx == 0) {

		if (isInstalledNowCDN())
		{
			alert("다운로드 컨트롤이 정상적으로 초기화가 되지 않았습니다.\n\n잠시 후 다시 시도해주세요.");
		}
		else
		{
			alert("다운로드 컨트롤이 정상적으로 설치되지 않았습니다.");
		}

		return;
	}

	window.location.href = "http://download.feelonline.co.kr/Full/feelonline-feel-v1.0.25-setup.exe";
	return;

	var downurl = "DownURL://ANgames/FEELonline/Full/feelonline-feel-v1.0.25-setup.exe";
//	var downurl = "http://download.feelonline.co.kr/Full/feelonline-feel-v1.0.25-setup.exe";
	bg_start_download(downurl);
	bg_autorun();	// 다운로드 완료 후 실행파일(확장명 exe)을 찾아 설치 자동 시작설치 자동 시작,
					// 사용자가 직접 실행 버튼으로 설치를 하게 할 경우 본 항목 삭제
}

// 
// 게임 실행
//
function RunGame(islogin, feelid, hpcert)
{
	if (isRunGame == 1) {

		alert("이미 게임이 실행중입니다.");
		return;
	}

	if (!islogin) {

		alert("로그인 후에 게임을 실행하실 수 있습니다.");
		return;
	}

	// 휴대폰 인증 안 받은 경우
	if (hpcert == 0) {

		var hpcert_ck = getCookie("today_hpcert_view");

		if (hpcert_ck != null && hpcert_ck == 1);
		else
		{
			var win = window.open("/popup/reg_mobile.php","popup","width=460,height=540");
			win.focus();
		}
	}

	// activex 설치 여부
	if (!isInstalledActiveX())
	{
		alert("게임 실행에 필요한 컨트롤이 정상적으로 설치되지 않았습니다.");
		return;
	}

	isRunGame = 1;

	//
	// 게임 실행을 호출 하기 전에 관련된 작업들을 일괄 처리하자
	//
	var remoteURL = "/inc/start_game.php?feel_id="+feelid;
	var res = XMLGetData(remoteURL);
	if (res!="") eval(res);

	isRunGame = 0;
}

//
// 게임 실행 2단계
//
function run_game(userid, userinfo, site_code, etc, etc2, etc3)
{
	var ret = 0;

	var iRet = document.FeelOnlineAx.IsNeedElevation();
	if (iRet == 0) {
		ret = document.FeelOnlineAx.StartGame(userinfo, site_code, etc, etc2, etc3);
	} else {
		ret = document.FeelOnlineAx.ElevatedStartGame(userinfo, site_code, etc, etc2, etc3);
	}

	//  1 : 정상 실행
	//  0 : 실행 실패
	// -1 : 비스타 ( 권한 상승 실패 )
	// -2 : 게임이 설치되지 않았음
	// -3 : 게임이 이미 실행중
	if ( ret == -2 ) {
		GoDown();
	}
	else if ( ret == -1 ) {
		alert("Windows Vista 의 사용자 권한 상승 작업에 실패하였습니다.\n계정 권한을 확인하여주세요.");
		return;
	}
	else if ( ret == 0 ) {
		alert("게임 실행에 실패하였습니다.\n잠시 후 다시 시도해주세요.");
		return;
	}
	else if ( ret == -3 ) {
	}
	else {
		// 정상 실행된거다.
		// 게임 후에 할 작업들을 처리하자
		var remoteURL = "/inc/run_game_after.php?feel_id="+userid;
		var res = XMLGetData(remoteURL);
		if (res != "") {
			eval(res);
		}
	}
}

//
// 게임 실행 실패
//
function error_game(msg)
{
	alert(msg);

	isRunGame = 0;
}

//
// 점검 중일때
//
function server_is_down(flag)
{
	if (flag==0) {
		alert("서버 점검중입니다.\n이용에 불편을 드려 죄송합니다.");
		return;
	}
}

