//
// MagicSSO Client Java Script ver4 2002.9.20
//
//
var OBJ_NAME_INSTALLER = "MagicInstaller "
var OBJ_CLSID_INSTALLER = "CLSID:8E64F05B-76CF-40EA-AD6B-6741F02BDC46 ";
var OBJ_CODEBASE_INSTALLER = "/aims/sso/setup/MagicClientAX.cab#version=1,0,3,6 ";
var OBJCD_INSTALLER = "<OBJECT id=" + OBJ_NAME_INSTALLER + " CLASSID=" + OBJ_CLSID_INSTALLER + 
		      " CODEBASE=" + OBJ_CODEBASE_INSTALLER + " height=0 width=0></OBJECT>";

var OBJ_NAME_MSSOWEB = "MSSOWebX "
var OBJ_CLSID_MSSOWEB = "CLSID:E5D4EF11-CBD7-47BD-8808-EFBF6F3F4F21 ";
var OBJ_CODEBASE_MSSOWEB = "/aims/sso/setup/MagicClientAX.cab#version=1,0,0,8 ";
var OBJCD_MSSOWEB = "<OBJECT id=" + OBJ_NAME_MSSOWEB + " CLASSID=" + OBJ_CLSID_MSSOWEB + 
		    " CODEBASE=" + OBJ_CODEBASE_MSSOWEB + " height=0 width=0></OBJECT>";

var OBJ_NAME_PROXY = "DSProxyX ";
var OBJ_CLSID_PROXY = "CLSID:F9143948-F472-4397-8B9F-237B6CB07C48 ";
var OBJ_CODEBASE_PROXY = "/aims/sso/setup/MagicClientAX.cab#version=1,0,0,8 ";
var OBJCD_PROXY = "<OBJECT id=" + OBJ_NAME_PROXY + " CLASSID=" + OBJ_CLSID_PROXY + 
		  " CODEBASE=" + OBJ_CODEBASE_PROXY + " height=0 width=0></OBJECT>";

document.write(OBJCD_INSTALLER);
document.write(OBJCD_MSSOWEB);
document.write(OBJCD_PROXY);

// 실행에 관련된 변수
var MagicLineMutex		= "MSSO_KHC.MUTEX"
var InstallDir			= "MagicEAM1.0\\";
var MagicLineExeName		= "MagicEAM.exe";
var MagicLineFileName		= InstallDir + "MagicEAM.exe"; 
var MagicCFGFileName 		= InstallDir + "magic.cfg";
var sProxyData = "DIRECT";
var nEndLoop = -1;
var nContinue = -1;
var sTestResultMsg = "Start\n";
var nRet;

// 실행 결과 코드 정의
var SSO_OK = 0;
var SSO_FAILE = 1;

// 암호화 모드
var MLCRYPT_NONE = "1";		// 평문
var MLCRYPT_DES_ONLY = "2";	// DESKEY만을 사용함
var MLCRYPT_DENV = "3";		// Digial Envelop
var MLCRYPT_DENV_DES = "4";	// Digial Envelop(C->S), DESKEY(S->C)
var MLCRYPT_SCERT_CRYPT	= "5";	// data(deskey encrypt), deskey(server publickey encrypt)

// 어플리케이션 코드
var APP_EIP = "APPL000006";	// EIP 포탈


////////////////////////////////////////////////////////////////////////////////
// 				ERROR CODE DEFINE			      //
////////////////////////////////////////////////////////////////////////////////
var	ML_SUCCESS			= 0;
var	ML_FAIL				= 1;
var	ML_ERR				= 10;
var	ML_STATUS			= 50;

var	ML_ERR_NONE_EXECUTE_MSSO	= ML_ERR;	// MagicLine이 기동하지 않는다.
var	ML_ERR_NONE_MUTEX 		= ML_ERR + 1;	// MUTEX 이름이 없다.
var	ML_ERR_NONE_CONNECTION		= ML_ERR + 2;	// Connection 정보가 없다.
var	ML_ERR_PS_CONFIG		= ML_ERR + 3;	// PS로 부터 정보를 받지 못함(PS 가 기동되지 않을 수 있다.)
var	ML_ERR_USER_INPUT		= ML_ERR + 4;	// 사용자 입력 오류
var	ML_ERR_USER_ACL			= ML_ERR + 5;	// ACL 정보 수신 오류
var	ML_ERR_TS_IPLIST		= ML_ERR + 6;	// TS로 부터 IP List를 받지 못함(TS 기동 유무 체크)
var	ML_ERR_NONE_TRAN_SERVER		= ML_ERR + 7;	// TS 정보(IP:PORT)가 없다.
var	ML_ERR_NONE_SESSION_KEY		= ML_ERR + 8;	// SESSION KEY가 없다.
var	ML_ERR_NO_RECV_ENVSERVER_CERT	= ML_ERR + 9;	// MLREQ_RESTRICT_TYPE2 를 받지못함.
var	ML_ERR_SESSION_KEY_EXCHANGE	= ML_ERR + 10;	// SESSION KEY 교환 실패


var	ML_ERR_DES_ONLY_ENC		= ML_ERR + 11;	// ML_CRYPT_DES_ONLY 암호화 오류
var	ML_ERR_DENV_ENC			= ML_ERR + 12;	// ML_CRYPT_DENV "
var	ML_ERR_DENV_DES_ENC		= ML_ERR + 13;	// ML_CRYPT_DENV_DES "
var	ML_ERR_SCERT_ENC		= ML_ERR + 14;	// ML_CRYPT_SCERT "
var	ML_ERR_DES_ONLY_DEC		= ML_ERR + 15;	// ML_CRYPT_DES_ONLY 복호화 오류
var	ML_ERR_DENV_DEC			= ML_ERR + 16;	// ML_CRYPT_DENV "
var	ML_ERR_DENV_DES_DEC		= ML_ERR + 17;	// ML_CRYPT_DENV_DES "
var	ML_ERR_SCERT_DEC		= ML_ERR + 18;	// ML_CRYPT_SCERT "
var	ML_ERR_BASE64_ENC		= ML_ERR + 19;	// BASE64 ENCODE 오류
var	ML_ERR_BASE64_DEC		= ML_ERR + 20;	// BASE64 DECODE 오류
var	ML_ERR_INPUT_DATA		= ML_ERR + 21;	// INPUT DATA 오류
var	ML_ERR_INPUT_PASSWORD		= ML_ERR + 22;	// Password 입력 오류
var	ML_ERR_INPUT_ID			= ML_ERR + 23;	// ID 입력 오류

var	ML_ERR_CERT_PASSWORD		= ML_ERR + 24;	// 인증서 비밀번호 오류
var	ML_ERR_CERT_USABLE_DATE		= ML_ERR + 25;	// 유효기간 오류
var	ML_ERR_CERT_BASE64_DEC		= ML_ERR + 26;	// 인증서 BASE64 DECODE 오류
var	ML_ERR_CERT_PRIVATE_DEC		= ML_ERR + 27;	// 개인키 BASE64 DECODE 오류
var	ML_ERR_CERT_ANALYSIS		= ML_ERR + 28;	// 인증서 분서 시 오류
var	ML_ERR_CERT_CANCEL		= ML_ERR + 29;	// 인증서 작업 취소
var	ML_ERR_CERT_UNKNOWN		= ML_ERR + 30;	// 알수 없는 인증서 오류
var	ML_ERR_CLIENT_AGENT_ALIVE	= ML_ERR + 31;	// Single Sign On 모듈이 동작중입니다. 포탈브라우저에서 로그아웃 한 후 재로그인하시기 바랍니다.

var	ML_STATUS_LOGIN			= ML_STATUS;	// 현재 로그인 상태입니다.
var	ML_STATUS_LOGOUT		= ML_STATUS + 1;// 로그아웃 상태입니다.
var	ML_STATUS_PASSWD_CHANGE		= ML_STATUS + 2;// 비밀번호 변경.


// varErrCode에 따라 에러메시지를 보여준다.
function ReportMsg(varErrCode)
{
	switch(varErrCode)
	{
	case ML_ERR_NONE_EXECUTE_MSSO		:
		{
			alert("MagicSSO와 연결을 실패하였습니다.\nMagicSSO가 기동하지 않을 수 있습니다.");
		}
		break;
		
	case ML_ERR_NONE_MUTEX			:
		{
			alert("MUTEX 이름이 존재하지 않습니다.");
		}
		break;
		
	case ML_ERR_NONE_CONNECTION		:
		{
			alert("요청하신 정보에대한 연결 정보가 존재하지 않습니다.");
		}
		break;
		
	case ML_ERR_PS_CONFIG			:
		{
			//alert("Policy Server로 부터 CONFIG 정보를 받지 못하였습니다.\n(Policy Server가 기동되지 않을 수 있습니다.)");
			alert("인증서버로부터 환경정보를 받지 못하였습니다.\n(인증서버가 기동되지 않았나 인증서버와 통신이 안되어 있을수 있습니다.)");
		}
		break;
		
	case ML_ERR_USER_INPUT			:
		{
			alert("잘못된 아이디/비밀번호를 입력하셨습니다.\n다시한번 확인해주세요.");
		}
		break;
		
	case ML_ERR_USER_ACL			:
		{
			//alert("Policy Server로부터 ACL 정보 수신 시 오류가 발생했습니다.");
			alert("인증서버로부터 사용자권한정보 수신 시 오류가 발생했습니다. \n관리자에게 문의하시기 바랍니다");
		}
		break;
		
	case ML_ERR_TS_IPLIST			:
		{
			//alert("Server Agent로부터 IP List를 받지 못하였습니다.\nServer Agent가 기동하는지 관리자에게 문의하시기 바랍니다.");
			alert("서버에이전트로부터 IP List를 받지 못하였습니다.\n서버에이전트가 기동하는지 관리자에게 문의하시기 바랍니다.");
		}
		break;
		
	case ML_ERR_NONE_TRAN_SERVER		:
		{
			//alert("접속할 Server Agent의 정보(IP:PORT)가 MagicLine에 존재하지 않습니다.");
			alert("접속할 서버에이전트의 정보(IP:PORT)가 MagicLine에 존재하지 않습니다.");
		}
		break;
		
	case ML_ERR_NONE_SESSION_KEY		:
		{
			//alert("SESSION KEY가 존재하지 않아 작업을 진행하지 못하였습니다.");
			alert("세션키정보가 존재하지 않아 작업을 진행하지 못하였습니다.");
		}
		break;
	
	case ML_ERR_NO_RECV_ENVSERVER_CERT	: 
		{
			alert("Server Agent로 부터 서버 인증서를 받지 못하였습니다.\n(MLREQ_RESTRICT_TYPE2) 송수신 오류!!");
		}
		break;
		
	case ML_ERR_SESSION_KEY_EXCHANGE	:
		{
			//alert("Server Agent와 SESSION KEY 교환에 실패하였습니다.");
			alert("서버에이젼트와 세션키정보 교환에 실패하였습니다.");
		}
		break;

	case ML_ERR_DES_ONLY_ENC		: 
		{
			alert("ML_CRYPT_DES_ONLY 타입을 통한 암호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_DENV_ENC			:
		{
			alert("ML_CRYPT_DENV 타입을 통한 암호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_DENV_DES_ENC		:
		{
			alert("ML_CRYPT_DENV_DES 타입을 통한 암호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_SCERT_ENC			:
		{
			alert("ML_CRYPT_SCERT 타입을 통한 암호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_DES_ONLY_DEC		:
		{
			alert("ML_CRYPT_DES_ONLY 타입을 통한 복호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_DENV_DEC			:
		{
			alert("ML_CRYPT_DENV 타입을 통한 복호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_DENV_DES_DEC		:
		{
			alert("ML_CRYPT_DENV_DES 타입을 통한 복호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_SCERT_DEC			:
		{
			alert("ML_CRYPT_SCERT 타입을 통한 복호화 시 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_BASE64_ENC			:
		{
			alert("데이터를 BASE64로 인코딩 시에 오류가 발생했습니다.");
		}
		break;
		
	case ML_ERR_BASE64_ENC			:
		{
			alert("데이터를 BASE64로 디코딩 시에 오류가 발생했습니다.");
		}
		break;
	
	case ML_ERR_INPUT_DATA			:
		{
			alert("입력된 데이터에 오류가 있습니다.");		
		}
		break;
		
	case ML_ERR_INPUT_PASSWORD		:
		{			
			alert("입력하신 비밀번호가 정확하지 않습니다.\n다시 한번 확인해주세요.");
		}
		break;
	
	case ML_ERR_INPUT_ID			:
		{
			alert("입력하신 아이디가 존재하지 않습니다.\n다시 한번 확인해주세요.");
		}
		break;
		
	case ML_ERR_CERT_PASSWORD		:
		{
			alert("입력하신 인증서 비밀번호가 정확하지 않습니다.\n다시 한번 확인해주세요.");
		}
		break;
		
	case ML_ERR_CERT_USABLE_DATE		:
		{
			alert("인증서의 유효기간이 지났습니다.");
		}
		break;
		
	case ML_ERR_CERT_BASE64_DEC		:
		{
			alert("인증서 BASE64 디코딩시 에러가 발생했습니다.");
		}
		break;
		
	case ML_ERR_CERT_PRIVATE_DEC		:
		{
			alert("인증서 개인키 BASE64 디코딩시 에러가 발생했습니다.");
		}
		break;
		
	case ML_ERR_CERT_ANALYSIS		:
		{
			alert("인증서 분석 시 에러가 발생했습니다.");
		}
		break;
		
	case ML_ERR_CERT_CANCEL			:
		{
			alert("인증서 작업이 취소되었습니다.");
		}
		break;
		
	case ML_ERR_CERT_UNKNOWN		:
		{
			alert("아직 지원되지 않거나 인증서에서 알수 없는 오류가 발생했습니다.");
		}
		break;
		
		
	// MagicLine의 상태를 보고한다.		
	case ML_STATUS_LOGIN			:
		{
			alert("현재 로그인 상태입니다.");
		}
		break;
		
	case ML_STATUS_LOGOUT			:
		{
			alert("로그인 되지 않은 상태입니다.\n서비스를 이용을 위해 로그인하시기 바랍니다.");
		}
		break;		

	case ML_STATUS_PASSWD_CHANGE		:
		break;	

	case ML_ERR_CLIENT_AGENT_ALIVE		:
		{
			alert("Single Sign On 모듈이 동작중입니다.\n포탈브라우저에서 로그아웃 한 후 재로그인하시기 바랍니다.");
		}
		break;	
	
	default					:
		{
			alert("알 수 없는 오류가 발생했습니다. ERRORCODE="+ varErrCode + "\n관리자에게 문의하시기 바랍니다.");
		}
		break;		
	}
}


function escape_url(url) 
{
	var i;
	var ch;
	var out = '';
	var url_string = '';

	url_string = String(url);

	for (i = 0; i < url_string.length; i++) {
		ch = url_string.charAt(i);
		if (ch == ' ')
		    out += '%20';
		else if (ch == '%')
		    out += '%25';
		else if (ch == '&')
		    out += '%26';
		else if (ch == '+')
		    out += '%2B';
		else if (ch == '=')
		    out += '%3D';
		else if (ch == '?')
		    out += '%3F';
		else
		    out += ch;
	}
	return out;
}

function MakePlain(form) 
{
	var name = new Array(form.elements.length); 
	var value = new Array(form.elements.length); 
	var flag = false;
	var j = 0;
	var plain_text="";


	len = form.elements.length; 
	for (i = 0; i < len; i++) {
		if ((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")) {
			if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox") {
				if (form.elements[i].checked == true) {
					name[j] = form.elements[i].name; 
					value[j] = form.elements[i].value;
					j++;
				}
			}
			else {
				name[j] = form.elements[i].name; 
				if (form.elements[i].type == "select-one") {
					var ind = form.elements[i].selectedIndex;
					if(ind > 0) {
						if (form.elements[i].options[ind].value != '')
							value[j] = form.elements[i].options[ind].value;
						else
							value[j] = form.elements[i].options[ind].text;
					} else {
						value[j] = "";
					}
					// form.elements[i].selectedIndex = 0;
				}
				else if (form.elements[i].type == "select-multiple") {
					var llen = form.elements[i].length;
					var increased = 0;
					for( k = 0; k < llen; k++) {
						if (form.elements[i].options[k].selected) {
							name[j] = form.elements[i].name; 
							if (form.elements[i].options[k].value != '')
								value[j] = form.elements[i].options[k].value;
							else
								value[j] = form.elements[i].options[k].text;
							j++;
							increased++;
						}
					}
					if(increased > 0) {
						j--;
					} else {
						value[j] = "";
					}
				}
				else {
					value[j] = form.elements[i].value;
				}
				j++;
			}
		}
	}
	for (i = 0; i < j; i++) {
		str = value[i]; 
		value[i] = escape_url(str); 
	}

	for (i = 0; i < j; i++) {
		if (flag)
			plain_text += "&";
		else
			flag = true;
		plain_text += name[i] ;
		plain_text += "=";
		plain_text += value[i];
	}

	return plain_text;
}

function BrowserVersionCheck()
{
	// IE 버전 체크 5.0 이상만 지원
	rv = document.MagicInstaller.IEVersionCheck();
	if(rv < 5)
	{
		nContinue = 0;
		return false;
	}
	nContinue = 1;
	
	return true;
}

function VersionCheckAndDownload()
{
	rv = document.MagicInstaller.VerCheckAndDownload(ServerAddr,ConfigFilePath);
	if(rv == 1)
	{
		alert("다운로드 완료, 프로그램을 설치합니다.\n\n공유위반 오류가 발생한 경우에는 사용중인 브라우저를 모두 종료하신 후에 다시 시도하십시오.");
		//document.MagicInstaller.RunSetup();
		document.MagicInstaller.RunSetup2();
		return true;
	}
	else if(rv == 2)
	{
		// alert("업그레이드 안해도 됨");
		return true;
	}
	else
	{
		// alert("다운로드 실패");
		return false;
	}
}


function ProxyCheck()
{
	//alert("ssofunc.js -- ProxyCheck() Start.................");
	sProxyData = document.DSProxyX.GetProxySettingData(MagicCFGFileName);
	if(sProxyData != "false")
	{
		document.DSProxyX.SetManualProxyData(sProxyData);
		nEndLoop = 1;
	}
	else
	{
		rv = document.DSProxyX.isAutoProxy();
		if (rv == 2)
		{ // 비정상 종료된것으로 추정됨
			document.DSProxyX.RecoverProxy();
		}
	
		if(document.DSProxyX.isAutoProxy())
		{
			//alert("ssofunc.js -- ProxyCheck() 11111111");
			AutoProxyProcess(ServiceURL,ServiceHost);
		}
		else if(document.DSProxyX.isProxy())
		{
			//alert("ssofunc.js -- ProxyCheck() 22222222");
			sProxyData = document.DSProxyX.GetProxyData();
			if(sProxyData == "false")
			{
				nEndLoop = 0;
			}
			else
			{
				nEndLoop = 1;
			}
		}
		else
		{
			//alert("ssofunc.js -- ProxyCheck() 333333333");
			sProxyData = "DIRECT";
			nEndLoop = 	1;
		}	
	}
}

function AutoProxyProcess(url,host)
{
	sAutoScriptData = document.DSProxyX.GetAutoScriptData();
	if(sAutoScriptData == "false")
	{
		nEndLoop = 0;
		return;
	}
	doc = MakeAutoScriptData(url,host,sAutoScriptData);
	var sFeatures = "left=" + screen.width + "top=" + screen.height + "height=100,width=100";
	winobject = window.open("","win1",sFeatures);
	if(winobject !=null)
	{
		winobject.document.write(doc);
	}
//	winobject.close();
}

function MSSOStart()
{
	document.MagicInstaller.RunMsg(MagicLineFileName, "noArg");
	
	rv = MagicInstaller.Result;
	if(rv <= 0)
	{
		alert("MagicEAM.exe 파일을 찾을 수 없습니다.수동으로 설치하신 후 다시 접속하시기 바랍니다.");
		return;
	}
}

function MSSOLogon()
{	
	//alert("ssofunc.js -- MSSOLogin() Start...............");
	sUserId = document.Login.userid.value;
	sPassWd = document.Login.passwd.value;

	//if(MSSOGetStatus() == ML_ERR_NONE_EXECUTE_MSSO)
	if(MSSOGetStatus() == ML_STATUS_LOGIN)
	{
		MSSOLogout();
		alert("이미 보안 세션이 연결되어 있습니다.\n\n기존 세션을 종료하고 다시 로그인 합니다.")
	}
		
	MSSOStart();

	InitMsg = MagicLineMutex + "%" + sProxyData + "%" + ML_Port + "%" + TS_Info + "%" +TS_80_Info;
	InitMsg = InitMsg + "%" +IsAdvanceCryptoMode + "%" + ControlSite + "%" + AuthClassMode + "%";
	InitMsg = InitMsg + CertMask + "%" + PS_Info + "%" + PS_80_Info + "%" + sUserId + "%" + sPassWd + "%" + ForwardMode;
	rv = document.MSSOWebX.MSSOLogon(MagicLineMutex, InitMsg);
	//alert(InitMsg);

	if( rv == ML_SUCCESS )
	{	
		alert("로그인 성공하였습니다.");
		//document.Login.ssotoken.value = getLegacy(APP_EIP);
		document.Login.ssotoken.value = getEncToken();
		//alert(document.Login.ssotoken.value);
		document.Login.action = ServiceStartPageURL;
		//document.Login.submit();
		//MSSOSignOnNavigate("10.104.77.11:8080", "/servlet_ck/index_EIP?type=H", "_self");
		//MSSOSignOnNavigate("10.104.77.11:80", "/servlet/portal/", "_self");
		//MSSONavigate("mail.dreamsecurity.com", "/ez.anonymous", "_self");
		//MSSOSignOnNavigate("mail.dreamsecurity.com", "/bbs.intra", "_self");
		//MSSONavigate("10.10.10.177:8080", "/openkmsw/sso/login.html", "_self");
		//MSSONavigate("10.10.10.39", "/openkmsw/sso/test.jsp", "_self");
		//getSessionID("potal.icu.ac.kr:8080");
		getSessionID("220.69.179.62");
	}
	else
	{
		ReportMsg(rv);
	}
}

function MSSOLogout()
{
	rv = document.MSSOWebX.MSSOLogout(MagicLineMutex);

	if( rv == ML_SUCCESS )
	{	
		//alert("로그아웃 성공하였습니다.");
	}
	else
	{
		//ReportMsg(rv);
	}
}

function MSSONavigate(_server, _url, _target)
{
	rv = document.MSSOWebX.Navigate(_server, _url, _target);
	if( rv != ML_SUCCESS )
		ReportMsg(rv);
}

function MSSOSignOnNavigate(_server, _url, _target)
{
	rv = document.MSSOWebX.SignOnNavigate(_server, _url, _target);
	if( rv != ML_SUCCESS )
		ReportMsg(rv);
}

function MSSOGetStatus()
{
	nRet = document.MSSOWebX.MSSOGetStatus(MagicLineMutex);
	//ReportMsg(nRet);
	return nRet;
}

function getSessionID(_server)
{
    //alert("ssofunc.js -- getSessionID() Start _server:" + _server);
    var sSessionID = "";

    sSessionID = document.MSSOWebX.GetSessionID(_server);

//    alert("sSessionID:" + sSessionID);
    if( sSessionID != "" )
        return sSessionID;
    else
        return "";
}

function getEncToken()
{
	var sToken = "";

	rv = document.MSSOWebX.GetToken(MagicLineMutex, "potal.icu.ac.kr", MLCRYPT_DES_ONLY);

	if( rv == ML_SUCCESS )
	{
		sToken = document.MSSOWebX.Result;
		return sToken;
	}
	else
	{
		//ReportMsg(rv);
		return "";
	}
}

function getLegacy(_app)
{
	var sToken = "";

	rv = document.MSSOWebX.GetLegacy(MagicLineMutex, "potal.icu.ac.kr", MLCRYPT_DES_ONLY, _app);
	
	if( rv == ML_SUCCESS )
	{
		sToken = document.MSSOWebX.Result;
		return sToken;
	}
	else
	{
		//ReportMsg(rv);
		return "";
	}
}

function navigate(_url, _target)
{
	window.open(_url, _target);
}

function DisplayMsg(title, body)
{
	sTestResultMsg = sTestResultMsg + title + ":" + body + "\n";
	msg = "&nbsp;<font color='blue' class='12p'>\r\n";
	msg += "<img src='../image/ball02.gif' width='9' height='10'>\r\n";
	msg = msg + "<B>" + title +" : </B></font>";
	msg = msg + "<font class='12p'>\r\n";
	msg = msg + body +"</font><br>";
	document.write(msg);
}

function checkKeyInput(pCurrent)
{
	if (pCurrent.value.length > 0)
		if(MSSOGetStatus() == ML_STATUS_LOGIN)
			MSSOLogout();
}
