//////////////////////////////Update Zhang////////////////////////////////
// XecureWeb SSL Client Java Script ver4.1  2001.5.30
//
// ¾ÆÁ÷ : Netscape 6.0Àº Áö¿øµÇÁö ¾Ê½À´Ï´Ù....
// Edit List 2000,05,30
// process_error() --> XecureWebError() // by Zhang º¯°æ
// function IsNetscape60()		// by Zhang Ãß°¡
// function XecureUnescape(Msg)		// by Zhang Ãß°¡
// function XecureEscape(Msg)		// by Zhang Ãß°¡
// function XecurePath(xpath)		// by zhang Ãß°¡

var gIsContinue=0;
var busy_info = "¾ÏÈ£È­ ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù. È®ÀÎÀ» ´©¸£½Ã°í Àá½Ã ±â´Ù·Á ÁÖ½Ê½Ã¿À."
var install_info = "º¸¾È ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù.\nÀ¥ÆäÀÌÁö°¡ Á¤»óÀûÀ¸·Î Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥À» ¼³Ä¡ÇØ ÁÖ½Ê½Ã¿ä.\n\n*¸¸ÀÏ WindowsXP SP2¸¦ »ç¿ëÇÏ½Å´Ù¸é \nºê¶ó¿ìÀú ¾Ë¸²Ç¥½ÃÁÙÀÇ °æ°í¸Þ½ÃÁö¸¦ Å¬¸¯ÇÏ¿© ¼³Ä¡ÇØÁÖ½Ê½Ã¿ä";

///////////// since 6.0 v210 //////////////////////////////////////////////
// usePageCharset : ¾Ïº¹È£½Ã ÆäÀÌÁö¿¡ ¸í½ÃµÈ ¹®ÀÚ¼ÂÀÇ »ç¿ë ¿©ºÎ
// XecureWeb Java ¹öÀü ¾Ïº¹È£½Ã ½Ã½ºÅÛ µðÆúÆ® ÀÎÄÚµù°ú ´Ù¸¥ ¹®ÀÚ¼ÂÀÇ
// ¸Þ¼¼Áö¸¦ Ã³¸®ÇÏ´Â °æ¿ì true ¼³Á¤
//
//var usePageCharset=true;
var usePageCharset=false;

// YESSIGN CA ADDRESS//////////////////////////////////////////////////////
// TEST : 203.233.91.234
// REAL : 203.233.91.71
//var yessign_ca_type = 1;	// Yessign Real
var yessign_ca_type   = 11;	// Yessign Test
var yessign_ca_ip     = "203.233.91.234";
var yessign_ca_port   = 4512;

// XECURE CA ADDRESS///////////////////////////////////////////////////////
// TEST : 192.168.10.30
/* ±âÁ¸ ¼³Á¤ BSS 
var xecure_ca_type   = 101;	// XecureCA (RSA)
//var xecure_ca_type = 102;	// XecureCA (GPKI)
var xecure_ca_ip     = "192.168.10.25;SoftforumCA";
//var xecure_ca_ip   = "192.168.10.25";
var xecure_ca_port   = 8200;
*/

/* ½Å±Ô »ç¼³ÀÎÁõ ¼³Á¤ */
var xecure_ca_type   = 101;	// XecureCA (RSA)
//var xecure_ca_type = 102;	// XecureCA (GPKI)
var xecure_ca_ip     = "10.20.10.26;meritz ca";
var xecure_ca_port   = 7630;


var xecure_ca_type_1 = 101;	// XecureCA (RSA)
//var xecure_ca_type = 102;	// XecureCA (GPKI)
var xecure_ca_ip_1   = "192.168.10.30;mma ca";
var xecure_ca_port_1 = 2223;

///////////////////////////////////////////////////////////////////////////////
// !!!!!!!!!!!!!!< ÁÖÀÇ >!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Sign, RequestCertificate, RevokeCertificate ½Ã ³ªÅ¸³ª´Â ÀÎÁõ¼­ ¸ñ·Ï
// XecureWeb ver 5.1 ¿¡¼­´Â accept_cert ¿¡ À¯È¿ÇÑ ÀÎÁõ±â°ü ÀÎÁõ¼­ÀÇ
// CN À» Á¤È®È÷ Àû¾îÁØ´Ù.
// ver 4.0 ¿¡¼­ yessign ÀÌ¶ó Àû¾ú´ø °ÍÀº yessignCA-TEST, yessignCA ·Î ¼¼ºÐÈ­ µÈ´Ù.
// YESSIGN TEST : yessignCA-TEST
// YESSIGN REAL : yessignCA
////////////////////////////////////////////////////////////////////////////////

//ÀüÃ¼ ¹ß±Þ±â°ü(±âÁ¸ °øÀÎÀÎÁõ)
var accept_cert = "CA131000002Test,CA131000002,Softforum CA 3.0,SoftforumCA,yessignCA,yessignCA-OCSP,signGATE CA,SignKorea CA,CrossCertCA,CrossCertCA-Test2,NCASign CA,TradeSignCA,yessignCA-TEST,lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,TestTradeSignCA,Softforum Demo CA,mma ca,º´¹«Ã» ÀÎÁõ±â°ü,signGATE CA2,NCASignCA,CrossCert Certificate Authority,yessignCA-Test Class 1";
accept_cert += ",yessignCA Class 1,signGATE CA4,CrossCertCA2,signKorea CA2,TradeSignCA2";

//°øÀÎÀÎÁõ¿ë Æ÷ÇÔ ÀüÃ¼ ¹ß±Þ±â°ü
var accept_cert_all = "meritz ca,CA131000002Test,CA131000002,Softforum CA 3.0,SoftforumCA,yessignCA,yessignCA-OCSP,signGATE CA,SignKorea CA,CrossCertCA,CrossCertCA-Test2,NCASign CA,TradeSignCA,yessignCA-TEST,lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,TestTradeSignCA,Softforum Demo CA,mma ca,º´¹«Ã» ÀÎÁõ±â°ü,signGATE CA2,NCASignCA,CrossCert Certificate Authority";
//»ç¼³ÀÎÁõ¿ë ¹ß±Þ±â°ü
var accept_cert_priv = "meritz ca";

//var accept_cert = "yessign,ÇÑ±¹ÅõÀÚ½ÅÅ¹Áõ±Ç CA,Å×½ºÆ® ÀÎÁõ±â°ü,ÁÖÅÃÀºÇà ÀÎÁõ±â°ü,lotto test CA,yessignCA-TEST,SignGateFTCA,signGATE CA,SignKorea Test CA,SignKorea CA,±â¾÷ÀºÇà ÀÎÁõ±â°ü,¿ÜÈ¯ÀºÇà ÀÎÁõ±â°ü,lotto test CA,Xecure TestCA,CrossCertCA,CrossCertCA-Test2,SoftforumCA,TradeSignCA,NCASign CA,NCATESTSign";
//var accept_cert = "yessignCA,signGate CA,SignKorea CA,CrossCertCA,SignGateFTCA";
//var accept_cert = "SignKorea CA";
//var accept_cert = "SignKorea CA";
//var accept_cert = "SignGateFTCA,SignKorea Test CA,SignKorea CA,yessignCA-TEST";
//var accept_cert = "SignGateFTCA,CrossCertCA:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2,SignKorea CA,rootca:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2";
//var accept_cert = "yessign,yessignCA-TEST";
//var accept_cert = "signGATE CA,SignGateFTCA";
//var accept_cert = "TradeSignCA:1.2.410.200012.1.1.1,TestTradeSignCA:1.2.410.200012.1.1.1";

/////////////////////////////////////////////////////////////////////////////////
// ÀüÀÚ¼­¸í, ÀÎÁõ¼­ °»½Å, ÀÎÁõ¼­ Æó±â½Ã¿¡ ÀÎÁõ¼­ ¾ÏÈ£¿À·ù¸¦ Çã¿ëÈ¸¼ö
var pwd_fail = 3;

//////////////////////////////////////////////////////////////////////////////////
// ·Î±×ÀÎ Ã¢¿¡ º¸ÀÏ ÀÌ¹ÌÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» URL
//var bannerUrl =  "http://" + window.location.host + "/XecureBanner/meritz_banner.bmp";
//var bannerUrl =  "http://" + window.location.host + "/XecureObject/xecureweb_big.bmp";
var bannerUrl =  "http://" + window.location.host + "/XecureObject/meritz_banner.bmp.sig";
var currentURL = window.location.host + ":443:8080";

///////////////////////////////////////////////////////////////////////////////////
// ÀÎÁõ±â°ü ÀÎÁõ¼­ ´Ù¿î·Îµå½Ã ÀÎÁõ±â°ü ÀÎÁõ¼­¿Í ÀÎÁõ¼­ CN
//var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
//var pCaCertName = "³Ø¼­ºê CA";
//var pCaCertName = "Å×½ºÆ® ÀÎÁõ±â°ü";
var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
var pCaCertName = "shinbo real ca";

//////////////////////////////////////////////////////////////////////////////////
// ÀüÀÚ¼­¸í È®ÀÎÃ¢¿¡ º¸ÀÏ ¸Þ¼¼Áö¿Í ÀüÀÚ¼­¸í È®ÀÎÃ¢ º¸±â ¿É¼Ç
// 0 : ¼­¸í ¿ø¹® Ãâ·Â ¾ÈÇÔ, 1: ¼­¸í ¿ø¹® Ãâ·Â
var sign_desc = "";
var show_plain = 0;

///////////////////////////////////////////////////////////////////////////////////
// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
  var xgate_addr	= "xgate.meritzfire.com:443:8080";
//var xgate_addr	= "ehanaro.meritzfire.com:443:8080";	//¶óÀÌºê
//var xgate_addr	= "218.38.144.160:443:8080";	//¶óÀÌºê



///////////////////////////////////////////////////////////////////////////////////
// Netscape plugin version information
var packageURL = 'http://' + window.location.host + '/XecureObject/NPXecSSL_Install.jar';
//var packageURL = 'http://' + window.location.host + '/XecureObject/NPXecSSL50_Install.jar';
//var packageURL = 'http://download.softforum.co.kr/XecureObject/NPXecSSL50_Install.jar';
//var packageURL = 'http://download.softforum.co.kr/XecureObject41/NPXecSSL40_Install.jar';
//var versionMaj = 4;
//var versionMin = 2;
//var versionRel = 6;
var versionMaj = 5;
var versionMin = 1;
var versionRel = 0;

//////////////////////////////////////////////////////////////////////////////////
//	Xecure Big ÇÔ¼öµé....
function SetConvertTable()
{
	//document.XecureWeb.SetPolicyConvertTableFirst(0, "1.2.410.200009.1.1.1", "³»¸¾´ë·Î:±ÝÀ¶°áÁ¦¿ø");
	//document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200009.1.1.1.33", "³»¸¾´ë·Î Æ¯º°µî±Þ ¹ýÀÎ", "Å×½ºÆ®2 Policy OID");

	/*
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.2", "±ÝÀ¶°Å·¡¹ýÀÎ");
	//document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.3", "±ÝÀ¶°Å·¡´ÜÃ¼");
	//document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.6", "±ÝÀ¶°Å·¡´ÜÃ¼");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.4", "ÀüÀÚ°Å·¡°³ÀÎ");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.5", "ÀüÀÚ°Å·¡¹ýÀÎ");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.1", "Á¤º¸ÀÎÁõ");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.5", "Áõ±ÇÀü»ê");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.3.1", "Àü»ê¿ø");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.1", "ÀüÀÚÀÎÁõ");
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.2.1", "°øÀÎÀÎÁõ±â°ü");
	*/
	//document.XecureWeb.SetPolicyConvertTableFinal(0);

	//document.XecureWeb.SetIssuerConvertTableFirst("lotto test CA", "·Î¶ÇÀÎÁõ±â°ü");
	//document.XecureWeb.SetIssuerConvertTableNext("SE CA", "¿¡½ºÀÌÀÎÁõ±â°ü", "Å×½ºÆ®");
	/*
	document.XecureWeb.SetIssuerConvertTableNext("SE CA", "¿¡½ºÀÌÀÎÁõ±â°ü", "");
	document.XecureWeb.SetIssuerConvertTableNext("ÇÑºûÀºÇà CA", "ÇÑºûÀºÇà", "");
	document.XecureWeb.SetIssuerConvertTableNext("yessignCA", "±ÝÀ¶°áÁ¦¿ø", "");
	document.XecureWeb.SetIssuerConvertTableNext("yessignCA-TEST", "±Ý°á¿øTEST", "");
	document.XecureWeb.SetIssuerConvertTableNext("SignGateFTCA", "Á¤º¸ÀÎÁõTEST", "");
	document.XecureWeb.SetIssuerConvertTableNext("signGate CA", "Á¤º¸ÀÎÁõ", "");
	document.XecureWeb.SetIssuerConvertTableNext("rootca", "Àü»ê¿ø", "");
	document.XecureWeb.SetIssuerConvertTableNext("CrossCertCA", "ÀüÀÚÀÎÁõ", "");
	document.XecureWeb.SetIssuerConvertTableNext("CertRSA01", "KISAÀÎÁõ±â°ü", "");
	*/

	//document.XecureWeb.SetIssuerConvertTableFinal();
}

// ¿¡·¯ ÇÁ·Î¼¼½Ì
function process_error ( errCode, errMsg ) {

	if (errCode == -1201);

	else if (errCode == -20)
	{
		alert("¿¡·¯ÄÚµå : SM00020\n\n" + "¼­¹ö ÀÎÁõ¼­ °ËÁõ¿¡ ½ÇÆÐÇß½À´Ï´Ù.\n1. Client SM(¿À¸¥ÂÊ¾Æ·¡ ÀÚ¹°¼è¸ð¾ç)ÀÇ È¯°æ¼³Á¤À» È®ÀÎÇÏ¿©\nÀÎÁõ¼­ Æó±â¿©ºÎ °ËÁõ¿¡ Ã¼Å© ºÎºÐÀ» ÇØÁ¦ ÈÄ ´Ù½Ã °Å·¡ÇÏ¿© ÁÖ½Ê½Ã¿À.\n2. °í°´´Ô PCÀÇ ³¯Â¥¿Í ½Ã°£À» È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À.");
	}
	else if (errCode == -1)
	{
		alert("¿¡·¯ÄÚµå : SM -1");
		//alert("¿¡·¯ÄÚµå : SM -1\n\n" + "Á¶Ä¡¹æ¹ýÀ¸·Î ÀÌµ¿ÇÕ´Ï´Ù.");
		//document.location.href="/quics?page=A001216&boardId=421&bbsMode=view&articleId=4452";
	}
	else if (errCode == -90)
	{
		alert("¿¡·¯ÄÚµå : SM00090\n\n" + "¼­¹ö¿Í º¸¾È Åë½ÅÀ» ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -91)
	{
		alert("¿¡·¯ÄÚµå : SM00091\n\n" + "¼­¹ö¿Í º¸¾È Åë½ÅÀ» ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -101)
	{
		alert("¿¡·¯ÄÚµå : SM00101\n\n" + "»ç¿ëÀÚ ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ º¸¾È ÇÁ·Î±×·¥¿¡ ÀÌ»óÀÌ ÀÖ½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥À» Àç¼³Ä¡ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -102)
	{
		alert("¿¡·¯ÄÚµå : SM00102\n\n" + "¸¸·áµÈ ¾ÏÈ£ ÆäÀÌÁö ÀÔ´Ï´Ù.\n\n" + "ÀÍ½ºÇÃ·Î¾î Á¾·áÈÄ ·Î±×ÀÎÀ» ´Ù½Ã ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -105)
	{
		alert("¿¡·¯ÄÚµå : SM00105\n\n" + "¼­¹öÃø º¸¾È¼¼¼Ç °ü¸®ÇÁ·Î±×·¥°ú ¿¬°áÀÌ ½ÇÆÐÇß½À´Ï´Ù.\n°è¼ÓÇØ¼­ ¹®Á¦°¡ ¹ß»ýÇÏ¸é ÄÝ¼¾ÅÍ·Î ¹®ÀÇ¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -107)
	{
		alert("¿¡·¯ÄÚµå : SM00107\n\n" + "º¸¾È Åë½ÅÀ» ÇÏ´øÁß ¼³Á¤µÈ ½Ã°£À» ÃÊ°ú Çß½À´Ï´Ù.\nÄÄÇ»ÅÍÀÇ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» Àá½Ã ´ÝÀ¸½ÅÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À");
	}
	else if (errCode == -110)
	{
		alert("¿¡·¯ÄÚµå : SM00110\n\n" + "¾ÏÈ£Åë½ÅÀ» ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.\nµ¿ÀÏÇÑ »óÈ²ÀÌ °è¼ÓµÇ¸é ÄÄÇ»ÅÍ¸¦¸®ºÎÆÃ ÇÏ¿© ÁÖ½Ê½Ã¿À.");
	}
	else if (errCode == -120)
	{
		alert("¿¡·¯ÄÚµå : SM00120\n\n" + "¾ÏÈ£ ¸Þ½ÃÁö °ËÁõ¿¡ ½ÇÆÐÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -128)
	{
		alert("¿¡·¯ÄÚµå : SM00128\n\n" + "¾ÏÈ£ ¸Þ½ÃÁö °ËÁõ¿¡ ½ÇÆÐÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -130)
	{
		alert("¿¡·¯ÄÚµå : SM00130\n\n" + "¾ÐÃà ¸Þ½ÃÁö º¹¿ø½Ã ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -140)
	{
		alert("¿¡·¯ÄÚµå : SM00140\n\n" + "º¸¾ÈÅë½ÅÁß¿¡ ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -141);
	else if (errCode == -142)
	{
		alert("¿¡·¯ÄÚµå : SM00142\n\n" + "¼±ÅÃµÈ ÀÎÁõ¼­°¡ Àß¸øµÈ ÀÎÁõ¼­ÀÔ´Ï´Ù.\nÀÎÁõ¼­¸¦ È®ÀÎÇØ ÁÖ½Ê½Ã¿À.");
	}
	else if (errCode == -143)
	{
		alert("¿¡·¯ÄÚµå : SM00143\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­´Â Áö¿øµÇÁö ¾Ê´Â ÀÎÁõ¼­ÀÔ´Ï´Ù.\nÀÎÁõ¼¾ÅÍ¿¡¼­ ÀÎÁõ¼­¸¦ ¹ß±Þ ¹ÞÀ¸½Ê½Ã¿À.");
	}
	else if (errCode == -144)
	{
		alert("¿¡·¯ÄÚµå : SM00144\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­´Â Æó±â ¹× ¼Õ»óµÈ ÀÎÁõ¼­ ÀÔ´Ï´Ù.\nÀÎÁõ¼¾ÅÍ¿¡¼­ ÀÎÁõ¼­¸¦ ¹ß±Þ ¹ÞÀ¸½Ê½Ã¿À.");
	}
    	else if (errCode == -145)
	{
		alert("¿¡·¯ÄÚµå : SM00145\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­´Â À¯È¿±â°£ÀÌ ¸¸·áµÈ ÀÎÁõ¼­ÀÔ´Ï´Ù.\nÀÎÁõ¼¾ÅÍ¿¡¼­ ÀÎÁõ¼­¸¦ ¹ß±Þ ¹ÞÀ¸½Ê½Ã¿À");
	}
    	else if (errCode == -146)
	{
		alert("¿¡·¯ÄÚµå : SM00146\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­°¡ ÆÄ¼ÕµÇ¾ú°Å³ª Áö¿øµÇÁö ¾Ê´Â ÀÎÁõ¼­ÀÔ´Ï´Ù.\nÀÎÁõ¼¾ÅÍ¿¡¼­ Àç¹ß±ÞÀ» ¹ÞÀ¸½Ê½Ã¿À.");
	}
    	else if (errCode == -147)
	{
		alert("¿¡·¯ÄÚµå : SM00147\n\n" + "¾ÏÈ£ ¼¼¼Ç ¿¬°áÁß Àß¸øµÈ °ªÀÌ ÀÔ·ÂµÇ¾ú½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
    	else if (errCode == -148)
	{
		alert("¿¡·¯ÄÚµå : SM00148\n\n" + "¾ÏÈ£È­ Åë½Å ¿¡·¯ÀÔ´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -149)
	{
		alert("¿¡·¯ÄÚµå : SM00149\n\n" + "ÀÎÁõ¼­ »óÅÂ¸¦ È®ÀÎ ÇÒ ¼ö ¾ø½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -150)
	{
		alert("¿¡·¯ÄÚµå : SM00150\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­¸¦ ÀÎÁõÇÑ ÀÎÁõ±â°üÀÇ ÀÎÁõ¼­ À¯È¿±â°£ÀÌ ¸¸·áµÇ¾ú½À´Ï´Ù.\n°í°´´Ô PCÀÇ ½Ã°£ ¹× ³¯ÀÚ¸¦ È®ÀÎÀÎÇÏ¿© ÁÖ½Ê½Ã¿À.\n°è¼ÓÇØ¼­ ¹®Á¦°¡ ¹ß»ýÇÏ¸é ÄÝ¼¾ÅÍ·Î ¹®ÀÇ¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -151)
	{
		alert("¿¡·¯ÄÚµå : SM00151\n\n" + "¼±ÅÃÇÑ ÀÎÁõ¼­´Â È¿·ÂÀÌ Á¤ÁöµÈ ÀÎÁõ¼­ÀÔ´Ï´Ù.\n(¸¸¾à 6°³¿ùÀÌ»ó È¿·ÂÁ¤ÁöµÈ ÀÎÁõ¼­´Â ÀÚµ¿Æó±â µË´Ï´Ù)");
	}
	else if (errCode == -152)
	{
		alert("¿¡·¯ÄÚµå : SM00152\n\n" + "¼­¹ö¿Í Å¬¶óÀÌ¾ðÆ®°£ Åë½Å¿ë ÇÁ·Î±×·¥ ¹öÀüÀÌ ÀÏÄ¡ ÇÏÁö ¾Ê½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥ Àç¼³Ä¡¸¦ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -160)
	{
		alert("¿¡·¯ÄÚµå : SM00160\n\n" + "´ÙÀ½°ú °°ÀÌ °í°´´Ô ÄÄÇ»ÅÍ È¯°æ¿¡ ÀÇÇÑ Àå¾Ö ÀÏ ¼ö ÀÖ½À´Ï´Ù.\n°³ÀÎ ¹æÈ­º®µî À¸·Î ÀÎÇÑ ¼­ºñ½º Â÷´Ü ¹× ±âÅ¸ ÀÀ¿ëÇÁ·Î±×·¥ Ãæµ¹µî");
	}
	else if (errCode == -200 )
	{
		alert("¿¡·¯ÄÚµå : SM00200\n\n" + "°í°´´Ô ÄÄÇ»ÅÍÀÇ ÀÚ¿øÀÌ ºÎÁ·ÇÕ´Ï´Ù.\n´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ´Ý°í ½ÃµµÇÏ½Ê½Ã¿À");
	}
	else if (errCode == -201 )
	{
		alert("¿¡·¯ÄÚµå : SM00201\n\n" + "°í°´´Ô ÄÄÇ»ÅÍÀÇ ÀÚ¿øÀÌ ºÎÁ·ÇÕ´Ï´Ù.\n´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ´Ý°í ½ÃµµÇÏ½Ê½Ã¿À");
	}
	else if (errCode == -202)
	{
		alert("¿¡·¯ÄÚµå : SM00202\n\n" + "°í°´´Ô ÄÄÇ»ÅÍÀÇ ÀÚ¿øÀÌ ºÎÁ·ÇÕ´Ï´Ù.\n´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ´Ý°í ½ÃµµÇÏ½Ê½Ã¿À");
	}
	else if (errCode == -203)
	{
		alert("¿¡·¯ÄÚµå : SM00203\n\n" + "Á¢¼Ó·®ÀÌ ¸¹¾Æ ³×Æ®¿öÅ©ÀÇ ºÎÇÏ°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À");
	}
	else if (errCode == -204)
	{
		alert("¿¡·¯ÄÚµå : SM00204\n\n" + "º¸¾ÈÇÁ·Î±×·¥À» Àç¼³Ä¡ ÇÏ°Å³ª Æ÷Æ®¸¦ È®ÀÎÇÏ¿© ÁÖ½Ê½Ã¿À.\n°³ÀÎ¹æÈ­º®ÀÌ ¼³Ä¡µÇ¾î ÀÖ´Â ºÐÀº °³ÀÎ¹æÈ­º® ¼³Á¤À» È®ÀÎÇØÁÖ½Ê½Ã¿À.");
	}
	else if (errCode == -306)
	{
		alert("¿¡·¯ÄÚµå : SM00306\n\n" + "ÇØ´çÀÎÁõ¼­¿Í °³ÀÎÅ°°¡ ¾ø½À´Ï´Ù.\nÀÎÁõ¼­¸¦ È®ÀÎÇØ ÁÖ½Ê½Ã¿À.");
	}
	else if (errCode == -603)
	{
		alert("¿¡·¯ÄÚµå : SM00603\n\n" + "ÀÎÁõ±â°ü ÀÎÁõ¼­ÀÇ µ¥ÀÌÅÍÀÇ Å©±â°¡ Á¤»óº¸´Ù Ä¿¼­ ´Ù¿î·Îµå¸¦ ÁßÁöÇÕ´Ï´Ù.\nÀÎÁõ±â°ü ÀÎÁõ¼­°¡ Àß¸øµÇ¾ú½À´Ï´Ù.");
	}
	else if (errCode == -605)
	{
		alert("¿¡·¯ÄÚµå : SM00605\n\n" + "¹ß±Þ ¹ÞÀº ÀÎÁõ¼­¸¦ ÇÏµåµð½ºÅ©¿¡ Á¤»óÀûÀ¸·Î ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù.\n°í°´´Ô ÄÄÇ»ÅÍÀÇ »óÅÂ¸¦ È®ÀÎÇÏ½Ã°íÀÎÁõ¼¾ÅÍ¿¡¼­ ´Ù½Ã ¹ß±Þ ¹ÞÀ¸½Ê½Ã¿À.");
	}
	else if (errCode == -608);
	else if (errCode == -800)
	{
		alert("¿¡·¯ÄÚµå : SM00800\n\n" + "ÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î·¯ ¹öÀüÀÌ ³·¾Æ ¹®Á¦°¡ ¹ß»ýÇÏ°í ÀÖ½À´Ï´Ù.\n\n ¼­ºñ½º´Â ÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î·¯ 5.5ÀÌ»ó¿¡¼­ ¾ÈÁ¤ÀûÀ¸·Î °Å·¡°¡ °¡´ÉÇÕ´Ï´Ù.\n°í°´´ÔÀÇ ÀÎÅÍ³Ý ÀÍ½ºÇÃ·Î·¯¸¦ 5.5ÀÌ»óÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÒ°ÍÀ» ±ÇÀåÇÕ´Ï´Ù.");
	}
	else if (errCode == -801)
	{
		alert("¿¡·¯ÄÚµå : SM00801\n\n" + "¼­¹ö¿¬°á¿¡ ½ÇÆÐ Çß½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -803)
	{
		alert("¿¡·¯ÄÚµå : SM00803\n\n" + "ÀÎÁõ±â°ü ÀÎÁõ¼­¿¡ ¼­¸íÇÑ ÀÎÁõ¼­°¡ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.\nÄÝ¼¾ÅÍ¿¡ ¹®ÀÇ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -804)
	{
		alert("¿¡·¯ÄÚµå : SM00804\n\n" + "ÀÎÁõ ±â°ü ÀÎÁõ¼­ Á¤º¸°¡ Àß¸øµÇ¾ú½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥À» ´Ù½Ã ¼³Ä¡ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -900)
	{
		alert("¿¡·¯ÄÚµå : SM00900\n\n" + "¼­¹ö¿¬°á¿¡ ½ÇÆÐ Çß½À´Ï´Ù.\nÄÝ¼¾ÅÍ·Î ¹®ÀÇ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -901)
	{
		alert("¿¡·¯ÄÚµå : SM00901\n\n" + "¼­¹ö¿¬°á¿¡ ½ÇÆÐ Çß½À´Ï´Ù.\nÄÝ¼¾ÅÍ·Î ¹®ÀÇ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -902)
	{
		alert("¿¡·¯ÄÚµå : SM00902\n\n" + "º¸¾ÈÇÁ·Î±×·¥ µî·ÏÀÌ ¿Ã¹Ù¸£Áö ¸øÇÏ°Å³ª Àß¸øµÇ¾ú½À´Ï´Ù.\nÀç¼³Ä¡¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -903)
	{
		alert("¿¡·¯ÄÚµå : SM00903\n\n" + "º¸¾ÈÇÁ·Î±×·¥ µî·ÏÀÌ ¿Ã¹Ù¸£Áö ¸øÇÏ°Å³ª Àß¸øµÇ¾ú½À´Ï´Ù.\nÀç¼³Ä¡¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -904)
	{
		alert("¿¡·¯ÄÚµå : SM00904\n\n" + "º¸¾ÈÇÁ·Î±×·¥ µî·ÏÀÌ ¿Ã¹Ù¸£Áö ¸øÇÏ°Å³ª Àß¸øµÇ¾ú½À´Ï´Ù.\nÀç¼³Ä¡¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -905)
	{
		alert("¿¡·¯ÄÚµå : SM00905\n\n" + "º¸¾ÈÇÁ·Î±×·¥ µî·ÏÀÌ ¿Ã¹Ù¸£Áö ¸øÇÏ°Å³ª Àß¸øµÇ¾ú½À´Ï´Ù.\nÀç¼³Ä¡¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -906)
	{
		alert("¿¡·¯ÄÚµå : SM00906\n\n" + "º¸¾ÈÇÁ·Î±×·¥ µî·ÏÀÌ ¿Ã¹Ù¸£Áö ¸øÇÏ°Å³ª Àß¸øµÇ¾ú½À´Ï´Ù.\nÀç¼³Ä¡¸¦ ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.");
	}
	else if (errCode == -907)
	{
		alert("¿¡·¯ÄÚµå : SM00907\n\n" + "°í°´´Ô ÄÄÇ»ÅÍ¿¡ ¼³Ä¡µÈ ÇÁ·Î±×·¥°ú Åë½ÅÁß TimeOutÀÌ ¹ß»ýÇß½À´Ï´Ù.\n´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ´Ý°í ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1001)
	{
		alert("¿¡·¯ÄÚµå : SM01001\n\n" + "µ¥ÀÌÅÍ ¾ÏÈ£¸¦ ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1002)
	{
		alert("¿¡·¯ÄÚµå : SM01002\n\n" + "µ¥ÀÌÅÍ¸¦ º¹È£È­ ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1005)
	{
		alert("¿¡·¯ÄÚµå : SM01005\n\n" + "µ¥ÀÌÅÍ¸¦ ¾ÏÈ£È­ ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1006)
	{
		alert("¿¡·¯ÄÚµå : SM01006\n\n" + "°í°´´Ô ÄÄÇ»ÅÍÀÇ ÀÚ¿øÀÌ ºÎÁ·ÇÕ´Ï´Ù.\n´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥À» ´Ý°í Àá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1007)
	{
		alert("¿¡·¯ÄÚµå : SM01007\n\n" + "µ¥ÀÌÅÍ¸¦ ¾ÏÈ£È­ ÇÏ´øÁß ¹®Á¦°¡ ¹ß»ýÇß½À´Ï´Ù.\nÀá½Ã ÈÄ ´Ù½Ã ½Ãµµ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1102);
	else if (errCode == -1200);
	else if (errCode == -1201);
	else if (errCode == -1300)
	{
		alert("¿¡·¯ÄÚµå : SM01300\n\n" + "±ÝÀ¶°áÀç¿ø ¿¬°á½Ã ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.\n\n" + errMsg);
	}
	else if (errCode == -1301)
	{
		alert("¿¡·¯ÄÚµå : SM01301\n\n" + "¹ß±ÞµÈ ÀÎÁõ¼­ÀÇ ÃÖ»óÀ§ ¹ß±ÞÀÚ(KISA) ÀÎÁõ¼­¸¦ °ËÁõÇÒ ¼ö ¾ø½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥À» Àç¼³Ä¡ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1310)
	{
		alert("¿¡·¯ÄÚµå : SM01310\n\n" + "ÀÎÁõ¼­ ¹ß±Þ¿ä±¸¿¡ ½ÇÆÐÇß½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1311)
	{
		alert("¿¡·¯ÄÚµå : SM01311\n\n" + "ÀÎÁõ¼­¼³Ä¡°¡ Ãë¼ÒµÇ¾ú½À´Ï´Ù.");
	}
	else if (errCode == -1312)
	{
		alert("¿¡·¯ÄÚµå : SM01312\n\n" + "ÀÎÁõ¼­¾ÏÈ£°¡ Àß¸øµÇ¾ú½À´Ï´Ù.");
	}
	else if (errCode == -1313)
	{
		alert("¿¡·¯ÄÚµå : SM01313\n\n" + "ÀÎÁõ¼­¼³Ä¡°¡ ½ÇÆÐµÇ¾ú½À´Ï´Ù.\nÀÎÁõ¼­¸¦ Àç¹ß±Þ ¹Þ¾ÆÁÖ¼¼¿ä.");
	}
	else if (errCode == -1314)
	{
		alert("¿¡·¯ÄÚµå : SM01314\n\n" + "ÀÎÁõ¼­ ¸ñ·ÏÀ» °»½ÅÇÏ±â À§ÇØ ÃÊ±âÈ­ ÆÄÀÏÀ» ¿©´Â µµÁß ¿À·ù°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.");
	}
	else if (errCode == -1316)
	{
		alert("¿¡·¯ÄÚµå : SM01316\n\n" + "°øÀÎÀÎÁõ¼­ ÀÎÁõ±â°ü ÀÎÁõ¼­°¡ ¾ø°Å³ª ¼Õ»óµÇ¾ú½À´Ï´Ù.\nº¸¾ÈÇÁ·Î±×·¥À» Àç¼³Ä¡ ÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1318)
	{
		alert("¿¡·¯ÄÚµå : SM01318\n\n" + "¼³Ä¡ÇÏ·Á´Â ÀÎÁõ¼­¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù. ¼³Ä¡°¡ Ãë¼ÒµÇ¾ú½À´Ï´Ù.");
	}
	else if (errCode == -1400)
	{
		alert("¿¡·¯ÄÚµå : SM01400\n\n" + "ÀÎÁõ¼­¿¡¼­ ½Äº°¹øÈ£ Á¤º¸¸¦ °¡Á®¿Ã ¼ö ¾ø½À´Ï´Ù.\n»ç¿ëÇÑ ÀÎÁõ¼­°¡ »óÈ£¿¬µ¿°¡´É ÀÎÁõ¼­ÀÎÁö È®ÀÎÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1401)
	{
		alert("¿¡·¯ÄÚµå : SM01401\n\n" + "½Äº°¹øÈ£ Á¤º¸¸¦ ¾ÏÈ£È­ ÇÒ ¼ö ¾ø½À´Ï´Ù.\n»ç¿ëÇÑ ÀÎÁõ¼­°¡ »óÈ£¿¬µ¿°¡´É ÀÎÁõ¼­ÀÎÁö È®ÀÎÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1402)
	{
		alert("¿¡·¯ÄÚµå : SM01402\n\n" + "°³ÀÎÅ° ¾ÏÈ£È­¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\nÀá½ÃÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -1403)
	{
		alert("¿¡·¯ÄÚµå : SM01403\n\n" + "»ç¿ëÇÑ ÀÎÁõ¼­¿¡ ½Äº°¹øÈ£ Á¤º¸°¡ ¾ø½À´Ï´Ù.\n»ç¿ëÇÑ ÀÎÁõ¼­°¡ »óÈ£¿¬µ¿°¡´É ÀÎÁõ¼­ÀÎÁö È®ÀÎÇÏ½Ê½Ã¿À.");
	}
	else if (errCode == -2000);
	else if (errCode == -3001);
	else if (errCode == -3010);
	else if (errCode == -1317)
	{
		alert("¿¡·¯ÄÚµå : SM" + errCode + "\n\n" + "ÀÎÁõ¼­¸¦ Æó±âÈÄ »èÁ¦¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.\nÀÎÁõ¼¾ÅÍ¿¡ ÀÎÁõ¼­°ü¸®¿¡¼­ »èÁ¦ ÇÏ½Ê½Ã¿À.");
	}
	else
	{
		alert("¿¡·¯ÄÚµå : SM" + errCode + "\n\n" + errMsg );
	}
}

//////////////////////////////////////////////////////////////////////////////////
//	Xecure ÇÔ¼öµé....
function UserAgent()
{
	return navigator.userAgent.substring(0,9);
}

function IsNetscape()			// by Zhang
{
	if(navigator.appName == 'Netscape')
		return true ;
	else
		return false ;
}

function IsNetscape60()			// by Zhang
{
	if(IsNetscape() && UserAgent() == 'Mozilla/5')
		return true ;
	else
		return false ;
}

function IsNetscape60()			// by Zhang
{
	if(IsNetscape() && UserAgent() == 'Mozilla/5')
		return true ;
	else
		return false ;
}

function XecureUnescape(Msg)		// by Zhang
{
	if(IsNetscape())
		return unescape(Msg) ;
	else
		return Msg ;
}

function XecureEscape(Msg)		// by Zhang
{
	if(IsNetscape())
		return escape(Msg) ;
	else
		return Msg ;
}

function XecurePath(xpath)		// by zhang
{
	if(IsNetscape())
		return (xpath) ;
	else
		return ("/" + xpath) ;
}

function XecureAddQuery(qs)
{
	if(qs == "")
		return "" ;
	else
		return "&" + qs ;
}

function XecureWebError()		// by zhang
{
	var errCode = 0 ;
	var errMsg = "" ;

	if( IsNetscape60() )		// Netscape 6.0
	{
		errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
		errMsg  = document.XecureWeb.nsIXecurePluginInstance.LastErrMsg();
	}
	else
	{
		errCode = document.XecureWeb.LastErrCode();
		errMsg  = document.XecureWeb.LastErrMsg();
	}

	if(errCode == -144)
	{
		if(confirm("¿¡·¯ÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) + "\n\n ÀÎÁõ¼­°ü¸®Ã¢À» ¿­°Ú½À´Ï±î?"))
			ShowCertManager() ;
	}
//	else if(errCode != 0)
		alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) );

	return false;
}

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 ran_gen()
{
	var maxnumbers = "999999";
	var r = Math.round(Math.random() * (maxnumbers-1))+1+"";

	for(var i=0; i < 6-r.length; i++)
		r = "0" + r;

	return r;
}

function XecureNavigate_NoEnc( url, target )
{
	var qs ;
	var path = "/";
	var sid;
	var xecure_url;

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	path = getPath(url)

	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}

	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		if( IsNetscape60() )		// Netscape 6.0
			sid = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, "", "GET");
		else
			sid = document.XecureWeb.BlockEnc ( xgate_addr, path, "", "GET" );
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false ;
	}

	if( sid == "")	return XecureWebError();

	xecure_url = path + "?q=" + sid + XecureAddQuery(qs);
	// adding character set information
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	open ( xecure_url, target );
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function XecureNavigate( url, target, feature )
{
	//alert("XecureNavigate function Start");
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	path = getPath(url)
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}

	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		else
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}

	if( cipher == "" )
	{
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		else {
                       	errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
		}
		process_error( errCode, errMsg );
		return false;
	}

	xecure_url = path + "?q=" + escape_url(cipher);
	// adding character set information
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	if (feature=="" || feature==null) open ( xecure_url, target );
	else open(xecure_url, target, feature );

	//alert("XecureNavigate function End");
}

/**
 * @since XecureWeb 6.0 v220
 */
function XecureNavigate_Env( url, target, feature )
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	path = getPath(url)
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}

	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}

	if( cipher == "" )	return XecureWebError();

	//xecure_url = path + "?q=" + escape_url(cipher);
	xecure_url = path + "?eq=" + escape_url(cipher);

	// adding character set information
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	if (feature=="" || feature==null) {
		open ( xecure_url, target );
	}
	else {
		open(xecure_url, target, feature );
	}
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function XecureLink( link )
{
	//alert("XecureLink Start");
	var qs ;
//	var path = "/";
	var cipher;


	// get path info & query string from action url

	if ( link.protocol != "http:" ) {
		// alert ( "http ÇÁ·ÎÅäÄÝ¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." );
		return true;
	}

	qs = link.search;
	if ( qs.length > 1 ) {
		qs = link.search.substring(1);
	}

	hash = link.hash;

	if( gIsContinue == 0 ) {
		path = XecurePath(link.pathname) ;
		gIsContinue = 1;

		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		else {
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
		}
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}

	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
            		errCode = document.XecureWeb.LastErrCode();
            		errMsg = document.XecureWeb.LastErrMsg();
        	}
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
		return false;
	}

	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
	//alert(xecure_url);
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );

	return false;
}

/**
 * @since XecureWeb 6.0 v220
 */
function XecureLink_Env( link )
{
	var qs ;
//	var path = "/";
	var cipher;


	// get path info & query string from action url

	if ( link.protocol != "http:" ) {
		// alert ( "http ÇÁ·ÎÅäÄÝ¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." );
		return true;
	}

	qs = link.search;
	if ( qs.length > 1 ) {
		qs = link.search.substring(1);
	}

	hash = link.hash;

	if( gIsContinue == 0 ) {
		path = XecurePath(link.pathname) ;
		gIsContinue = 1;
		//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
		cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}
	if( cipher.length == 0)	return XecureWebError() ;

	// link.search = "?q=" + escape_url(cipher);
	//xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
	xecure_url = "http://" + link.host + path + hash + "?eq=" + escape_url(cipher);

	// adding character set information
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function XecureSubmit( form )
{

	var qs ;
	var path ;
	var cipher;

	qs_begin_index = form.action.indexOf('?');

	// if action is relative url, get base url from window location
	path = getPath(form.action)
	// get path info & query string & hash from action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
	}
	document.xecure.target = form.target;

	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values

		if(qs.length!=0)
			qs += "&"+XecureMakePlain( form );
		else
			qs = XecureMakePlain( form );

		// encrypt QueryString
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			else{
				cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}

		if( cipher == "" )	{
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
			else if(agent != 'Mozilla/5') {
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			process_error( errCode, errMsg );
			return false;
		}

		xecure_url = path + "?q=" + escape_url(cipher);
		// adding character set information
		if(usePageCharset)
			xecure_url += "&charset=" + document.charset;

		if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
		else open ( xecure_url, form.target );
	}
	else {

		document.xecure.method = "post";

		// encrypt QueryString of action field
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			else {

				//alert(path);
				//alert(XecureEscape(qs));
				cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
				
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}


		if( cipher == "" )
		{
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
			else if(agent != 'Mozilla/5') {
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			process_error( errCode, errMsg );
			return false;
		}

		document.xecure.action = path + "?q=" + escape_url(cipher);
		// adding character set information
		if(usePageCharset)
			document.xecure.action += "&charset=" + document.charset;

		posting_data = XecureMakePlain( form );

		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
			else{
				cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}

		if( cipher == "" )
		{
			if(navigator.appName != 'Netscape'){
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = document.XecureWeb.LastErrMsg();
                        }
			else if(agent != 'Mozilla/5') {
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			process_error( errCode, errMsg );
			return false;
		}

		document.xecure.p.value = cipher;
		document.xecure.submit();
	}
	return false;
}

/**
 * @since XecureWeb 6.0 v220
 */
function XecureSubmit_Env( form )
{
	var qs ;
	var path ;
	var cipher;

	qs_begin_index = form.action.indexOf('?');

	// if action is relative url, get base url from window location
	path = getPath(form.action)
	// get path info & query string & hash from action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
	}
	document.xecure.target = form.target;

	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values
		if(qs.length!=0)
			qs += "&"+XecureMakePlain( form );
		else
			qs = XecureMakePlain( form );

		// encrypt QueryString
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}

		if( cipher == "" )	return XecureWebError() ;

		//xecure_url = path + "?q=" + escape_url(cipher);
		xecure_url = path + "?eq=" + escape_url(cipher);

		// adding character set information
		if(usePageCharset)
			xecure_url += "&charset=" + document.charset;

		if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
		else open ( xecure_url, form.target );
	}
	else {
		document.xecure.method = "post";

		// encrypt QueryString of action field
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}


		if( cipher == "" )	return XecureWebError() ;

		//document.xecure.action = path + "?q=" + escape_url(cipher);
		document.xecure.action = path + "?eq=" + escape_url(cipher);
		// adding character set information
		if(usePageCharset)
			document.xecure.action += "&charset=" + document.charset;

		posting_data = XecureMakePlain( form );

		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			//cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
			cipher = EnvelopData(XecureEscape(posting_data), "", serverCert, 1);
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}

		if( cipher == "" )	return XecureWebError() ;

		//document.xecure.p.value = cipher;
		document.xecure.ep.value = cipher;
		document.xecure.submit();
	}
	return false;
}

function XecureMakePlain_Org(form)
{
	var name = new Array(form.elements.length);
	var value = new Array(form.elements.length);
	var flag = false;
	var j = 0;
	var plain_text="";
	var enable=false;//for softcamp

	//for softcamp
	if(document.secukey==null || typeof(document.secukey) == "undefined" || document.secukey.object==null) {
		enable=false;
	}
	else {
		enable=secukey.GetSecuKeyEnable();
	}


	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") { // Leejh 99.11.10 checkboxÃß°¡
				if (form.elements[i].checked == true) {
					name[j] = form.elements[i].name;
					value[j] = form.elements[i].value;
					j++;
				}
			}
			//for softcamp
			else if(enable && form.elements[i].type == "password"){
				if(form.elements[i].type == "password"){
					name[j] = form.elements[i].name;
					value[j] = secukey.GetRealPass(form.elements[i].name,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 (form.elements[i].options[ind].value != '')
						value[j] = form.elements[i].options[ind].value;
					else
						value[j] = form.elements[i].options[ind].text;
					// form.elements[i].selectedIndex = 0;
				}
				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 XecureMakePlain(form)	// modified by tiger on 2004/12/22
{

       var name = new Array(form.elements.length);
       var value = new Array(form.elements.length);
       var flag = false;
       var j = 0;
       var plain_text="";


       //for softcamp
       if(document.secukey==null || typeof(document.secukey) == "undefined" || document.secukey.object==null) {
                    enable=false;
       }
       else {
                    enable=secukey.GetSecuKeyEnable();
       }

       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) {
                                                if (form.elements[i].disabled == false) {
                                                          name[j] = form.elements[i].name;
                                                          value[j] = form.elements[i].value;
                                                          j++;
                                                }
                                              }
                                 }
                                 //for softcamp
                                 else if(enable && form.elements[i].type == "password"){
                                              if(form.elements[i].type == "password"){
                                                            name[j] = form.elements[i].name;
                                                            value[j] = secukey.GetRealPass(form.elements[i].name,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;
                                                            var op_len = form.elements[i].length;
                                                if (op_len > 0) {
                                                          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;
                                                                               value[j] = "";
                                                          } else {
                                                                     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;
                                                                                          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;
                                                                               value[j] = "";
                                                                     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 += "=";
                    if (value[i] !="undefined"){
                                 plain_text += value[i];
                    }else {
                                 plain_text += "";
                    }
       }

       return plain_text;
}

/*************For Applet**********************/
function BlockEnc(auth_type,plain_text)
{
	var cipher = "";

	if( IsNetscape60() )		// Netscape 6.0
		cipher =  XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));
	else
		cipher =  XecureUnescape(document.XecureWeb.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));

	if( cipher == "" ) XecureWebError() ;

	return cipher;
}

function BlockDec(cipher)
{
	var plain = "";

	if( IsNetscape60() )		// Netscape 6.0
		plain = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockDec( xgate_addr, cipher));
	else {
		plain = XecureUnescape(document.XecureWeb.BlockDec( xgate_addr, cipher));
	}

	if( plain == "" ) XecureWebError() ;

	return plain;
}

function BlockXMLDec(cipher)
{
	var path = "";

	if( IsNetscape60() )		// Netscape 6.0
		path = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockXMLDec( xgate_addr, cipher));
	else
		path = XecureUnescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));

	if( path == "" ) 	XecureWebError() ;

	return path;
}

function XecureLogIn( link )
{
	EndSession();
	return XecureLink(link);
}

function EndSession()
{
	if( IsNetscape60() )		// Netscape 6.0
		document.XecureWeb.nsIXecurePluginInstance.EndSession( xgate_addr );
	else
		document.XecureWeb.EndSession(xgate_addr);
}

// XecureWeb ver 4.1 add
// option : 0 : no confirm window, all certificates
// option : 1 : confirm window, all certificates
// option : 2 : no confirm window, log-on certificate only
// option : 3 : confirm window, log-on certificate only

function Sign_with_option( option, plain )
{
	var signed_msg;

	if( IsNetscape60() )	// Netscape 6.0
		signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr,
							escape(accept_cert),
							escape(plain),
							option,
							escape(sign_desc),
							pwd_fail);
	else
		signed_msg = document.XecureWeb.SignDataCMS(
							xgate_addr,
							XecureEscape(accept_cert),
							XecureEscape(plain),
							option,
							XecureEscape(sign_desc),
							pwd_fail);

    if( signed_msg == "" )	XecureWebError();

    return signed_msg;
}

// Ãß°¡»ç¼³ÀÎÁõ¿ë(»ç¼³ÀÎÁõ ¸¸ ¶ä)
function Sign_with_option_priv( option, plain )
{
	var signed_msg;

	if( IsNetscape60() )	// Netscape 6.0
		signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr,
							escape(accept_cert_priv),
							escape(plain),
							option,
							escape(sign_desc),
							pwd_fail);
	else
		signed_msg = document.XecureWeb.SignDataCMS(
							xgate_addr,
							XecureEscape(accept_cert_priv),
							XecureEscape(plain),
							option,
							XecureEscape(sign_desc),
							pwd_fail);

    if( signed_msg == "" )	XecureWebError();

    return signed_msg;
}

function Sign_Add( option, plain )
{
	var signed_msg;

	signed_msg = document.XecureWeb.SignDataAdd ( xgate_addr, accept_cert, plain, option, sign_desc, pwd_fail );

    if( signed_msg == "" )	XecureWebError() ;

    return signed_msg;
}

function Sign( plain )
{
	var signed_msg;

	if( IsNetscape60() )		// Netscape 6.0
	{
		signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
	}
	else
	{
		signed_msg = document.XecureWeb.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
	}

	if( signed_msg == "" )	XecureWebError() ;

	return signed_msg;
}

function Sign_with_desc( plain, desc )
{
	var signed_msg;

	if( IsNetscape60() )		// Netscape 6.0
		signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );
	else
		signed_msg = document.XecureWeb.SignDataCSM( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );

	if( signed_msg == "" )	XecureWebError() ;

	return signed_msg;
}

// XecureWeb ver 4.1 add
// option : 0 : no confirm window, all certificates
// option : 1 : confirm window, all certificates
// option : 2 : no confirm window, log-on certificate only
// option : 3 : confirm window, log-on certificate only

// XecureWeb ver 5.0 add

function Sign_with_vid_user( option, plain, svrCert )
{
	var signed_msg;

	option = option + 4;

	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
	}

    if( signed_msg == "" )	XecureWebError();

    return signed_msg;
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function Sign_with_vid_web( option, plain, svrCert, idn )
{
	var ret;
	var signed_msg;

	option = option + 12;

	PutBannerUrl();

	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		ret = Set_ID_Num(idn);
		if(ret != 0) {
			XecureWebError();
			return signed_msg;
		}

		signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
	}

   if( signed_msg == "" )
	{
		errCode = document.XecureWeb.LastErrCode();
		errMsg  = document.XecureWeb.LastErrMsg();
		process_error( errCode, errMsg );
	}
    return signed_msg;
}

// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 	0 : HARD
//	1 : REMOVABLE
//	2 : ICCARD
//	3 : CSP
//	4 : VSC
// [option]
//	0 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¾øÀ½
//	1 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¶ç¿ò
function Sign_with_vid_user_serial( certSerial, certLocation, option, plain, svrCert )
{
	var signed_msg;

	option = option + 4;

	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
	}

    if( signed_msg == "" )	XecureWebError();

    return signed_msg;
}

// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 	0 : HARD
//	1 : REMOVABLE
//	2 : ICCARD
//	3 : CSP
//	4 : VSC
// [option]
//	0 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¾øÀ½
//	1 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¶ç¿ò
function Sign_with_vid_web_serial( certSerial, certLocation, option, plain, svrCert, idn )
{
	var ret;
	var signed_msg;

	option = option + 12;

	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		ret = Set_ID_Num(idn);
		if(ret != 0) {
			XecureWebError();
			return signed_msg;
		}

		signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
	}

    if( signed_msg == "" )	XecureWebError();

    return signed_msg;
}

function Set_ID_Num(idn)
{
	var ret;

	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		ret = document.XecureWeb.SetIDNum(idn);
	}

	return ret;
}

function send_vid_info()
{
	var	vid_info;

	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		vid_info = document.XecureWeb.GetVidInfo();
	}

	if(vid_info.length == 0)
		return null;
	else
		return vid_info;
}

// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 	0 : HARD
//	1 : REMOVABLE
//	2 : ICCARD
//	3 : CSP
//	4 : VSC
// [option]
//	0 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¾øÀ½
//	1 : ¼­¸í¿ø¹® È®ÀÎÃ¢ ¶ç¿ò
function Sign_with_serial( certSerial, certLocation, plain, option )
{
	var	signed_msg;

	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		signed_msg = document.XecureWeb.SignDataCMSWithSerial(  xgate_addr,
									XecureEscape(accept_cert),
									certSerial,
									certLocation,
									plain,
									option,
									XecureEscape(sign_desc),
									pwd_fail );
	}

	if( signed_msg == "" )	XecureWebError();

	return signed_msg;
}

//
// only over XecureWeb Client v5.4.x
//
// !!! This function need site/executable license !!!
//
// [option]
//      0 : only signature verification( NOT perform cert verification )
// 	1 : signature verification + default cert verification
//	2 : + cert chain check
//	3 : + CRL check
//	4 : + LDAP
// [directoryServer]
//	ex) dirsys.rootca.or.kr:389 or ""
//
function Verify_SignedData( signedData, option, directoryServer )
{
	var	verified_msg;
	var	errCode;

	if( IsNetscape() )
	{
		alert("Not supported function");
		return "";
	}
	else
	{
		verified_msg = document.XecureWeb.VerifySignedData( signedData, option, directoryServer );
	}

	// VerifySignedData´Â ÀÎÁõ¼­ °ËÁõ½Ã ¿À·ù°¡ ¹ß»ýÇÏ´õ¶óµµ ¿ø¹® ÃßÃâÀÌ ¼º°øÇÏ¸é ¿ø¹®À» ¸®ÅÏÇÏ±â ¶§¹®¿¡
	// ¹Ýµå½Ã LastErrCode¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
	errCode = document.XecureWeb.LastErrCode();
	if( errCode != 0 )
		XecureWebError();

	return verified_msg;
}

//
// only over XecureWeb Client v5.4.x
//
// applicable cert location : usbtoken_kb, usbtoken_kiup
//
function Set_PinNumber( pin )
{
	var	ret = -1;

	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		 ret = document.XecureWeb.SetPinNum( pin );
	}

	return ret;
}

// type 10 : YessignCA
// type 11 : XecureCA
function RequestCertificate ( type, ref_code, auth_code )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;

	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}

	if(IsNetscape())
	{
		if( IsNetscape60() )	// Netscape 6.0
			r = document.XecureWeb.nsIXecurePluginInstance.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
		else
			r = document.XecureWeb.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
	}
	else
	{
		r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code, ca_type);
	}

	if ( r != 0 )	XecureWebError();

	return r;
}

// type 00 : YessignCA
// type 11 : XecureCA
function RenewCertificate ( type )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;

	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}

	if(IsNetscape())
	{
		if( IsNetscape60() )	// Netscape 6.0
			r = document.XecureWeb.nsIXecurePluginInstance.RenewCertificate2( ca_port, ca_ip, ca_type, pwd_fail );
		else
			r = document.XecureWeb.RenewCertificate2( ca_port, ca_ip, ca_type, pwd_fail );
	}
	else{
		r = document.XecureWeb.RenewCertificate ( ca_port, ca_ip, ca_type, pwd_fail );
	}

	if ( r != 0 ) 	XecureWebError();

	return r;
}

// type 00 : YessignCA
// type 11 : XecureCA
function RevokeCertificate ( type, jobcode, reason )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;

	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}

	if(IsNetscape())
	{
		if( IsNetscape60() )	// Netscape 6.0
			r = document.XecureWeb.nsIXecurePluginInstance.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
		else
			r = document.XecureWeb.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type,  pwd_fail);
	}
	else {
		r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
	}

        if ( r != 0 ) 	XecureWebError();

	return r;
}

function GenCertReq ( )
{
	if( IsNetscape60() )		// Netscape 6.0
		cert_req = document.XecureWeb.nsIXecurePluginInstance.GenerateCertReq( 1024 );
	else
		cert_req = document.XecureWeb.GenerateCertReq( 1024 );

	if ( cert_req == "" )	XecureWebError() ;

	return cert_req;
}

function InstallCertificate (cert_type, cert)
{
	if( IsNetscape60() )		// Netscape 6.0
		document.XecureWeb.nsIXecurePluginInstance.InstallCertificate(cert_type, cert );
	else
		document.XecureWeb.InstallCertificate(cert_type, cert );
}

function ShowCertManager()
{
	if( IsNetscape60() )		// Netscape 6.0
		document.XecureWeb.nsIXecurePluginInstance.ShowCertManager();
	else
		document.XecureWeb.ShowCertManager();
}

function DeleteCertificate( dn )
{
	var r;

	if( IsNetscape60() )		// Netscape 6.0
		r = document.XecureWeb.nsIXecurePluginInstance.DeleteCertificate( XecureEscape(dn) );
	else
		r = document.XecureWeb.DeleteCertificate ( XecureEscape(dn) );

	if( r != 0 )	XecureWebError() ;
	else 		alert('ÀÎÁõ¼­¸¦ »èÁ¦ÇÏ¿´½À´Ï´Ù.');
}

function PutBannerUrl()
{
	if( IsNetscape60() )		// Netscape 6.0
	{
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
	}
	else
	{
		document.XecureWeb.PutBigBannerUrl( xgate_addr, bannerUrl);
	}
}

function PutBannerUrl2()
{
	if( IsNetscape60() )		// Netscape 6.0
	{
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( currentURL, bannerUrl);
	}
	else
	{
		document.XecureWeb.PutBigBannerUrl( currentURL, bannerUrl);
	}
}

function PutMeritzBannerUrl(meritzUrl)
{
	if( IsNetscape60() )		// Netscape 6.0
	{
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, meritzUrl);
	}
	else
	{
		document.XecureWeb.PutBigBannerUrl( xgate_addr, meritzUrl);
	}
}


function PutCACert()
{
	var r ;

	if( IsNetscape60() )		// Netscape 6.0
		r = document.XecureWeb.nsIXecurePluginInstance.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);
	else
		r = document.XecureWeb.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);

	if( r != 0 )	XecureWebError() ;
}

function isNewPlugin(desc)
{
	index = desc.indexOf('v.', 0);
	if (index < 0)
		return false;
	desc += ' ';

	versionString = desc.substring(index +2, desc.length);
	arrayOfStrings = versionString.split('.');
	thisMajor = parseInt(arrayOfStrings[0], 10);
	thisMinor = parseInt(arrayOfStrings[1], 10);
	thisBuild = parseInt(arrayOfStrings[2], 10);

	if (thisMajor > versionMaj)	return true;
	if (thisMajor < versionMaj)	return false;

	if (thisMinor > versionMin)	return true;
	if (thisMinor < versionMin)	return false;

	if (thisBuild > versionRel)	return true;
	if (thisBuild < versionRel)	return false;

	return true;
}

function downloadNow () {
	if ( navigator.javaEnabled() ) {
		trigger = netscape.softupdate.Trigger;
		if ( trigger.UpdateEnabled() ) {
			if (navigator.platform == "Win32") {
				trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
			}
			else alert('ÀÌ ÇÃ·¯±× ÀÎÀº À©µµ¿ìÁî 95/98/NT È¯°æ¿¡¼­¸¸ ÀÛµ¿ÇÕ´Ï´Ù.')
		}
		else
			alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
	}
	else
		alert('Java ½ÇÇàÀ» °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}

function isOldPlugin(desc,version)	// by Zhang
{
	index = desc.indexOf('v.', 0);
	if (index < 0)	return true;

	desc += ' ';
	versionString = desc.substring(index +2, desc.length);
	arrayOfStrings = versionString.split('.');
	thisMaj = parseInt(arrayOfStrings[0], 10);
	thisMin = parseInt(arrayOfStrings[1], 10);
	thisRel = parseInt(arrayOfStrings[2], 10);

	arrayOfStrings = version.split('.');
//	verMaj = parseInt(arrayOfStrings[0], 10);
//	verMin = parseInt(arrayOfStrings[1], 10);
//	verRel = parseInt(arrayOfStrings[2], 10);
	s_verMaj = parseInt(arrayOfStrings[0], 10);
	s_verMin = parseInt(arrayOfStrings[1], 10);
	s_verRel = parseInt(arrayOfStrings[2], 10);

	if (thisMaj > s_verMaj)	return false;
	if (thisMaj < s_verMaj)	return true;

	if (thisMin > s_verMin)	return false;
	if (thisMin < s_verMin)	return true;

	if (thisRel > s_verRel)	return false;
	if (thisRel < s_verRel)	return true;

	return false;
}

function DownloadPackage(packageURL) // by Zhang
{
	if ( navigator.javaEnabled() ) {
		trigger = netscape.softupdate.Trigger;
		if ( trigger.UpdateEnabled() ) {
			if (navigator.platform == "Win32") {
				trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
			}
			else
				alert('ÀÌ ÇÃ·¯±× ÀÎÀº À©µµ¿ìÁî 95/98/NT È¯°æ¿¡¼­¸¸ ÀÛµ¿ÇÕ´Ï´Ù.');
		}
		else
			alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
	}
	else
		alert('Java ½ÇÇàÀ» °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}

function XecureWebPlugin(version)	// by Zhang
{
	if (navigator.appName == 'Netscape' && UserAgent() == "Mozilla/4")
	{
  		var XecureMime = navigator.mimeTypes["application/x-SoftForum-XecSSL40"];
		if (XecureMime) {   // Xecure PlugIn ÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´Â °æ¿ì
			if ( isOldPlugin(XecureMime.enabledPlugin.description,version))
				DownloadPackage(packageURL);
		}
		else {     // Xecure PlugIn ÀÌ ¼³Ä¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
			DownloadPackage(packageURL);
		}
	}
}

function NoXecureAlert()
{
	alert(install_info);
	return;

}

function PrintObjectTag()
{
	if( IsNetscape60() )
		alert("Netscape 6.0Àº Áö¿øÇÏÁö ¾Ê½À´Ï´Ù") ;
	else
	{
		if(navigator.appName == 'Netscape')
		{
			document.write("<EMBED type='application/x-SoftForum-XecSSL40' hidden=true name='XecureWeb'></EMBED><NOEMBED>No XecureWeb PlugIn</NOEMBED>");
		}
		else
		{
			//document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,0,5,0" width=0 height=0 onError=NoXecureAlert()><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');
			//document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,2,2,7" width=0 height=0 onError=NoXecureAlert()><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');
      		//document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,2,2,7" width=0 height=0><PARAM NAME="SECKEY" VALUE="XW_SKS_JRSOFT_DRIVER"><param name="lang" value="korean"><param name="lang" value="korean"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE,pkcs11">XecureWeb º¸¾È ÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù</OBJECT>');
      		//document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,2,3,3" width=0 height=0><PARAM NAME="SECKEY" VALUE="XW_SKS_JRSOFT_DRIVER"><param name="lang" value="korean"><param name="lang" value="korean"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE,pkcs11">XecureWeb º¸¾È ÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù</OBJECT>');
			document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,2,5,0" width=0 height=0><PARAM NAME="SECKEY" VALUE="XW_SKS_JRSOFT_DRIVER"><param name="lang" value="korean"><param name="lang" value="korean"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE,pkcs11">XecureWeb º¸¾È ÇÁ·Î±×·¥ÀÌ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù</OBJECT>');
		}
	}
}

function get_sid()
{
	var sid = document.XecureWeb.BlockEnc ( xgate_addr, "", "", "GET" );

	if( sid == "") 	return XecureWebError() ;

	return sid;
}

// applet¿¡¼­ servletÀ¸·Î º¸³¾ °ªÀ» ¾ÏÈ£È­ ÇÏ´Â function
function enc(str) {
	var state='';
	var plain='';
	var escaped_state='';
	plain=String(str);

	if (navigator.appName == 'Netscape')
		state=XecureWeb.BlockEnc(xgate_addr, path, escape(plain), "POST");
	else
   		state=XecureWeb.BlockEnc(xgate_addr, path, plain, "POST");
   	//escaped_state=escape_url(state);
   	escaped_state=escape_url_applet(state);
//   	alert("POST:" + escaped_state);
	return escaped_state;
}

// servlet¿¡¼­ appletÀ¸·Î º¸³»ÁØ °ªÀ» º¹È£È­ ÇÏ´Â function
function dec(str) {
	var result=BlockDec(str);
	return result;
}

function XecureNavigate2iframe( url, target, feature, sid)
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	path = getPath(url);

	cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"POST");

	if( cipher.length == 0 ) 	return XecureWebError() ;

	xecure_url = path + "?q=" + sid + ";" + escape_url(cipher);
	if (feature=="" || feature==null) open ( xecure_url, target );
	else open(xecure_url, target, feature );
}

function getPath(url)
{
	var path = "/";
	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	// if action is relative url, get base url from window location
	if ( url.charAt(0) != '/' && url.substring(0,7) != "http://" ) {
		path_end = window.location.href.indexOf('?');
		if(path_end < 0)	path_end_str = window.location.href;
		else				path_end_str = window.location.href.substring(0,path_end);
		path_relative_base_end = path_end_str.lastIndexOf('/');
		path_relative_base_str = path_end_str.substring(0,path_relative_base_end+1);
		path_begin_index = path_relative_base_str.substring (7,path_relative_base_str.length).indexOf('/');
		if (qs_begin_index < 0){
			path = path_relative_base_str.substring( 7+path_begin_index,path_relative_base_str.length ) + url;
		}
		else {
			path = path_relative_base_str.substring( 7+path_begin_index,path_relative_base_str.length )
				 + url.substring(0, qs_begin_index );
		}
	}
	else if ( url.substring(0,7) == "http://" ) {
		path_begin_index = url.substring (7, url.length).indexOf('/');
		if (qs_begin_index < 0){
			path = url.substring( path_begin_index + 7, url.length);
		}
		else {
			path = url.substring(path_begin_index + 7, qs_begin_index );
		}
	}
	else if (qs_begin_index < 0){
		path = url;
	}
	else {
		path = url.substring(0, qs_begin_index );
	}
	return path;
}

// option bit : _4_ _3_ _2_ _1_
//                       |   |
//                       |   --- 0 : ¸ðµç ÀÎÁõ¼­ ¸®½ºÆ®¾÷, 1 : ·Î±×ÀÎÇÑ ÀÎÁõ¼­ »ç¿ë
//                       ------- 0 : »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸, 1 : idn¿¡ "NULL" setting, ¼­¹ö¿¡¼­ idn ¼³Á¤
function VerifyVirtualID(Idn, TimeStamp, ServerCertPem)
{
	var msg;

	var option = 0;

	option = 0;   // ¸ðµç ÀÎÁõ¼­ ¸®½ºÆ®¾÷, »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸
//	option = 1;   // ·Î±×ÀÎÇÑ ÀÎÁõ¼­ »ç¿ë, »ç¿ëÀÚ¿¡°Ô idn ÀÔ·Â ¿ä±¸
// only over XecureWeb Client v5.3.0.1
//	option = 2;   // ¸ðµç ÀÎÁõ¼­ ¸®½ºÆ®¾÷, idn¿¡ "NULL" ¼³Á¤
//	option = 3;   // ·Î±×ÀÎÇÑ ÀÎÁõ¼­ »ç¿ë, idn¿¡ "NULL" ¼³Á¤

	if( IsNetscape() )
	{
		msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, escape(accept_cert), option, escape(Idn));
	}
	else
	{
		msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, accept_cert, option, Idn);
	}

	return msg;

}

// nOption is 0 : (default value) File version, which is checked by 'Internet Explorer'
//            1 : Product version
//            2 : File Description
function GetVersion(nOption)
{
	var ver;

	if( IsNetscape() )
	{
		alert("Not supported function");
		ver = "";
	}
	else
	{
		ver = document.XecureWeb.GetVerInfo(nOption);
		if( ver == "" )
			alert("No version information");
	}

	return ver;
}

// only over XecureWeb Client v5.3.0.1
function UpdateModules( infoURL )
{
	var	ret;

	if( IsNetscape() )
	{
		alert("Not supported function");
		ret = 0;
	}
	else
	{
		// success : 0, cancel : 1, file(s) holded : 2, already updated : 3, invalid user : 4, need not : 5
		// error : -1
		ret = document.XecureWeb.UpdateModules( infoURL );
	}

	return	ret;
}

// only over XecureWeb Client v5.3.0.1
function SetUpdateInfo( section, key, value1 )
{
	var	ret;

	if( IsNetscape() )
	{
		alert( "Not supported function" );
		ret = 0;
	}
	else
	{
		ret = document.XecureWeb.SetUpdateInfoString( section, key, value1 );
	}

	return ret;
}

// inserted by knlee 2003/06/10
function SetProviderList()
{
	var	ret;

	//var	provName = "TrustedNet Connect 2 Smart Card CSP;Microsoft Base Cryptographic Provider v1.0;Microsoft Enhanced Cryptographic Provider v1.0";
	var	provName = "TrustedNet Connect 2 Smart Card CSP;Keycorp CSP";

	if( IsNetscape() )
	{
		alert("Not supported function");
		return -1;
	}
	else
	{
		ret = document.XecureWeb.SetProvider(provName);
		if( ret != 0 )
			alert("Set Provider name is Fail!");
	}

	return ret;
}

// applet¿¡¼­ servletÀ¸·Î º¸³¾ °ªÀ» ¾ÏÈ£È­ ÇÏ´Â function
function enc(str) {
	var state='';
	var plain='';
	var escaped_state='';
//	plain=String(str);

	alert("enc : " + str.length);
	if (navigator.appName == 'Netscape')
		state=XecureWeb.BlockEnc(xgate_addr, "/off", escape(str), "POST");
	else
   		state=XecureWeb.BlockEnc(xgate_addr, "/off", str, "POST");
   	//escaped_state=escape_url(state);
//   	escaped_state=escape_url_applet(state);
   	alert("POST:" + state.length);
	alert("enc end");
	return state;
}

// servlet¿¡¼­ appletÀ¸·Î º¸³»ÁØ °ªÀ» º¹È£È­ ÇÏ´Â function
function dec(str) {
	var result=BlockDec(str);
	return result;
}

//add by softforum 2003.3.12 for CMS +
/*
function escape_url_applet(url)
{
	var i, j, pos, k;
	var out = "";

	pos = 0;
	j = -2;
	k = -2;
	while (pos > -1)
	{
		if(j == -2)
			j = url.indexOf('+', pos);
		if(k == -2)
			k = url.indexOf('=', pos);
		if(j < 0 && k < 0)
			break;
		if ((j < k && j > -1) || (j > -1 && k < 0))
		{
			out += url.substring(pos, j);
			out += '%2B';
			pos = j + 1;
			j = -2;
		}
		else if ((j > k && k > -1) || (k > -1 && j < 0))
		{
			out += url.substring(pos, k);
			out += '%3D';
			pos = k + 1;
			k = -2;
		}
		else
			pos = -1;
	}
	return out;
}
*/

function quick_escape(str)
{
	var len, leftlen, cut, i, j, pos, k;
	var out = "", out1 = "", out2 = "";

	len = str.length;
	if(len > 160) {
		leftlen = len/2;
		cut = Math.round(leftlen);
		out1 = quick_escape(str.substring(0, cut));
		out2 = quick_escape(str.substring(cut));
		out = out1 + out2;
	}else {
		pos = 0;
		j = -2;
		k = -2;
		while (pos > -1 && pos < len)
		{
			if(j == -2)
				j = str.indexOf('+', pos);
			if(k == -2)
				k = str.indexOf('=', pos);
			if(j < 0 && k < 0) {
				out += str.substring(pos);
				break;
			}
			if ((j < k && j > -1) || (j > -1 && k < 0))
			{
				out += str.substring(pos, j);
				out += '%2B';
				pos = j + 1;
				j = -2;
			}
			else if ((j > k && k > -1) || (k > -1 && j < 0))
			{
				out += str.substring(pos, k);
				out += '%3D';
				pos = k + 1;
				k = -2;
			}
			else{
				out += str.substring(pos);
				pos = -1;
			}
		}
	}
	return out;
}
function escape_url_applet(in_str)
{
	var len, leftlen, cut;
	var out = "", out1 = "", out2 = "";

	len = in_str.length;

	if(len > 160) {
		leftlen = len/2;
		cut = Math.round(leftlen);
		out1 = quick_escape(in_str.substring(0, cut));
		out2 = quick_escape(in_str.substring(cut));
		out = out1 + out2;
	}else {
		out = quick_escape(in_str);
	}
	alert("escape_url_applet end : " + out.length);
	return out;
}

/*
	*** valid for only XWebFilCom v5.5.x ***

	It is possible to combine following option flags
	[EXCEPTION]
	   - 1,2 cannot be used simultaneously
	   - 4 is valid for only 1

	envOption  =   1 : ÀÎÁõ¼­±â¹Ý ÀüÀÚºÀÅõ
	           =   2 : ÆÐ½º¿öµå±â¹Ý ÀüÀÚºÀÅõ
	           =   4 : ¿©·¯ °³ÀÇ ÀÎÁõ¼­·Î ÀüÀÚºÀÅõ
	           =   8 : CMS Å¸ÀÔÀ¸·Î Envelop
	           = 256 : ·Î±×ÀÎÇÑ ÀÎÁõ¼­·Î ÀüÀÚºÀÅõ

	return value
	   - success : enveloped message
	   - fail    : ""
*/
function EnvelopData( inMsg, pwd, certPem, envOption )
{
	var envMsg;


	envMsg = document.XecureWeb.EnvelopData(
			xgate_addr,
			XecureEscape(accept_cert),
			XecureEscape(inMsg),
			envOption,
			pwd,
			certPem,
			"",
			0,
			"",
			3 );

   	if( envMsg == "" )
   	{
		XecureWebError();
   	}

	return envMsg;
}


function Sign_without_vid_web( option, plain, svrCert, idn ){
	var ret;
	var signed_msg;
	option = option + 12;
	PutBannerUrl();
	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else
	{
		signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
	}
	
	if( signed_msg == "" )
		XecureWebError();
	
	return signed_msg;
}


/****************For AJAX****************/

function XecureAjaxGet(url)
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	path = getPath(url)
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}

	if( gIsContinue == 0 ) {
		gIsContinue = 1;

		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, "/off", XecureEscape(qs), "GET");
		else
			cipher = document.XecureWeb.BlockEnc(xgate_addr, "/off", XecureEscape(qs),"GET");

		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}

	if( cipher == "" )	return XecureWebError();

	xecure_url = path + "?q=" + escape_url(cipher);
	return xecure_url;
}

function XecureAjaxPost(qs)
{
	var qs ;
	var p_value;
	
	if( gIsContinue == 0 ) {
		gIsContinue = 1;

		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, "/off", XecureEscape(qs), "POST" );
		else{
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, "/off", XecureEscape(qs), "POST" );
		}
		gIsContinue = 0;
	}

	else {
		alert(busy_info);
		return false;
	}

	if( cipher == "" )	return XecureWebError() ;
	
	p_value = "p="+escape_url(cipher);
	return p_value;
}


// »ç¼³ÀÎÁõ¿ë ÀÎÁõ¼­ Á¤º¸ ¸®ÅÏ 2008 06 02
function GetCertInfo_Priv(signed_msg){
	var cnText = '';
	cnText =  document.XecureWeb.GetCertInfo(signed_msg,1,1);
	return cnText;
}

