//////////////////////////////Update Zhang////////////////////////////////
// XecureWeb SSL Client Java Script ver4.1  2001.5.30
//
// 아직 : Netscape 6.0은 지원되지 않습니다....
// Edit List 2000,05,30
// process_error() --> XecureWebError() // by Zhang 변경
// function IsNetscape60()		// by Zhang 추가
// function XecureUnescape(Msg)		// by Zhang 추가
// function XecureEscape(Msg)		// by Zhang 추가
// function XecurePath(xpath)		// by zhang 추가

var gIsContinue=0;
var busy_info = "암호화 작업이 진행중입니다. 확인을 누르시고 잠시 기다려 주십시오."

///////////// since 6.0 v210 //////////////////////////////////////////////
// usePageCharset : 암복호시 페이지에 명시된 문자셋의 사용 여부
// XecureWeb Java 버전 암복호시 시스템 디폴트 인코딩과 다른 문자셋의
// 메세지를 처리하는 경우 true 설정
// 
//var usePageCharset=true;
var usePageCharset=true;

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

// XECURE CA ADDRESS///////////////////////////////////////////////////////
// TEST : 192.168.10.30
var xecure_ca_type = 101;	// XecureCA (RSA)
//var xecure_ca_type = 102;	// XecureCA (GPKI)
var xecure_ca_ip =  "192.168.10.25;SoftforumCA";
//var xecure_ca_ip =  "192.168.10.25";
var xecure_ca_port = 8200;

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

///////////////////////////////////////////////////////////////////////////////
// !!!!!!!!!!!!!!< 주의 >!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Sign, RequestCertificate, RevokeCertificate 시 나타나는 인증서 목록 
// XecureWeb ver 5.1 에서는 accept_cert 에 유효한 인증기관 인증서의 
// CN 을 정확히 적어준다.
// ver 4.0 에서 yessign 이라 적었던 것은 yessignCA-TEST, yessignCA 로 세분화 된다.
// YESSIGN TEST : yessignCA-TEST
// YESSIGN REAL : yessignCA
////////////////////////////////////////////////////////////////////////////////

//var accept_cert = "yessign,한국투자신탁증권 CA,테스트 인증기관,주택은행 인증기관,lotto test CA,yessignCA-TEST,SignGateFTCA,signGATE CA,SignKorea Test CA,SignKorea CA,기업은행 인증기관,외환은행 인증기관,lotto test CA,Xecure TestCA,CrossCertCA,CrossCertCA-Test2,SoftforumCA,TradeSignCA,NCASign CA,NCATESTSign";
var accept_cert = "CA131000002Test,CA131000002,Softforum CA 3.0,SoftforumCA,yessignCA,yessignCA-OCSP,signGATE CA,SignKorea CA,CrossCertCA,CrossCertCA-Test2,NCASign CA,TradeSignCA,yessignCA-TEST,lotto test CA,NCATESTSign,SignGateFTCA,SignKorea Test CA,TestTradeSignCA,Softforum Demo CA,mma ca,병무청 인증기관";
//var accept_cert = "yessignCA,signGate CA,SignKorea CA,CrossCertCA,SignGateFTCA";
//var accept_cert = "SignKorea CA";
//var accept_cert = "SignKorea CA";
//var accept_cert = "SignGateFTCA,SignKorea Test CA,SignKorea CA,yessignCA-TEST"; 
//var accept_cert = "SignGateFTCA,CrossCertCA:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2,SignKorea CA,rootca:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2";
//var accept_cert = "yessign,yessignCA-TEST";	
//var accept_cert = "signGATE CA,SignGateFTCA";
//var accept_cert = "TradeSignCA:1.2.410.200012.1.1.1,TestTradeSignCA:1.2.410.200012.1.1.1";

/////////////////////////////////////////////////////////////////////////////////
// 전자서명, 인증서 갱신, 인증서 폐기시에 인증서 암호오류를 허용회수
var pwd_fail = 3;

//////////////////////////////////////////////////////////////////////////////////
// 로그인 창에 보일 이미지를 다운로드 받을 URL
//var bannerUrl =  "http://" + window.location.host + "/XecureObject/xecure.bmp";
var bannerUrl =  "http://" + window.location.host + "/XecureObject/xecureweb_big.bmp";

///////////////////////////////////////////////////////////////////////////////////
// 인증기관 인증서 다운로드시 인증기관 인증서와 인증서 CN
//var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
//var pCaCertName = "넥서브 CA";
var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
//var pCaCertName = "테스트 인증기관";
var pCaCertName = "shinbo real ca";

//////////////////////////////////////////////////////////////////////////////////
// 전자서명 확인창에 보일 메세지와 전자서명 확인창 보기 옵션
// 0 : 서명 원문 출력 안함, 1: 서명 원문 출력 
var sign_desc = "";
var show_plain = 0; 

///////////////////////////////////////////////////////////////////////////////////
// xgate 서버 명:포트 지정 , 포트 생략시 디폴트로 443 포트 사용
var xgate_addr	= "152.99.80.139:1443:8081";
//var xgate_addr  = window.location.hostname + ":1443:8081";
//var xgate_addr	= "210.124.178.206" + ":8443:8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011";

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

//////////////////////////////////////////////////////////////////////////////////
//	Xecure Big 함수들....
function SetConvertTable() {
//    document.XecureWeb.SetPolicyConvertTableFirst(0, "1.2.410.200009.1.1.1", "내맘대로:금융결제원");
//  document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200009.1.1.1.33", "내맘대로 특별등급 법인", "테스트2 Policy OID");
/*
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.2", "금융거래법인");
//    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.3", "금융거래단체");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.4", "전자거래개인");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.5", "전자거래법인");
//    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.6", "금융거래단체");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.1", "정보인증");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.5", "증권전산");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.3.1", "전산원");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.1", "전자인증");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.2.1", "공인인증기관");
*/
//    document.XecureWeb.SetPolicyConvertTableFinal(0);


//    document.XecureWeb.SetIssuerConvertTableFirst("lotto test CA", "로또인증기관");
//    document.XecureWeb.SetIssuerConvertTableNext("SE CA", "에스이인증기관", "테스트");
    /*
    document.XecureWeb.SetIssuerConvertTableNext("SE CA", "에스이인증기관", "");
    document.XecureWeb.SetIssuerConvertTableNext("한빛은행 CA", "한빛은행", "");
    document.XecureWeb.SetIssuerConvertTableNext("yessignCA", "금융결제원", "");
    document.XecureWeb.SetIssuerConvertTableNext("yessignCA-TEST", "금결원TEST", "");
    document.XecureWeb.SetIssuerConvertTableNext("SignGateFTCA", "정보인증TEST", "");
    document.XecureWeb.SetIssuerConvertTableNext("signGate CA", "정보인증", "");
    document.XecureWeb.SetIssuerConvertTableNext("rootca", "전산원", "");
    document.XecureWeb.SetIssuerConvertTableNext("CrossCertCA", "전자인증", "");
    document.XecureWeb.SetIssuerConvertTableNext("CertRSA01", "KISA인증기관", "");
    */
//    document.XecureWeb.SetIssuerConvertTableFinal();
    
}


/* Warmstar Add */

var XWMSIEUpdateCtrl = {
	mName			: "XecureWebBaseCtrl",
	mCID			: "CLSID:0B13E3E0-8907-45C7-9C50-C700C68DFBA0",
	mCodeBase		: "http://warmstar.softforum.com/upload/xwliveupdate_install.cab#Version=1,2,1,8"
}

var XWMSIECtrl = {
	mName			: "XecureWeb",
	mCID			: "CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404",
	mCodeBase		: "/activeX/xecureweb/v7.2.2.8/xw_install.cab#Version=7.2.2.8",
	mLicense		: "",
	mStorage		: "HARD,ICCARD,REMOVABLE,pkcs11,MPHONE",
	mSecOption		: "608:HARD:ICCARD:REMOVABLE",
	mSecKey			: "XW_SKS_SFVIRTUAL_DRIVER",
	mSecContext		: ""
}

var XWFirefoxCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",
	mSecOption			: "608:HARD:ICCARD:REMOVABLE",
	mPluginLicense		: "3082068c020101310b300906052b0e03021a0500306a06092a864886f70d010701a05d045b313a7777772e68696b6f7265612e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000dfe89bf341959d79da60ed734e70782f9f97d2ecd314d321dca53c3dba5a26ce5e6e2fb2545b53e563edb6b098f3be10826f53bdc807fa8626f4e69c5c0362a2ee5f3cf9f2f2a450707a7b8bdad3ebd03620fa6768a4dbe1d2fd09335a1aa56359a9999524482bd06b5ef9f758e160ff773131aedca1cfae125a2508f60f4fae4a673f2fcba13b7bc2cf6c0b7a3570d1803f0d8af0bb8a335468627ae17e6e8c7cb9fdb9db47d668a4f04cde4a3e331ef771051be2f4c77ef2e03effeb50957b923282f179b4d039769cf1402192d55c1cce7db033de36714049efa317953c7c7c614af8f394d8f5ccd194da4afaf4d18b34da3faefbeb4d7949c0b76d7f68f",
	mStorage			: "hard,removable",
	mSecKey				: "XW_SKS_SFVIRTUAL_DRIVER",
	mSecContext			: "SecContext data",

	mWinVersion			: "7.0.0.0",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/install_integrated_plugin_win64.html"},

	mLinuxVersion		: "7.1.0.0",
	mLinux32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_linux.xpi"},
	mLinux64Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install_linux-x86_64.xpi"},

	mMacVersion			: "7.1.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				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",
	mPluginLicense		: "3082068c020101310b300906052b0e03021a0500306a06092a864886f70d010701a05d045b313a7777772e68696b6f7265612e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000dfe89bf341959d79da60ed734e70782f9f97d2ecd314d321dca53c3dba5a26ce5e6e2fb2545b53e563edb6b098f3be10826f53bdc807fa8626f4e69c5c0362a2ee5f3cf9f2f2a450707a7b8bdad3ebd03620fa6768a4dbe1d2fd09335a1aa56359a9999524482bd06b5ef9f758e160ff773131aedca1cfae125a2508f60f4fae4a673f2fcba13b7bc2cf6c0b7a3570d1803f0d8af0bb8a335468627ae17e6e8c7cb9fdb9db47d668a4f04cde4a3e331ef771051be2f4c77ef2e03effeb50957b923282f179b4d039769cf1402192d55c1cce7db033de36714049efa317953c7c7c614af8f394d8f5ccd194da4afaf4d18b34da3faefbeb4d7949c0b76d7f68f",

	mWinVersion			: "7.0.0.0",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/install_integrated_plugin_win64.html"},

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

	mMacVersion			: "7.1.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 XWSeamonkeyCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",
	mPluginLicense		: "3082068c020101310b300906052b0e03021a0500306a06092a864886f70d010701a05d045b313a7777772e68696b6f7265612e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000dfe89bf341959d79da60ed734e70782f9f97d2ecd314d321dca53c3dba5a26ce5e6e2fb2545b53e563edb6b098f3be10826f53bdc807fa8626f4e69c5c0362a2ee5f3cf9f2f2a450707a7b8bdad3ebd03620fa6768a4dbe1d2fd09335a1aa56359a9999524482bd06b5ef9f758e160ff773131aedca1cfae125a2508f60f4fae4a673f2fcba13b7bc2cf6c0b7a3570d1803f0d8af0bb8a335468627ae17e6e8c7cb9fdb9db47d668a4f04cde4a3e331ef771051be2f4c77ef2e03effeb50957b923282f179b4d039769cf1402192d55c1cce7db033de36714049efa317953c7c7c614af8f394d8f5ccd194da4afaf4d18b34da3faefbeb4d7949c0b76d7f68f",

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

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

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

var XWChromeCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",
	mSecOption			: "608:HARD:ICCARD:REMOVABLE",
	mPluginLicense		: "3082068c020101310b300906052b0e03021a0500306a06092a864886f70d010701a05d045b313a7777772e68696b6f7265612e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000dfe89bf341959d79da60ed734e70782f9f97d2ecd314d321dca53c3dba5a26ce5e6e2fb2545b53e563edb6b098f3be10826f53bdc807fa8626f4e69c5c0362a2ee5f3cf9f2f2a450707a7b8bdad3ebd03620fa6768a4dbe1d2fd09335a1aa56359a9999524482bd06b5ef9f758e160ff773131aedca1cfae125a2508f60f4fae4a673f2fcba13b7bc2cf6c0b7a3570d1803f0d8af0bb8a335468627ae17e6e8c7cb9fdb9db47d668a4f04cde4a3e331ef771051be2f4c77ef2e03effeb50957b923282f179b4d039769cf1402192d55c1cce7db033de36714049efa317953c7c7c614af8f394d8f5ccd194da4afaf4d18b34da3faefbeb4d7949c0b76d7f68f",
	mStorage			: "hard,removable",
	mSecKey				: "XW_SKS_SFVIRTUAL_DRIVER",
	mSecContext			: "SecContext data",

	mWinVersion			: "7.1.0.0",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/install_integrated_plugin_win64.html"},

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

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

var XWOperaCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",
	mSecOption			: "608:HARD:ICCARD:REMOVABLE",
	mPluginLicense		: "3082068c020101310b300906052b0e03021a0500306a06092a864886f70d010701a05d045b313a7777772e68696b6f7265612e676f2e6b723a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000dfe89bf341959d79da60ed734e70782f9f97d2ecd314d321dca53c3dba5a26ce5e6e2fb2545b53e563edb6b098f3be10826f53bdc807fa8626f4e69c5c0362a2ee5f3cf9f2f2a450707a7b8bdad3ebd03620fa6768a4dbe1d2fd09335a1aa56359a9999524482bd06b5ef9f758e160ff773131aedca1cfae125a2508f60f4fae4a673f2fcba13b7bc2cf6c0b7a3570d1803f0d8af0bb8a335468627ae17e6e8c7cb9fdb9db47d668a4f04cde4a3e331ef771051be2f4c77ef2e03effeb50957b923282f179b4d039769cf1402192d55c1cce7db033de36714049efa317953c7c7c614af8f394d8f5ccd194da4afaf4d18b34da3faefbeb4d7949c0b76d7f68f",
	mStorage			: "hard,removable",
	mSecKey				: "XW_SKS_SFVIRTUAL_DRIVER",
	mSecContext			: "SecContext data",

	mWinVersion			: "7.0.0.0",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/install_integrated_plugin_win64.html"},

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

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

/* Netscape 9 */
var XWNavigatorCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",

	mWinVersion			: null,
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},

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

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

/* Netscape 6~8 */
var XWNetscapeCtrl = {
	mName				: "XecureWeb",
	mType				: null,
	mTypeWin32			: "application/xecureweb-plugin",
	mTypeLinux			: "application/xecure-plugin",

	mWinVersion			: "7.0.0.0",
	mWin32Src			: {"XecureWeb Plugin":"http://" + window.location.host + "/XecureObject/xw_install.xpi"},
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},

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

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


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

	mWinVersion			: "5.5.0.0",
	mWin32Src			: "http://" + window.location.host + "/XecureObject/NPXecSSL_Install.jar",
	mWin32SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},
	mWin64Src			: null,
	mWin64SrcManual		: {"XecureWeb Plugin":"http://" + window.location.host + "/activeX/xecureweb/multi_test/install.html"},

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

	mMacVersion			: null,
	mMacPPCSrc			: null,
	mMacIntelSrc		: null
}
var XWFileMSIECtrl = {	//Windows - IE에 대한 설정
	mName			: "FileAccess",
	mCID			: "CLSID:6AC69002-DAD5-11D4-B065-00C04F0CD404",
	mCodeBase		: "http://" + window.location.host + "/activeX/xecureweb/v7.2.2.8/xw_install.cab#Version=7,2,2,8",
	mLicense		: "30820691020101310b300906052b0e03021a0500306f06092a864886f70d010701a0620460313a687363686f692e736f6674666f72756d2e636f6d3a46696c655369676e2c46696c655665726966792c46696c65456e76656c6f702c46696c654465456e76656c6f702c46696c65436c6561722c46696c655a69702c46696c65556e5a6970a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000616f1fbb6748355104f66a04e4fcbbb2d7c87944e5351135ba4f7d2a0c8fbc12411a9c74d43ef3bc12b75545d911664e81089d829c35a1bf71d8879929d905a8ab9c77ea109a30afcac5a3d5d8f0d1eb44ca3b64642a55d5d2fa0c602793eaaa0ed3c4fb24f626bc5b05cfe1a135f001f14fe9b58878adcacbe9f7ee3dcf2a0dcc6ed42de76f7c09d333c591171b964018fc2815999b0c03bf2236a64d6e461d942b11ee3dd098e5b9f70150e70121b003b9b70878c9d7a59cf9ce5f346a9883252a9f88a2bfadb71daa76b8fa5a503d30f3ed9505bf70e79b487ded1aca45811097e882e8d0d3011bd4c3244cf8af1194d9aaa130af60a8766b82726509626",
	mStorage		: "hard,removable,csp,iccard",
	mSecOption		: "512:hard:iccard:pkcs11",
	mSecKey		    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext		: null
}

var XWFileFirefoxCtrl = {	//Linux, Mac - Filefox에 대한 설정
	mName				: "FileAccess",
	mType				: "application/xwfile-plugin",	
	mLicense			: "30820691020101310b300906052b0e03021a0500306f06092a864886f70d010701a0620460313a687363686f692e736f6674666f72756d2e636f6d3a46696c655369676e2c46696c655665726966792c46696c65456e76656c6f702c46696c654465456e76656c6f702c46696c65436c6561722c46696c655a69702c46696c65556e5a6970a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000616f1fbb6748355104f66a04e4fcbbb2d7c87944e5351135ba4f7d2a0c8fbc12411a9c74d43ef3bc12b75545d911664e81089d829c35a1bf71d8879929d905a8ab9c77ea109a30afcac5a3d5d8f0d1eb44ca3b64642a55d5d2fa0c602793eaaa0ed3c4fb24f626bc5b05cfe1a135f001f14fe9b58878adcacbe9f7ee3dcf2a0dcc6ed42de76f7c09d333c591171b964018fc2815999b0c03bf2236a64d6e461d942b11ee3dd098e5b9f70150e70121b003b9b70878c9d7a59cf9ce5f346a9883252a9f88a2bfadb71daa76b8fa5a503d30f3ed9505bf70e79b487ded1aca45811097e882e8d0d3011bd4c3244cf8af1194d9aaa130af60a8766b82726509626",
	mStorage			: "hard,removable,pkcs11",
	mSecOption			: "512:hard:iccard:pkcs11",
	mSecKey			    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext			: null,

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

	mMacVersion			: "7.1.0.1",
	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 XWFileSafariCtrl = {	//Mac - Safafi에 대한 설정
	mName				: "FileAccess",
	mType				: "application/xwfile-plugin",
	mLicense			: "30820691020101310b300906052b0e03021a0500306f06092a864886f70d010701a0620460313a687363686f692e736f6674666f72756d2e636f6d3a46696c655369676e2c46696c655665726966792c46696c65456e76656c6f702c46696c654465456e76656c6f702c46696c65436c6561722c46696c655a69702c46696c65556e5a6970a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201000616f1fbb6748355104f66a04e4fcbbb2d7c87944e5351135ba4f7d2a0c8fbc12411a9c74d43ef3bc12b75545d911664e81089d829c35a1bf71d8879929d905a8ab9c77ea109a30afcac5a3d5d8f0d1eb44ca3b64642a55d5d2fa0c602793eaaa0ed3c4fb24f626bc5b05cfe1a135f001f14fe9b58878adcacbe9f7ee3dcf2a0dcc6ed42de76f7c09d333c591171b964018fc2815999b0c03bf2236a64d6e461d942b11ee3dd098e5b9f70150e70121b003b9b70878c9d7a59cf9ce5f346a9883252a9f88a2bfadb71daa76b8fa5a503d30f3ed9505bf70e79b487ded1aca45811097e882e8d0d3011bd4c3244cf8af1194d9aaa130af60a8766b82726509626",
	mStorage			: "hard,removable,pkcs11",
	mSecOption			: "512:hard:iccard:pkcs11",
	mSecKey			    : "XW_SKS_JRSOFT_DRIVER",
	mSecContext			: null,

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

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

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

var XWFileNetscapeCtrl = {	//Windows - Netscape에 대한 설정
	mName				: "FileAccess",
	mType				: "application/xwfile-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 XWFileNetscapeCtrl4 = {	//Windows - Netscape4에 대한 설정
	mName				: "FileAccess",
	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
}

var XWFile_Win32PluginBrowser = {	//Windows - Firefox, Safari, Opera, Chrome, Seamonkey 등에 대한 설정
	mName				: "FileAccess",
	mType				: "application/xecurewebfile-plugin",
	mStorage			: "hard,removable,csp,iccard",
	mSecOption			: "512:hard:iccard:pkcs11",
	mLicense			: "30820692020101310b300906052b0e03021a0500307006092a864886f70d010701a0630461313a6a6362303531372e736f6674666f72756d2e636f6d3a46696c655369676e2c46696c655665726966792c46696c65456e76656c6f702c46696c654465456e76656c6f702c46696c65436c6561722c46696c655a69702c46696c65556e5a6970a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d0101050500048201001b5f347aff20cefa1d32b8b8f820380557d78b3cfcd50f3aa5480c792babbf6b1032d9a344395787ed5f175469a1f60f28d1f72d67483eeadb08be10fb979060601145f639b940574f3861b1a6bb5f3dc9aa55911c76b0e646e15b5298a68b45c9f3dcf187ef1628b8eac15e2256084808cefa737ac3fd6cbc0e5ddc3fa7cd596ddafad52ec5e3d88510d514f667c89f11d43af3694ea3bbe01ddce58a99e98cc22d435b83266d9fb489a334682a2f7c74b9de440387faff20d0ab384502c6ef2c7f189c41013f51026b07d0aead8b75d07b7b5458f72faef40cdd63e3f03d241a8344320d615c6dd55e11389eb0b2693cf71135060ae6c68c2f092d3a282d9b",	
	mSecKey				: "XW_SKS_JRSOFT_DRIVER",
	mSecContext			: "3082063c020101310b300906052b0e03021a0500301806092a864886f70d010701a00b04093132372e302e302e31a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a33082019f020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300906052b0e03021a0500300d06092a864886f70d0101010500048201002a4504041946bdadcfd8e1e03ffd2c2f36721420b2b0f8fb6243bc1bbf0f6e2ae300ff60616cfbdd02e3fc2610ea61d431af642370e7d458fbbe03738449534389925396a2bc9dedccd1f43cd9f602d3c8118a08ae13e2af1ddfb234666a4ac157f22a1a4288e6eb827de832f64b2ec10253873d0c58c628ad8645d568d14d87567a4c5e131d34fcdd16d2e016f6fa1814697a1f4a847bfc1bbbe7226b19049ef81c8b103cac99b47f19da6f606e6cb2ad4e3642ae93a7747643391931fb46b909a6c91e95830dd50489bef517606fc79fea63ae6074c9ecfdb158cd0b0720088e1e19803c6d2241bb603032faaccbdd673603ff791a3245c93f75c3790cb110",

	mWinVersion			: "7.2.2.8",
	mWin32Src			: "http://" + window.location.host + "/activeX/xecureweb/v7.2.2.8/xw_install.exe",		// Windows OS 플러그인에서 설치 관련 링크...
	mWin64Src			: null,
	// Windows OS  플러그인에 대한 라이센스 - Firefox_Enable,Safari_Enable,Opera_Enable,Chrome_Enable,SeaMonkey_Enable,Netscape_Enable
	mPluginLicense		: "30820690020101310b300906052b0e03021a0500306e06092a864886f70d010701a061045f313a6a6362303531372e736f6674666f72756d2e636f6d3a4368726f6d655f456e61626c652c46697265666f785f456e61626c652c4e657473636170655f456e61626c652c4f706572615f456e61626c652c5361666172695f456e61626c65a0820467308204633082034ba003020102020107300d06092a864886f70d01010505003077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d301e170d3034303431393030303030305a170d3333303131333030303030305a308192310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e311e301c060355040b1315536563757269747920524e44204469766973696f6e311c301a06035504031313536f6674666f72756d205075626c69632043413125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d30820121300d06092a864886f70d01010105000382010e00308201090282010043340b4e1f2f30d6634c818e9fa4b35c199e0628503dbe0d1f5ad2c05890a918408dc330c991083bc7cdfc50021303c04afab4cb522d22fced11d1be6559835f1f000d466120cff97a2a80e4fdf972ac127f9bb8e8ddb84974323e4cb822c5f15b22f82da3de6ef61a0b6798ca49a85af3d8f8298912b4d26411e2e1635c081a3306931716c5e56b279c4d36068a4b645c10aa582693086e14132ba67fb03526312790261f9c641993e2ffc3fd9e8df3efebfddecd722e874d6366ad1252ac0d8bddb5674533cc2717a7342e5cfb18f8a301e7196ca33d6c3bb7e1f1e4bee34f5358af6ae0fd52a9fc3bdd4925f5eab7db6628e24738f6c882bb0aaa0e10afbf0203010001a381de3081db301f0603551d2304183016801409b5e27e7d2ac24a8f56bb67accebb93f5318fd3301d0603551d0e041604142e49ab278ae8c8af977537de8b74bb240e0d275f300e0603551d0f0101ff04040302010630120603551d130101ff040830060101ff02010030750603551d1f046e306c306aa068a06686646c6461703a2f2f6c6461702e736f6674666f72756d2e636f6d3a3338392f434e3d58656375726543524c505542432c4f553d536563757269747920524e44204469766973696f6e2c4f3d536f6674666f72756d20436f72706f726174696f6e2c433d4b52300d06092a864886f70d010105050003820101003ce700a0492b225b1665d9c73d84c34f7a5faad7b397ed49231f030e4e0e91953a607bd9006425373d490ef3ba1cf47810ca8c22fabe0c609f93823efdede64744458e910267f9f857c907318e286da6c131c9dd5fada43fd8cfdf6bd1b1b239338cea83eb6b6893b88fbcfd8e86a677b7270ad96be5a82b40569efc2dda6df4bcd642d067183186d6cace6c8f73b80f30b57acb3bcd5cbbc51307922d5edb38cb0d90c3917a8e37534183ba10f403c1c034287f39442df795050f39d78ddad97da8a43f02d7641549af9b5d68908e49faa8a1597cfed4a43baadd42c8fe4fd44c96d314df56147b8a7fa6ba65ffdee9ed3a5da52ef9ac7f9ca5afb633e1ccdf318201a13082019d020101307c3077310b3009060355040613024b52311e301c060355040a1315536f6674666f72756d20436f72706f726174696f6e3121301f06035504031318536f6674666f72756d20526f6f7420417574686f726974793125302306092a864886f70d010901161663616d617374657240736f6674666f72756d2e636f6d020107300706052b0e03021a300d06092a864886f70d010105050004820100419a946c656b715ecbf580bde271904a4db53875250a53fe5ddef2de6ce13bcc0055b6e6d3b12a02c4e087067ab70f219321e46db4678e62b116a4e45ba27b4ef9fa5d3ab33c7dc4e2cbdc5620cfa965b2ff96a5dfcdd43aa5eeedb93f150cf76a21a84fd0981aac93b23673780340036e7b925c79914e914e65497ce6a11de71aee9114b7049d63de41760f42e35ad9e3f4763be96b8768a50a15e42d32631a2c7cda97c271ba0fc88a947b1489384b711d3045e70024a683a050634614a160993281d679b5cbd616473dad0260e92119ab2e63b67390567ba02eabee3ae7b38713cd5ff4441a8837214842547be6f8b14e0cf2a85bf69d0780f46f19a26e88"
}
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.cCHROME		= "Chrome";
	this.cSAFARI		= "Safari";
	this.cSEAMONKEY		= "SeaMonkey";
	this.cFIREFOX		= "Firefox";
	this.cNAVIGATOR		= "Nevigator";
	this.cNETSCAPE		= "Netscape";
	this.cNETSCAPE4		= "Netscape4";
	this.cOPERA			= "Opera";
	this.cUNSUPPORT		= "Unsupport";

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

	this.mBrowserCtrl	= null;						/* 감지된 브라우저의 컨트롤에 대한 포인터로 getBrowserName에서 설정되는 값이다.  */
	this.mBrowser		= this.getBrowserName();
	this.mVersion		= this.getBrowserVersion();
}

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

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

		else if (this.mUserAgent.indexOf (this.cCHROME) != -1)		// Chrome
		{
			this.mBrowserCtrl = XWChromeCtrl;
			result = this.cCHROME;
		}

		else if (this.mUserAgent.indexOf (this.cSAFARI) != -1)		// Safari
		{
			this.mBrowserCtrl = XWSafariCtrl;
			result = this.cSAFARI;
		}

		else if (this.mUserAgent.indexOf (this.cOPERA) != -1)			// Opera
		{
			this.mBrowserCtrl = XWOperaCtrl;
			result = this.cOPERA;
		}

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

		else if (this.mUserAgent.indexOf ("BonEcho") != -1)			// Firefox 2 source build
		{
			this.mBrowserCtrl = XWFirefoxCtrl;
			result = this.cFIREFOX;
		}

		else if (this.mUserAgent.indexOf ("Minefield") != -1)		// Firefox 3 source build
		{
			this.mBrowserCtrl = XWFirefoxCtrl;
			result = this.cFIREFOX;
		}

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

		else if (this.mUserAgent.indexOf ("Mozilla/4") != -1)		// Netscape 4
		{
			this.mBrowserCtrl = XWNetscapeCtrl4;
			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.cCHROME)
		{
/*
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.30 Safari/530.5
 */
			fromIndex += this.cCHROME.length + 1;
			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 if (this.mBrowser == this.cOPERA)
		{
			fromIndex = this.mUserAgent.indexOf (this.cOPERA) + 6;
			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;
	},
	
	
///////////////////////////////////////////////////////////////////////////
///// 실제 ObjectTag 만드는 함수  파일관련 Tag 는 getFileObjectTag 에서 만듬
///// 브라우저 별로 나뉘어 있음
///////////////////////////////////////////////////////////////////////////
	getObjectTag : function (aPluginFlag, aBrowser)
	{
		
		var result = '';
		var XWBrowserCtrl;

		if (aBrowser == undefined)
		{
			return this.getObjectTag (aPluginFlag, this.mBrowser);
		}

		/*------------------------------------------------------------------------------------
		 * Internet Explore
		 * 지원되는 OS
		 * - windows 32bit
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cMSIE)  ////////Window IE
		{
			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 += "<param name=\"BROWSER\"		value=\""	+ aBrowser + "\">";
			result += "No XecureWeb PlugIn";
			result += "</object>";

			if (this.mPlatform.indexOf (this.cWIN32) == -1)
				result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
		}

		/*------------------------------------------------------------------------------------
		 * Firefox
		 * 지원되는 OS
		 * - windows 32bit
		 * - linux 32/64bit
		 * - macintosh intel/ppc
		 *------------------------------------------------------------------------------------*/
		
		else if (aBrowser == this.cFIREFOX)//////// FIREFOX
		{
			
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWFirefoxCtrl;
			else
				XWBrowserCtrl = XWFile_Win32PluginBrowser; ////실제 사용 안됨
									
			result = "<embed ";
			result += "name=\'" + XWBrowserCtrl.mName + "' ";
			result += "type=\'"		+ XWBrowserCtrl.mType + "' ";
			result += "width=0 height=0 ";
			result += "PluginLicense=\'" + XWBrowserCtrl.mPluginLicense + "' ";
			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.cWIN32) != -1
				|| this.mPlatform.indexOf (this.cLINUX) != -1
				|| this.mPlatform.indexOf (this.cMAC) != -1)
			{
				if (this.mPlatform == this.cWIN64)
					result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
			}

			else
				result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
		}

		/*------------------------------------------------------------------------------------
		 * Chrome
		 * 지원되는 OS
		 * - windows 32bit
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cCHROME) //////// CHROME
		{
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWChromeCtrl;
			else
				//XWBrowserCtrl = XWFileChromeCtrl;
				XWBrowserCtrl = XWFile_Win32PluginBrowser; ////실제 사용 안됨
			
			result = "<embed ";
			result += "name=\'" + XWBrowserCtrl.mName + "' ";
			result += "type=\'"		+ XWBrowserCtrl.mType + "' ";
			result += "width=0 height=0 ";
			result += "PluginLicense=\'" + XWBrowserCtrl.mPluginLicense + "' ";
			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.cWIN32) == -1)
			{
				result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
			}
		}

		/*------------------------------------------------------------------------------------
		 * Safari
		 * 지원되는 OS
		 * - windows 32bit
		 * - macintosh intel/ppc
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cSAFARI) //////// SAFARI
		{
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWSafariCtrl;
			else
				//XWBrowserCtrl = XWFileSafariCtrl;
				XWBrowserCtrl = XWFile_Win32PluginBrowser; ////실제 사용 안됨
			
			result = "<embed ";
			result += "name=\'" + XWBrowserCtrl.mName + "' ";
			result += "type=\'"		+ XWBrowserCtrl.mType + "' ";
			result += "width=0 height=0 ";
			result += "PluginLicense=\'" + XWBrowserCtrl.mPluginLicense + "' ";
			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
				  || this.mPlatform.indexOf (this.cWIN32) != -1))
			{
				result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
			}

		}

		/*------------------------------------------------------------------------------------
		 * Opera
		 * 지원되는 OS
		 * - windows 32bit
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cOPERA) //////// OPERA
		{
			if (aPluginFlag == 0)
				XWBrowserCtrl = XWOperaCtrl;
			else
				//XWBrowserCtrl = XWFileOperaCtrl;
				XWBrowserCtrl = XWFile_Win32PluginBrowser; ////실제 사용 안됨
			
			result = "<embed ";
			result += "name=\'" + XWBrowserCtrl.mName + "' ";
			result += "type=\'"		+ XWBrowserCtrl.mType + "' ";
			result += "width=0 height=0 ";
			result += "PluginLicense=\'" + XWBrowserCtrl.mPluginLicense + "' ";
			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.cWIN32) == -1)
				result = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
		}

		/*------------------------------------------------------------------------------------
		 * Netscape 6.0
		 * 지원되는 OS
		 * - windows 32bit
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cNETSCAPE) //////// NETSCAPE
		{
			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 = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
		}

		/*------------------------------------------------------------------------------------
		 * Netscape 4.0
		 * 지원되는 OS
		 * - windows 32bit
		 *------------------------------------------------------------------------------------*/
		else if (aBrowser == this.cNETSCAPE4) //////// NETSCAPE4
		{
			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 = this.mPlatform + "는 지원하지 않는 운영체제입니다.";
		}
		else
		{
			result += "No XecureWeb PlugIn";
		}

		return result;
	},
	
///////////////////////////////////////////////////////////////////////////
///// xecureweb_file.js 의 PrintFileObjectTag 안에서 호출 되어짐 
///// 브라우저 별로 나뉘어 있음
///////////////////////////////////////////////////////////////////////////
	getFileObjectTag : function (aPluginFlag, aBrowser)
	{
		
		var result;
		var XWBrowserCtrl;

		if (aBrowser == undefined) {
			//alert("aBrowser == undefined [" +aBrowser +"]" );
			return this.getFileObjectTag (aPluginFlag, this.mBrowser);
		}
		else if (this.mPlatform == this.cWIN32)			// win32 브라우저 
		{
			//alert('this.cWIN32');
			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 = "<embed ";
				result += "name=\""		+ XWBrowserCtrl.mName + "\" ";
				result += "type=\""		+ XWBrowserCtrl.mType + "\" ";
				result += "width=0 height=0 ";
				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 = "지원하지 않는 브라우져입니다.";
		}
		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 += "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 = "<embed ";
			result += "name=\""		+ XWBrowserCtrl.mName + "\" ";
			result += "type=\""		+ XWBrowserCtrl.mType + "\" ";
			result += "width=0 height=0 ";
			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 += "</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 += "</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)
			this.mBrowserCtrl.mType = this.mBrowserCtrl.mTypeWin32
		else if (this.mPlatform == this.cWIN64)
			this.mBrowserCtrl.mType = this.mBrowserCtrl.mTypeWin64
		else
			this.mBrowserCtrl.mType = this.mBrowserCtrl.mTypeLinux

		if (this.mBrowser == this.cMSIE)
			return result;

		xecuremime = navigator.mimeTypes [this.mBrowserCtrl.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[2], 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[2], 10);

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

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

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

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

		return false;
	},

	installCtrl : function ()
	{
		var result;
		var version;

		if (this.mBrowser == this.cFIREFOX)
		{
			if (this.mPlatform == this.cWIN32)
			{
				version = this.getBrowserVersion().split(".");
				result = window.open(XWFirefoxCtrl.mWin32SrcManual["XecureWeb Plugin"], '_blank');
			}
			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.cMACINTEL)
					result = this.installGecko (XWFirefoxCtrl.mMacIntelSrc);
				else
					result = this.installGecko (XWFirefoxCtrl.mMacPPCSrc);
			}
			else
			{
				alert ("Unsupported O/S");
			}
		}
		else if (this.mBrowser == this.cCHROME)
		{	// Win32
			/* 크롬은 팝업 생성시 바로 차단되는 것이 기본이라 _self 페이지 이동으로 처리 한다. */
			if (this.mPlatform == this.cWIN32)
			{
				version = this.getBrowserVersion().split(".");
				result = window.open(XWChromeCtrl.mWin32SrcManual["XecureWeb Plugin"], '_self');
			}
		}

		else if (this.mBrowser == this.cSAFARI)
		{	// Win32, MacPPC, MacIntel
			/* Safari는 팝업 생성시 바로 차단되는 것이 기본이라 _self 페이지 이동으로 처리 한다. */
			if (this.mPlatform == this.cWIN32)
				result = window.open(XWSafariCtrl.mWin32SrcManual["XecureWeb Plugin"], '_self');
			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.mBrowser == this.cOPERA)
		{
			if (this.mPlatform == this.cWIN32)
				result = window.open(XWOperaCtrl.mWin32SrcManual["XecureWeb Plugin"], '_self');
		}
		else if (this.mBrowser == this.cNETSCAPE)
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installGecko (XWNetscapeCtrl.mWin32Src);
		}
		else if (this.mBrowser == this.cNETSCAPE4)
		{
			if (this.mPlatform == this.cWIN32)
				result = this.installNetscape (XWNetscapeCtrl4.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;
	},

	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 errDivision = 0;
			var errMsg;

			/*
			 * #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;
					location.reload(true);
					break;
				case 2:
					errMsg = "Liveupdate 가 취소 되었습니다.\n\n" + errCode;
					break;
				case 3:
					errMsg = "Liveupdate 가 이미 처리 되었습니다.. \n\n" + errCode;
					aResult = true;
					break;
				case 4:
					errMsg = "Liveupdate 이미 진행 중입니다. 잠시만 기다려 주세요.\n\n" + errCode;
					break;
				default:
					errMsg = "Liveupdate 중 문제가 발생하였습니다.\n오류 코드[" + errCode + "]\n" + errCode;
					break;
			}
		}

		return aResult;
	}
};


var gXWBrowser = new XWBrowser();


function PrintUpdateTag ()
{
	document.write (gXWBrowser.getUpdateTag());
}

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 (aBrowser == gXWBrowser.cMSIE)
	{
		aResult = true;
	}
	else if (aBrowser == gXWBrowser.cFIREFOX)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1){
			aVersion = XWFirefoxCtrl.mWinVersion;
		}
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1){			
			aVersion = XWFirefoxCtrl.mLinuxVersion;			
		}
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1){
			aVersion = XWFirefoxCtrl.mMacVersion;
		}
	}
	else if (aBrowser == gXWBrowser.cCHROME)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XWChromeCtrl.mWinVersion;
	}

	else if (aBrowser == gXWBrowser.cSAFARI)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XWSafariCtrl.mWinVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWSafariCtrl.mLinuxVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cMAC) != -1)
			aVersion = XWSafariCtrl.mMacVersion;
	}
	else if (aBrowser == gXWBrowser.cOPERA)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XWOperaCtrl.mWinVersion;
		else if (aPlatForm.indexOf (gXWBrowser.cLINUX) != -1)
			aVersion = XWOperaCtrl.mLinuxVersion;
	}

	else if (aBrowser == gXWBrowser.cNETSCAPE)
	{
		if (aPlatForm.indexOf (gXWBrowser.cWIN) != -1)
			aVersion = XWNetscapeCtrl.mWinVersion;
		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
	{
		aVersion = null;
	}

	if (aResult == false && aVersion == null)
	{
		alert ("XecureWeb은 이 브라우저 " + aBrowser + "는 지원하지 않습니다.");
		return false;
	}

	if (gXWBrowser.checkCtrl (aVersion))
	{
		//alert("44");
		gXWBrowser.installCtrl();
		aResult = false;
	}
	else
		aResult = true;

	if (aResult)
	{
		aObjectTag = gXWBrowser.getObjectTag(0);
		//alert(aObjectTag);
		document.write (aObjectTag);
	}

	if (document.XecureWeb == undefined)
	{
		document.XecureWeb = document.getElementById ("XecureWeb");
	}
			
		    //20090304  행자부 인증서 추가로 인한 함수 추가 
	//SetConvertTable();	
			
}

/* Warmstar Add End */

var agt=navigator.userAgent.toLowerCase();
var is_gecko = (agt.indexOf('gecko') != -1);
var is_linux = (agt.indexOf('linux') != -1);

//////////////////////////////////////////////////////////////////////////////////
//	Xecure 함수들....
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()
{
	alert("islinux");
	alert(gXWBrowser.mPlatform);
  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
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

	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
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;

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

/**
 * @since XecureWeb 6.0 v220
 */
function XecureNavigate_Env( url, target, feature )
{
	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;
	
	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');
	path = getPath(url)
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}
	
	if( gIsContinue == 0 ) {
		gIsContinue = 1;
		//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}
			
	if( cipher == "" )	return XecureWebError();
	
	//xecure_url = path + "?q=" + escape_url(cipher);
	xecure_url = path + "?eq=" + escape_url(cipher);

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

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

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


	// get path info & query string from action url 
	if ( link.protocol != "http:" ) {
		alert ( "http 프로토콜만 사용 가능합니다." );
		return true;
	}

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

	hash = link.hash;
	
	if( gIsContinue == 0 ) {
		path = XecurePath(link.pathname) ;
		gIsContinue = 1;
		
		if( IsNetscape60() )		// Netscape 6.0
			cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
		else {
			//cipher = document.XecureWeb.BlockEnc(xgate_addr, "/XecureDemo/jsp/ibs/transfer_input.jsp", XecureEscape(qs),"GET");
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
		}
		gIsContinue = 0;
	}
	else {
		alert(busy_info);
		return false;
	}
	if( cipher.length == 0)	return XecureWebError() ;

	// link.search = "?q=" + escape_url(cipher);
	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
	
	// adding character set information
	if(usePageCharset)
		xecure_url += "&charset=" + document.charset;
	
	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

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


	// get path info & query string from action url 

	if ( link.protocol != "http:" ) {
		// alert ( "http 프로토콜만 사용 가능합니다." );
		return true;
	}

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

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

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

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

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


function XecureSubmit( form )
{
	var aBrowser	= gXWBrowser.mBrowser;
	var qs;
	var path ;
	var cipher;

	qs_begin_index = form.action.indexOf('?');
	
	// if action is relative url, get base url from window location
	path = getPath(form.action);
	// get path info & query string & hash from action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
	}
	document.xecure.target = form.target;
	
	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values 
		//qs = XecureMakePlain( form );
		if(qs.length!=0)
			qs += "&"+XecureMakePlain( form );
		else
			qs = XecureMakePlain( form );
		
		// encrypt QueryString
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");			
			else{
				cipher = document.XecureWeb.BlockEncEx2(xgate_addr, path, XecureEscape(qs),"GET", accept_cert, 65001);
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}
		
		if( cipher == "" )	return XecureWebError() ;
		
		xecure_url = path + "?q=" + escape_url(cipher);
		// adding character set information
		if(usePageCharset)
			xecure_url += "&charset=utf-8";
			//xecure_url += "&charset=" + document.charset;
			
		if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
		else open ( xecure_url, form.target );
	}
	else {
		document.xecure.method = "post";
		// encrypt QueryString of action field
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");			
			else {
				cipher = document.XecureWeb.BlockEncEx2(xgate_addr, path, XecureEscape(qs),"GET", accept_cert, 65001);
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}		
	
		
		if( cipher == "" )	return XecureWebError() ;

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

		posting_data = XecureMakePlain( form );
		
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			if( IsNetscape60() )		// Netscape 6.0
				cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, path, XecureEscape(posting_data), "POST" );
			else{
				cipher = document.XecureWeb.BlockEncEx2 ( xgate_addr, path, XecureEscape(posting_data), "POST", accept_cert, 65001 );
			}
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}		
	
		if( cipher == "" )	return XecureWebError() ;
		
		document.xecure.p.value = cipher;	

		//if(IsWindow())
		//xecure_url += "&charset=MS949";
		if(gXWBrowser.mPlatform.indexOf(gXWBrowser.cMAC) != -1 )
			document.xecure.action += "&charset=utf-8";
		document.xecure.submit();
	}

	return false;
	
}

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

	qs_begin_index = form.action.indexOf('?');
	
	// if action is relative url, get base url from window location
	path = getPath(form.action)
	// get path info & query string & hash from action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
	}
	document.xecure.target = form.target;
	
	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values 
		if(qs.length!=0)
			qs += "&"+XecureMakePlain( form );
		else
			qs = XecureMakePlain( form );
		
		// encrypt QueryString
		if( gIsContinue == 0 ) {
			gIsContinue = 1;
			//cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
			cipher = EnvelopData(XecureEscape(qs), "", serverCert, 1);
			gIsContinue = 0;
		}
		else {
			alert(busy_info);
			return false;
		}
		
		if( cipher == "" )	return XecureWebError() ;
		
		//xecure_url = path + "?q=" + escape_url(cipher);
		xecure_url = path + "?eq=" + escape_url(cipher);
		
		// adding character set information
		if(usePageCharset)
			xecure_url += "&charset=" + document.charset;

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

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


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

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

		posting_data = XecureMakePlain( form );

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

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

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


	len = form.elements.length; 
	for (i = 0; i < len; i++) {
		if ((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")) {
			if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox") { // Leejh 99.11.10 checkbox추가
				if (form.elements[i].checked == true) {
					name[j] = form.elements[i].name; 
					value[j] = form.elements[i].value;
					j++;
				}
			}
			//for softcamp
			else if(enable && form.elements[i].type == "password"){
				if(form.elements[i].type == "password"){
					name[j] = form.elements[i].name;
					value[j] = secukey.GetRealPass(form.elements[i].name,form.elements[i].value);
					j++;
				}
			}
			else {
				name[j] = form.elements[i].name; 
				if (form.elements[i].type == "select-one") {
					var ind = form.elements[i].selectedIndex;
					if (form.elements[i].options[ind].value != '')
						value[j] = form.elements[i].options[ind].value;
					else
						value[j] = form.elements[i].options[ind].text;
					// form.elements[i].selectedIndex = 0;
				}
				else {
					value[j] = form.elements[i].value;
				}
				j++;
			}
		}
	}
	for (i = 0; i < j; i++) {
		str = value[i]; 
		value[i] = escape_url(str); 
	}

	for (i = 0; i < j; i++) {
		if (flag)
			plain_text += "&";
		else
			flag = true;
		plain_text += name[i] ;
		plain_text += "=";
		plain_text += value[i];
	}

	return plain_text;
}

function XecureMakePlain(form)	// modified by tiger on 2004/12/22
{
       var name = new Array(form.elements.length);
       var value = new Array(form.elements.length);
       var flag = false;
       var j = 0;
       var plain_text="";


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

       len = form.elements.length;
       for (i = 0; i < len; i++) {
                    if ((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")) {
                                 if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox") {
                                              if (form.elements[i].checked == true) {
                                                if (form.elements[i].disabled == false) {
                                                          name[j] = form.elements[i].name;
                                                          value[j] = form.elements[i].value;
                                                          j++;
                                                }
                                              }
                                 }
                                 //for softcamp
                                 else if(enable && form.elements[i].type == "password"){
                                              if(form.elements[i].type == "password"){
                                                            name[j] = form.elements[i].name;
                                                            value[j] = secukey.GetRealPass(form.elements[i].name,form.elements[i].value);
                                                            j++;
                                              }
                                 }
                                 else {
                                              name[j] = form.elements[i].name;
                                              if (form.elements[i].type == "select-one") {
                                                            var ind = form.elements[i].selectedIndex;
                                                            var op_len = form.elements[i].length;
                                                if (op_len > 0) {
                                                          if(ind > 0) {
                                                                     if (form.elements[i].options[ind].value != '')
                                                                               value[j] = form.elements[i].options[ind].value;
                                                                     else
                                                                               //value[j] = form.elements[i].options[ind].text;
                                                                               value[j] = "";
                                                          } else {
                                                                     if(ind == 0)
                                                                     {
                                                                               if (form.elements[i].options[ind].value != '')
                                                                                          value[j] = form.elements[i].options[ind].value;
                                                                               else
                                                                                          //value[j] = form.elements[i].options[ind].text;
                                                                                          value[j] = "";
                                                                     }
                                                          }
                                                          // form.elements[i].selectedIndex = 0;
                                                }
                                     }
                                     else if (form.elements[i].type == "select-multiple") {
                                                var llen = form.elements[i].length;
                                                var increased = 0;
                                                for( k = 0; k < llen; k++) {
                                                          if (form.elements[i].options[k].selected) {
                                                                     name[j] = form.elements[i].name;
                                                                     if (form.elements[i].options[k].value != '')
                                                                               value[j] = form.elements[i].options[k].value;
                                                                     else
                                                                               //value[j] = form.elements[i].options[k].text;
                                                                               value[j] = "";
                                                                     j++;
                                                                     increased++;
                                                          }
                                                }
                                                if(increased > 0) {
                                                          j--;
                                                }
                                                else {
                                                          value[j] = "";
                                                }
                                     }
                                     else {
                                                value[j] = form.elements[i].value;
                                     }
                                     j++;
                          }
                }
     }

       for (i = 0; i < j; i++) {
                    str = value[i];
                    value[i] = escape_url(str);
       }
 
       for (i = 0; i < j; i++) {
                    if (flag)
                                 plain_text += "&";
                    else
                                 flag = true;
                    plain_text += name[i] ;
                    plain_text += "=";
                    if (value[i] !="undefined"){
                                 plain_text += value[i];
                    }else {
                                 plain_text += "";
                    }
       }
 
       return plain_text;
}

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

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

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

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

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

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

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

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

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

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

function Sign_with_option( option, plain )
{
	var signed_msg;

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

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

    return signed_msg;
}
 
function Sign_Add( option, plain )
{
	var signed_msg;

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

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

    return signed_msg;
}

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

function Sign_with_desc( plain, desc )
{
	var signed_msg;

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

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

// XecureWeb ver 5.0 add

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

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

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

    return signed_msg;
}

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

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

    if( signed_msg == "" )	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(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
	}

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

    return signed_msg;
}

// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 	0 : HARD
//	1 : REMOVABLE
//	2 : ICCARD
//	3 : CSP
//	4 : VSC
// [option]
//	0 : 서명원문 확인창 없음
//	1 : 서명원문 확인창 띄움
function Sign_with_vid_web_serial( certSerial, certLocation, option, plain, svrCert, idn )
{
	var ret;
	var signed_msg;

	option = option + 12;
	
	if(IsNetscape())
	{
		alert("Not supported function");
	}
	else {
		ret = Set_ID_Num(idn);
		if(ret != 0) {
			XecureWebError();
			return signed_msg;
		}
			
		signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
	}

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

    return signed_msg;
}

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

function send_vid_info()
{
	var	vid_info;
	
	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		vid_info = document.XecureWeb.GetVidInfo();
	}
	
	if(vid_info.length == 0)
		return null;
	else
		return vid_info;
}

// only over XecureWeb Client v5.3.0.1
// [certLocation]
// 	0 : HARD
//	1 : REMOVABLE
//	2 : ICCARD
//	3 : CSP
//	4 : VSC
// [option]
//	0 : 서명원문 확인창 없음
//	1 : 서명원문 확인창 띄움
function Sign_with_serial( certSerial, certLocation, plain, option )
{
	var	signed_msg;

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

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

	return signed_msg;	
}

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

	// VerifySignedData는 인증서 검증시 오류가 발생하더라도 원문 추출이 성공하면 원문을 리턴하기 때문에
	// 반드시 LastErrCode를 확인해야 한다.
	errCode = document.XecureWeb.LastErrCode();
	if( errCode != 0 )
		XecureWebError();
	
	return verified_msg;	
}

//
// only over XecureWeb Client v5.4.x
//
// applicable cert location : usbtoken_kb, usbtoken_kiup
//
function Set_PinNumber( pin )
{
	var	ret = -1;
	
	if( IsNetscape() )
	{
		alert("Not supported function");
	}
	else
	{
		 ret = document.XecureWeb.SetPinNum( pin );
	}

	return ret;
}

// type 10 : YessignCA
// type 11 : XecureCA
function RequestCertificate ( type, ref_code, auth_code )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;
	
	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}
	
	if(IsNetscape())
	{
		if( IsNetscape60() )	// Netscape 6.0
			r = document.XecureWeb.nsIXecurePluginInstance.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
		else
			r = document.XecureWeb.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
	}
	else 
	{
		r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code, ca_type);
	}

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

// type 00 : YessignCA
// type 11 : XecureCA
function RenewCertificate ( type )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;
	
	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}

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

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

// type 00 : YessignCA
// type 11 : XecureCA
function RevokeCertificate ( type, jobcode, reason )
{
	var r;
	var ca_type;
	var ca_ip;
	var ca_port;
	
	if(type == 10) {
		ca_type = yessign_ca_type;
		ca_ip = yessign_ca_ip;
		ca_port = yessign_ca_port;
	}
	else if(type == 11) {
		ca_type = xecure_ca_type;
		ca_ip = xecure_ca_ip;
		ca_port = xecure_ca_port;
	}
	else if(type == 12) {
		ca_type = xecure_ca_type_1;
		ca_ip = xecure_ca_ip_1;
		ca_port = xecure_ca_port_1;
	}
	else {
		alert("Input type error!");
		return 0;
	}
	
	if(IsNetscape())
	{
		if( IsNetscape60() )	// Netscape 6.0
			r = document.XecureWeb.nsIXecurePluginInstance.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
		else
			r = document.XecureWeb.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type,  pwd_fail);
	}
	else {
		r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason, ca_type, pwd_fail );
	}

        if ( r != 0 ) 	XecureWebError();

	return r;
}

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

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

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

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

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

	if( r != 0 )	XecureWebError() ;
	else 		alert('인증서를 삭제하였습니다.');
}

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

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

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

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

	versionString = desc.substring(index +2, desc.length);
	arrayOfStrings = versionString.split('.');
	thisMajor = parseInt(arrayOfStrings[0], 10);
	thisMinor = parseInt(arrayOfStrings[1], 10);
	thisBuild = parseInt(arrayOfStrings[2], 10);
	
	if (thisMajor > versionMaj)	return true;
	if (thisMajor < versionMaj)	return false;
	
	if (thisMinor > versionMin)	return true;
	if (thisMinor < versionMin)	return false;
	
	if (thisBuild > versionRel)	return true;
	if (thisBuild < versionRel)	return false;

	return true;
}

function downloadNow () {
	if ( navigator.javaEnabled() ) {
		trigger = netscape.softupdate.Trigger;
		if ( trigger.UpdateEnabled() ) {
			if (navigator.platform == "Win32") {
				trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
			}
			else alert('이 플러그 인은 윈도우즈 95/98/NT 환경에서만 작동합니다.')
		}
		else
			alert('넷스케입의 SmartUpdate 설치를 가능하도록 해야합니다.');
	}
	else
		alert('Java 실행을 가능하도록 해야합니다.');
}

function isOldPlugin(desc,version)	// by Zhang
{
	index = desc.indexOf('v.', 0);
	if (index < 0)	return true;
	
	desc += ' ';
	versionString = desc.substring(index +2, desc.length);
	arrayOfStrings = versionString.split('.');
	thisMaj = parseInt(arrayOfStrings[0], 10);
	thisMin = parseInt(arrayOfStrings[1], 10);
	thisRel = parseInt(arrayOfStrings[2], 10);
	
	arrayOfStrings = version.split('.');
//	verMaj = parseInt(arrayOfStrings[0], 10);
//	verMin = parseInt(arrayOfStrings[1], 10);
//	verRel = parseInt(arrayOfStrings[2], 10);
	s_verMaj = parseInt(arrayOfStrings[0], 10);
	s_verMin = parseInt(arrayOfStrings[1], 10);
	s_verRel = parseInt(arrayOfStrings[2], 10);
	
	if (thisMaj > s_verMaj)	return false;
	if (thisMaj < s_verMaj)	return true;
	
	if (thisMin > s_verMin)	return false;
	if (thisMin < s_verMin)	return true;
	
	if (thisRel > s_verRel)	return false;
	if (thisRel < s_verRel)	return true;

	return false;
}

function DownloadPackage(packageURL) // by Zhang
{
	if ( navigator.javaEnabled() ) {
		trigger = netscape.softupdate.Trigger;
		if ( trigger.UpdateEnabled() ) {
			if (navigator.platform == "Win32") {
				trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);
			}
			else
				alert('이 플러그 인은 윈도우즈 95/98/NT 환경에서만 작동합니다.');
		}
		else
			alert('넷스케입의 SmartUpdate 설치를 가능하도록 해야합니다.');
	}
	else
		alert('Java 실행을 가능하도록 해야합니다.');
}

function XecureWebPlugin(version)	// by Zhang
{
	if (navigator.appName == 'Netscape' && UserAgent() == "Mozilla/4") 
	{
  		var XecureMime = navigator.mimeTypes["application/x-SoftForum-XecSSL40"];
		if (XecureMime) {   // Xecure PlugIn 이 이미 설치되어 있는 경우
			if ( isOldPlugin(XecureMime.enabledPlugin.description,version))
				DownloadPackage(packageURL);
		}
		else {     // Xecure PlugIn 이 설치되어 있지 않은 경우
			DownloadPackage(packageURL);
		}
	}
}

/*
function PrintObjectTag()
{
	var Agent = navigator.userAgent;
	    Agent = Agent.toLowerCase();
//        alert(Agent);
	
	if(IsNetscape60()){	
        //alert("Netscape 6.0은 지원하지 않습니다"); 
    }
	else
	{
		if(navigator.appName == 'Netscape')
		{
			document.write("<EMBED type='application/x-SoftForum-XecSSL40' hidden=true name='XecureWeb'></EMBED><NOEMBED>No XecureWeb PlugIn</NOEMBED>") ;
		}
		else{
			//document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="http://download.softforum.co.kr/Published/XecureWeb/v7.2.0.2/xw_install.cab#Version=7,2,0,2" width=0 height=0><param name="lang" value="korean"><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');	
            //document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/activeX/xecureweb/xw_install.cab#Version=7,2,0,2" width=0 height=0><param name="lang" value="korean"><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');   
            //ie8.0 버전 업그레이드 
            document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/activeX/xecureweb/v7.2.2.7/xw_install.cab#Version=7,2,2,7" width=0 height=0><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');
            //document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="http://download.softforum.co.kr/Published/XecureWeb/v7.2.2.7/xw_install.cab#Version=7,2,2,7" width=0 height=0><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');
        }
	}	 
}
*/



function get_sid() 
{
	var sid = document.XecureWeb.BlockEnc ( xgate_addr, "", "", "GET" );
    alert(sid);
        
	if( sid == "") 	return XecureWebError() ;
        
	return sid;
}

// applet에서 servlet으로 보낼 값을 암호화 하는 function
function enc(str) {
	var state='';
	var plain='';
	var escaped_state='';
	plain=String(str);

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

// servlet에서 applet으로 보내준 값을 복호화 하는 function
function dec(str) {
	var result=BlockDec(str);
	return result;
}

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

	path = getPath(url);
	
	cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"POST");
		
	if( cipher.length == 0 ) 	return XecureWebError() ;
	
	xecure_url = path + "?q=" + sid + ";" + escape_url(cipher);
	if (feature=="" || feature==null) open ( xecure_url, target );
	else open(xecure_url, target, feature );
}

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

// option bit : _4_ _3_ _2_ _1_
//                       |   |
//                       |   --- 0 : 모든 인증서 리스트업, 1 : 로그인한 인증서 사용
//                       ------- 0 : 사용자에게 idn 입력 요구, 1 : idn에 "NULL" setting, 서버에서 idn 설정
function VerifyVirtualID(Idn, TimeStamp, ServerCertPem)
{
	var msg;
	
	var option = 0;
	
	option = 0;   // 모든 인증서 리스트업, 사용자에게 idn 입력 요구
//	option = 1;   // 로그인한 인증서 사용, 사용자에게 idn 입력 요구
// only over XecureWeb Client v5.3.0.1
//	option = 2;   // 모든 인증서 리스트업, idn에 "NULL" 설정
//	option = 3;   // 로그인한 인증서 사용, idn에 "NULL" 설정
	
	if( IsNetscape() )
	{
		msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, escape(accept_cert), option, escape(Idn));
	}
	else 
	{
		msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, accept_cert, option, Idn);
	}
	
	return msg;

}

// nOption is 0 : (default value) File version, which is checked by 'Internet Explorer'
//            1 : Product version
//            2 : File Description
function GetVersion(nOption)
{
	var ver;
	
	if( IsNetscape() )
	{
		alert("Not supported function");
		ver = "";
	}
	else
	{
		ver = document.XecureWeb.GetVerInfo(nOption);
		if( ver == "" )
			alert("No version information");
	}
	
	return ver;
}

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

// only over XecureWeb Client v5.3.0.1
function SetUpdateInfo( section, key, value1 )
{
	var	ret;
	
	if( IsNetscape() )
	{
		alert( "Not supported function" );
		ret = 0;
	}
	else
	{
		ret = document.XecureWeb.SetUpdateInfoString( section, key, value1 );
	}
	
	return ret;			
}

// inserted by knlee 2003/06/10
function SetProviderList()
{
	var	ret;
	
	//var	provName = "TrustedNet Connect 2 Smart Card CSP;Microsoft Base Cryptographic Provider v1.0;Microsoft Enhanced Cryptographic Provider v1.0";
	var	provName = "TrustedNet Connect 2 Smart Card CSP;Keycorp CSP";
	
	if( IsNetscape() )
	{
		alert("Not supported function");
		return -1;
	}
	else
	{
		ret = document.XecureWeb.SetProvider(provName);
		if( ret != 0 )
			alert("Set Provider name is Fail!");
	}
	
	return ret;
}

// applet에서 servlet으로 보낼 값을 암호화 하는 function
function enc(str) {
	var state='';
	var plain='';
	var escaped_state='';
//	plain=String(str);

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

// servlet에서 applet으로 보내준 값을 복호화 하는 function
function dec(str) {
	var result=BlockDec(str);
	return result;
}

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

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

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

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

/*
	*** valid for only XWebFilCom v5.5.x ***
	
	It is possible to combine following option flags
	[EXCEPTION]
	   - 1,2 cannot be used simultaneously
	   - 4 is valid for only 1
	
	envOption  =   1 : 인증서기반 전자봉투
	           =   2 : 패스워드기반 전자봉투
	           =   4 : 여러 개의 인증서로 전자봉투
	           =   8 : CMS 타입으로 Envelop
	           = 256 : 로그인한 인증서로 전자봉투
	           
	return value
	   - success : enveloped message
	   - fail    : ""
*/
function EnvelopData( inMsg, pwd, certPem, envOption )
{
	var envMsg;

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

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

	return envMsg;
}

/* IE8 세션공유작업 시작, 2009-06-09 이정주 */
function checkIE8()
{
    var rv = -1; // Return value assumes failure
    
    if (navigator.appName == 'Microsoft Internet Explorer')
    {
        var ua = navigator.userAgent.toLowerCase();
        if( ua.indexOf('trident/4.0') != -1 )
        {
            rv = 1;
        }
        else
        {
            rv = 0;
        }
    }
        
    return rv;
}

//Restart IE8 nomerge mode.
function RestartWebBrowser( vender, mode, restartUrl, Option )
{
    var ret;
    var vender;
    var errCode;
    //alert("Called RestartWebBrowser js function");
    if ( checkIE8() == 1 )
    {
        //alert("return ture checkIE8 of javascript checking");
        vender = 1;

        ret = document.XecureWeb.RestartWebBrowser(vender, mode, restartUrl, Option, 0);
    }
    else
    {
        //alert("return false checkIE8 of javascript checking");
        return 0;
    }
    
    if( ret == 1 )
    {
        // alert("nomerge 재실행이 실행되었다. 현재의 IE 창은 곧 닫힌다.");
    }
    
    if( ret == 0 )
    {
        // alert("이미 nomerge 재실행된 브라우저 페이지이다.");
    }
    
    if( ret < 0 )
    {
        // 에러 처리 부분.
    }

    return ret;
}
/* IE8 세션공유작업 끝, 2009-06-09 이정주 */
