﻿
var _gtl_target		= "";		// QA : "QA/"     REAL : ""
var _gtl_version1 	= "3,0,2,7";
var _gtl_version2 	= "3.0.2.7";

function GetGTL()
{
    return ( window.ActiveXObject )
        ? document.getElementById('GTLx')
        : document.getElementById('npGTL')
		;
}

function WriteActiveXTag()
{
    document.write('<OBJECT id="GTLx" codeBase="http://launcher.ntreev.com/ntreev/Gametree/GTL/' + _gtl_target + 'GTL.cab#version=' + _gtl_version1 + '" classid="clsid:99846979-30FD-453E-A427-99217EA62571" VIEWASTEXT width="0" height="0"></OBJECT>');
}

function WritePluginTag()
{
    document.write('<EMBED 	id="npGTL" type="application/x-gametree-npGTL,version=' + _gtl_version2 + '" width=0 height=0></EMBED>');
}

function GetMimeType(name)
{
    for(i=0; i < navigator.mimeTypes.length; i++) 
	{
	    if(name.toLowerCase()==(navigator.mimeTypes[i].type).toLowerCase())
	    {
	        return navigator.mimeTypes[i];
	    }               
    }
}

function GTL_Run(no, id, key, game, url, arg)
{
	try
	{
		var ctrl = GetGTL();
		ctrl.Run(no, id, key, game, url, arg);
	}
	catch (err)
	{
		( window.ActiveXObject )
		? alert('Gametree Launcher ActiveX를 설치해 주시기 바랍니다.')
		: InstallPlugins();			
		return;
	}
}

function GTL_RunVal(arg)
{
	try
	{
		var ctrl = GetGTL();
		ctrl.Run(arg);
	}
	catch (err)
	{
		( window.ActiveXObject )
		? alert('Gametree Launcher ActiveX를 설치해 주시기 바랍니다.')
		: InstallPlugins();			
		return;
	}
}

function GTL_CheckProcess(title)
{
	// 1, 프로세스 존재
	// 0. 프로세스 없음
	try
	{
		var ctrl = GetGTL();
		return ctrl.ProcessCheck(title);				
	}
	catch (err)
	{
		( window.ActiveXObject )
		? alert('Gametree Launcher ActiveX를 설치해 주시기 바랍니다.')
		: InstallPlugins();			
		return false;
	}
}

function InitComponent()
{
	getServiceDomain();

	if( window.ActiveXObject )
    {
        WriteActiveXTag();
    }
    else
    {
    	navigator.plugins.refresh(false);
        var mimetype = GetMimeType('application/x-gametree-npGTL,version=' + _gtl_version2);
    	if( mimetype && mimetype.enabledPlugin ) 
        {
             WritePluginTag();
        }
        else
        {// 플러그인이 설치 되어 있지 않다.
        	//InstallPlugins();
        }
    }
}

function InstallPlugins()
{
    if( confirm("Gametree Launcher 플러그인이 설치되어 있지 않습니다.\n확인을 눌러 런처를 다운로드 후 설치해 주시기 바랍니다.") ) 
    {
        location.href = 'http://launcher.ntreev.com/ntreev/Gametree/GTL/' + _gtl_target + 'GTLInstall2.exe';
    }
}

function getServiceDomain()
{
    var url = document.domain.toLowerCase();
    var arr = url.split('.');
    if (arr.length > 0) {
		if(arr[0] == 'local' || arr[0] == 'dev')
	        _gtl_target = 'TEST/';
		else if(arr[0] == 'qa' || arr[0] == 'alpha-qa')
			_gtl_target = 'QA/';
		else
			_gtl_target = '';
    }
}

function GTL_GetPCInfo() {
	try {
		var ctrl = GetGTL();
		if (ctrl) {
			var cpu = ctrl.GetInfo('CPU').trim();
			var os = ctrl.GetInfo('OS').split('\n')[0];
			var ram = ctrl.GetInfo('SYSMEM').trim();
			var hdd = ctrl.GetInfo('HARDDISK').trim();
			var gc = ctrl.GetInfo('GCARD').trim();
			var gc_driver = ctrl.GetInfo('GCARDDRIVER').trim();
			var gc_memory = ctrl.GetInfo('GCARDMEM').trim();
			var direct_x = ctrl.GetInfo('DX').trim();
			var display_mode = ctrl.GetInfo('DISMODE').trim();
			var sc = ctrl.GetInfo('SCARD').trim();
			var getAll = 'info_all';

			var arrPcInfo = cpu + "^" + os + "^" + ram + "^" + hdd + "^" + gc + "^" + gc_driver + "^" + gc_memory + "^" + direct_x + "^" + display_mode + "^" + sc;
			var txtPcInfo = 'CPU:' + cpu
								+ '\nOS:' + os
								+ '\nRAM:' + ram
								+ '\nHDD:' + hdd
								+ '\nGraphicCard:' + gc
								+ '\nGraphicDriver:' + gc_driver
								+ '\nGraphicMemory:' + gc_memory
								+ '\nDirect-X:' + direct_x
								+ '\nDisplayMode:' + display_mode
								+ '\nSoundCard:' + sc;

			var data = { arrPcInfo : arrPcInfo, txtPcInfo : txtPcInfo, cpu : cpu, os : os, ram : ram, hdd : hdd, gc : gc,  gc_driver : gc_driver, gc_memory: gc_memory, direct_x : direct_x, display_mode : display_mode, sc : sc };			
			return data;
		}
		else
		{
			InstallPlugins();
		}
	} catch (e) {
		alert('컴퓨터 사양정보를 확인하기 위해 Gametree Launcher ActiveX를 설치해 주시기 바랍니다.');
	}
}

InitComponent();