// ¾ÆÁ÷ : Netscape 6.0Àº Áö¿øµÇÁö ¾Ê½À´Ï´Ù....
var gHostName = document.location.hostname;
var usePageCharset=true;

var gIsContinue=0;
var busy_info = "¾ÏÈ£È­ ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù. È®ÀÎÀ» ´©¸£½Ã°í Àá½Ã ±â´Ù·Á ÁÖ½Ê½Ã¿À."

// 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///////////////////////////////////////////////////////

//RequestCertificate varÅ¸ÀÔÃß°¡
//var xecure_ca_type_rpki = 101;	// XecureCA (RPKI)
//var xecure_ca_ip_rpki =  "165.244.7.36;°íµµÈ­°³¹ßCA";
//var xecure_ca_port_rpki = 3503;
var xecure_ca_type_rpki = 213;	// XecureCA (RPKI)
var xecure_ca_ip_rpki =  "211.61.13.176;ÀüÀÚÁõ¸í°ü¸®¼ÒCA";
var xecure_ca_port_rpki = 2101;   

///////////////////////////////////////////////////////////////////////////////
// !!!!!!!!!!!!!!< ÁÖÀÇ >!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// 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_npki = "";
var accept_cert_rpki = "";
var accept_cert_gpki = "";

accept_cert_npki += "yessignCA:1.2.410.200005.1.1.1:1.2.410.200005.1.1.4:1.2.410.200005.1.1.6.2,";
accept_cert_npki += "yessignCA-Test Class 1:1.2.410.200005.1.1.1:1.2.410.200005.1.1.4:1.2.410.200005.1.1.6.2,"; // npki °íµµÈ­ °ü·Ã Ãß°¡
accept_cert_npki += "yessignCA Class 1:1.2.410.200005.1.1.1:1.2.410.200005.1.1.4:1.2.410.200005.1.1.6.2,"; //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡
//accept_cert_npki += "signGATE FTCA02:1.2.410.200004.5.2.1.2:1.2.410.200004.5.2.1.7.1,"; //¿î¿µ ¹Ý¿µ½Ã¿¡´Â »èÁ¦ - ¹ß±ÞÀÚ(signGATE FTCA02)°¡ µ¿ÀÏÇÒ °æ¿ì´Â oid°ª¸¸ Ãß°¡ÇØÁÖ¸é µÈ´Ù.
accept_cert_npki += "signGate CA:1.2.410.200004.5.2.1.2:1.2.410.200004.5.2.1.7.1:1.2.410.200004.5.2.1.7.2:1.2.410.200004.5.2.1.7.3,";
accept_cert_npki += "signGATE CA4:1.2.410.200004.5.2.1.2:1.2.410.200004.5.2.1.7.1:1.2.410.200004.5.2.1.7.2:1.2.410.200004.5.2.1.7.3,"; //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡
//accept_cert_npki += "signGATE CA2:1.2.410.200004.5.2.1.2,";
// 20090604 Ãß°¡
accept_cert_npki += "signGATE CA2:1.2.410.200004.5.2.1.2:1.2.410.200004.5.2.1.7.1:1.2.410.200004.5.2.1.7.2:1.2.410.200004.5.2.1.7.3,";
accept_cert_npki += "SignKorea CA:1.2.410.200004.5.1.1.5:1.2.410.200004.5.1.1.9:1.2.410.200004.5.1.1.9.2,";
accept_cert_npki += "SignKorea CA2:1.2.410.200004.5.1.1.5:1.2.410.200004.5.1.1.9:1.2.410.200004.5.1.1.9.2,"; //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡
accept_cert_npki += "NCASign CA:1.2.410.200004.5.3.1.9,";
accept_cert_npki += "NCASignCA:1.2.410.200004.5.3.1.9,";
accept_cert_npki += "CrossCertCA:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.101:1.2.410.200004.5.4.1.102:1.2.410.200004.5.4.1.103:1.2.410.200004.5.4.1.104,";
accept_cert_npki += "CrossCertCA2:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.101:1.2.410.200004.5.4.1.102:1.2.410.200004.5.4.1.103:1.2.410.200004.5.4.1.104,";  //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡
//accept_cert_npki += "CrossCert Certificate Authority:1.2.410.200004.5.4.1.1,";
//20090604Ãß°¡
accept_cert_npki += "CrossCert Certificate Authority:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.101:1.2.410.200004.5.4.1.102:1.2.410.200004.5.4.1.103:1.2.410.200004.5.4.1.104,";
accept_cert_npki += "TradeSignCA:1.2.410.200012.1.1.1:1.2.410.200012.1.1.101:1.2.410.200012.1.1.103:1.2.410.200012.1.1.105,";
accept_cert_npki += "TradeSignCA2:1.2.410.200012.1.1.1:1.2.410.200012.1.1.101:1.2.410.200012.1.1.103:1.2.410.200012.1.1.105";  //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡

//¿î¿µ ¹Ý¿µ½Ã¿¡´Â »èÁ¦ - ÇÑ±¹ Áõ±ÇÀü»ê SignKorea Test CA
accept_cert_npki +=",SignKorea Test CA";

accept_cert_rpki += "ÀüÀÚÁõ¸í°ü¸®¼ÒCA"; // RPKI ÀÎÅÍ³Ý¿ë

//¿î¿µ ¹Ý¿µ½Ã¿¡´Â »èÁ¦ -
accept_cert_rpki += ",°³¹ßCA,°³¹ßÅ×½ºÆ®CA,°íµµÈ­°³¹ßCA";

accept_cert_gpki += "CA131000001,CA131000002,CA131000010,";
accept_cert_gpki += "CA131100001,CA131100002"; //ÀÎÁõ¼­ °íµµÈ­ Ãß°¡
// µðÆúÆ®·Î NPKI Àû¿ë
accept_cert = accept_cert_npki;

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

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

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

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

////////////////////////////////////////////////////////////////////////////////////////////////
//   PKI Type Á¤ÀÇ   ;  by ytjeon 2005-08-17
//   var pki_type =
//      "RPKI"    : RPKI ÀÎÁõ¼­ »ç¿ë 
//      "NPKI"    : NPKI ÀÎÁõ¼­ »ç¿ë
//      "GPKI"    : GPKI ÀÎÁõ¼­ »ç¿ë 
//
//   µðÆúÆ® °ªÀº "NPKI"·Î ÁöÁ¤µÇ¾î ÀÖ´Ù.
//   ÀÌ °ªÀ» º¯°æÇÏ·Á¸é Á÷Á¢ ÆíÁýÇÏÁö ¸»°í setPKIType() ÇÔ¼ö¸¦ »ç¿ëÇÒ °Í.
//
//                                                 ¿¹) setPKIType("RPKI");
////////////////////////////////////////////////////////////////////////////////////////////////
var pki_type = "NPKI";

////////////////////////////////////////////////////////////////////////////////////////////////
// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
// ·ÎÄÃPC, °³¹ß(°³Å×Æ÷ÇÔ)¼­¹ö, ¸ðµ¨µî±â¼Ò, ¿î¿µ¼­¹ö¿¡ ÀûÀýÇÏ°Ô ÁÖ¼®À» Ç®¾î »ç¿ëÇÒ °Í
////////////////////////////////////////////////////////////////////////////////////////////////
var xgate_addr = "";

////////////////////////////////////////////////////////////////////////////////////////////////
//  Xgate ÁÖ¼Ò Á¤ÀÇ  ; by ytjeon 2005-08-17
//
//  ·ÎÄÃPC, °³¹ß(°³Å×Æ÷ÇÔ)¼­¹ö, ¸ðµ¨µî±â¼Ò, ¿î¿µ¼­¹ö¿¡ ÀûÀýÇÏ°Ô ÁÖ¼®À» Ç®¾î »ç¿ëÇÒ °Í
////////////////////////////////////////////////////////////////////////////////////////////////
//var xgate_addr_npki = "211.61.13.150:1443:18080";
//var xgate_addr_npki = window.location.hostname + ":1443:18080";

//var xgate_addr_rpki = "211.61.13.150:1443:18080";
//var xgate_addr_rpki = window.location.hostname + ":3443:7080";

//var xgate_addr_gpki = "211.61.13.150:1443:18080";
//var xgate_addr_gpki = window.location.hostname + ":1443:18080";

///////////////////////////////////////////////////////////////////////////////////
// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
var xgate_addr_npki = "211.61.13.150:1443:18080";
var xgate_addr_rpki = "211.61.13.150:1443:18080";
var xgate_addr_gpki = "211.61.13.150:1443:18080";

//xgate_addrÀ» µðÆúÆ®·Î NPKI·Î ¼³Á¤
xgate_addr = xgate_addr_npki;

var infoURL = 'http://' + window.location.host + '/XecureObject/Update/dll_update.ini.sig';

///////////////////////////////////////////////////////////////////////////////////
// Netscape plugin version information
var packageURL = 'http://' + window.location.host + '/XecureObject/NPXecSSL_Install.jar';

//----------------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡»çÇ× 2009.04.28
var XWMSIEUpdateCtrl = {
	mName			: "XecureWebBaseCtrl",
	mCID			: "CLSID:0B13E3E0-8907-45C7-9C50-C700C68DFBA0",
	mCodeBase		: "http://warmstar.softforum.com/upload/xwliveupdate_install.cab#Version=1,2,1,1"
}

var XWMSIECtrl = {
	mName			: "XecureWeb",
	mCID			: "CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404",
	mCodeBase		: "http://" + window.location.host + "/XecureObject/xw_install.cab#Version=7,2,4,2",
	mLicense		: null,
	mStorage		: "hard,removable,csp,iccard,pkcs11",
	//mSecOption		: "4608:hard:iccard:pkcs11",
	mSecOption		: null,
	mSecKey		    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext		: null
}

//64bit added start
var XWMSIECtrlx64 = {
	mName			: "XecureWeb",
	mCID			: "CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404",
	mCodeBase		: "http://" + window.location.host + "/re1/module/xw_install_64bit.cab#Version=7,2,4,1",
	mLicense		: null,
	mStorage		: "hard,removable,csp,iccard,pkcs11",
	//mSecOption		: "4608:hard:iccard:pkcs11",
	mSecOption		: null,
	mSecKey		    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext		: null
}
//end of 64bit adding

var XWFirefoxCtrl = {
	mName				: "XecureWeb",
	mType				: "application/xecure-plugin",
	mLicense		    : null,
	mStorage			: "hard,removable,pkcs11",
	//mSecOption			: "512:hard:iccard:pkcs11",
	mSecOption			: null,
	mSecKey			    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext			: null,

//	mWinVersion			: "7.0.0.0",
//	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
//	mWin64Src			: null,

	mLinuxVersion		: "7.2.0.0",
	mLinux32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_linux_x86.xpi"},
	mLinux64Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_linux_x86_64.xpi"},

	mMacVersion			: "7.2.0.0",
	mMacPPCSrc			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_mac_ppc.xpi"},
	mMacIntelSrc		: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_mac_intel.xpi"}

}

var XWSafariCtrl = {
	mName				: "XecureWeb",
	mType				: "application/xecure-plugin",
	mLicense		    : null,
	mStorage			: "hard,removable,pkcs11",
	//mSecOption			: "512:hard:iccard:pkcs11",
	mSecOption			: null,
	mSecKey			    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext			: null,

	mWinVersion			: null,
	mWin32Src			: null,
	mWin64Src			: null,

	mLinuxVersion		: null,
	mLinux32Src			: null,
	mLinux64Src			: null,

	mMacVersion			: "7.2.0.0",
	mMacPPCSrc			: "http://" + window.location.host + "/XecureObject/xw_install_mac_ppc.dmg",
	mMacIntelSrc		: "http://" + window.location.host + "/XecureObject/xw_install_mac_intel.dmg"
}

var XWNetscapeCtrl = {
	mName				: "XecureWeb",
	mType				: "application/xecure-plugin",

	mWinVersion			: "7.0.0.1",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin64Src			: null,

	mLinuxVersion		: null,
	mLinux32Src			: null,
	mLinux64Src			: null,

	mMacVersion			: null,
	mMacPPCSrc			: null,
	mMacIntelSrc		: null
}


var XWNetscapeCtrl4 = {
	mName				: "XecureWeb",
	mType				: "application/x-SoftForum-XecSSL40",

	mWinVersion			: "5.5.0.0",
	mWin32Src			: "http://" + window.location.host + "/XecureObject/NPXecSSL_Install.jar",
	mWin64Src			: null,

	mLinuxVersion		: null,
	mLinux32Src			: null,
	mLinux64Src			: null,

	mMacVersion			: null,
	mMacPPCSrc			: null,
	mMacIntelSrc		: null
}

if (gHostName =="127.0.0.1")
{
	var XW_Win32PluginBrowser = {
		mName				: "XecureWeb",
		mType				: "application/xecureweb-plugin",
		mLicense			: null,
		mStorage			: "hard,removable,csp,iccard,pkcs11",
		//mSecOption			: "4608:hard:iccard:pkcs11",
		mSecOption			: null,
		mSecKey				: "XW_SKS_JRSOFT_DRIVER",
		mSecContext			: null,

		mWinVersion			: "7.2.4.2",				// À©µµ¿ì¿¡ ¼³Ä¡µÈ ÇÃ·¯±×ÀÎ ¹öÀü
		mWin32Src			: "http://" + window.location.host + "/XecureObject/xw_install.exe",		// Windows OS ÇÃ·¯±×ÀÎ¿¡¼­ ¼³Ä¡ °ü·Ã ¸µÅ©...
		mWin64Src			: null,

		mPluginLicense		: "30820695020101310b300906052b0e03021a0500307306092a864886f70d010701a0660464313a3132372e302e302e313a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c652c5365614d6f6e6b65795f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000b734c2cb96cca466b363090ea2a29404ddd7151f8fb3c18a27d67d6eeb2eddf3e5d3dee8a5fb0228a9aa2d84a2649bbabc721d241fb4ab146ec88b06d1ce7058f5ff21dd46c3d7f1b9c1e6648fed94d26d646ca574ad5ad4ee2a1923d72d799bda9bf1425394d49be27a7fd5266c43297cfda190807c9ecaad4111ad1d6e2ce948e3d4d9ec9457c3ba678f3b0763a56b72f1a8302a934abef90b9f7fd92df2ef86a4b8d1fe9bb7c224af86418a6001ebd94fee31a7b78f7b8fb82f63d628690729a20eae0f815f8147e16dc8809360ed6af8b4eb6eb9a69a393033e8c5dd068c760232c0fbed476c7249cb9c68b5bf16b486e486d12cd6712b8d69e13b0d303"
	}
}else if(gHostName =="165.244.7.26")
{
	var XW_Win32PluginBrowser = {
		mName				: "XecureWeb",
		mType				: "application/xecureweb-plugin",
		mLicense			: null,
		mStorage			: "hard,removable,csp,iccard,pkcs11",
		//mSecOption			: "4608:hard:iccard:pkcs11",
		mSecOption			: null,
		mSecKey				: "XW_SKS_JRSOFT_DRIVER",
		mSecContext			: null,

		mWinVersion			: "7.2.4.2",				// À©µµ¿ì¿¡ ¼³Ä¡µÈ ÇÃ·¯±×ÀÎ ¹öÀü
		mWin32Src			: "http://" + window.location.host + "/XecureObject/xw_install.exe",		// Windows OS ÇÃ·¯±×ÀÎ¿¡¼­ ¼³Ä¡ °ü·Ã ¸µÅ©...
		mWin64Src			: null,

		mPluginLicense		: "30820698020101310b300906052b0e03021a0500307606092a864886f70d010701a0690467313a3136352e3234342e372e32363a4368726f6d655f456e61626c653b46697265666f785f456e61626c653b4e657473636170655f456e61626c653b4f706572615f456e61626c653b5361666172695f456e61626c653b5365614d6f6e6b65795f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d010105050004820100306eff3f12c4cbdf58d801224eed14409ee0bd5ba52ed0b8f3c84e8dcc71ef35562d1a6401b919f6dc7b6c349f9a96841925509f4bab6d000e469de5e865ceb84e1153a14375ca9e057a46b43afe8d8cbd90f3f1ddca3e4dfaa9dd357b1f8e381bec3e894c9a561dfb52ab8fc67454ea9b238402375a176ed09e42d958ee577b0ff0285e9432157c192124f575ef90e68e036569390332453b7680677c934f184c9e3d7f7fc9c0595b76918617e3f23fbc38b76899c3180c409299da580c5610f217f61cf1c4c86ce52df4426724e812b5ac8797c24a39287c98669543dbf383dcac3b57b3d246f4752efb1da9ee26b5af06244455551fc839ea5f97f6bd8e64"
	}
}else if(gHostName =="www.iros.go.kr")
{	
	var XW_Win32PluginBrowser = {
		mName				: "XecureWeb",
		mType				: "application/xecureweb-plugin",
		mLicense			: null,
		mStorage			: "hard,removable,csp,iccard,pkcs11",
		//mSecOption			: "4608:hard:iccard:pkcs11",
		mSecOption			: null,
		mSecKey				: "XW_SKS_JRSOFT_DRIVER",
		mSecContext			: null,

		mWinVersion			: "7.2.4.2",				// À©µµ¿ì¿¡ ¼³Ä¡µÈ ÇÃ·¯±×ÀÎ ¹öÀü
		mWin32Src			: "http://" + window.location.host + "/XecureObject/xw_install.exe",		// Windows OS ÇÃ·¯±×ÀÎ¿¡¼­ ¼³Ä¡ °ü·Ã ¸µÅ©...
		mWin64Src			: null,

		mPluginLicense		: "3082069a020101310b300906052b0e03021a0500307806092a864886f70d010701a06b0469313a7777772e69726f732e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c652c5365614d6f6e6b65795f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d01010505000482010021998961ea6ee6b4ec251e44b7ea46b083e2b2bd77d41652e950c04e748d8dc980e917246e398dcd5e5894c9f6ca0b052a555ed751ecb2c246ba828159cfe8309b4bc18e70b54676a151350c95e3f39db694a422c191e9d826ade6e869664eaaf45bd49fd2d06c7a4dfa12f9ee1a56a01a9edbaad1eccf1f8a8aae9e68d62dafb2e80f4c36a393f7bc6810ef88cc971dff0ea338ce705d72b71fa11b115b150ef8dd726e7e98a1ac24e91a994cb68a26a4c4e6dce49c749a73b440713f2d875359fb4ecd54e282b825887cf164d95929a8b58ff6f5089790c45a65d2d146ade75a888d9e5cbf8fb4e3ec68032a80536ab95fafa5f6f150a66be1aaa202ba431d"
	}
}else if(gHostName =="www.iros.go.kr")
{	
	var XW_Win32PluginBrowser = {
		mName				: "XecureWeb",
		mType				: "application/xecureweb-plugin",
		mLicense			: null,
		mStorage			: "hard,removable,csp,iccard,pkcs11",
		//mSecOption			: "4608:hard:iccard:pkcs11",
		mSecOption			: null,
		mSecKey				: "XW_SKS_JRSOFT_DRIVER",
		mSecContext			: null,

		mWinVersion			: "7.2.4.2",				// À©µµ¿ì¿¡ ¼³Ä¡µÈ ÇÃ·¯±×ÀÎ ¹öÀü
		mWin32Src			: "http://" + window.location.host + "/XecureObject/xw_install.exe",		// Windows OS ÇÃ·¯±×ÀÎ¿¡¼­ ¼³Ä¡ °ü·Ã ¸µÅ©...
		mWin64Src			: null,

		mPluginLicense		: "3082069a020101310b300906052b0e03021a0500307806092a864886f70d010701a06b0469313a6e65772e69726f732e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c652c5365614d6f6e6b65795f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201003b2f16c13dda0d391f9000f84ff1a0164962a903a4e9e9769965a844f16c6efa2b5f7798c0bd961e5a5da90ac2b2cce7b8354cc1b960095bb9d582e7edc0142f9cf3edb332ac79c0cb75721b4db43ad54d81adb1e13bf04fdb68214231c4eec3ddb2e10a6afffb6b3c325ef3038334379d09e247a97b0ff73125517852059b6fd672bd52b4a08c91c599f8a6ca1d5cc882a07876bf1ed78b292176ab977401e3700e6b7c47f3e3263beb2dffbfbb9d2e42755675aa9be76937af25be2b07cca46a40bc8ef0a83129ca7d4d647755baf6fee6ddb8240a4c9f4958f7097b69fb0523af0c699443fad5ae6078771c0ddebeec9211accc1e9ea54072056e7f609068"
	}
}

XWBrowser.prototype = {
	getBrowserName : function ()
	{
		var result;

		if (this.mUserAgent.indexOf (this.cMSIE) != -1)				// Explorer
			result = this.cMSIE;

		else if (this.mUserAgent.indexOf (this.cOPERA) != -1)			// Opera
					result = this.cOPERA;
					
		else if (this.mUserAgent.indexOf (this.cSEAMONKEY) != -1)		// Seamonkey
					result = this.cSEAMONKEY;

		else if (this.mUserAgent.indexOf (this.cSAFARI) != -1)		// Å©·ÒÀÇ mUserAgent³»¿ë¿¡ "»çÆÄ¸®", "Å©·Ò" ½ºÆ®¸µÀÌ °°ÀÌ µé¾î ÀÖ´Ù
		{
			if (this.mUserAgent.indexOf (this.cCHROME) != -1)
				result = this.cCHROME;
			else
				result = this.cSAFARI;
		}	

		else if (this.mUserAgent.indexOf (this.cFIREFOX) != -1)
		{
			if (this.mUserAgent.indexOf (this.cNETSCAPE) != -1)		// Netscape 6
				result = this.cNETSCAPE;
			else
				result = this.cFIREFOX;								// Firefox
		}
		else if (this.mUserAgent.indexOf ("BonEcho") != -1)	// Netscape 6
			result = this.cFIREFOX;								// Firefox


		else if (this.mUserAgent.indexOf (this.cNETSCAPE) != -1)	// Netscape 6
			result = this.cNETSCAPE;

		else if (this.mUserAgent.indexOf ("Mozilla/4") != -1)		// Netscape 4
			result = this.cNETSCAPE4;

		else
			result = this.cUNSUPPORT;								// Unsupport

		return result;
	},

	getBrowserVersion : function ()
	{
		var result;
		var fromIndex = this.mUserAgent.indexOf (this.mBrowser);

		if (this.mBrowser == this.cMSIE)
		{
			fromIndex += 5;
			result = this.mUserAgent.substring (fromIndex,
												this.mUserAgent.indexOf (";", fromIndex));
		}
		else if (this.mBrowser == this.cSAFARI)
		{
			fromIndex = this.mUserAgent.indexOf ("Version") + 8;
			result = this.mUserAgent.substring (fromIndex,
												this.mUserAgent.indexOf (" ", fromIndex));
		}
		else if (this.mBrowser == this.cFIREFOX)
		{
			fromIndex += 8;
			result = this.mUserAgent.substring (fromIndex);
		}
		else if (this.mBrowser == this.cNETSCAPE)
		{
			fromIndex += 10;
			result = this.mUserAgent.substring (fromIndex);
		}
		else if (this.mBrowser == this.cNETSCAPE4)
		{
			fromIndex = this.mUserAgent.indexOf ("Mozilla") + 8;
			result = this.mUserAgent.substring (fromIndex, fromIndex + 4);
		}
		else
			result = 0;

		return result;
	},

	getUpdateTag : function ()
	{
		var result = "";
		if (this.mBrowser == this.cMSIE)
		{
			result = "<OBJECT ";
			result += "ID=\"" + XWMSIEUpdateCtrl.mName + "\" ";
			result += "CLASSID=\"" + XWMSIEUpdateCtrl.mCID + "\" ";
			result += "CODEBASE=\"" + XWMSIEUpdateCtrl.mCodeBase + "\" ";
			result += "width=0 height=0>";
			result += "No XecureWeb LiveUpdate";
			result += "</OBJECT>";
		}

		return result;
	},

	getObjectTag : function (aPluginFlag, aBrowser)
	{
		var result;
		var XWBrowserCtrl;

		if (aBrowser == undefined)
			return this.getObjectTag (aPluginFlag, this.mBrowser);
		else if (this.mPlatform == this.cWIN32)			// win32 ºê¶ó¿ìÀú 
		{
			if (aBrowser == this.cMSIE)
			{
				if (aPluginFlag == 0)
					XWBrowserCtrl = XWMSIECtrl;
				else
					XWBrowserCtrl = XWFileMSIECtrl;

				result = "<OBJECT ";
				result += "ID=\"" + XWBrowserCtrl.mName + "\" ";
				result += "CLASSID=\"" + XWBrowserCtrl.mCID + "\" ";
				result += "CODEBASE=\"" + XWBrowserCtrl.mCodeBase + "\" ";
				result += "width=0 height=0>";
				result += "<PARAM NAME=\"LICENSE\"     VALUE=\""	+ XWBrowserCtrl.mLicense + "\">";
				result += "<PARAM NAME=\"storage\"     VALUE=\""	+ XWBrowserCtrl.mStorage + "\">";
				result += "<PARAM NAME=\"sec_option\"  VALUE=\""	+ XWBrowserCtrl.mSecOption + "\">";
				result += "<PARAM NAME=\"SECKEY\"      VALUE=\""	+ XWBrowserCtrl.mSecKey + "\">";
				result += "<PARAM NAME=\"sec_context\" VALUE=\""	+ XWBrowserCtrl.mSecContext + "\">";
				result += "No XecureWeb PlugIn";
				result += "</OBJECT>";

			}
			else // À©µµ¿ì ÇÃ·¯±×-ÀÎ  ºê¶ó¿ìÀú Property ÀÌ¸§ ´Ù¸£´Ù...,
			{	
				if (aPluginFlag == 0)
					XWBrowserCtrl = XW_Win32PluginBrowser;
				else
					XWBrowserCtrl = XWFile_Win32PluginBrowser;

				//result = "&nbsp;";
				result = "<EMBED ";
				result += "NAME=\""		+ XWBrowserCtrl.mName + "\" ";
				result += "TYPE=\""		+ XWBrowserCtrl.mType + "\" ";
				result += "width=0 height=0 ";
				result += "hidden=true ";
				result += "FuncLicense=\""	+ XWBrowserCtrl.mLicense + "\" ";
				result += "CertLocation=\""	+ XWBrowserCtrl.mStorage + "\" ";
				result += "SecOption=\""	+ XWBrowserCtrl.mSecOption + "\" ";
				result += "SecKeyStroke=\""	+ XWBrowserCtrl.mSecKey + "\" ";
				result += "SecContext=\""	+ XWBrowserCtrl.mSecContext + "\" ";
				result += "PluginLicense=\""	+ XWBrowserCtrl.mPluginLicense + "\" ";
				result += ">";
				result += "</EMBED>";
				result += "<NOEMBED>No XecureWeb PlugIn</NOEMBED>";
			}

			if (this.mPlatform.indexOf (this.cWIN32) == -1)
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
		}
		//64bit added start
		else if (this.mPlatform == this.cWIN64 || this.mUserAgent.indexOf (this.cWIN64) != -1)
		{
			if (aBrowser == this.cMSIE)
			{
				if (aPluginFlag == 0)
					XWBrowserCtrl = XWMSIECtrlx64;
				else
					XWBrowserCtrl = XWFileMSIECtrlx64;

				result = "<OBJECT ";
				result += "ID=\"" + XWBrowserCtrl.mName + "\" ";
				result += "CLASSID=\"" + XWBrowserCtrl.mCID + "\" ";
				result += "CODEBASE=\"" + XWBrowserCtrl.mCodeBase + "\" ";
				result += "width=0 height=0>";
				result += "<PARAM NAME=\"LICENSE\"     VALUE=\""	+ XWBrowserCtrl.mLicense + "\">";
				result += "<PARAM NAME=\"storage\"     VALUE=\""	+ XWBrowserCtrl.mStorage + "\">";
				result += "<PARAM NAME=\"sec_option\"  VALUE=\""	+ XWBrowserCtrl.mSecOption + "\">";
				result += "<PARAM NAME=\"SECKEY\"      VALUE=\""	+ XWBrowserCtrl.mSecKey + "\">";
				result += "<PARAM NAME=\"sec_context\" VALUE=\""	+ XWBrowserCtrl.mSecContext + "\">";
				result += "No XecureWeb PlugIn";
				result += "</OBJECT>";

			}
			else // À©µµ¿ì ÇÃ·¯±×-ÀÎ  ºê¶ó¿ìÀú Property ÀÌ¸§ ´Ù¸£´Ù...,
			{
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
			}
		}
        //end of 64bit adding
		else if (aBrowser == this.cFIREFOX)
		{
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWFirefoxCtrl;
			else
				XWBrowserCtrl = XWFileFirefoxCtrl;

			result = "<EMBED ";
			result += "NAME=\""		+ XWBrowserCtrl.mName + "\" ";
			result += "TYPE=\""		+ XWBrowserCtrl.mType + "\" ";
			result += "width=0 height=0 ";
			result += "hidden=true ";
			result += "LICENSE=\""	+ XWBrowserCtrl.mLicense + "\" ";
			result += "storage=\""	+ XWBrowserCtrl.mStorage + "\" ";
			result += "sec_option=\""	+ XWBrowserCtrl.mSecOption + "\" ";
			result += "SECKEY=\""	+ XWBrowserCtrl.mSecKey + "\" ";
			result += "sec_context=\""	+ XWBrowserCtrl.mSecContext + "\" ";
			result += ">";
			result += "</EMBED>";
			result += "<NOEMBED>No XecureWeb PlugIn</NOEMBED>";

			if (this.mPlatform.indexOf (this.cWIN) != -1
				|| this.mPlatform.indexOf (this.cLINUX) != -1
				|| this.mPlatform.indexOf (this.cMAC) != -1)
			{
				if (this.mPlatform == this.cWIN64)
					result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
			}

			else
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
		}
		else if (aBrowser == this.cSAFARI)
		{
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWSafariCtrl;
			else
				XWBrowserCtrl = XWFileSafariCtrl;
			
			//result = "&nbsp;";
			result = "<EMBED ";
			result += "NAME=\""		+ XWBrowserCtrl.mName + "\" ";
			result += "TYPE=\""		+ XWBrowserCtrl.mType + "\" ";
			result += "width=0 height=0 ";
			result += "hidden=true ";
			result += "LICENSE=\""	+ XWBrowserCtrl.mLicense + "\" ";
			result += "storage=\""	+ XWBrowserCtrl.mStorage + "\" ";
			result += "sec_option=\""	+ XWBrowserCtrl.mSecOption + "\" ";
			result += "SECKEY=\""	+ XWBrowserCtrl.mSecKey + "\" ";
			result += "sec_context=\""	+ XWBrowserCtrl.mSecContext + "\" ";
			result += ">";
			result += "</EMBED>";
			result += "<NOEMBED>No XecureWeb PlugIn</NOEMBED>";

			if (this.mPlatform.indexOf (this.cMAC) == -1)
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";

		}
		else if (aBrowser == this.cNETSCAPE)
		{
			result = "<EMBED ";
			result += "NAME=\""		+ XWNetscapeCtrl.mName + "\" ";
			result += "TYPE=\""		+ XWNetscapeCtrl.mType + "\" ";
			result += "width=0 height=0 ";
			result += "hidden=true>";
			result += "</EMBED>";
			result += "<NOEMBED>No XecureWeb PlugIn</NOEMBED>";

			if (this.mPlatform.indexOf (this.cWIN32) == -1)
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
		}
		else if (aBrowser == this.cNETSCAPE4)
		{
			result = "<EMBED ";
			result += "NAME=\""		+ XWNetscapeCtrl4.mName + "\" ";
			result += "TYPE=\""		+ XWNetscapeCtrl4.mType + "\" ";
			result += "width=0 height=0 ";
			result += "hidden=true>";
			result += "</EMBED>";
			result += "<NOEMBED>No XecureWeb PlugIn</NOEMBED>";

			if (this.mPlatform.indexOf (this.cWIN32) == -1)
				result = "Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÁ®ÀÔ´Ï´Ù.";
		}
		else
		{
			result = "No XecureWeb PlugIn";
		}

		return result;
	},

	checkCtrl : function (aVersion)
	{
		var result = false;
		var xecuremime;

		if (aVersion == null || aVersion == undefined)
			return result;

		if(this.mPlatform == this.cWIN32)							// À©µµ¿ì ºê¶ó¿ìÀú
		{
			if (this.mBrowser == this.cMSIE)						// windows IE [ActiveX]
				return result;
			else if( this.mBrowser == this.cFIREFOX 				// windows Plugins browser
				   || this.mBrowser == this.cSAFARI 
				   || this.mBrowser == this.cNETSCAPE
				   || this.mBrowser == this.cOPERA
				   || this.mBrowser == this.cCHROME
				   || this.mBrowser == this.cSEAMONKEY)
			{
				xecuremime = navigator.mimeTypes[XW_Win32PluginBrowser.mType];
			}	   
		}
		//64bit added start
		else if((this.mPlatform == this.cWIN64) && (this.mBrowser == this.cMSIE)) // À©µµ¿ì 64 ºê¶ó¿ìÀú
		{
				return result;
		}
		//end of 64bit adding
		else														// ¸®´ª½º, MAC OS
		{
			if (this.mBrowser == this.cFIREFOX)
				xecuremime = navigator.mimeTypes[XWFirefoxCtrl.mType];
			else if (this.mBrowser == this.cSAFARI)
				xecuremime = navigator.mimeTypes[XWSafariCtrl.mType];
			else if (this.mBrowser == this.cNETSCAPE)
				xecuremime = navigator.mimeTypes[XWNetscapeCtrl.mType];
		}

		if (xecuremime)
		{
			result = this.checkCtrlVersion(xecuremime.enabledPlugin.description, aVersion);
		}
		else
			result = true;

		return result;
	},

	checkCtrlVersion : function (aDesc, aVersion)
	{
		var index = aDesc.indexOf('v.', 0);
		if (index < 0)	return true;

		aDesc += ' ';
		var versionString = aDesc.substring(index +2, aDesc.length);

		var arrayOfStrings = versionString.split('.');
		var thisMaj = parseInt(arrayOfStrings[0], 10);
		var thisMin = parseInt(arrayOfStrings[1], 10);
		var thisRel = parseInt(arrayOfStrings[2], 10);
		var thisLast = parseInt(arrayOfStrings[3], 10);

		arrayOfStrings = aVersion.split('.');

		var s_verMaj = parseInt(arrayOfStrings[0], 10);
		var s_verMin = parseInt(arrayOfStrings[1], 10);
		var s_verRel = parseInt(arrayOfStrings[2], 10);
		var s_verLast = parseInt(arrayOfStrings[3], 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;

		if (thisLast > s_verLast)	return false;
		if (thisLast < s_verLast)	return true;

		return false;
	},

	installCtrl : function ()
	{
		var result;

		if (this.mBrowser == this.cFIREFOX)
		{	// Win32, Linux32, Linux64
			if (this.mPlatform == this.cWIN32)
				result = this.installWindowPlugin (XW_Win32PluginBrowser.mWin32Src);				//À©µµ¿ì ÇÃ·¯±×ÀÎ ¼öµ¿ ¼³Ä¡
			else if (this.mPlatform.indexOf (this.cLINUX) != -1)
			{
				if (this.mPlatform == this.cLINUX64)
					result = this.installGecko (XWFirefoxCtrl.mLinux64Src);
				else
					result = this.installGecko (XWFirefoxCtrl.mLinux32Src);
			}
			else if (this.mPlatform.indexOf (this.cMAC) != -1)
			{
				if (this.mPlatform == this.cMACPPC)
					result = this.installGecko (XWFirefoxCtrl.mMacPPCSrc);
				else
					result = this.installGecko (XWFirefoxCtrl.mMacIntelSrc);
			}
		}

		else if (this.mBrowser == this.cSAFARI)
		{	// MacPPC, MacIntel
			if (this.mPlatform == this.cMACPPC)
				result = window.open(XWSafariCtrl.mMacPPCSrc, 'self');
			else if (this.mPlatform == this.cMACINTEL)
				result = window.open(XWSafariCtrl.mMacIntelSrc, 'self');
			else if (this.mPlatform == this.cWIN32)
				result = window.open(XW_Win32PluginBrowser.mWin32Src, 'self');					//À©µµ¿ì ÇÃ·¯±×ÀÎ ¼öµ¿ ¼³Ä¡
		}
		else if (this.mBrowser == this.cNETSCAPE)
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installWindowPlugin (XW_Win32PluginBrowser.mWin32Src);			//À©µµ¿ì ÇÃ·¯±×ÀÎ ¼öµ¿ ¼³Ä¡
		}
		else if (this.mBrowser == this.cNETSCAPE4)
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installNetscape (XWNetscapeCtrl4.mWin32Src);
		}
		
		else if (this.mBrowser == this.cOPERA)												//À©µµ¿ì ¿ÀÆä¶ó 
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installWindowPlugin (XW_Win32PluginBrowser.mWin32Src);
		}
		
		else if (this.mBrowser == this.cCHROME)												//À©µµ¿ì Å©·Ò 
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installWindowPlugin (XW_Win32PluginBrowser.mWin32Src);						
		}
		
		else if (this.mBrowser == this.cSEAMONKEY)											// À©µµ¿ì ½Ã¸ùÅ°
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installWindowPlugin (XW_Win32PluginBrowser.mWin32Src);
		}

		return result;
	},

	installGecko : function (aSrc)
	{
		var result = null;

		function xpiCB (url, status)
		{
			if( status != 0 ) {
				// error occurred
				alert( status + " : " + url);
			}
		}

		result = InstallTrigger.install (aSrc, xpiCB);

		return result;
	},

	installNetscape : function (aSrc)
	{
		var result = false;

		if ( navigator.javaEnabled() )
		{
			var trigger = netscape.softupdate.Trigger;
			if ( trigger.UpdateEnabled() )
			{
				result = trigger.StartSoftwareUpdate( aSrc, trigger.DEFAULT_MODE);
			}
			else
				alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
		}
		else
			alert('Java ½ÇÇàÀ» °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');

		return result;
	},

	installWindowPlugin : function (aSrc)											// À©µµ¿ì ÇÃ·¯±×ÀÎ ¼³Ä¡
	{
		var result = false;
		// À©µµ¿ì ÇÃ·¯±×ÀÎ ¼öµ¿ ¼³Ä¡ URL				//  aSrc ÀÎÀÚ°ª ¼öÁ¤Àº ±¸Á¶Ã¼ : XW_Win32PluginBrowser ¼öÁ¤ÇÑ´Ù.
		alert("ÇÃ·¯±×ÀÎÀÌ ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê°Å³ª, ÇÏÀ§ ¹öÀü ÇÃ·¯±× ÀÎ ¼³Ä¡ µÇ¾î ÀÖ½À´Ï´Ù.\n¼³Ä¡ ÈÄ ºê¶ó¿ìÀú¸¦ ´Ù½Ã ½ÇÇàÇØÁÖ¼¼¿ä.");
		location.href = aSrc;
		//window.open(aSrc);
		return result;
	},

	updateModules : function ( aModuleName, aSetupURL, aUpdateURL, aOption)
	{
		var aResult = false;

		if (this.mBrowser != this.cMSIE)
		{
			var aVersion;

			if (this.mBrowser == this.cFIREFOX)
			{
				if (this.mPlatform.indexOf (this.cWIN) != -1)
					aVersion = XWFirefoxCtrl.mWinVersion;
				else if (this.mPlatform.indexOf (this.cLINUX) != -1)
					aVersion = XWFirefoxCtrl.mLinuxVersion;
				else if (this.mPlatform.indexOf (this.cMAC) != -1)
					aVersion = XWFirefoxCtrl.mMacVersion;
			}
			else if (this.mBrowser == this.cSAFARI)
			{
				if (this.mPlatform.indexOf (this.cWIN) != -1)
					aVersion = XWSafariCtrl.mWinVersion;
				else if (this.mPlatform.indexOf (this.cLINUX) != -1)
					aVersion = XWSafariCtrl.mLinuxVersion;
				else if (this.mPlatform.indexOf (this.cMAC) != -1)
					aVersion = XWSafariCtrl.mMacVersion;
			}
			else if (this.mBrowser == this.cNETSCAPE)
			{
				if (this.mPlatform.indexOf (this.cWIN) != -1)
					aVersion = XWNetscapeCtrl.mWinVersion;
				else if (this.mPlatform.indexOf (this.cLINUX) != -1)
					aVersion = XWNetscapeCtrl.mLinuxVersion;
				else if (this.mPlatform.indexOf (this.cMAC) != -1)
					aVersion = XWNetscapeCtrl.mMacVersion;
			}
			else if (this.mBrowser == this.cNETSCAPE4)
			{
				if (this.mPlatform.indexOf (this.cWIN) != -1)
					aVersion = XWNetscapeCtrl4.mWinVersion;
				else if (this.mPlatform.indexOf (this.cLINUX) != -1)
					aVersion = XWNetscapeCtrl4.mLinuxVersion;
				else if (this.mPlatform.indexOf (this.cMAC) != -1)
					aVersion = XWNetscapeCtrl4.mMacVersion;
			}
			else
				aVersion = null;

			if (aVersion == null)
			{
				alert ("Unsupported Browser!!");
				return aResult;
			}

			if (this.checkCtrl (aVersion))
			{
				this.installCtrl();
			}

			aResult = true;
		}

		else
		{
			var errCode = 0;
			var errMsg;

			document.write (this.getUpdateTag());
			/*
			 * #define UPDATE_OK               1   // ¾÷µ¥ÀÌÆ®¿¡ ¼º°øÇÑ °æ¿ì
			 * #define UPDATE_CANCEL           2   // ¾÷µ¥ÀÌÆ®¸¦ Ãë¼ÒÇÑ °æ¿ì
			 * #define UPDATE_ALREADY          3   // ÇÏ·ç¿¡ ÇÑ ¹ø ÀÌ¹Ì ¾÷µ¥ÀÌÆ®¸¦ ¼öÇàÇÑ °æ¿ì
			 *
			 * #define UPDATE_ERROR            -1  // ±× ¿ÜÀÇ ¾÷µ¥ÀÌÆ®¿¡¼­ ¿À·ù°¡ ³­ °æ¿ì
			 * #define UPDATE_COPY_ERROR       -2  // º¹»çÇÏ´Â µµÁß¿¡ »ý±ä ¿¡·¯
			 * #define UPDATE_HOLDING          -3  // »ç¿ëÁßÀÎ ÆÄÀÏÀÌ ÀÖ¾î¼­ ¾÷µ¥ÀÌÆ®¸¦ ¸øÇÏ´Â °æ¿ì
			 * #define UPDATE_INVALID_USER     -4  // °ü¸®ÀÚ·Î ·Î±×ÀÎÀ» ÇØ¾ß ¾÷µ¥ÀÌÆ®°¡ °¡´ÉÇÑ °æ¿ì
			 * #define UPDATE_NEED_NOT         -5
			 * #define UPDATE_USIGN            -6
			 * #define UPDATE_INVALID_URL      -7  // Update Á¤º¸¸¦ °¡Áø iniÆÄÀÏÀÇ urlÀÌ Àß¸øµÈ °æ¿ì
			 * #define UPDATE_FAIL_DIR         -8  // µð·ºÅä¸® »ý¼º ½ÇÆÐ
			 * #define INSTALL_ERROR           -9  // ¼³Ä¡ÆÄÀÏ·Î ¼³Ä¡ÇÏ´Ù°¡ ¿À·ù°¡ ³­ °æ¿ì.
			 * #define UPDATE_REG_ERROR        -10
			 * moduleName : ¼³Ä¡ÇÒ Á¦Ç°¿¡ ²À ÀÖ¾î¾ßÇÒ ÆÄÀÏÀÇ °æ·Î¿Í ÀÌ¸§
			 * setupURL   : ¼³Ä¡ÇÒ Á¦Ç°ÀÌ ¾ø´Â °æ¿ì¿¡ ¼³Ä¡ÆÄÀÏÀ» ¹Þ¾Æ¿Ã URL
			 * updateURL  : ¾÷µ¥ÀÌÆ®¸¦ ÇÒ URL
			 * opution    : ±ä±Þ ¾÷µ¥ÀÌÆ® ½Ã(°­Á¦ ¾÷µ¥ÀÌÆ®) 1, ±×¿ÜÀÇ °æ¿ì 0
			 */          

			try {
				errCode = document.XecureWebBaseCtrl.RunLiveUpdate(aModuleName, aSetupURL, aUpdateURL, aOption);
			} catch (e) {
				// ¼³Ä¡°¡ ¾ÆÁ÷ ¾ÈµÇ¾úÀ» ¶§
				return false;
			}

			switch(errCode)
			{
				case 1: errMsg = "Success / ¼º°øÀûÀ¸·Î ¾÷µ¥ÀÌÆ®¿¡ ¼º°øÇß½À´Ï´Ù. \n\n" + errCode; break;
				case 2: errMsg = "¾÷µ¥ÀÌÆ®¸¦ Ãë¼ÒÇÏ¼Ì½À´Ï´Ù. \n\n" + errCode; break;
				case 3: errMsg = "ÀÌ¹Ì ¾÷µ¥ÀÌÆ®¸¦ ÇÏ¼Ì½À´Ï´Ù. \n\n" + errCode; break;
				case -1: errMsg = "´ã´çÀÚ¿¡°Ô ¹®ÀÇÇÏ¼¼¿ä.(-1) \n\n" + errCode; break;
				case -2: errMsg = "º¹»çÇÏ´Â µµÁß¿¡ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù. \n\n" + errCode; break;
				case -3: errMsg = "»ç¿ëÁßÀÎ ÆÄÀÏÀÌ ÀÖ¾î ¾÷µ¥ÀÌÆ®¿¡ ½ÇÆÐÇß½À´Ï´Ù. \n\n" + errCode; break;
				case -4: errMsg = "¾÷µ¥ÀÌÆ®ÇÒ ¼ö ¾ø´Â ±ÇÇÑÀÔ´Ï´Ù. \n\n" + errCode; break;
				case -5: errMsg = "´ã´çÀÚ¿¡°Ô ¹®ÀÇÇÏ¼¼¿ä.(-5) \n\n" + errCode; break;
				case -6: errMsg = "»ç¿ëÁßÀÔ´Ï´Ù. \n\n" + errCode; break;
				case -7: errMsg = "INIÆÄÀÏ URLÀÌ Àß¸ø ¼³Á¤µÇ¾ú½À´Ï´Ù. \n\n" + errCode; break;
				case -8: errMsg = "µð·ºÅä¸® »ý¼º¿¡ ½ÇÆÐÇß½À´Ï´Ù. \n\n" + errCode; break;
				case -9: errMsg = "¼³Ä¡ÇÏ´Ù°¡ ¿¡·¯°¡ ³µ½À´Ï´Ù. \n\n" + errCode; break;
				default: errMsg = "´ã´çÀÚ¿¡°Ô ¹®ÀÇÇÏ¼¼¿ä. \n\n" + errCode; break;
			}

			if (errCode == 1)
			{
				location.reload(true);
			}
			else if (errCode != 3)
			{
				alert("Error Code : " + errCode + ", Error Msg : " + errMsg);
			}
			else
				aResult = true;
		}

		return aResult;
	}
};

function XWBrowser ()
{
	/* O/S Constant List */
	this.cWIN			= "Win";
	this.cWIN32			= "Win32";
	this.cWIN64			= "Win64";

	this.cLINUX			= "Linux";
	this.cLINUX32		= "Linux i";
	this.cLINUX64		= "Linux x86_64";

	this.cMAC			= "Mac";
	this.cMACPPC		= "MacPPC";
	this.cMACINTEL		= "MacIntel";

	/* Web Browser Constant List */
	this.cMSIE			= "MSIE";
	this.cSAFARI		= "Safari";
	this.cFIREFOX		= "Firefox";
	this.cNETSCAPE		= "Netscape";
	this.cNETSCAPE4		= "Netscape4";
	this.cCHROME		= "Chrome";	
	this.cOPERA			= "Opera";					
	this.cSEAMONKEY		= "SeaMonkey";

	this.cUNSUPPORT		= "Unsupport";

	/* Member variables */
	this.mPlatform		= navigator.platform;
	this.mUserAgent		= navigator.userAgent;

	this.mBrowser		= this.getBrowserName();
	this.mVersion		= this.getBrowserVersion();
}

var gXWBrowser = new XWBrowser();

function LiveUpdateModules (aModuleName, aSetupURL, aUpdateURL, aOption)
{
	var aResult = false;
	aResult = gXWBrowser.updateModules (aModuleName, aSetupURL, aUpdateURL, aOption);
	return aResult;
}

function PrintObjectTag()
{
	var aBrowser	= gXWBrowser.mBrowser;
	var aPlatForm	= gXWBrowser.mPlatform;
	var aVersion	= null;
	var aObjectTag	= null;
	var aResult		= false;
	
	if (aPlatForm == gXWBrowser.cMSIE)
	{
		aResult = true;
	}
	else if (aBrowser == gXWBrowser.cFIREFOX)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;					// XWFirefoxCtrl -->  XW_Win32PluginBrowser º¯°æ
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWFirefoxCtrl.mLinuxVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1)
			aVersion = XWFirefoxCtrl.mMacVersion;
	}

	else if (aBrowser == gXWBrowser.cSAFARI)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;					// XWSafariCtrl -->  XW_Win32PluginBrowser º¯°æ
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWSafariCtrl.mLinuxVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1)
			aVersion = XWSafariCtrl.mMacVersion;
	}

	else if (aBrowser == gXWBrowser.cNETSCAPE)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;					// XWNetscapeCtrl -->  XW_Win32PluginBrowser º¯°æ
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWNetscapeCtrl.mLinuxVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1)
			aVersion = XWNetscapeCtrl.mMacVersion;
	}

	else if (aBrowser == gXWBrowser.cNETSCAPE4)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XWNetscapeCtrl4.mWinVersion;							//   [»õ·Î¿î ÇÃ·¯±×ÀÎ¿¡¼± Áö¿øµÇÁö ¾Ê´Â´Ù.]
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWNetscapeCtrl4.mLinuxVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1)
			aVersion = XWNetscapeCtrl4.mMacVersion;
	}
	
	else if (aBrowser == gXWBrowser.cOPERA)								// windows Opera 
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;
	}
	
	else if (aBrowser == gXWBrowser.cSEAMONKEY)							// windows ¸ðÁú¶ó ½Ã¸ùÅ°
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;
	}
	
	else if (aBrowser == gXWBrowser.cCHROME)								// windows Å©·Ò
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XW_Win32PluginBrowser.mWinVersion;
	}

	else
		aVersion = null;

	if (gXWBrowser.checkCtrl (aVersion))
	{
		gXWBrowser.installCtrl();
		aResult = false;
	}
	else
		aResult = true;
	
	if (aResult)
	{
		aObjectTag = gXWBrowser.getObjectTag(0);
		document.write (aObjectTag);
	}

	if(document.XecureWeb==null || typeof(document.XecureWeb) == "undefined" ||document.XecureWeb.object==null) {
	} else {
		PutBannerUrl();
		SetConvertTable();			
	}
}

var agt=navigator.userAgent.toLowerCase();
var is_gecko = (agt.indexOf('gecko') != -1);
var is_linux = (agt.indexOf('linux') != -1);
var is_linux_x86_64 = is_linux && (agt.indexOf('x86_64') != -1 );
var is_macintosh = (agt.indexOf('macintosh') != -1);

//----------------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡»çÇ× 2009.04.28

//////////////////////////////////////////////////////////////////////////////////
//	Xecure Big ÇÔ¼öµé....
//////////////////////////////////////////////////////////////////////////////////
function SetConvertTable() {
	//alert("set");
	document.XecureWeb.SetPolicyConvertTableFirst(0, "1.2.410.200005.1.1.1", "¹ü¿ë°³ÀÎ");	//ÀºÇà,Ä«µå
	//ÇÑ±¹ Á¤º¸ÀÎÁõ
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.2", "¹ü¿ë°³ÀÎ");		//ÀºÇà,Ä«µå
	//ÇÑ±¹ Áõ±ÇÀü»ê
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.5", "¹ü¿ë°³ÀÎ");		//ÀºÇà,Ä«µå
	//ÇÑ±¹ Àü»ê¿ø
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.3.1.9", "¹ü¿ë°³ÀÎ");		//ÀºÇà,Ä«µå
	//ÇÑ±¹ ÀüÀÚÀÎÁõ
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.1", "¹ü¿ë°³ÀÎ");		//ÀºÇà,Ä«µå
	//ÇÑ±¹¹«¿ª Á¤º¸Åë½Å
	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200012.1.1.1", "¹ü¿ë°³ÀÎ");		//ÀºÇà,Ä«µå
    //ÇàÁ¤ÀÚÄ¡ºÎ
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.100001.2.2.1", "ÇàÁ¤ÀÚÄ¡");
    //ÇàÁ¤ÀÚÄ¡ºÎ Ãß°¡ - 2006.6.15
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.100001.2.1.1", "ÇàÁ¤ÀÚÄ¡");

	document.XecureWeb.SetPolicyConvertTableFinal(0);

	document.XecureWeb.SetIssuerConvertTableFirst("yessignCA", "±ÝÀ¶°áÁ¦¿ø");
	document.XecureWeb.SetIssuerConvertTableNext("SignKorea CA", "Áõ±ÇÀü»ê");
	document.XecureWeb.SetIssuerConvertTableNext("signGate CA", "Á¤º¸ÀÎÁõ");
	document.XecureWeb.SetIssuerConvertTableNext("NCASign CA", "ÇÑ±¹Àü»ê¿ø");
	document.XecureWeb.SetIssuerConvertTableNext("TradeSignCA", "¹«¿ªÁ¤º¸Åë½Å");
	document.XecureWeb.SetIssuerConvertTableNext("CrossCertCA", "ÀüÀÚÀÎÁõ");
	document.XecureWeb.SetIssuerConvertTableNext("CertRSA01", "KISAÀÎÁõ±â°ü");
	document.XecureWeb.SetIssuerConvertTableNext("Class 3 CA", "ÇàÁ¤ÀÚÄ¡ºÎÅ×½ºÆ®");
	document.XecureWeb.SetIssuerConvertTableNext("CA131000002", "ÇàÁ¤ÀÚÄ¡ºÎ");
    document.XecureWeb.SetIssuerConvertTableNext("CA131000001", "ÇàÁ¤ÀÚÄ¡ºÎ"); //Ãß°¡ - 2006.6.15
	document.XecureWeb.SetIssuerConvertTableFinal();
}

//////////////////////////////////////////////////////////////////////////////////
//	Xecure ÇÔ¼öµé....
function IsVista()
{
	var Agent = navigator.userAgent.toLowerCase();
    return (Agent.indexOf("nt 6") > 0);
}

function UserAgent()
{
	return navigator.userAgent.substring(0,9);
}

function IsNetscape()			// by Zhang
{
	if(navigator.appName == 'Netscape')
		return true ;
	else
		return false ;
}
//----------------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡»çÇ× 2009.04.28

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

function IsWindow()
{
  if ((gXWBrowser.mPlatform == gXWBrowser.cWIN) || (gXWBrowser.mPlatform == gXWBrowser.cWIN32) || (gXWBrowser.mPlatform == gXWBrowser.cWIN64))
    return true;
  else
    return false;
}

function IsLinux()
{
  if ((gXWBrowser.mPlatform == gXWBrowser.cLINUX) || (gXWBrowser.mPlatform == gXWBrowser.cLINUX32) || (gXWBrowser.mPlatform == gXWBrowser.cLINUX64))
    return true;
  else
    return false;
}

function IsSafari()
{
	var kitName = "applewebkit/";
	var tempStr = navigator.userAgent.toLowerCase();
	var pos = tempStr.indexOf(kitName);
	var pos_ppc = tempStr.indexOf("ppc");
	var isAppleWebkit = (pos != -1);
	var isppc = (pos_ppc != -1);
	
	if (isAppleWebkit && isppc) 
	{
		return 1;
	} 
	else if (isAppleWebkit)
	{
		return 2;
	}
	else 
	{
  		return 0;
	}
}

function IsOpera()
{
    if (navigator.appName == 'Opera')
        return true;
    else
        return false;
}

function XecureUnescape(Msg)		
{
	if(IsNetscape() && !is_gecko)
		return unescape(Msg) ;
	else
		return Msg ;
}

function XecureEscape(Msg)		
{
	if(IsNetscape() && !is_gecko)
		return escape(Msg) ;
	else
		return Msg ;
}

//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2009.04.28

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
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    xecure_url += "&charset=MS949";
//                }
//                else
//					xecure_url += "&charset=" + document.charset;
			}
            else
            {
                    xecure_url += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18

	open ( xecure_url, target );
}

function XecureNavigate( 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;
		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 == "" )	return XecureWebError();

	xecure_url = path + "?q=" + escape_url(cipher);
	// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    xecure_url += "&charset=MS949";
//                }
//                else
//					xecure_url += "&charset=" + document.charset;
			}
            else
            {
                    xecure_url += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18

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

}

function XecureLink( link )
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;
	var cmd_val;

	// 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);

		qs_begin_index = qs.indexOf('&'); //cmd ¾ÏÈ£È­ Á¦¿ÜÇÏ±â À§ÇØ index ±¸ÇÔ
		if ( qs_begin_index < 0 ) {
			cmd_val = qs;
		}
		else {
			cmd_val = qs.substring(0, qs_begin_index);
		}
	}

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

		if(IsSafari())
		{
			cipher = document.embeds["XecureWeb"].BlockEnc (xgate_addr, path, XecureEscape(qs),"GET");

			if ( hash.length == 1 )
			{
				/* Safari set the '#' as location.hash
				   But another broswer doen't set any value when the location doesn't have any hash
				   So it should be erased
				   */
				hash ="";
			}
		}

		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEncEx(xgate_addr, path, XecureEscape(qs), "GET" ,accept_cert);
		else {		
			//cipher = document.XecureWeb.BlockEnc(xgate_addr, "/XecureDemo/jsp/ibs/transfer_input.jsp", XecureEscape(qs),"GET");
			cipher = document.XecureWeb.BlockEncEx(xgate_addr, path, XecureEscape(qs),"GET",accept_cert);

		}
		gIsContinue = 0;
	}
	else {
		return false;
	}
	if( cipher.length == 0)	return XecureWebError() ;
	// link.search = "?q=" + escape_url(cipher);

//	if( IsSafari() || IsOpera() )
//	{
//		xecure_url = "http://" + link.hostname + path + "?" + cmd_val + "&q=" + escape_url(cipher);
//	}
//	else
//	{
		//	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher); //¼öÁ¤Àü
		xecure_url = path + "?" + cmd_val + "&q=" + escape_url(cipher); //cmd ¾ÏÈ£È­ Á¦°ÅÇÏ±â À§ÇØ ¼öÁ¤ÇÔ.
//	}
	// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    xecure_url += "&charset=MS949";
//                }
//                else
//					xecure_url += "&charset=" + document.charset;
			}
            else
            {
                    xecure_url += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

function XecureMakePlain(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 XecureCK
	//for XecureCK
	if(document.XecureCK == null || typeof(document.XecureCK) == "undefined" || document.XecureCK.object == null) {
		enable=false;
	}
        else if(navigator.userAgent.indexOf("Win64")>=0) 
        {
	  enable=true;
	}
	else {
	  enable=true;
	  if(navigator.userAgent.indexOf("Windows 9") != 1) is9x = true;
	}

	// for XecureCK_Linux
	var flag_linux = false;
	// for XecureCK_Mac
	var flag_mac = false;
	if(document.getElementById("XecureCK_Linux_Password") != null) {
		flag_linux = true;
	}
	if(document.getElementById("XecureCK_Mac_Password") != null) {
		flag_mac = true;
	}

	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) {
					if (form.elements[i].disabled == false) {
						name[j] = form.elements[i].name;
						value[j] = form.elements[i].value;
						j++;
					}
				}
			}
			//for XecureCK

			 else if(enable && form.elements[i].type == "password"){
                                if(form.elements[i].getAttribute('enc') != "on") {
						name[j]		= form.elements[i].name;
						value[j]	= form.elements[i].value;
				} else {
			 	
					if(form.elements[i].type == "password"){
						name[j] = form.elements[i].name;
						version = document.XecureWeb.GetVerInfo(0);

						if(version >= '7, 2, 1, 7') {
							var enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
							//if(form.name=="[object]"){
							if(form.name=="[object]" || form.name=="[object HTMLInputElement]"){							
								 value[j]  = document.XecureCK.GetEncData(enc_xgate,"form1",form.elements[i].name);
								//value[j]  = document.XecureCK.GetEncData(enc_xgate,form.name,form.elements[i].name);
							}
							else {
								value[j]  = document.XecureCK.GetEncData(enc_xgate,form.name,form.elements[i].name);
							}
						}
						else{
							//if(form.name=="[object]"){
							if(form.name=="[object]" || form.name=="[object HTMLInputElement]"){
								value[j] = document.XecureCK.GetEncData(xgate_addr,"form1",form.elements[i].name);
								//value[j]  = document.XecureCK.GetEncData(enc_xgate,form.name,form.elements[i].name);
							}
							else {
								value[j] = document.XecureCK.GetEncData(xgate_addr,form.name,form.elements[i].name);
							}
						}
					}
			    }
				j++;
			}
			// for XecureCK_Linux
			else if(flag_linux && form.elements[i].name == "password") {
				name[j] = form.elements[i].name;
				value[j] = GetLinuxEncData(xgate_addr);
				j++;
			}
			// for XecureCK_Mac
			else if(flag_mac && form.elements[i].name == "password") {
				name[j] = form.elements[i].name;
				value[j] = GetMacEncData(xgate_addr, gXWBrowser.getBrowserName());
				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 += "=";
		plain_text += value[i];
	}
	return plain_text;
}

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

	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 = "";
	 var cipher =  cipher+'';
	 var xweb = document.XecureWeb;

	 if(!IsSafari()) {
	  if(typeof(document.XecureWeb.BlockDec) == 'undefined')
	   xweb = top.document.XecureWeb;
	 }
	 
	 if( IsNetscape60() ){ // Netscape 6.0
	  plain = XecureUnescape(xweb.nsIXecurePluginInstance.BlockDec( xgate_addr, cipher));
	 }
	 else {
	  plain = XecureUnescape(xweb.BlockDec( xgate_addr, cipher));
	 }

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

	 return plain;
}

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

	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;
}


/*----------------------------------------------------------------------------*/
/* NAME : EndSession()                                                       */
/* DESC : XecureWeb ¾ÏÈ£È­ ¼¼¼Ç Áö¿öÁÖ´Â ÇÔ¼ö. ¸®ÅÏ°ªÀÌ 0ÀÌ¸é Á¤»óÃ³¸®              */
/* DATE :                                                                     */
/* AUTH :                                                                     */
/*----------------------------------------------------------------------------*/
function EndSession() {
	return document.XecureWeb.EndSession(xgate_addr);
}

function ClearCache(){
	var ret;
	var xweb = document.XecureWeb;

	if(!IsSafari()) {
		if(typeof(document.XecureWeb.ClearCache) == 'undefined' && opener != null){
			xweb = opener.document.XecureWeb;
		} else if(typeof(document.XecureWeb.ClearCache) == 'undefined' && opener == null){
			xweb = top.opener.document.XecureWeb;
		}
	}

	ret = xweb.ClearCache(xgate_addr, 0);
	return ret;
}

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(IsNetscape60())
	{
		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;

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

		if ("RPKI" == pki_type) { // ¹ý¿ø¿ë(RPKI)ÀÎÁõ¼­·Î ÀüÀÚ¼­¸í
			// Client SM 5,5,3,8 »ç¿ë½Ã
		document.XecureWeb.CertLocation = "";
		document.XecureWeb.CertLocation = "pkcs11:XecureHSM:1.0.0.0,NO_SMARTON";

                //2011.07.12 ck code added
                document.XecureWeb.SecKeyStroke = "XW_SKS_JRSOFT_DRIVER";

		// Client SM 7Á¾ ÀÌ»ó ¹öÀüÀ¸·Î »ç¿ë½Ã
		signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr,
													  accept_cert,
													  plain,
													  svrCert,
													  option,
													  sign_desc,
													  pwd_fail );
		document.XecureWeb.CertLocation = "hard,removable,csp,iccard,vsc,pkcs11";

		} else if ("NPKI" == pki_type || "GPKI" == pki_type || "GPKI1" == pki_type || "GPKI2" == pki_type) { // °øÀÎÀÎÁõ¼­,GPKIÀÎÁõ¼­·Î ÀüÀÚ¼­¸í

                //2011.07.12 ck code added
                document.XecureWeb.SecKeyStroke = "XW_SKS_JRSOFT_DRIVER";

		document.XecureWeb.CertLocation = "hard,removable,csp,iccard,vsc,pkcs11";

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

		} else {
			alert("ÀÎÁõ¼­ÀÇ Å¸ÀÔÀ» ¾Ë ¼ö ¾ø½À´Ï´Ù.");
			return "";
		}

	}

    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_user_serial( certSerial, certLocation, option, plain, svrCert )
{
	var signed_msg;

	option = option + 4;

	if(IsNetscape60())
	{
		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(IsNetscape60())
	{
		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( IsNetscape60() )
	{
		alert("Not supported function");
	}
	else
	{
		ret = document.XecureWeb.SetIDNum(idn);
	}

	return ret;
}

function send_vid_info()
{
	var	vid_info;

	if( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		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 if(type == 13) {
			ca_type = xecure_ca_type_rpki;
			ca_ip = xecure_ca_ip_rpki;
			ca_port = xecure_ca_port_rpki;
		}
   
	else {
		alert("Input type error!");
		return 0;
	}

	if(IsNetscape60())
	{
		r = document.XecureWeb.nsIXecurePluginInstance.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
	}
	else
	{
		document.XecureWeb.CertLocation = "";
		document.XecureWeb.CertLocation = "pkcs11:XecureHSM:1.0.0.0,NO_SMARTON";

		r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code, ca_type);

		document.XecureWeb.CertLocation = "hard,removable,csp,iccard,vsc,pkcs11";
	}

	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()
{
	// 2007.02.01 Window Vista ´ëÀÀ.. ¾Æ·¡ 2ÁÙ
    var bannerUrlSigned = bannerUrl + ".sig";    // ¼­¸íµÈ ÀÌ¹ÌÁö ÆÄÀÏ¸í
    var version = GetVersion(1);

	if( IsNetscape60() )		// Netscape 6.0
	{
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl(xgate_addr, bannerUrl);
	} //2007.02.01 Window Vista ´ëÀÀ.. ¾Æ·¡ 4ÁÙ
   else if( version.indexOf('7, 2,') >= 0 ||  version.indexOf('7,2,') >=0 )
	{    // 7,2 ¹öÁ¯ ÀÌ»ó ÀÏ¶§¸¸ ¼­¸í º£³Ê »ç¿ë
        document.XecureWeb.PutBigBannerUrl(xgate_addr, bannerUrlSigned);
	}
	else
	{
		document.XecureWeb.PutBigBannerUrl(xgate_addr, bannerUrl);
	}
}

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 get_sid()
{
	var sid = document.XecureWeb.BlockEnc ( xgate_addr, "", "", "GET" );

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

	return sid;
}

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);

	return escaped_state;
}

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

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;
} 

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( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		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;
}

function XecureUpdateModules()
{

 if(document.XecureWeb==null || typeof(document.XecureWeb) == "undefined" ||document.XecureWeb.object==null)
 {
   //alert("XecureWeb==null");
 }
 else
 {
  var ret;
  if( IsNetscape60() )
  {
   alert( "Not supported function" );
   ret = 0;
  }
  else
  {
   ret = document.XecureWeb.UpdateModules( infoURL );
  } 
  //alert("ret" + ret);
  if( ret < 0 )
  {
   XecureWebError();
  }
  else if( ret == 1 )
  {
   //alert("ÀÚµ¿¾÷µ¥ÀÌÆ®°¡ Ãë¼ÒµÇ¾ú½À´Ï´Ù");
  }
  else if( ret == 2 )
  {
   //alert("¾÷µ¥ÀÌÆ® ÆÄÀÏÀÌ »ç¿ë Áß¿¡ ÀÖ½À´Ï´Ù.\n»ç¿ëÁßÀÎ ºê¶ó¿ìÀú¸¦ ¸ðµÎ ´Ý°í ´Ù½Ã Á¢¼ÓÇØ ÁÖ¼¼¿ä.");
  }
  else if( ret == 3 )
  {
   //alert("ÀÌ¹Ì ¾÷µ¥ÀÌÆ®µÇ¾ú½À´Ï´Ù");
  }
  else if( ret == 4 )
  {
   //alert("¾÷µ¥ÀÌÆ® ±ÇÇÑÀÌ ¾ø´Â »ç¿ëÀÚÀÔ´Ï´Ù.\nWindows2000,XP »ç¿ëÀÚÀÇ °æ¿ì Administrator°èÁ¤À¸·Î ·Î±×ÀÎ ÈÄ ´Ù½Ã Á¢¼ÓÇØ ÁÖ¼¼¿ä.");
  }
  else if( ret == 0 )
  {
   //alert("¼º°øÀûÀ¸·Î ¾÷µ¥ÀÌÆ®°¡ µÇ¾ú½À´Ï´Ù");
  }
 }
}

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

	if( IsNetscape60() )
	{
		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( IsNetscape60() )
	{
		alert("Not supported function");
		return -1;
	}
	else
	{
		ret = document.XecureWeb.SetProvider(provName);
		if( ret != 0 )
			alert("Set Provider name is Fail!");
	}

	return ret;
}

function XecureURL( url, target, feature )
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;
	var cmd_val;
	
	var xweb = document.XecureWeb;
	
	if(!IsSafari()) {
		if(typeof(document.XecureWeb.BlockEnc) == 'undefined' && opener != null){
			xweb = opener.document.XecureWeb;
		} else if(typeof(document.XecureWeb.BlockEnc) == 'undefined' && opener == null){
			xweb = top.opener.document.XecureWeb;
		}
	}

	// 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 );
		qs_amps_begin_index= qs.indexOf('&');
		if (qs_amps_begin_index<0)
			cmd_val = qs;
		else
			cmd_val = qs.substring(0,qs_amps_begin_index);
	}

	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		if( IsNetscape60() )		// Netscape 6.0
			cipher = xweb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		else
			cipher = xweb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");

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

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

	xecure_url = path + "?" + cmd_val + "&q=" + escape_url(cipher);
       // xecure_url = path + "?" + cmd_val + "&charset=MS949&q=" + escape_url(cipher);
		// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    xecure_url += "&charset=MS949";
//                }
//                else
//					xecure_url += "&charset=" + document.charset;
			}
            else
            {
                    xecure_url += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	
	return xecure_url;
	//if (feature=="" || feature==null) open ( xecure_url, target );
	//else open(xecure_url, target, feature );

}

function XecureSubmit( form )
{
	var qs ;
	var path ;
	var cipher;
	var cmd_val;
	var xweb = document.XecureWeb;

	if(!IsSafari()) {
		if(typeof(document.XecureWeb.BlockEnc) == 'undefined' && opener != null){
			xweb = opener.document.XecureWeb;
		} else if(typeof(document.XecureWeb.BlockEnc) == 'undefined' && opener == null){
			xweb = top.opener.document.XecureWeb;
		}
	}

	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 );
		cmd_val = qs;
	}
	document.xecure.target = form.target;
	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values
		qs = XecureMakePlain( form );

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

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

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

// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    xecure_url += "&charset=MS949";
//                }
//                else
//					xecure_url += "&charset=" + document.charset;
			}
            else
            {
                    xecure_url += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
		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 = xweb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			else {
				cipher = xweb.BlockEnc(xgate_addr, path, XecureEscape(qs),'GET');
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}


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

		document.xecure.action = path + "?" + cmd_val + "&q=" + escape_url(cipher);

		//È®Àå ÇÑ±Û ±úÁü Çö»ó ¹æÁö
		//document.xecure.action = path + "?" + cmd_val + "&charset=MS949&q=" + escape_url(cipher);
		
// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    document.xecure.action += "&charset=MS949";
//                }
//                else{
//					document.xecure.action += "&charset=" + document.charset;
//				}
			}
            else
            {	
                    document.xecure.action += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
		posting_data = XecureMakePlain( form );
		//alert("posting_data===>"+posting_data);
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = xweb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
			else{
				cipher = xweb.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
				//alert("cipher222===>"+cipher);
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}

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

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////// modified for SCOURT ////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*----------------------------------------------------------------------------*/
/* NAME : XecureLogin()                                                       */
/* DESC : ÀüÃ¼È­¸éÀ» targetÀ¸·Î URLÈ£Ãâ                                       */
/* DATE :                                                                     */
/* AUTH :                                                                     */
/* COMMENT : ·Î±×ÀÎ½Ã ÀÐ¾îµéÀÌ´Â ÀÎÁõ¼­ ¼±ÅÃÃ¢À» ¶ç¿ì´Â ºÎºÐ°ú ¾ÏÈ£È­ Submit ºÐ¸®     */
/*----------------------------------------------------------------------------*/
function XecureLogin(form) {
	// ·Î±×ÀÎ ÇÒ ¶§´Â, ÀÌÀüÀÇ ¾ÏÈ£È­ ¼¼¼ÇÀ» ²÷¾îÁà¾ß ÇÑ´Ù.
	EndSession();

	var qs ;
	var path ;
	var cipher;
	var cmd_val;
	qs_begin_index = form.action.indexOf('?');

	// dir_auth.conf¿¡ ¹Ýµå½Ã "/scourt_for_re1_directory/" ¶ó´Â °ªÀÌ
	// cert_based ·Î ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÔ
	var login_directive = "/scourt_for_re1_directory/";

	// 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 );
		cmd_val = qs;
	}

	document.xecure.target = form.target;
	document.xecure.method = "post";

	// encrypt QueryString of action field
	if( gIsContinue == 0 ) {
		gIsContinue = 1;

		cipher = document.XecureWeb.BlockEncEx(xgate_addr, login_directive, XecureEscape(qs),"GET", accept_cert);

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

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

	document.xecure.action = path + "?" + cmd_val + "&q=" + escape_url(cipher);

	// adding character set information
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == undefined)
//                {   
                    document.xecure.action += "&charset=MS949";
//                }
//                else
//					document.xecure.action += "&charset=" + document.charset;
			}
            else
            {
                    document.xecure.action += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2008.12.18

	posting_data = XecureMakePlain( form );

	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		cipher = document.XecureWeb.BlockEncEx ( xgate_addr, login_directive, XecureEscape(posting_data), "POST", accept_cert );

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


	if( cipher == "" )	return XecureWebError() ;
	document.xecure.p.value = cipher;
	document.xecure.submit();

	return false;
}

// modified by ytjeon 2005-08-17
//    - RPKI ÀüÀÚ¼­¸í UI »ç¿ë·ÎÁ÷ Ãß°¡
// ÀüÀÚ¼­¸í ÇÔ¼ö
function Sign_with_option(option, plain) {
	var signed_msg;

	if ("RPKI" == pki_type) { // ¹ý¿ø¿ë(RPKI)ÀÎÁõ¼­·Î ÀüÀÚ¼­¸í

		document.XecureWeb.CertLocation = "";
		document.XecureWeb.CertLocation = "pkcs11:XecureHSM:1.0.0.0,NO_SMARTON";

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

		document.XecureWeb.CertLocation = "hard,removable,csp,iccard,vsc,pkcs11";

	} else if ("NPKI" == pki_type || "GPKI" == pki_type || "GPKI1" == pki_type || "GPKI2" == pki_type) { // °øÀÎÀÎÁõ¼­,GPKIÀÎÁõ¼­·Î ÀüÀÚ¼­¸í
		document.XecureWeb.CertLocation = "hard,removable,csp,iccard,vsc,pkcs11";

		signed_msg = document.XecureWeb.SignDataCMS(
													xgate_addr,
													XecureEscape(accept_cert),
													XecureEscape(plain),
													option,
													XecureEscape(sign_desc),
													pwd_fail);
	} else {
		alert("ÀÎÁõ¼­ÀÇ Å¸ÀÔÀ» ¾Ë ¼ö ¾ø½À´Ï´Ù.");
		return "";
	}

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

	return signed_msg;
}

/////////////////////////////////////////////////////////////////////////////////////
// ÀüÀÚ¼­¸íÇÔ¼ö È£ÃâÀü¿¡ pki_type(ÀÎÁõ¼­ Á¾·ù),XGate, accept_cert¸¦ ¼¼ÆÃÇÏ´Â ÇÔ¼öÀÌ´Ù.
// Sign_with_option(), FileSign(), MultiFileSign()°ú °°Àº ÇÔ¼öµéÀ» È£ÃâÇÏ°Ô Àü¿¡
// ¹Ýµå½Ã »ç¿ëÇØÁØ´Ù.
//
// ¿¹) setPkiType4Sign('RPKI');
//     Sign_with_option(..........................);
/////////////////////////////////////////////////////////////////////////////////////
function setPkiType4Sign(s) {
	pki_type = s;
	xgate_addr = eval("xgate_addr_" + s.toLowerCase());
	accept_cert = eval("accept_cert_" + s.toLowerCase());
}


////////////////////////////////////////////////////////////////////////////////////
// À§ÀÓÀå ½ÂÀÎ½Ã »ç¿ëÇÏ´Â ÇÔ¼ö Á¤ÀÇ
////////////////////////////////////////////////////////////////////////////////////

// À§ÀÓÀå ½ÂÀÎ½Ã(1´Ü°è)
function f_AttrnyCertLogin(frm) {
	XecureLogin(frm);
}

// À§ÀÓÀå ½ÂÀÎ½Ã(2´Ü°è)
function f_chkUsrAuthForSubmit(path, job_type) {
	var frm = document.frm_usr_auth;

	frm.ur_file_path.value = path;
	frm.ur_job_type.value = job_type;

	frm.target = document.all["ifrm_usr_auth"];
	XecureSubmit(frm);
}

/////////////////////////////////////////////////////////////////////////////
// CSN Á¶È¸¸¦ À§ÇÑ OBJECT ÅÂ±×
/////////////////////////////////////////////////////////////////////////////
function PrintCSNObjectTag() {
        if(IsWindow())
        {
                if(gXWBrowser.getBrowserName()=="MSIE")
                {
        //added by kim29
                        if(gXWBrowser.mPlatform == gXWBrowser.cWIN64){
                                //document.write('<OBJECT ID="SCardCtl" CLASSID="CLSID:22F3C8F8-AA4F-4272-8B78-ACA7CA72699A"  CODEBASE="/XecureObject/xhsm_install.cab#version=1,0,0,0" width=0 height=0></OBJECT>');
                                document.write("<OBJECT ID='SCardCtl' CLASSID='CLSID:A3B6AEEB-BE99-4CDA-9E32-2E1B55692C88'  CODEBASE='/XecureObject/xhsm_install_64.cab#version=2,0,0,0' width=0 height=0></OBJECT>");
                        }
                        else{
                                document.write("<OBJECT ID='SCardCtl' CLASSID='CLSID:A3B6AEEB-BE99-4CDA-9E32-2E1B55692C88'  CODEBASE='/XecureObject/xhsm_install.cab#version=2,0,0,0' width=0 height=0></OBJECT>");
                        }
                }else
                {
                        document.write("<EMBED NAME='SCardCtl' TYPE='application/xecurehsm-plugin' width=0 height=0 hidden=true></EMBED><NOEMBED>No XecureHSM PlugIn</NOEMBED>");
                }
        }
}

function SC_ChangePINwithDlgEx()
{
	var errMsg;
	var xhsm = document.SCardCtl;
/*
	if(!IsSafari()) {
		if(typeof(document.SCardCtl.SCardChangePinDlgEx) == 'undefined' && opener != null){
			xhsm = opener.document.SCardCtl;
		} else if(typeof(document.SCardCtl.SCardChangePinDlgEx) == 'undefined' && opener == null){
			xhsm = top.document.SCardCtl;
		}
	}
*/
	errMsg= xhsm.SCardChangePinDlgEx();
	//GetErrMsg(errMsg);
	return errMsg;		
}

function SC_ReadCSN()
{
	var CSN;
	var xhsm = document.SCardCtl;
/*
	if(!IsSafari()) {
		if(typeof(document.SCardCtl.SCardReadCSN) == 'undefined' && opener != null){
			xhsm = opener.document.SCardCtl;
		} else if(typeof(document.SCardCtl.SCardReadCSN) == 'undefined' && opener == null){
			xhsm = top.opener.document.SCardCtl;
		}
	}
*/
	CSN = xhsm.SCardReadCSN();
	//alert(CSN);
	return CSN;
}

function PrintHSMUSBDriverTag() {
        document.write('<OBJECT ID="USBHSMDriver" CLASSID="CLSID:C7800C2F-A68E-47A4-88E4-79C475D9E8CD" CODEBASE="/XecureObject/drv_setup.cab#version=1,0,0,1" width=0 height=0></OBJECT>');
}

/*----------------------------------------------------------------------------*/
/* NAME : XecureLogin()                                                       */
/* DESC : ÀüÃ¼È­¸éÀ» targetÀ¸·Î URLÈ£Ãâ                                       */
/* DATE :                                                                     */
/* AUTH :                                                                     */
/* COMMENT : ·Î±×ÀÎ½Ã ÀÐ¾îµéÀÌ´Â ÀÎÁõ¼­ ¼±ÅÃÃ¢À» ¶ç¿ì´Â ºÎºÐ°ú ¾ÏÈ£È­ Submit ºÐ¸®     */
/*----------------------------------------------------------------------------*/
function XecureCALogin(form) {
 // ·Î±×ÀÎ ÇÒ ¶§´Â, ÀÌÀüÀÇ ¾ÏÈ£È­ ¼¼¼ÇÀ» ²÷¾îÁà¾ß ÇÑ´Ù.
 EndSession();

 var qs ;
 var path ;
 var cipher;
 var cmd_val;
 qs_begin_index = form.action.indexOf('?');

 // dir_auth.conf¿¡ ¹Ýµå½Ã "/scourt_for_re1_directory/" ¶ó´Â °ªÀÌ
 // cert_based ·Î ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÔ
 var login_directive = "/scourt_for_re1_directory/";

 // 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 );
	 cmd_val = qs;
 }

 document.xecure.target = form.target;
 document.xecure.method = "post";

 // encrypt QueryString of action field
 if( gIsContinue == 0 ) {
	  gIsContinue = 1;

	  cipher = document.XecureWeb.BlockEncEx(xgate_addr, login_directive, XecureEscape(qs),"GET", accept_cert);

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

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

document.xecure.action = path + "?" + cmd_val + "&q=" + escape_url(cipher);
//-------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2000.02.03
	    if(usePageCharset)
        {
            if(IsWindow())
			{
//				if(document.charset == "undefined")
//                {   
                    document.xecure.action += "&charset=MS949";					
//                }
//                else{
//					document.xecure.action += "&charset=" + document.charset;
//				}
			}
            else
            {	
                    document.xecure.action += "&charset=UTF-8";
            }
        }
//------------------------------------------------------------------------ÇÃ·¯±×ÀÎ Ãß°¡ ¹× ¼öÁ¤»çÇ× 2000.02.03
 posting_data = XecureMakePlain( form );

 if( gIsContinue == 0 ) {
	gIsContinue = 1;
	 cipher = document.XecureWeb.BlockEncEx ( xgate_addr, login_directive, XecureEscape(posting_data), "POST", accept_cert );
	 gIsContinue = 0;
 } else {
	alert(busy_info);
  return false;
 }

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

 document.xecure.p.value = cipher; 
 form.csn.value = SC_ReadCSN();
 document.xecure.submit();

 return true;
}

