/*****************************************************/
/* ½ÃÅ¥¾ÆÀÌ´åÄÄ Å¬¶óÀÌ¾ðÆ® ¿ë º¸¾È ¸ðµâ for ¾Ö¹ö·£µå */
/*                                                   */
/* javatoolkit_auth Å¬¶óÀÌ¾ðÆ® ÅøÅ¶À» ÀÌ¿ëÇÔ         */
/*****************************************************/

var pluginURL = "/secui/SecuiEverIE.cab";     // ÇÃ·¯±× ÀÎ URL
var cabVersion = "#Version=3,2,0,3";   // Plug_IN ¹öÀü

var encALGO = "SEED";                  // ´ëÄªÅ° ¾ÏÈ£È­ ¾Ë°í¸®Áò
var signALGO = "SHA1";                 // ¼­¸í¿ë ÇØ½¬ ¾Ë°í¸®Áò
var signcert = null;                   // »ç¿ëÀÚ ÀÎÁõ¼­
var encRandom = null;				   // Random °ª

var serverCert = "-----BEGIN CERTIFICATE-----|MIICEjCCAXugAwIBAgIDAMaBMA0GCSqGSIb3DQEBBQUAMDMxDjAMBgNVBAoTBXNl|Y3VpMRAwDgYDVQQLEwdUcnVzdENBMQ8wDQYDVQQDEwZDTEFTUzEwHhcNMDQwODEx|MDY0NTMxWhcNMTQwODEwMDY0NTMxWjA4MQ4wDAYDVQQKEwVzZWN1aTEPMA0GA1UE|CxMGcGVvcGxlMRUwEwYDVQQDEwxldmVybGFuZENlcnQwgZ8wDQYJKoZIhvcNAQEB|BQADgY0AMIGJAoGBAN8Ksbv9dUAN7bTZkGItkNjIFUSdIjsnPvTbyJikR3U93HPa|Ne50R70xlrBrrV2VkhgjiqGfHn96jQkj6adwfrJkoykPi6+An9DH4ziytQCTUqwI|iJOBUiEf08rHjOmkxkm8WzSrdiHLw/CxNKbOppsYB6ue3b96v77NAwq+q/DhAgMB|AAGjLzAtMAsGA1UdDwQEAwIDODAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUF|BwMCMA0GCSqGSIb3DQEBBQUAA4GBAELvUEfV9ipnwA1EVtoEnfkJlTFucwDGCk5v|P8mfe1FM7kO2v1QVGJjFZGfNd6Eo/BwBSDg4HSU2IKx+F5/+vj0n7yRi2Sa3yGwB|Bd0L+DOdNt5OzmEQkvEpXpbUl+zGQ+lQYay/cvS5+DD9ycZnavq7sbCZJb8RiwbM|yJen7oT9|-----END CERTIFICATE-----";

//ÇÃ·¯±× ÀÎ ·Îµå
document.writeln('<OBJECT ID="SecuiSS" CLASSID="clsid:35ECCCCA-EBA9-4D2A-9B1D-4D80E57E0D40" width=0 height=0 ');
document.writeln('CODEBASE='+ pluginURL + cabVersion + '  onerror=\"LoadFailSS()\" >');
document.writeln('</OBJECT>');

document.writeln('<OBJECT ID="SecuiTS" CLASSID="clsid:B379A72A-A8A3-45C2-988E-F602F157E037" width=0 height=0 ');
document.writeln('CODEBASE='+ pluginURL + cabVersion + ' >');
document.writeln('</OBJECT>');

//¾ÏÈ£È­µÈ µ¥ÀÌÅÍ Àü¼ÛÀ» À§ÇÑ hidden Form Á¤ÀÇ
document.writeln('<form name=secuiform METHOD=POST>');
document.writeln('    <input name=ENCSYMM type=hidden>');     // ¾ÏÈ£È­µÈ ´ëÄªÅ°
document.writeln('    <input name=SIGNCERT type=hidden>');    // »ç¿ëÀÚ¿ë ÀüÀÚ¼­¸íÀÎÁõ¼­
document.writeln('    <input name=ENCDATA type=hidden>');     // ¾ÏÈ£È­µÈ µ¥ÀÌÅÍ
document.writeln('    <input name=ENCALGO type=hidden>');     // ¾ÏÈ£È­µÈ µ¥ÀÌÅÍ
document.writeln('    <input name=SIGNALGO type=hidden>');    // ¾ÏÈ£È­µÈ µ¥ÀÌÅÍ
document.writeln('</form>');


function LoadFailSS()
{
	//alert("¾ÏÈ£È­ ¸ðµâÀÌ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù");
	if (confirm('¡á SECURITY NOTICE !!\n\n' +
	            '¡à ·Î±×ÀÎ ÇÏ±â À§ÇØ¼­´Â º¸¾È ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ¼Å¾ß ÇÕ´Ï´Ù.\n' +
                '¡à º¸¾È ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏÁö ¾ÊÀ¸½Ã¸é ·Î±×ÀÎÀ» ÇÒ ¼ö ¾ø½À´Ï´Ù.\n\n' +
                '¡à ¼³Ä¡ ÇÏ½Ã°Ú½À´Ï±î? \n\n'+
			    '¡à »ó´ÜÀÇ ³ë¶õ»ö¹Ù¸¦ Å¬¸¯ÇÏ¼Å¼­ ¼³Ä¡ÇÏ½Ã°Å³ª ¾Æ´Ï¿À¸¦ ´©¸£½Å ÈÄ¿¡ zip ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÏ½ÅÈÄ¿¡ ¾ÐÃàÀ» Çª½Ã°í ¼³Ä¡ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.'))
    {
       window.open('/secui/TrustNetPlugInForEver.zip','_new');
    } else {
      top.location.replace("http://www.everland.com/secui/install_fail.html");
    }
}

//Æû¾ÈÀÇ ¾ÏÈ£È­ÇÒ µ¥ÀÌÅ¸ ÃëÇÕ ´ÜÀÏ ½ºÆ®¸µÀ¸·Î ¸¸µë.
function makeSerialForm(objForm)
{
	var strSerialForm = "";
 	var startFlag = false;            // '&' ºÐ¸®ÀÚ¸¦ »ðÀÔÇÏ´Â ½Ã±â¸¦ ¾Ë·ÁÁÜ.

 	//alert(objForm.elements.length)
	for(i = 0; i < objForm.elements.length; i++)
	{
        // 2007.04.06 ¼öÁ¤
		if ((objForm.elements[i].type != "") && (objForm.elements[i].type != "submit") && (objForm.elements[i].type != "reset") && (objForm.elements[i].type != "button"))
		{
			if (objForm.elements[i].type == "radio" || objForm.elements[i].type == "checkbox")
		    {
				if (objForm.elements[i].checked == true)
				{
					if(startFlag)
						strSerialForm += "&";
					else
						startFlag = true;

					strSerialForm += objForm.elements[i].name;
					strSerialForm += "=";
					if (objForm.elements[i].value.length > 0)
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].value);
				}
			}
			else
			{
				if (objForm.elements[i].type == "select-one")
				{
					if (startFlag )
						strSerialForm += "&";
					else
						startFlag = true;

					strSerialForm += objForm.elements[i].name + "=";

					if (objForm.elements[i].options[objForm.elements[i].selectedIndex].value != '')
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[objForm.elements[i].selectedIndex].value);
					//else
					//	strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[objForm.elements[i].selectedIndex].text);

					//objForm.elements[i].options[objForm.elements[i].selectedIndex].selected == false;
					//objForm.elements[i].selectedIndex = -1;
				}
				else if (objForm.elements[i].type == "select-multiple")
				{
					for (j = 0; j < objForm.elements[i].options.length; j++)
					{
						if (objForm.elements[i].options[j].selected == true)
						{
							if (startFlag )
								strSerialForm += "&";
							else
								startFlag = true;

							strSerialForm += objForm.elements[i].name;
							strSerialForm += "=";

							if (objForm.elements[i].options[j].value != '')
								strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[j].value);
							//else
							//	strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].options[j].text);

							//objForm.elements[i].options[j].selected == false;
						}
					}

					//objForm.elements[i].selectedIndex = -1;
				}
				else
				{
					if (startFlag )
						strSerialForm += "&";
					else
						startFlag = true;

					strSerialForm += objForm.elements[i].name + "=";
                    
                    // 2007.04.06 ¼öÁ¤
					if (objForm.elements[i].value != null && objForm.elements[i].value.length > 0)
					{
						strSerialForm += SecuiSS.Base64Encode(objForm.elements[i].value);
						//objForm.elements[i].value = "";	// ±âÁ¸ value ¸¦ clear ÇÑ´Ù.
					}
				}
			}
		}
	}

	//alert(strSerialForm);
	return strSerialForm;
}


//ÃÖÃÊ ¾ÏÈ£È­
function SecuiEncryptEx(plainData)
{
	SecuiSS.GenerateEx(encALGO, serverCert);
	return SecuiSS.EncipherEx(plainData);
}


//±âÁ¸ »ý¼ºµÈ Å°¸¦ °¡Áö°í ÇÚµé¸µ
function SecuiEncrypt(plainData)
{
	return SecuiSS.EncipherEx(plainData);
}


//º¹È£È­
function SecuiDecrypt(EncData)
{
	var result = SecuiSS.DecipherEx(EncData);

	if (result.length <= 0 )
	{
		/*¿¡·¯ ¸Þ¼¼Áö°¡ ÀÖ´Â ÆäÀÌÁö·Î redirectÇÏ´Â ÄÚµå*/
		//document.location = "https://www.samsunglife.com/window/error.html";
		alert("È¸¿ø´ÔÀÇ Á¤º¸ º¸È£¸¦ À§ÇØ ´Ù½Ã ·Î±×ÀÎÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.");
		this.location.replace("/home?pgmid=elogout&ereturl=" + escape("/home?pgmid=login&returl=" + document.URL));
		//alert(SecuiSS.GetErrorCode());
	}
	else
	{
		return result;
	}
}


//ÀüÀÚ¼­¸í
function SecuiSign(oriMesg)
{
	var signVal = SecuiTS.Sign(signALGO, oriMesg, "", "");

	if (signVal == null || signVal.length <= 0)
		ShowErrorString();

	signcert = SecuiTS.getCert();
	encRandom = SecuiTS.getRandom();

	return signVal
}


//ÀüÀÚ¼­¸í ¿À·ù ¸Þ¼¼Áö
function ShowErrorString()
{
	var msg;
	var code = SecuiTS.GetErrorCode();

	switch (code)
	{
		case 3 :  // ºñ¹Ð¹øÈ£°¡ Æ²¸± ¶§
			msg = "¼±ÅÃÇÑ ÀÎÁõ¼­ÀÇ ºñ¹Ð¹øÈ£°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.";
			break;
		case 8 :  // À¯È¿ÇÑ ÀÎÁõ¼­°¡ Á¸ÀçÇÏÁö ¾ÊÀ» ¶§
			msg = "À¯È¿ÇÑ ÀÎÁõ¼­°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.\n°øÀÎÀÎÁõ¼­¸¦ ÀºÇà¿¡¼­ ¸ÕÀú ¹ß±Þ¹ÞÀ¸½Ã±â ¹Ù¶ø´Ï´Ù.";
			break;
		case 22 : // Ãë¼Ò ¹öÆ° ¼±ÅÃ½Ã
		case 20 :
			return;
			break;
		default : // ±âÅ¸ ¿¡·¯
			msg = "¿¡·¯¹ß»ý. ÄÚµå : " + code;
	}

	alert(msg);
	
	history.go(0);
}


//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸ÀÇ ¼­¹ö Àü¼Û
function SecuiSubmit(form)
{
	var plainText;
	var encText;
	var encSymmKey;

    //alert(srvAction)

	plainText = makeSerialForm(form);
	//alert(plainText)
	encText = SecuiEncrypt(plainText);
	encSymmKey = SecuiSS.getKEYIV();
    //alert(encText)
    //alert(encSymmKey)
    //alert(signcert)

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.ENCALGO.value = encALGO;
  document.secuiform.action = form.action;
	document.secuiform.submit();
}


//ÃÖÃÊ ¾ÏÈ£È­µÈ µ¥ÀÌÅ¸ÀÇ ¼­¹ö Àü¼Û
function SecuiSubmitEx(form)
{
	var plainText;
	var encText;
	var encSymmKey;

    //alert(srvAction)

	plainText = makeSerialForm(form);
    //alert(plainText)
	encText = SecuiEncryptEx(plainText);
	encSymmKey = SecuiSS.getKEYIV();
    //alert(encText)
    //alert(encSymmKey)
    //alert(signcert)

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.action = form.action;
	document.secuiform.submit();
}


//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸¿Í ÀüÀÚ¼­¸í ¼­¹ö Àü¼Û
function SecuiSignSubmit(form)
{
	var plainText;  // ½Ã¸®¾óÈ­µÈ Æò¹®ÀÇ Æû µ¥ÀÌÅÍ
	var encText;    // ¾ÏÈ£È­µ¥ÀÌÅÍ(Æò¹® + ÀüÀÚ¼­¸í)
	var encSymmKey; // ¾ÏÈ£È­µÈ ´ëÄªÅ°
	var signValue;  // ÀüÀÚ¼­¸í °ª

	plainText = makeSerialForm(form);
	signValue = SecuiSign(plainText);

    if (signValue == null || signValue.length <= 0)
    {
        return;
    }
    else
    {
		//plainText += "&signvalue=" + signValue;
		plainText +=  "&signvalue=" + signValue + "&encrandom=" + encRandom;
	}

	encText = SecuiEncrypt(plainText);
	encSymmKey = SecuiSS.getKEYIV();

    // alert(signValue)

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.SIGNCERT.value = signcert;
	document.secuiform.ENCALGO.value = encALGO;
	document.secuiform.SIGNALGO.value = signALGO;
    document.secuiform.action = form.action;
	document.secuiform.submit();
}


//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸¿Í ÀüÀÚ¼­¸í ¼­¹ö Àü¼Û
function SecuiSignSubmitEx(form)
{
	var plainText;  // ½Ã¸®¾óÈ­µÈ Æò¹®ÀÇ Æû µ¥ÀÌÅÍ
	var encText;    // ¾ÏÈ£È­µ¥ÀÌÅÍ(Æò¹® + ÀüÀÚ¼­¸í)
	var encSymmKey; // ¾ÏÈ£È­µÈ ´ëÄªÅ°
	var signValue;  // ÀüÀÚ¼­¸í °ª

	plainText = makeSerialForm(form);
	signValue = SecuiSign(plainText);
    //alert(signValue);

    if (signValue == null || signValue.length <= 0)
    {
        return;
    }
    else
    {
        //plainText += "&signvalue=" + signValue;
        plainText +=  "&signvalue=" + signValue + "&encrandom=" + encRandom;
	}

	encText = SecuiEncryptEx(plainText);
	encSymmKey = SecuiSS.getKEYIV();

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.SIGNCERT.value = signcert;
	document.secuiform.ENCALGO.value = encALGO;
 	document.secuiform.SIGNALGO.value = signALGO;
    document.secuiform.action = form.action;
	document.secuiform.submit();
}


//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸¿Í ÀüÀÚ¼­¸í ¼­¹ö Àü¼Û
function SecuiSignSubmitTarget(form, targetname)
{
    var plainText;  // ½Ã¸®¾óÈ­µÈ Æò¹®ÀÇ Æû µ¥ÀÌÅÍ
    var encText;    // ¾ÏÈ£È­µ¥ÀÌÅÍ(Æò¹® + ÀüÀÚ¼­¸í)
    var encSymmKey; // ¾ÏÈ£È­µÈ ´ëÄªÅ°
    var signValue;  // ÀüÀÚ¼­¸í °ª

    plainText = makeSerialForm(form);
    signValue = SecuiSign(plainText);

    if (signValue == null || signValue.length <= 0)
    {
        return;
    }
    else
    {
        //plainText += "&signvalue=" + signValue;
        plainText +=  "&signvalue=" + signValue + "&encrandom=" + encRandom;
    }

    encText = SecuiEncrypt(plainText);
    encSymmKey = SecuiSS.getKEYIV();

    // alert(signValue)

    document.secuiform.ENCDATA.value = encText;
    document.secuiform.ENCSYMM.value = encSymmKey;
    document.secuiform.SIGNCERT.value = signcert;
    document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.SIGNALGO.value = signALGO;
    document.secuiform.action = form.action;
    document.secuiform.target = targetname;
    document.secuiform.submit();
}


//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸¿Í ÀüÀÚ¼­¸í ¼­¹ö Àü¼Û
function SecuiSignSubmitTargetEx(form, targetname)
{
    var plainText;  // ½Ã¸®¾óÈ­µÈ Æò¹®ÀÇ Æû µ¥ÀÌÅÍ
    var encText;    // ¾ÏÈ£È­µ¥ÀÌÅÍ(Æò¹® + ÀüÀÚ¼­¸í)
    var encSymmKey; // ¾ÏÈ£È­µÈ ´ëÄªÅ°
    var signValue;  // ÀüÀÚ¼­¸í °ª

    plainText = makeSerialForm(form);
    signValue = SecuiSign(plainText);
    //alert(signValue);

    if (signValue == null || signValue.length <= 0)
    {
        return;
    }
    else
    {
        //plainText += "&signvalue=" + signValue;
        plainText +=  "&signvalue=" + signValue + "&encrandom=" + encRandom;
    }

    encText = SecuiEncryptEx(plainText);
    encSymmKey = SecuiSS.getKEYIV();

    document.secuiform.ENCDATA.value = encText;
    document.secuiform.ENCSYMM.value = encSymmKey;
    document.secuiform.SIGNCERT.value = signcert;
    document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.SIGNALGO.value = signALGO;
    document.secuiform.target = targetname;
    document.secuiform.action = form.action;
    document.secuiform.submit();
}



//¾ÏÈ£È­µÈ µ¥ÀÌÅ¸ÀÇ ¼­¹ö Àü¼Û
function SecuiSubmitTarget(form, targetname)
{
	var plainText;
	var encText;
	var encSymmKey;

    //alert(srvAction)

	plainText = makeSerialForm(form);
	//alert(plainText)
	encText = SecuiEncrypt(plainText);
	encSymmKey = SecuiSS.getKEYIV();
    //alert(encText)
    //alert(encSymmKey)
    //alert(signcert)

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.action = form.action;
    document.secuiform.target = targetname;
	document.secuiform.submit();
}

function SecuiSubmitTargetEx(form, targetname)
{
	var plainText;
	var encText;
	var encSymmKey;

    //alert(srvAction)

	plainText = makeSerialForm(form);
	//alert(plainText)
	encText = SecuiEncryptEx(plainText);
	encSymmKey = SecuiSS.getKEYIV();
    //alert(encText)
    //alert(encSymmKey)
    //alert(signcert)

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.action = form.action;
    document.secuiform.target = targetname;
	document.secuiform.submit();
}

function SecuiSubmitFromGet(sURL)
{
	var plainText = "";
	var encText;
	var encSymmKey;
	var signValue;
	var n1, s1;
	var sAction;
	var sQstring;

	n1 = sURL.indexOf("?");
	sAction = sURL.substring(0, n1);
	sQstring = sURL.substring(n1 + 1);

	s1 = sQstring.split("&");;

	for (i = 0; i < s1.length; i++)
	{
		if (i != 0)
			plainText += "&";

		n1 = s1[i].indexOf("=");
		plainText += s1[i].substring(0, n1) + "=" + SecuiSS.Base64Encode(s1[i].substring(n1 + 1));
	}

	encText = SecuiEncrypt(plainText);
	encSymmKey = SecuiSS.getKEYIV();

	document.secuiform.ENCDATA.value = encText;
	document.secuiform.ENCSYMM.value = encSymmKey;
	document.secuiform.ENCALGO.value = encALGO;
    document.secuiform.action = sAction;
	document.secuiform.submit();
}

// Local PCÀÇ Å°¸¦ »èÁ¦ÇÔ
function DestorySession()
{	
	SecuiSS.DestroySession()
}