﻿
var launcher             = null;  
var checklauncheraccess  = false;
var checkmemberaccess    = false;
var serverclosemessage   = null;
var memberblockmessage   = null;

//var RegInfo;

function LoadLauncher()
{

	// 비스타 테스트적용
	CheckOS();
	
	//alert(document.all["Spikegirlslauncher"]);
	if (document.all["Launcher"]) {
		launcher = document.all["Launcher"];
	} else if (parent && parent != this && parent.document.all["Launcher"]) {
		launcher = parent.document.all["Launcher"];
	}

	if (launcher != null) {
		// already load
		return;
	} else {
		
		var str;
		
		if(!isVistar)
		{
			str='<object id="Launcher" codebase="http://su.hanbiton.com/Game/HLauncher.cab#version=1,1,0,2" classid="CLSID:B01AAFA1-2478-44a3-8894-BE4D4C23C271" style="display:none"></object>';
		}
		else
		{
			str='<object id="Launcher" codebase="http://su.hanbiton.com/Game/HLauncher_V.cab#version=1,1,0,2" classid="CLSID:B01AAFA1-2478-44a3-8894-BE4D4C23C271" style="display:none"></object>';
		}
		
		document.write(str);	
		launcher = document.all["Launcher"];
	}
}



function ActiveCheck()
{	
	try {	
		if(document.all["Launcher"] == null || typeof(document.all["Launcher"]) == "undefined" || document.all["Launcher"].object == null )
		{
			return false;			
		}
		else
		{
			return true;
		}						
	} catch(ex)
	{
		return false;
	}
}

//게임서버 ON/OFF체크
function checkWebGameAccess()
{
	
	// add parameters 	  
	var paramNames = new Array();
	var paramValues = new Array();

	paramNames[0] = "ID"
	paramValues[0] = "ID";

	CallHanbitONWebService("GetWebGameAccess", paramNames, paramValues, getWebGameAccess);	
}



function getWebGameAccess()
{ 		
	if (objHttp.readyState == 4) 
	
	{		
		var szResponse = objHttp.responseText;
		
		//alert(szResponse);
		if (objHttp.status == 200) {
		
			var res = objHttp.responseXML.documentElement;		
			if (res.getElementsByTagName('GetWebGameAccessResult/Serverstate')[0].firstChild.data=="1")
			{
				checklauncheraccess = true;
				serverclosemessage = null;			
				
			}
			else
			{
				checklauncheraccess = false; 							
				serverclosemessage = res.getElementsByTagName('GetWebGameAccessResult/Closemessage')[0].firstChild.data;

			}									
		}
		
	}
	else
	{
		//alert("====>"+objHttp.readyState);
	}
}

// 게임멤버블럭
function checkGameMemberblock(userId)
{
	// add parameters 	  
	var paramNames = new Array();
	var paramValues = new Array();
	paramNames[0] = "userId"
	paramValues[0] = userId;

	CallHanbitONWebService("GetGameMemberblock", paramNames, paramValues, getGameMemberblock);	
}

function getGameMemberblock()
{
    if (objHttp.readyState == 4) {
		var szResponse = objHttp.responseText;
		//alert(szResponse);
		if (objHttp.status == 200) {
			var res = objHttp.responseXML.documentElement;

			if(res.getElementsByTagName('GetGameMemberblockResult/BlockState')[0].firstChild.data == "1")
			{
			    checkmemberaccess = true;
			    memberblockmessage = null;
			}
			else
			{
			    checkmemberaccess = false;
			    memberblockmessage = res.getElementsByTagName('GetGameMemberblockResult/BlockMessage')[0].firstChild.data;
			}
		}
	}
}



function closeWindow() 
{
 if (top != self) {
  top.closeWindow();
 } else {
  self.opener = self;
  self.close();
 }
}

function ExecuteLauncher(userId, userToken)
{
	
	var rtn = 0;
	
	paramNames ="";
	paramValues ="";
	userParam	= userId+"/"+userToken;
	
	checkWebGameAccess();
	checkGameMemberblock(userId);
	if(ActiveCheck())
	{
		if(checklauncheraccess)
		{
		   if(checkmemberaccess)
		   {
			    var rtn = launcher.fnExecuteGame2("HKEY_LOCAL_MACHINE","SOFTWARE\\AIKA","Install_Dir", userParam, "AIKALauncher.exe");
			    MakeShortCut(); // 한빛온 아이콘 생성.
			    var str="";
    			//alert(rtn);
			    switch(rtn)
			    {
				    case 0 :	
					    str = "";
					    break;
				    case 1 :	
					    //str = "Fail to get registry info";
					    opencdn();
					    break;
				    case 2 :	
					    str = "Fail to download patcher";
					    break;
				    case 3 :	
					    str = "Fail to execute patcher";
					    break;
				    case 4 :	
					    str = "Need to download all files";
					    opencdn();
					    break;
				    default :  
					    str = "--;";
			    }
		        if(str != "") alert(str); 
		   }
		   else
		   {
                if(memberblockmessage)
                {
                    alert(ReplaceStr(memberblockmessage, "<br>", "\n"));	
                    memberblockmessage = null;
                }
                else
                {			
                    memberblockmessage = null;	
                }			
		   }
		} 
		else
		{
			if(serverclosemessage)
			{
				alert(ReplaceStr(serverclosemessage, "<br>", "\n"));	
				serverclosemessage = null;
			}
			else
			{			
				serverclosemessage = null;				
			}
		}						
	}
	else 
	{
		alert('ActiveX가 정상적으로 설치 되지 않았습니다.\r\n고객센터 FAQ를 확인해 주세요.')
	}
	
}

function ReplaceStr(strOriginal, strFind, strChange)
{
	return strOriginal.split(strFind).join(strChange);
}

var opId = null;
function opencdn()
{
	CheckOS();
	var opUrl;
	
     opUrl = "http://devaika.hanbiton.com/Data/client_download1.html";
	     
	     
	if(isVistar){		        
        window.open(opUrl,"Game");			        
		
	}
	else{
	     	     
		if(opId == null)
		{

			 opId = window.open(opUrl, "Aika","titlebar = no, toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=375");

		 }else
		 { 
			if(opId.closed)
			{
				opId = null;
				opId = window.open(opUrl, "Aika","titlebar = no, toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=375");
			}
		 }
    }
}

// 한빛온 바로가기 버튼 만들기.
function MakeShortCut()
{
	var rtn = launcher.fnMakeUrlIcon("http://www.hanbiton.com","hanbiton.ico","http://su.hanbiton.com/Game/icon/","한빛온.url");
									 //링크URL,                 아이콘명,      아이콘다운받을URL,                  아이콘명
}


