/*==============================================================================
 * Copyright(c) 2009 NARUWARE
 *
 * @File        : sso-common.js
 *
 * @Description : SSO °ü·Ã °øÅë Ã³¸®¸¦ ¼öÇàÇÏ´Â ÀÚ¹Ù ½ºÅ©¸³Æ®.
 *
 * Change history 
 * @LastModifyDate : 20090525
 * @LastModifier      :  ÁÖÁ¤¹Î
 * @LastVersion       :  1.0
 *    2009-05-25  ÁÖÁ¤¹Î
 *        1.0         ÃÖÃÊ »ý¼º
==============================================================================*/

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 												Àü¿ª º¯¼ö ¼±¾ð ºÎºÐ											 //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////// »ó¼ö ¼±¾ð ///////////////////////////////////

var LOCAL_LOGIN_URL = "/csu/member/login_0928.jsp";

var SCRIPT_DEBUG_MODE = false;
var APPLET_DEBUG_MODE = false;

var BROWSER_IE = "MSIE";
var BROWSER_FIREFOX = "FIREFOX";
var BROWSER_CHROME = "CHROME";
var BROWSER_SAFARI = "SAFARI";
var BROWSER_OTHERS = "OTHERS";

var OS_WIN = "WINDOWS";
var OS_LINUX = "LINUX";
var OS_MAC = "MAC";
var OS_OTHERS = "OTHERS";

var browserType = decisionBrowser();
var osType = decisionOS();

var objectId = "MagicPass";
var WINDOWS_JRE = "jre-6u11-windows-i586-p.exe";
var LINUX_JRE = "jre-6u11-linux-i586.bin";

var NPKI = 1;
var GPKI = 0;
var LOGON_STATUS = 150;
var LOGOUT_STATUS = 151;
var OTHER_LOGON_STATUS = 152;
var SYM_ALG_SEED_CBC = 48;
var LOGIN_BY_ID = 0;
var LOGIN_BY_SSN = 1;
var LOGIN_BY_EMPNO = 2;
var LOGIN_BY_CERT = 3;

var EXECUTE_FILE_NAME = "DreamSecurity\\MagicPass\\MagicPass.exe";

/////////////////////////////////// Àü¿ª º¯¼ö ///////////////////////////////////

var ACTION_URL = "/csu/sso/secure.jsp";		// ·Î±×ÀÎ ÆäÀÌÁö´Â sso/secure.jsp, ¿¬°è ÆäÀÌÁö´Â secure.jsp

var isRelogin = false;		// ÇöÀç ·Î±×ÀÎµÇ¾î ÀÖ´Â »ç¿ëÀÚ·Î ´Ù½Ã ·Î±×ÀÎ ÇÏ°íÀÚ ÇÒ¶§ true·Î ¹Ù²ãÁÜ.
var SERVER_CERTIFICATION = "";
var pkiType = NPKI;
var algorismType = SYM_ALG_SEED_CBC;
var loginType = LOGIN_BY_ID;

var connectApplicationCode;	// ¿¬°èÇÏ°íÀÚ ÇÏ´Â Application Code
var targetPage;				// ¿¬°è ÈÄ ÀÌµ¿ÇÒ ÆäÀÌÁö
var etcParameter;			// ¿¬°è ÈÄ ÀÌµ¿ÇÒ ÆäÀÌÁö·Î º¸³¾ ÆÄ¶ó¹ÌÅÍ

/////////////////////////////////// »çÀÌÆ®º° º¯°æ »çÇ× ///////////////////////////////////

var siteMonitoring = true;			// ÁÖ±âÀûÀ¸·Î ·Î±×ÀÎ Ã¼Å©¸¦ ÇÒ °ÍÀÎÁö.
var monitoringInterval = 15000;		// MagicPassSÀÇ Ã¼Å© °£°Ý
var loginCheckInterval = 3000;		// ½ºÅ©¸³Æ® ½ÇÇà °£°Ý

var useX = true;						// ActiveX¸¦ »ç¿ëÇÒÁö Applet¸¦ »ç¿ëÇÏÁö.
var usePopup = false;					// Applet¸¦ »ç¿ëÇÏ´Â °æ¿ì ÆË¾÷Ã¢À» ÀÌ¿ëÇÒ °ÍÀÎÁö ¿©ºÎ
var useJava = false;					// MagicPassS¸¦ »ç¿ëÇÏÁöÀÇ ¿©ºÎ. Å¸ OSÀÎ °æ¿ì¿¡´Â °ª¿¡ »ó°ü¾øÀÌ MagicPassS¸¦ »ç¿ë.
var useControlDisable = true;			// PluginÀÌ ÁØºñµÇ±â Àü¿¡ ID/PWD ÄÁÆ®·ÑÀ» ºñÈ°¼ºÈ­ ½ÃÅ°´Â ±â´ÉÀÇ »ç¿ë ¿©ºÎ.
var useErrorPage = false;				// ¿¡·¯ ¹ß»ý½Ã ¿¡·¯ ³»¿ëÀ» ¿¡·¯ ÆäÀÌÁö¿¡ Ãâ·ÂÇÒ °ÍÀÎÁö, alertÀ¸·Î Ãâ·ÂÇÒ °ÍÀÎÁö. 
var useEam = false;						// EAM ±â´ÉÀ» »ç¿ëÇÒ °ÍÀÎÁö?

var XSIGN_PATH = "/csu/sso/plugins/applet";	// context root + sso/plugins/applet
var SECURE_SERVER_URL = "http://www.chemistory.go.kr/csu/sso";
var PROGRAM_RUN_URL = SECURE_SERVER_URL + "/secure.jsp?data=" + EXECUTE_FILE_NAME + "&actionName=CIPHER";
var SITE_NAME = "ME";
var SITE_DELEGATE_NAME = "È¯°æºÎ";
var SITE_LOGO_URL = "http://www.me.go.kr/kor/images/layout/footer_logo.gif";
var LOGIN_TARGET_PAGE = "/csu/SessionView.jsp";
var LOGOUT_TARGET_PAGE = "/csu/sso/secureLogout.jsp";
var LOGIN_APPLICATION_CODE = "APPLDEFAULT";

//¿¬°è È¯°æ ¼³Á¤
var connectApplicationCode = LOGIN_APPLICATION_CODE; // ¿¬°èÇÏ°íÀÚ ÇÏ´Â Application Code
var targetPage = "/csu/SessionView.jsp"; 			// ¿¬°è ÈÄ ÀÌµ¿ÇÒ ÆäÀÌÁö
var etcParameter; 		// ¿¬°è ÈÄ ÀÌµ¿ÇÒ ÆäÀÌÁö·Î º¸³¾ ÆÄ¶ó¹ÌÅÍ
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//													ÇÔ¼ö Á¤ÀÇ ºÎºÐ											 //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * ÇöÀç »ç¿ëÁßÀÎ ºê¶ó¿ìÀúÀÇ Á¾·ù¸¦ ¾Ë¾Æ³½´Ù. (Internet Explorer, Firefox, Chrome, Safari, ...)
 * 
 * @return
 */
function decisionBrowser()
{
	var result = BROWSER_OTHERS;
	var userAgent = navigator.userAgent;
	
	if (userAgent.indexOf("MSIE") > 0)
	{
		result = BROWSER_IE;
	}
	else if (userAgent.indexOf("Firefox") > 0)
	{
		result = BROWSER_FIREFOX;
	}
	else if (userAgent.indexOf("Chrome") > 0)
	{
		result = BROWSER_CHROME;
	}
	else if (userAgent.indexOf("Safari") > 0)
	{
		result = BROWSER_SAFARI;
	}
	
	return result;
}

/**
 * ÇöÀç »ç¿ëÁßÀÎ OS Á¾·ù¸¦ ¾Ë¾Æ³½´Ù. (Windows, Linux, Mac, ...)
 * 
 * @return
 */
function decisionOS()
{
	var result = OS_OTHERS;
	var platform = navigator.platform;
	
	if (platform.indexOf("Win") >= 0)
	{
		result = OS_WIN;
	}
	else if (platform.indexOf("Linux") >= 0)
	{
		result = OS_LINUX;
	}
	else if (platform.indexOf("Mac") >= 0)
	{
		result = OS_MAC;
	}
	
	return result;
}

/**
 * <div id="debugConsole" style="border: 1px solid #000"></div>
 * @param message
 * @return
 */
function log(message)
{
	if (!SCRIPT_DEBUG_MODE) return;
	
	var console = document.getElementById("pluginConsole");
	
	if (console == null)
	{
		console = parent.document.getElementById("pluginConsole");
	}

	if (console != null)
	{
		console.innerHTML += "- " + message + "<br/>";
	}
	else
	{
		alert(message);
	}
}

function clearLog()
{
	var console = document.getElementById("pluginConsole");
	
	if (console != null)
	{
		console.innerHTML = "";
	}
}

/**
 * ¾ÖÇÃ¸´À» »ç¿ëÇÏ´Â °æ¿ì login/logout/¿¬°è Ã³¸®¸¦ À§ÇÑ ÆË¾÷Ã¢À» ¶ç¿î´Ù.
 * 
 * @param processType
 * @param style
 * @param winUrl
 * @return
 */
function openBridgeWindow(processType, style, winUrl)
{
	log("openBridgeWindow function started.");
	
	var url = "";
	var windowStyle = "width=200,height=100,directories=no,location=no,menubar=no,resizable=yes,scrollbars=no,status=no,titlebar=no,toolbar=no";
	var windowName = "";
	
	if (style != null)
	{
		windowStyle = style;
	}
	
	switch (processType)
	{
		case "login":
			url = "sso/secureBridge.jsp?useX=false";
			windowName = "secureBridge";
			
			break;
		case "logout":
			url = "sso/secureLogout.jsp";
			windowName = "secureLogout";
			break;
		case "connect":
			url = "sso/secureAppBridge.jsp?useX=false";
			windowName = "secureAppBridge";
			
			break;
		case "load":
			url = "sso/secureWindow.jsp?content=MagicPass Server ½ÇÇàÁß...";
			windowName = "secure Loading.";
			
			break;
		default:
			url = winUrl;
	}
	
	var bridgeWindow = window.open(url, windowName, windowStyle);
	//bridgeWindow.blur();
	
	log("openBridgeWindow function end.");
	
	//return bridgeWindow;
}

function sendData(targetUrl, parameters)
{
	log("sendData function started : [" + targetUrl + ", " + parameters + "]");

	$.ajax({
		type: "POST",
		url: targetUrl,
		data: parameters,
		dataType: "xml",
		success: receiveData,
		error: occurredError,
		async: false
	});
	
	log("sendData function end.");
}

/**
 * 
 * @param xhr
 * @param textStatus
 * @param errorThrown
 * @return
 */
function occurredError(xhr, textStatus, errorThrown)
{
	log("occurredError function started.");
	
	// ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì ±× »ó¼¼ ³»¿ëÀ» Ãâ·ÂÇØ¾ß ÇÔ.
	alert("[" + xhr.status + "]Error Occurred : " + xhr.statusText + "\n" + textStatus + "\n" + errorThrown);
	
	log("occurredError function end.");
}

function receiveData(result)
{
	log("receiveData function started.");
	
	var actionName = result.getElementsByTagName("actionName")[0].firstChild.nodeValue;
	
	if (result.getElementsByTagName("success")[0] != null && result.getElementsByTagName("success")[0].childNodes.length > 0)
	{
		switch (actionName)
		{
			case "GET_SERVER_CERTIFICATION":
				SERVER_CERTIFICATION = result.getElementsByTagName("value")[0].firstChild.nodeValue;
				break;
			case "INIT_KEY":
				changeSecretKey(result.getElementsByTagName("value")[0].firstChild.nodeValue);
				break;
			case "LOGIN":
				if (useEam)
				{
					if (result.getElementsByTagName("value")[1] != null)
					{
						setUserInfo(result.getElementsByTagName("value")[0].firstChild.nodeValue, result.getElementsByTagName("value")[1].firstChild.nodeValue);
					}
					else
					{
						processingError("Application Á¤º¸°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.");
					}
				}
				else
				{
					setUserInfo(result.getElementsByTagName("value")[0].firstChild.nodeValue);
				}
				
				break;
			case "RELOGIN":
				setUserInfo();
				break;
			default:
		}
	}
	else if (result.getElementsByTagName("error")[0] != null && result.getElementsByTagName("error")[0].childNodes.length > 0)
	{
		var code = result.getElementsByTagName("code")[0].firstChild.nodeValue;

		if (code == "10003")	//ÆÐ½º¿öµå°¡ Æ²·ÈÀ»¶§
		{
			//processingServerError(result.getElementsByTagName("error")[0]);
			alert ("»ç¿ëÀÚ Á¤º¸°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ´Ù½Ã È®ÀÎ ÈÄ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");
			document.getElementById(LOGIN_FORM_ID).value = document.getElementById(LOGIN_FORM_PW).value = "";
			document.getElementById(LOGIN_FORM_ID).focus();
		}
		else if (code == "50073506")
		{
			alert ("ÇØ´ç »çÀÌÆ®´Â ÅëÇÕ ·Î±×ÀÎ¿¡ µ¿ÀÇ µÇÁö ¾Ê¾Ò½À´Ï´Ù.");
			top.window.location.href = SECURE_SERVER_URL.substring(0, SECURE_SERVER_URL.length - 4);

			try
			{
				ssoLogout(SITE_NAME);
			}
			catch (e)
			{
				top.frameForSSO.ssoLogout(SITE_NAME);
			}
		}
		else
		{
			location.href = LOCAL_LOGIN_URL;
			return;
		}
	}
	else
	{
//		alert("Message Protocol Mismatch with server : " + actionName);
	}
	
	log("receiveData function end.");
}

function processingServerError(error)
{
	log("processingServerError function started.");
	
	if (error != null)
	{
//		var errorCode = $(error).find("code").text();
//		var errorKey = $(error).find("key").text();
//		var errorMessage = $(error).find("message").text();
		var errorCode = (error.getElementsByTagName("code")[0].firstChild) ? error.getElementsByTagName("code")[0].firstChild.nodeValue : "";
		var errorKey = (error.getElementsByTagName("key")[0].firstChild) ? error.getElementsByTagName("key")[0].firstChild.nodeValue : "";
		var errorMessage = (error.getElementsByTagName("message")[0].firstChild) ? error.getElementsByTagName("message")[0].firstChild.nodeValue : "";

		if (errorCode != "")
		{
			if (errorMessage == "")
			{
				switch (errorKey)
				{
					case "FAILED_DECRYPTION":
						errorMessage = "MagicPass°¡ º¸³»¿Â ÃÊ±â ¼¼¼ÇÅ°ÀÇ °³ÀÎÅ° º¹È£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.";
						break;
					case "FAILED_CHANGE_KEY":
						errorMessage = "MagicPass¿ÍÀÇ Å° ±³È¯À» À§ÇÑ ¼­¹öÀÇ ¼¼¼ÇÅ° »ý¼º¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.";
						break;
				}
			}
			
			//alert("ERROR CODE : " + errorCode + "\nMESSAGE : " + errorMessage);
			alert(errorMessage);
		}
		else
		{
			switch (errorKey)
			{
				case "NOT_EXIST_INITIAL_SESSION_KEY":
					errorMessage = "º¸¾ÈÅë½ÅÀ» À§ÇÑ ÃÊ±â ¼¼¼Ç Å° °ªÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.";
					break;
				case "NOT_ALLOWABLE_USER" :	
					errorMessage = "»ç¿ëÀÚ ÀÌ¸§ÀÌ Àß¸øµÇ¾ú°Å³ª, µî·ÏµÇÁö ¾ÊÀº »ç¿ëÀÚ ÀÔ´Ï´Ù.";
					break;
				default:
					errorMessage = "\n¿¡·¯ÄÚµå\n > " + errorKey;
					break;
			}
			
			alert(errorMessage);
		}
	}
	
	log("processingServerError function end.");
}

/**
 * »ç¿ëÀÚ°¡ ÇØ´ç »çÀÌÆ®¿¡ ·Î±×ÀÎ µÇ¾î ÀÖ´ÂÁö Ã¼Å©ÇÑ´Ù.
 * 
 * @param siteName
 * @return
 */
function isLogin(siteName)
{
	log("isLogin function started : [" + siteName + "]");
	
	try {
		if (document.getElementById(objectId).GetStatus(siteName) == 150)
		{
			return true;
		}
	}
	catch (e) {
	}
	
	log("isLogin function end.");
	
	return false;
}

/**
 * »ç¿ëÀÚ¸¦ ÇØ´ç »çÀÌÆ®¿¡¼­ ·Î±×¾Æ¿ô ½ÃÅ²´Ù.
 * 
 * @param siteName
 * @return
 */
function ssoLogout(siteName)
{
	log("logout function started.");

	if (isLogin(siteName))
	{
		document.getElementById(objectId).Logout(siteName);
	}

	location.href = LOGOUT_TARGET_PAGE;
	
	log("logout function end.");
}

/**
 * MagicPass(S)°¡ ½ÇÇàÁßÀÎÁö Ã¼Å©ÇÑ´Ù.
 * 
 * @param programName
 * @return
 */
function checkExistClientProgram(programName, useX)
{
	log("checkExistClientProgram function started.");
	
	var returnCode = -1;
	
	try
	{
		if (useX)
		{
			returnCode = document.getElementById("MagicLoaderX").ProgramCheck(programName);
			
			if (returnCode == 0)
			{
				return true;
			}
		}
		else
		{
			returnCode = document.getElementById(objectId).ProgramCheck();
			//return !document.getElementById(objectId).ProgramCheck();

			return returnCode;
		}
	}
	catch (e)
	{
		// Safari¿¡¼­ returnCode°¡ Á¤ÀÇµÇÁö ¾Ê¾Ò´Ù´Â ¿¡·¯°¡ Ãâ·ÂµÊ.
		//alert(e.message);
	}
	
	log("checkExistClientProgram function end.");
	
	return false;
}

/**
 * MagicPass(S)¸¦ ½ÇÇàÇÑ´Ù.
 * 
 * @param programRunPage
 * @param programArgument
 * @param programName
 * @param useX
 * @return
 */
function launchProgram(programRunPage, programArgument, programName, useX)
{
	log("launchProgram function started : [" + programRunPage + ", " + programArgument + ", " + programName + ", " + useX + "]");
	
	var returnCode = -1;
	
	if (useX)
	{
		try
		{
			returnCode = document.MagicLoaderX.ProgramRun(programRunPage, programArgument, programName);
		}
		catch (e)
		{
		}

		if (returnCode == 0)
		{
			return true;
		}
		else 
		{
			var bodyTag = document.getElementsByTagName("body")[0];
			var cIfrm = document.createElement("iframe");
			cIfrm.setAttribute("src", "sso/secureInstaller.jsp");
			cIfrm.setAttribute("height", "1");
			cIfrm.setAttribute("frameborder", "0");
			cIfrm.setAttribute("border", "0");
			$(cIfrm).css("visibility", "hidden");
			bodyTag.appendChild (cIfrm);
		}
	}
	else
	{
		returnCode = document.getElementById(objectId).ProgramRun();
		
		if (returnCode)
		{
			return true;
		}
	}
	
	log("launchProgram function end.");
	
	return false; 
}

/**
 * ActiveX³ª AppletÀÇ ÇÔ¼ö¸¦ È£ÃâÇÑ °á°ú°ªÀ» ¾ò´Â´Ù.
 * 
 * @return
 */
function getResult(useX)
{
	log("getResult function started.");
	
	var returnValue;

	if (browserType == BROWSER_IE && useX)
	{
		returnValue = document.getElementById(objectId).Result;
	}
	else
	{
		returnValue = document.getElementById(objectId).Result();
	}
	
	log("getResult function end.");
	
	return returnValue;
}

/**
 * SERVER_CERTIFICATION Àü¿ªº¯¼ö¿¡ ¼­¹ö ÀÎÁõ¼­¸¦ ÀúÀå.
 * 
 * @param serverCertification
 * @return
 */
function setServerCertification(serverCertification)
{
	SERVER_CERTIFICATION = serverCertification;
}

/**
 * ¿¡·¯¸¦ Ã³¸®ÇÑ´Ù.
 * 
 * @param errorMessage
 * @return
 */
function processingError(errorMessage)
{
	log("processingError function started.");
	
	if (useErrorPage)
	{
		var baseWindow = this;
		
		if (usePopup)
		{
			baseWindow = parent;
		}
		
		document.formError.message.value = errorMessage;
		document.formError.submit();
		
		baseWindow.location.href = "sso/secureErrorPage.jsp?message=" + errorMessage;
	}
	else
	{
		alert(errorMessage);
	}
	
	log("processingError function end.");
}

/**
 * ÁÖ¾îÁø ¿µ¿ª¿¡ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ´Ù.
 * 
 * @param divId
 * @param title
 * @param content
 * @return
 */
function displayMessage(divId, title, content)
{
	var message = "&nbsp;<font color='blue' class='12p'>\r\n";
	
	message += "<img src='/sso/image/ball02.gif' width='9' height='10'>\r\n";
	message += "<b>" + title +" : </b></font>";
	message += "<font class='12p'>\r\n";
	message += content +"</font><br>";
	
	document.getElementById(divId).innerHTML = message;
	//document.write(message);
}

/**
 * ÇöÀç ·Î±×ÀÎ µÇ¾î ÀÖ´Â »ç¿ëÀÚ·Î Àç·Î±×ÀÎ ÇÒ¶§ È¤Àº ¿¬°è ÇÒ¶§ »ç¿ë.
 * 
 * @param siteName
 * @param applicationCode
 * @param certification
 * @return
 */
function getAppEnvKey(siteName, applicationCode, certification)
{
	try
	{
		return document.getElementById(objectId).GetAppEnvKey(siteName, applicationCode, certification);
	}
	catch (e)
	{
		return -1;
	}
}

/**
 * ¼­¹ö°¡ »ý¼ºÇÑ ºñ¹ÐÅ°·Î ±³Ã¼ÇÑ´Ù.
 * 
 * @param secretKey
 * @return
 */
 function changeSecretKey(secretKey)
 {
 	log("changeSecretKey function started.");
 	
 	var returnCode = -1;
 	var encryptedLoginData;

 	if (isRelogin)
 	{
 		if ((returnCode = changeAppKey(SITE_NAME, LOGIN_APPLICATION_CODE, secretKey)) != 0)
 		{
 			processingError("MagicPass¿¡¼­ ¼¼¼ÇÅ° º¹È£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\nERROR CODE : " + returnCode);
 		}
 		else
 		{
 			if ((returnCode = getToken(SITE_NAME, LOGIN_APPLICATION_CODE)) == 0)
 			{
 				encryptedLoginData = getResult(useX);
 			}
 			else
 			{
 				processingError("·Î±× ÀÎ Á¤º¸¸¦ ¾òÁö ¸øÇÏ¿´½À´Ï´Ù.\n\n"+ getErrorMessage(returnCode));
 				return;
 			}
 			
 			if (encryptedLoginData == null)
 			{
 				processingError("·Î±× ÀÎ Á¤º¸¸¦ ¾òÁö ¸øÇÏ¿´½À´Ï´Ù.");
 			}
 			else
 			{
 				sendData(ACTION_URL, "actionName=RELOGIN&encryptedData=" + encodeURIComponent(encryptedLoginData));
 			}
 		}
 	}
 	else
 	{
 		if ((returnCode = changeLoginKey(SITE_NAME, secretKey)) != 0)
 		{
 			processingError("MagicPass¿¡¼­ ¼¼¼ÇÅ° º¹È£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\nERROR CODE : " + returnCode);
 		}
 		else
 		{
 			if ((returnCode = encryptLoginData(SITE_NAME, document.formMemory.loginData.value)) == 0)
 			{
 				encryptedLoginData = getResult(useX);
 			}
 			else
 			{
 				processingError("·Î±×¿Â Á¤º¸ÀÇ ¾ÏÈ£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\n\n"+ getErrorMessage(returnCode));
 				return;
 			}
 	
 			if (encryptedLoginData == null)
 			{
 				processingError("·Î±×ÀÎ Á¤º¸ÀÇ ¾ÏÈ£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.");
 			}
 			else
 			{
 				sendData(ACTION_URL, "actionName=LOGIN&encryptedData=" + encodeURIComponent(encryptedLoginData) + "&loginType=" + loginType + "&useX=" + useX + "&browserType=" + browserType);
 			}
 		}
 	}
 	
 	log("changeSecretKey function end.");
 }


/**
 * Àç·Î±×ÀÎ È¤Àº ¿¬°è ¶§ »ç¿ë
 * 
 * @param siteName
 * @param applicationCode
 * @param encryptedSecretKey
 * @return
 */
function changeAppKey(siteName, applicationCode, encryptedSecretKey)
{
	return document.getElementById(objectId).ChangeAppKey(siteName, applicationCode, encryptedSecretKey);
}

/**
 * 
 * @param siteName
 * @param appCode
 * @return
 */
function getToken(siteName, appCode)
{
	return document.getElementById(objectId).GetToken(siteName, appCode);
}

function setUserInfo(encryptedToken, applicationInfo)
{
	log("setUserInfo function started.");

	if (!isRelogin)
	{
		if (useX && browserType == BROWSER_IE)
		{
			setCharSet(SITE_NAME, 1);
		}
		
		setToken(SITE_NAME, encryptedToken);

		if (siteMonitoring) {
			//MagicPass¿¡ ¾×¼¼½º°¡ 10ÃÊ ÀÌ»ó ¾øÀ» °æ¿ì, ÀÚµ¿ ·Î±× ¾Æ¿ô
			
			if (useX && browserType == BROWSER_IE) {
				setAutoLogoutSite (SITE_NAME);
			}
			
			//SSO ÇÁ·¹ÀÓ¿¡¼­ ·Î±×ÀÎÃ¼Å© ½ÃÀÛ
			try {
				top.frameForSSO.ssoCheckStart = true;
			}
			catch (e) {
			}
		}
		
		if (useEam)
		{
			setApplication(applicationInfo);
		}
	}
	
	/**
	 * 
	var baseWindow = parent;
	
	if (!baseWindow)
	{
		baseWindow = this;
	}
	*/

	var baseWindow = window;

	if (targetPage != null)
	{
		// targetPage¿¡ °ªÀÌ ÀÖÀ¸¸é ¿¬°è·Î °£ÁÖ.
		//baseWindow.location.href = targetPage + "?" + etcParameter;
		baseWindow.location.href = targetPage + "?c=" + SITE_NAME;
	}
	else
	{
		// ¾Æ´Ï¸é ·Î±×ÀÎ/Àç·Î±×ÀÎ
		baseWindow.location.href = LOGIN_TARGET_PAGE;
	}
	
	log("setUserInfo function end.");
}

