
//
// XecureWeb SSL Client Java Script ver4 2000.6.20
//
//

/* Test yessign CA IP */
//var	ca_ip =  "203.233.91.232";
/* Real yessign CA IP */
var	ca_ip =  "203.233.91.71";

var ca_port = 4512;
//var accept_cert = "yessign,Å×½ºÆ® ÀÎÁõ±â°ü";
//var accept_cert = "yessignCA,signGATE CA,SignKorea CA,CrossCertCA,NCASign CA,TradeSignCA";
var accept_cert="yessignCA:1.2.410.200005.1.1.1";
accept_cert+=":1.2.410.200005.1.1.2:1.2.410.200005.1.1.4:1.2.410.200005.1.1.5";
// ÇÑ±¹Á¤º¸ÀÎÁõ ÀÎÁõ¼­ ¼ö¿ë ºÎºÐ
accept_cert+=",signGATE CA:1.2.410.200004.5.2.1.1:1.2.410.200004.5.2.1.2";
accept_cert+=":1.2.410.200004.5.2.1.7.1:1.2.410.200004.5.2.1.7.2";
// Áõ±ÇÀü»ê¿ø ÀÎÁõ¼­ ¼ö¿ë ºÎºÐ
accept_cert+=",SignKorea CA:1.2.410.200004.5.1.1.5:1.2.410.200004.5.1.1.7";
accept_cert+=":1.2.410.200004.5.1.1.9";
// ÇÑ±¹Àü»ê¿ø ÀÎÁõ¼­ ¼ö¿ë ºÎºÐ
accept_cert+=",NCASign CA:1.2.410.200004.5.3.1.9:1.2.410.200004.5.3.1.2";
// ÇÑ±¹ÀüÀÚÀÎÁõ ÀÎÁõ¼­ ¼ö¿ë ºÎºÐ
accept_cert+=",CrossCertCA:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2"; 
accept_cert+=":1.2.410.200004.5.4.1.101"; 
// ÇÑ±¹¹«¿ªÁ¤º¸Åë½Å ÀÎÁõ¼­ ¼ö¿ë ºÎºÐ
accept_cert+=",TradeSignCA:1.2.410.200012.1.1.1:1.2.410.200012.1.1.3";
accept_cert+=":1.2.410.200012.1.1.101:1.2.410.200012.1.1.103";

//½ÅÀÎÁõ¼­°ü·Ã Ãß°¡(2006.02.24)
accept_cert+=",signGATE CA2,NCASignCA,CrossCert Certificate Authority";

// ¹Ýµå½Ã È£½ºÆ® ¸íÀ» ÁöÁ¤ÇÒ °Í
// var bannerUrl = "http://www.softforum.co.kr/XecureObject/xecure.bmp";
var bannerUrl = "http://www.lig.co.kr/image/common/xecure_big.bmp";
var bannerUrlSigned = "http://www.lig.co.kr/image/common/xecure_big.bmp.sig"; //OS °¡ ºñ½ºÅ¸ ÀÏ¶§¸¸ ¼­¸íµÈ ¹è³Ê »ç¿ë.	

var pCaCertUrl= "http://www.lig.co.kr/XecureObject/signed_cacert.bin";
var pCaCertName = "Å×½ºÆ® ÀÎÁõ±â°ü";

// ÀüÀÚ¼­¸í Ã¢ÀÇ ¸Þ½ÃÁö
var sign_desc = "";
var show_plain = 0; // ÀüÀÚ¼­¸í½Ã ¼­¸í¿ø¹® Ã¢ º¸±â ¿É¼Ç. 0 : ¼­¸í¿ø¹® Ãâ·Â ¾ÈÇÔ, 1 : ¼­¸í¿ø¹® Ãâ·Â

// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
//var xgate_addr	= window.location.hostname + ":443:8080";
var xgate_addr	= "www.lig.co.kr:443:8080";
//var xgate_addr	= "10.255.11.30:443:8080";
// ÀüÀÚ¼­¸í, ÀÎÁõ¼­ °»½Å, ÀÎÁõ¼­ Æó±â½Ã¿¡ ÀÎÁõ¼­ ¾ÏÈ£¿À·ù¸¦ Çã¿ëÈ¸¼ö
var pwd_fail = 3;


// ÇÑ±¹Åë½Å µ¥ÀÌÅ¸ ¼¾Å¸ ¼­¹ö 1
var     packageURL = 'http://download.softforum.co.kr/XecureObject/NPXecSSL40_Install.jar';

var     packageName = 'XecureWeb SSL 4.0 Plug-in';
var     updateObjectName = 'XecureWeb SSL 4.0 Plug-in';
var     versionMaj = 4;
var     versionMin = 1;
var     versionRel = 4;
var     versionBld = 200010315;
// Xecureweb 5.0 upgrade Ãß°¡ ºÎºÐ start

var gIsContinue=0;
var busy_info = "¾ÏÈ£È­ ÀÛ¾÷ÀÌ ÁøÇàÁßÀÔ´Ï´Ù. È®ÀÎÀ» ´©¸£½Ã°í Àá½Ã ±â´Ù·Á ÁÖ½Ê½Ã¿À.";
//////////////////////////////////////////////////////////////////////////////////
//	Xecure Big ÇÔ¼öµé....
function SetConvertTable() {
    //±ÝÀ¶°áÀç¿ø
    document.XecureWeb.SetPolicyConvertTableFirst(0, "1.2.410.200005.1.1.1", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.5", "¹ü¿ë±â¾÷");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.2", "±ÝÀ¶±â¾÷");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.4", "ÀºÇà/º¸Çè¿ë");
    
    //ÇÑ±¹ Á¤º¸ÀÎÁõ
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.2", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.1", "¹ü¿ë±â¾÷");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.7.1", "ÀºÇà/º¸Çè¿ë");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.2.1.7.2", "Áõ±Ç/º¸Çè¿ë");
    
    //ÇÑ±¹ Áõ±ÇÀü»ê
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.5", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.7", "¹ü¿ë¹ýÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.1.1.9", "Áõ±Ç/º¸Çè¿ë");
    
    //ÇÑ±¹ Àü»ê¿ø
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.3.1.9", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.3.1.2", "¹ü¿ë±â¾÷");
    
    //ÇÑ±¹ ÀüÀÚÀÎÁõ
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.1", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.2", "¹ü¿ë±â¾÷");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200004.5.4.1.101", "ÀºÇà/º¸Çè¿ë");
    
    //ÇÑ±¹¹«¿ª Á¤º¸Åë½Å
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200012.1.1.1", "¹ü¿ë°³ÀÎ");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200012.1.1.3", "¹ü¿ë±â¾÷");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200012.1.1.101", "ÀºÇà/º¸Çè¿ë");
    document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200012.1.1.103", "Áõ±Ç/º¸Çè¿ë");
    document.XecureWeb.SetPolicyConvertTableFinal(0);
    
    document.XecureWeb.SetIssuerConvertTableFirst("yessignCA", "±ÝÀ¶°áÁ¦¿ø");
    document.XecureWeb.SetIssuerConvertTableNext("SignKorea CA", "Áõ±ÇÀü»ê");
    document.XecureWeb.SetIssuerConvertTableNext("signGate CA", "Á¤º¸ÀÎÁõ");
    document.XecureWeb.SetIssuerConvertTableNext("NCASign CA", "Àü»ê¿ø");
    document.XecureWeb.SetIssuerConvertTableNext("TradeSignCA", "¹«¿ªÁ¤º¸Åë½Å");
    document.XecureWeb.SetIssuerConvertTableNext("CrossCertCA", "ÀüÀÚÀÎÁõ");
    document.XecureWeb.SetIssuerConvertTableNext("CertRSA01", "KISAÀÎÁõ±â°ü");
    document.XecureWeb.SetIssuerConvertTableFinal();
}

//////////////////////////////////////////////////////////////////////////////////
//	Xecure ÇÔ¼öµé....
function UserAgent()
{
	return navigator.userAgent.substring(0,9);
}

function IsNetscape()			// by Zhang
{
	if(navigator.appName == 'Netscape')
		return true ;
	else
		return false ;
}

function IsNetscape60()			// by Zhang
{
	if(IsNetscape() && UserAgent() == 'Mozilla/5')
		return true ;
	else
		return false ;
}

function XecureUnescape(Msg)		// by Zhang
{
	if(IsNetscape())
		return unescape(Msg) ;
	else
		return Msg ;
}

function XecureEscape(Msg)		// by Zhang
{
	if(IsNetscape())
		return escape(Msg) ;
	else
		return Msg ;
}

function XecurePath(xpath)		// by zhang
{
	if(IsNetscape())
		return (xpath) ;
	else
		return ("/" + xpath) ;		
}

function 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 PutBannerUrl()
{
	var version = GetVersion(1);
	
	if( IsNetscape60() )		// Netscape 6.0
	{
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
	}
	else if(version.indexOf('7, 2,') >= 0 ||  version.indexOf('7,2,') >=0)
	// 7,2 ¹öÁ¯ ÀÌ»ó ÀÏ¶§¸¸ ¼­¸í º£³Ê »ç¿ë	
	{
	 	document.XecureWeb.PutBigBannerUrl( xgate_addr, bannerUrlSigned);
	}
	else
	{
		document.XecureWeb.PutBigBannerUrl( xgate_addr, bannerUrl);
	}
}
// nOption is 0 : (default value) File version, which is checked by 'Internet Explorer'
//            1 : Product version
//            2 : File Description

// Xecureweb5.0 Upgrade end

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;
}



function process_error ( errCode, errMsg ) {

	alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );
}
function sign_error ( errCode, errMsg ) {
	alert ( "»ç¿ëÇÒ ¼ö ÀÖ´Â ÀÎÁõ¼­°¡ ¾ø´Â °æ¿ì.\n'ÀÏ¹ÝÈ®ÀÎ'À¸·Î °è¾à ³»¿ëÀ» È®ÀÎÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù. " );

	sign_code( errCode );
}
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 = String(Math.round(Math.random() * (maxnumbers-1))+1);
        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 cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";

	// 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;//.substring(0,path_end);
		}
		else {
			path_end = window.location.href.indexOf('?');
			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 );
	}
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}
	cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, "", "GET" );
	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	if ( qs == "" )
		xecure_url = path + "?q=" + escape_url(cipher) ;
	else
		xecure_url = path + "?q=" + escape_url(cipher) + "&" + qs;

	open ( xecure_url, target );
}

function XecureNavigate( url, target, feature ) {

	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";

	// 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;//.substring(0,path_end);
		}
		else {
			path_end = window.location.href.indexOf('?');
			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 );
	}
	// get query string action url
	if ( qs_begin_index < 0 ) {
		qs = "";
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
	}
	if(navigator.appName == 'Netscape') {
		cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
	}
	else
		cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	xecure_url = path + "?q=" + escape_url(cipher);

//	if (feature=="" || feature==null) open ( xecure_url, target );
//	else open(xecure_url, target, feature );
	if ( target =="_self" ) {
		location = xecure_url;
	}
	else if ( target == "_blank"  || target == "_top" ) {
		open( xecure_url, target, feature );
	}	
		
	else	{
		eval("parent." + target + ".location = '" + xecure_url + "';");
	}

}

function XecureLink( u1, u2, link ) {
   isLogin = getCookie("logon");
   loginType = getCookie("lgins_connect_type");

   if ( isLogin == "on" ) {
      if ( loginType == null || loginType == "" ) loginType = "lgins/id";
      location_url = appprotocol + "://" + appserver + domain + "/" + loginType + u1;
   }
   else {
      if ( u2 == "login" ) {
          setCookie1("goto", u1);
          location_url = pubprotocol + "://" + pubserver + domain + "/member/login_guide.shtml";
      }
      else {
          location_url = pubprotocol + "://" + pubserver + domain + u2;
      }
   }
   //alert( location_url );
   link.href = location_url;

	var qs ;
	var path = "/";
	var cipher;

	var errCode;
	var errMsg = "";
  var parstr = null;
	// get path info & query string from action url
	 //alert("XecureLink1");
	 //alert(link.protocol);
	 //alert( "XecureLink2" + link.search );
//	if ( link.protocol != "http:" ) {
//		 alert ( "http ÇÁ·ÎÅäÄÝ¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù." );
//		return true;
//	}

//alert( link.search );
	qs = link.search;
	if ( qs.length > 1 ) {
		qs = link.search.substring(1);
	}


	hash = link.hash;
	if(navigator.appName == 'Netscape') {
		path = link.pathname;
		cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
	}
	else  {

		path = "/" + link.pathname;
		cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
	}

	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
            errCode = document.XecureWeb.LastErrCode();
            errMsg = document.XecureWeb.LastErrMsg();
        }
        else {
            errCode = document.XecureWeb.LastErrCode();
            //alert("errCode"+errCode);
            errMsg = unescape(document.XecureWeb.LastErrMsg());
            //alert("errMsg" + errCode);
        }
		process_error( errCode, errMsg );
		return false;
	}
	// link.search = "?q=" + escape_url(cipher);
    document.xecure.q.value = escape_url(cipher).substring(0,44);

	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher);
	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );

	return false;
}
function XecureSubmit_Blank( form ) {

	var qs ;
	var path ;
	var cipher;

	var errCode;
	var errMsg = "";

	qs_begin_index = form.action.indexOf('?');
	// if action is relative url, get base url from window location
	if ( form.action.charAt(0) != '/' && form.action.substring(0,7) != "http://" ) {
		path_end = window.location.href.indexOf('?');
		if(path_end < 0) {
			path_end_str = window.location.href;//.substring(0,path_end);
		}
		else {
			path_end = window.location.href.indexOf('?');
			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 ) + form.action;
		}
		else {
			path = path_relative_base_str.substring( 7+path_begin_index,path_relative_base_str.length ) + form.action.substring(0, qs_begin_index );
		}
	}
	else if ( form.action.substring(0,7) == "http://" ) {
		path_begin_index = form.action.substring (7,form.action.length).indexOf('/');
		if ( qs_begin_index < 0 ) {
			path = form.action.substring( path_begin_index + 7 , form.action.length);
		}
		else {
			path = form.action.substring(path_begin_index + 7, qs_begin_index );
		}
	}
	else if (qs_begin_index < 0){
		path = form.action;
	}
	else {
		path = form.action.substring(0, qs_begin_index );
	}
	// 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_Blank( form );

		// encrypt QueryString

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}
		xecure_url = path + "?q=" + escape_url(cipher);
		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(navigator.appName == 'Netscape') {

			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");

		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
	// test
//		alert("cipher = " + cipher);
//		alert("xgate_addr = " + xgate_addr);
//		alert("path = " + path);
//test
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}

//		alert("path+'?q='+escape_url= "+path + "?q=" + escape_url(cipher));
		document.xecure.action = path + "?q=" + escape_url(cipher);

		document.xecure.q.value = escape_url(cipher);   //Ãß°¡
		posting_data = XecureMakePlain_Blank( form );

		if(navigator.appName == 'Netscape'){
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path,  posting_data, "POST" );


		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = document.XecureWeb.LastErrMsg();
                        }
                        else {
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = unescape(document.XecureWeb.LastErrMsg());
                        }
			process_error( errCode, errMsg );
			return false;
		}
		document.xecure.p.value = cipher;
		document.xecure.submit();

	}
	return false;
}
function XecureMakePlain_Blank(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 temp;
	var temp1;
	var cols;
	var value_temp = "";

	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++;
				}
			}
			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].value ='';
				// form.elements[i].selectedIndex = 0;
				}
				else {
value[j] = form.elements[i].value;
					// Æû¿ä¼Ò°¡ ÅØ½ºÆ®¿¡¾î¸®¾îÀÏ¶§.
					if( form.elements[i].type == "textarea" ) {
						
						// ÅØ½ºÆ®¿¡¾î¸®¾î¿¡ ÁöÁ¤µÈ ÄÃ·³¼ö
						cols = form.elements[i].cols;
						var ch="";
						value_temp="";
						
												
						for ( temp=0, temp1=0 ; temp < form.elements[i].value.length; temp++ ) {
						
							// ÇÑ±ÛÀº 2ÀÚ, ¿µ¹®Àº 1ÀÚ, ±âÈ£´Â...?ÀÚ ´õÇÑ´Ù.
							ch = escape(form.elements[i].value.charAt(temp));
							
							if( ch.length == 1 ) { temp1++; }
							else if( ch.indexOf("%u") != -1 ) { temp1 = temp1 + 2; }
							else if( ch.indexOf("%") != -1 ) { temp1++; }// = temp1 + ch.length/3; }
							
							//ÇöÀç Ä³¸¯ÅÍ°¡ ÄÃ·³¼öº¸´Ù ÀÛÀºµ¥ ±×Àü¿¡ CRÀ» ¸¸³ª¸é ÃÊ±âÈ­ ÇÑ´Ù.							
							if( form.elements[i].value.charCodeAt(temp) ==13 &&  form.elements[i].value.charCodeAt(temp+1) ==10 ) {															
									temp1 = 0;
									temp++;																						
							}
							
							//¸¸¾à ½ºÆ®¸µÀÌ ÄÃ·³¼ö ÀÌ»óÀ¸·Î ±æ ¶§´Â ÀÓÀÇ·Î CR/LF¸¦ ³Ö¾îÁØ´Ù.	
							
							value_temp  = value_temp + form.elements[i].value.charAt(temp);
							if( (cols-temp1)==1) {
								//alert(form.elements[i].value.charAt(temp+1)+"ok");
								ch=escape(form.elements[i].value.charAt(temp+1));
								if( ch.indexOf("%u") != -1)  {}
								else {
									//alert("insert");
									temp++;
									value_temp  = value_temp + form.elements[i].value.charAt(temp);
									temp1++;
								}
								
							}
							
							if ( ((temp1+1) >= cols)  && (form.elements[i].value.charCodeAt(temp+1)!=13) )  {
								//alert(ch+"   insert !!" + "  next = " + (form.elements[i].value.charCodeAt(temp+1) ));
								value_temp  = value_temp + String.fromCharCode(13);
								value_temp  = value_temp + String.fromCharCode(10);
								temp1 = 0;
								if(form.elements[i].value.charCodeAt(temp+1)==32) temp++;														
							
							}
							
						}
						value[j] = value_temp;
						
					}
				}
				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 XecureSubmit( form ) {
 
	var qs ;
	var path ;
	var cipher;

	var errCode;
	var errMsg = "";

	qs_begin_index = form.action.indexOf('?');
	// if action is relative url, get base url from window location
	if ( form.action.charAt(0) != '/' && form.action.substring(0,7) != "http://" ) {
		path_end = window.location.href.indexOf('?');
		if(path_end < 0) {
			path_end_str = window.location.href;//.substring(0,path_end);
		}
		else {
			path_end = window.location.href.indexOf('?');
			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 ) + form.action;
		}
		else {
			path = path_relative_base_str.substring( 7+path_begin_index,path_relative_base_str.length ) + form.action.substring(0, qs_begin_index );
		}
	}
	else if ( form.action.substring(0,7) == "http://" ) {
		path_begin_index = form.action.substring (7,form.action.length).indexOf('/');
		if ( qs_begin_index < 0 ) {
			path = form.action.substring( path_begin_index + 7 , form.action.length);
		}
		else {
			path = form.action.substring(path_begin_index + 7, qs_begin_index );
		}
	}
	else if (qs_begin_index < 0){
		path = form.action;
	}
	else {
		path = form.action.substring(0, qs_begin_index );
	}
	// 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 );

		// encrypt QueryString

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}
		xecure_url = path + "?q=" + escape_url(cipher);
		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(navigator.appName == 'Netscape') {

			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");

		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
			//alert(cipher);
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}

		document.xecure.action = path + "?q=" + escape_url(cipher);

		document.xecure.q.value = escape_url(cipher);   //Ãß°¡
		posting_data = XecureMakePlain( form );

		if(navigator.appName == 'Netscape'){
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path,  posting_data, "POST" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = document.XecureWeb.LastErrMsg();
                        }
                        else {
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = unescape(document.XecureWeb.LastErrMsg());
                        }
			process_error( errCode, errMsg );
			return false;
		}
		document.xecure.p.value = cipher;
		document.xecure.submit();

	}
	return false;
}

//key solution
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="";
       var enc_xgate;	//add for ClientSM v7.2.1.7 on 2008/03/11

       // for e2e test
       if(document.MKD25==null || typeof(document.MKD25) == "undefined" || document.MKD25.object==null) {
                    enable=false;
                    //alert( "no e2e module" );
       }
       else {
                    enable=true;
       }
       //////////////       
															
       len = form.elements.length;
       for (i = 0; i < len; i++) {
                    if ((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")) {
                                 if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox") {
                                              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 e2e test
                                 else if(enable && form.elements[i].type == "password"){
																		if(form.elements[i].type == "password"){
																			//alert( "e2e applied" );
																					name[j] = form.elements[i].name;

																					//add for ClientSM v7.2.1.7 on 2008/03/11
																					if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7'){
																						 enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
																					}
																					else{
																						 enc_xgate = xgate_addr;
																					}
																					///////////////////////////////////
																					document.MKD25.SetParam( "enc_xgate", enc_xgate);

																					//value[j] = document.MKD25.GetEncData(enc_xgate, form.name, form.elements[i].name);
																					value[j] = document.MKD25.GetText2( form.elements[i] );
																					//alert( "encrypted data :=\n"+value[j] );
																					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;
}
function XecureMakePlain_old(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 temp;
	var temp1;
	var cols;
	var value_temp = "";


	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++;
				}
			}
			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;
					// Æû¿ä¼Ò°¡ ÅØ½ºÆ®¿¡¾î¸®¾îÀÏ¶§.
					if( form.elements[i].type == "textarea" ) {
						
						// ÅØ½ºÆ®¿¡¾î¸®¾î¿¡ ÁöÁ¤µÈ ÄÃ·³¼ö
						cols = form.elements[i].cols;
						var ch="";
						value_temp="";
						
												
						for ( temp=0, temp1=0 ; temp < form.elements[i].value.length; temp++ ) {
						
							// ÇÑ±ÛÀº 2ÀÚ, ¿µ¹®Àº 1ÀÚ, ±âÈ£´Â...?ÀÚ ´õÇÑ´Ù.
							ch = escape(form.elements[i].value.charAt(temp));
							
							if( ch.length == 1 ) { temp1++; }
							else if( ch.indexOf("%u") != -1 ) { temp1 = temp1 + 2; }
							else if( ch.indexOf("%") != -1 ) { temp1++; }// = temp1 + ch.length/3; }
							
							//ÇöÀç Ä³¸¯ÅÍ°¡ ÄÃ·³¼öº¸´Ù ÀÛÀºµ¥ ±×Àü¿¡ CRÀ» ¸¸³ª¸é ÃÊ±âÈ­ ÇÑ´Ù.							
							if( form.elements[i].value.charCodeAt(temp) ==13 &&  form.elements[i].value.charCodeAt(temp+1) ==10 ) {															
									temp1 = 0;
									temp++;																						
							}
							
							//¸¸¾à ½ºÆ®¸µÀÌ ÄÃ·³¼ö ÀÌ»óÀ¸·Î ±æ ¶§´Â ÀÓÀÇ·Î CR/LF¸¦ ³Ö¾îÁØ´Ù.	
							
							value_temp  = value_temp + form.elements[i].value.charAt(temp);
							if( (cols-temp1)==1) {
								//alert(form.elements[i].value.charAt(temp+1)+"ok");
								ch=escape(form.elements[i].value.charAt(temp+1));
								if( ch.indexOf("%u") != -1)  {}
								else {
									//alert("insert");
									temp++;
									value_temp  = value_temp + form.elements[i].value.charAt(temp);
									temp1++;
								}
								
							}
							
							if ( ((temp1+1) >= cols)  && (form.elements[i].value.charCodeAt(temp+1)!=13) )  {
								//alert(ch+"   insert !!" + "  next = " + (form.elements[i].value.charCodeAt(temp+1) ));
								value_temp  = value_temp + String.fromCharCode(13);
								value_temp  = value_temp + String.fromCharCode(10);
								temp1 = 0;
								if(form.elements[i].value.charCodeAt(temp+1)==32) temp++;														
							
							}
							
						}
						value[j] = value_temp;
						
					}					
				}
				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 BlockDec(cipher)
{

	var plain = "";
	var errCode = 0;
	var errMsg = "";

	if(navigator.appName == 'Netscape'){
		plain = unescape(document.XecureWeb.BlockDec( xgate_addr, cipher));
	}
	else
		plain = document.XecureWeb.BlockDec ( xgate_addr,  cipher );

	if( plain == "" ) {
		if(navigator.appName != 'Netscape'){
			errCode = document.XecureWeb.LastErrCode();
			errMsg = document.XecureWeb.LastErrMsg();
		}
		else {
			errCode = document.XecureWeb.LastErrCode();
			errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		process_error( errCode, errMsg );
	}
	return plain;
}

function BlockXMLDec(cipher)
{
	var path = "";
	var errCode = 0;
	var errMsg = "";


	if(navigator.appName == 'Netscape'){
		path = unescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));
	}
	else
		path = document.XecureWeb.BlockXMLDec ( xgate_addr,  cipher );

	if( path == "" ) {
		if(navigator.appName != 'Netscape'){
			errCode = document.XecureWeb.LastErrCode();
			errMsg = document.XecureWeb.LastErrMsg();
		}
		else {
			errCode = document.XecureWeb.LastErrCode();
			errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		process_error( errCode, errMsg );
	}
	return path;
}

function XecureLogIn( link )
{
	EndSession();
	return XecureLink(link);
}

function EndSession()
{
	document.XecureWeb.EndSession( xgate_addr );
}

function Sign( plain )
{
	var signed_msg;

	if(navigator.appName != 'Netscape')
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, sign_desc );
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,escape(accept_cert), escape(plain), show_plain, escape(sign_desc) );
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		sign_error( errCode, errMsg );
	}
	return signed_msg;
}

function Sign_with_desc( plain, desc )
{
	var signed_msg;

	if(navigator.appName != 'Netscape')
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, desc );
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,escape(accept_cert), escape(plain), show_plain, escape(desc) );
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return signed_msg;
}

function RequestCertificate ( ref_code, auth_code )
{
	var r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code );
	if ( r != 0 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function RenewCertificate ( )
{
	var r = document.XecureWeb.RenewCertificate ( ca_port, ca_ip );
	if ( r != 0 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function RevokeCertificate ( jobcode, reason )
{
	var r;
	r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason );
        if ( r != 0 ) {

		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function GenCertReq ( )
{
	cert_req = document.XecureWeb.GenerateCertReq( 1024 );
	if ( cert_req == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return cert_req;
}

function InstallCertificate (cert_type, cert)
{
	document.XecureWeb.InstallCertificate(cert_type, cert );
}

function ShowCertManager()
{
	document.XecureWeb.ShowCertManager();
}

function PutCACert()
{
	var errCode;
	var errMsg = "";
	var r;

	if(navigator.appName != 'Netscape')
		r = document.XecureWeb.PutCACert( pCaCertName, pCaCertUrl);
	else
		r = document.XecureWeb.PutCACert( escape(pCaCertName), pCaCertUrl);

	r = document.XecureWeb.PutCACert( pCaCertName, pCaCertUrl);
	if( r != 0 ) {
        	if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
	   alert(errMsg);
	}
}

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;
	else if (thisMajor < versionMaj)
		return false;
	if (thisMinor > versionMin)
		return true;
	else if (thisMinor < versionMin)
		return false;
	if (thisBuild > versionRel)
		return true;
	else 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 Sign_with_vid( option, plain, svrCert )
{
        var signed_msg;

        if(IsNetscape())
        {
                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,
                                                                        escape(accept_cert),
                                                                        escape(plain),
                                                                        option,
                                                                        escape(sign_desc),
                                                                        pwd_fail);
        }
        else {
                signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
                if(signed_msg != null) {
                        var     vid_msg;
                        vid_msg = send_vid_info();
                        if(vid_msg == null || vid_msg.length == 0)
                                XecureWebError();
                }
        }

    if( signed_msg == "" )      XecureWebError();

    return signed_msg;
}


function send_vid_info()
{
        var     vid_info;

        vid_info = document.XecureWeb.GetVidInfo();

        return vid_info;
}

function VerifyVirtualID(Idn, TimeStamp, ServerCertPem)
{
        var msg;

        if( IsNetscape() )
                msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, escape(accept_cert), 0, escape(Idn));
        else
                msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, accept_cert, 0,Idn);

        return msg;
}
// 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;
}

function Sign_without_vid_web( option, plain, svrCert, idn )
{
	var ret;
	var signed_msg;

	option = option + 12;

	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 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();
	}
	
	return vid_info;
}

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;
}

// param ¼³Á¤( name : value )
//
// [¾ð¾î ¼³Á¤]
//    lang : KOREAN / ENGLISH
//    ex) <PARAM NAME="LANG" VALUE="KOREAN">
//
// [º¸¾È ¿É¼Ç] only over XecureWeb Client v5.3.0.1
//    "º¸¾È ¿É¼Ç"ÀÇ Àû¿ëÀº ¹Ýµå½Ã °³¹ßÆÀÀ» ÅëÇØ ÀÚ¼¼ÇÑ ³»¿ëÀ» È®ÀÎÇÑ ÈÄ »ç¿ëÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.
//    sec_option :
//	- xgate ÁÖ¼Ò·Î ¼­¸í °ËÁõ(µðÆúÆ®´Â host nameÀ¸·Î ¼­¸í °ËÁõ)		: 0x00000080 = 128
//	- ÀÎÁõ¼­ ¾ÏÈ£ Àç»ç¿ë(ICÄ«µåÀÇ °æ¿ì ÇÉ¹øÈ£µµ Àç»ç¿ë)
//        USBTOKE_KBÀÇ °æ¿ì, SetPinNumÀ¸·Î ÇÉ¹øÈ£¸¦ presetÇØ¾ß ÇÔ	        : 0x00000040 =  64
//	- ¼­¸í½Ã ÀÎÁõ¼­ ¼±ÅÃÃ¢¾øÀÌ Ä³½ÃµÈ ÀÎÁõ¼­ »ç¿ë(only for IC card, USBTOKEN_KB)
//        USBTOKE_KBÀÇ °æ¿ì´Â Ä³½ÃÇÏÁö ¾Ê°í ÀÚµ¿À¸·Î ´Ù½Ã ÀÐ¾îµéÀÓ              : 0x00000020 =  32
//	- ·Î±×ÀÎ½Ã ÀÎÁõ¼­ ¼±ÅÃÃ¢¾øÀÌ Ä³½ÃµÈ ÀÎÁõ¼­ »ç¿ë(only for IC card)	: 0x00000010 =  16
//    sec_context : ¼­¸í°ª
//    sec_desc : ÀÓÀÇÀÇ ¹®ÀÚ¿­(storage°¡ iccard·Î ¼³Á¤µÈ °æ¿ì icÄ«µå ÇÉ¹øÈ£ ÀÔ·ÂÃ¢¿¡ ³ªÅ¸³ª´Â ¾È³»¹®±¸. ¼³Á¤µÇÁö ¾ÊÀ¸¸é default ¹®±¸°¡ ³ªÅ¸³²)
//
// [ÀÎÁõ¼­ ÀúÀå¸ÅÃ¼ ¼³Á¤] only over XecureWeb Client v5.3.0.1
//    storage : "HARD" / "REMOVABLE" / "ICCARD" / "CSP" / "VSC" / "USBTOKEN","USBTOKEN_KB","USBTOKEN_KIUP"
//    ex1) <PARAM NAME="STORAGE" VALUE="HARD">
//    ex2) <PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD"> ==> ¿©·¯ °³ÀÇ ÀúÀå¸ÅÃ¼¸¦ ¼³Á¤ÇÒ ¶§¿¡´Â Ã¹¹øÂ° ÀúÀå¸ÅÃ¼°¡ ¿ì¼± ¼±ÅÃµÇ¾îÁü
//
// [Å°½ºÆ®·ÎÅ© ÇØÅ·¹æÁö ¿É¼Ç] only over XecureWeb Client v5.3.0.1
//    seckey : KeyStroke ÇØÅ·¹æÁöÅø Àû¿ë ¿©ºÎ, ÇØ´çÇÏ´Â vendor¿¡ ´ëÇÑ string value ÀÔ·Â
//             ÇöÀç[2003/10/30] °¡´ÉÇÑ string value
//             - "XW_SKS_SOFTCAMP_KEYPAD" : ¼ÒÇÁÆ®Ä·ÇÁÀÇ Å°ÆÐµå ¹öÀü
//             - "XW_SKS_SOFTCAMP_DRIVER" : ¼ÒÇÁÆ®Ä·ÇÁÀÇ µå¶óÀÌ¹ö ¹öÀü
//             - "XW_SKS_KINGS_DRIVER"    : Å·½ºÁ¤º¸Åë½ÅÀÇ µå¶óÀÌ¹ö ¹öÀü
//             - "_WITH_SKS_ENCRYPT"      : Æû µ¥ÀÌÅÍÀÇ ÆÐ½º¿öµå Å¸ÀÔ¿¡ ´ëÇØ¼­ ¾ÏÈ£È­ => BlockEnc È£Ãâ½Ã ³»ºÎ¿¡¼­ ´Ù½Ã º¹È£È­ÇÔ(xwcs_client.dll »ç¿ë)
//    ex) <PARAM NAME="SECKEY" VALUE="XW_SKS_SOFTCAMP_KEYPAD"> ==> ¼ÒÇÁÆ®Ä·ÇÁÀÇ Å°ÆÐµå ¹öÀü Àû¿ë
//    ex) <PARAM NAME="SECKEY" VALUE="XW_SKS_KINGS_DRIVER_WITH_SKS_ENCRYPT"> ==> Å·½ºÁ¤º¸Åë½ÅÀÇ µå¶óÀÌ¹ö ¹öÀü Àû¿ë + ÆÐ½º¿öµå Å¸ÀÔ ¾ÏÈ£È­
//    ex) <PARAM NAME="SECKEY" VALUE="_WITH_SKS_ENCRYPT"> ==> ÆÐ½º¿öµå Å¸ÀÔ ¾ÏÈ£È­¸¸ Áö¿ø
//
// [¶óÀÌ¼¾½º] only over XecureWeb Client v5.4.x
//    XecureWeb ClientÀÇ Æ¯Á¤ ±â´É¿¡ ´ëÇØ¼­ »çÀÌÆ® ¶óÀÌ¼¾½º°¡ °ËÁõµÉ ¶§¿¡¸¸ »ç¿ë °¡´É
//    ÇöÀç ¶óÀÌ¼¾½º°¡ Àû¿ëµÈ ±â´É
//      - ¼­¸í °ËÁõ(VerifySignedData)
//    ex) <PARAM NAME="LICENSE" VALUE="°³¹ßÆÀ¿¡¼­ Á¦°øÇÏ´Â ¼­¸í°ª">
function PrintObjectTag()
{
	var Agent = navigator.userAgent;
	    Agent = Agent.toLowerCase();
	
	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.2.7/xw_install.cab#Version=7,2,2,7" style="display:none"><PARAM NAME="SECKEY" VALUE="XW_SKS_AHNLAB_AOS"><COMMENT><EMBED type="application/x-SoftForum-XecSSL40" hidden=true name="XecureWeb"><NOEMBED></COMMENT>"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE">No XecureWeb 7.2 PlugIn</NOEMBED></EMBED></OBJECT>');		
		}
		PutUBIKey();
	}	
}

function PutMPhoneData()
{
	var bankUrl = "LIG|http://" + window.location.host + "/common/infovine/DownloadList";
	var coUrl = "SOFTFORUM|AHNLAB";
	var popUrl = "http://" + window.location.host + "/common/infovine/download.html|width=450,height=400,left=10,top=10";
	var mphone_data = "MPHONE:" + xgate_addr + "&" + bankUrl + "&" + coUrl + "&" + popUrl + "|" + window.location.hostname;
	var version = document.XecureWeb.GetVerInfo(1);
	
	// Xecureweb Ctrl¹öÀüÀÌ 7,2,0,0ºÎÅÍ Ubikey ¹öÀü Ã¼Å© °¡´É
	if( version.replace(/\s/g, "") >= "7,2,0,0" )
	{
		mphone_data += "|1.0.3.7";
	}
	document.XecureWeb.PutUserData( xgate_addr, mphone_data );	
	
	// Xecureweb Ctrl¹öÀüÀÌ 7,2,0,7ºÎÅÍ ¹ß±ÞÀû¿ë
	if( version.replace(/\s/g, "") >= "7,2,0,7" )
          document.XecureWeb.SetPhoneData(mphone_data,1);
}

function PutStorageImage()
{

	var version = document.XecureWeb.GetVerInfo(1);
	
	/* Xecureweb Ctrl VersionÀÌ 7,2,2,0 ÀÌÇÏ ±âÁ¸ ÈÞ´ëÆùÀÌ¹ÌÁö ³»·Á¹ÞÀ½ */
        if( version.replace(/\s/g, "") < "7,2,2,0" )
        {
          var PhonebannerUrl = "http://" + window.location.host + "/common/infovine/xweb004.bmp";
          
          // Xecureweb Ctrl¹öÀüÀÌ 7,2,0,0ºÎÅÍ ¼­¸íµÈ ¹è³Ê »ç¿ë.
	  if( version.replace(/\s/g, "") >= "7,2,0,0" )
	  {
	    PhonebannerUrl += ".sig";
	  }
	  document.XecureWeb.PutBigBannerUrl( "IMAGE:" + xgate_addr, PhonebannerUrl );
	}
}

function HaveControl_web()
{
	if(document.XecureWeb==null || typeof(document.XecureWeb) == "undefined" || document.XecureWeb.object==null) {
		return false;
	} else {
		return true;
	}
}
function PutUBIKey()
{
	if( HaveControl_web() )
	{
		PutMPhoneData();
		PutStorageImage();
	}
}


// #362 [2009/01/30 by Lee,GuenHee] Restart IE8 nomerge mode.
//
// RestartWebBrowser()
//
//	- vender : Àç½ÃÀÛ ½ÃÅ³ À¥ºê¶ó¿ìÀú Á¾·ù ¼³Á¤
//
//		 - Internet Explorer 8	1
//
//
//	- mode   : Àç½ÃÀÛ ¹æ¹ý ¸ðµå¿¡ ´ëÇÑ ¼³Á¤
//		   (»ç¿ë ¾ÈµÇ°í ÀÖ´Â ÀÎÀÚÀÌ°í, ±âº»ÀûÀ¸·Î IE8¿¡¼­ nomerge¸ðµå Àç½ÇÇà ±â´É µ¿ÀÛÁß)
//
//	- Option : - 0 : Àç½ÇÇà ¿©ºÎ¸¦ ¹¯Áö ¾Ê°í ¹Ù·Î Àç½ÇÇàÀ» ½ÇÇà ½ÃÅ²´Ù.
//		   - 1 : Àç½ÇÇàÀ» ¾Ë¸®°í Àç½ÇÇà ¿©ºÎ¸¦ »ç¿ëÀÚ¿¡°Ô ¹¯´Â´Ù.
//
//	- restartUrl : Àç½ÇÇàµÈ Ã¢ÀÌ ¿¬°áµÉ URLÀÇ path Á¤º¸¸¦ ÀÔ·ÂÇÑ´Ù. 
//			host´Â Àç½ÇÇàÇÑ ÆäÀÌÁöÀÇ °ªÀÌµÈ´Ù. »ó´ë °æ·Î¸¦ °¡¸®Å°´Â ./ ../ »ç¿ë¸øÇÑ´Ù.(º¸¾È°­È­)
//
//	- reserved : ¿¹¾àµÈ ÀÎÀÚ. APIÀÇ ¸¶Áö¸· °ª.
//
//	- ret	 : 
//		  - 1  : BrowserÀÇ Restart°¡ Á¤»óÀûÀ¸·Î µ¿ÀÛµÇ¾î »õ ºê¶ó¿ìÀú ½ÇÇàµÇ°í ÇöÀç Ã¢ ´Ý±è.
//		  - 0  : ±âÁ¸¿¡ RestartµÈ ºê¶ó¿ìÀúÀÌ¹Ç·Î »õ ºê¶ó¿ìÀú ¶ç¿ìÁö ¾ÊÀ½.
//		  - -1 : RestartÃ³¸®Áß ¿¡·¯ ¹ß»ý.
//		  - -2 : ÇöÀç ¼³Ä¡µÈ ºê¶ó¿ìÀú°¡ IE8ÀÌ ¾Æ´Ñ ºê¶ó¿ìÀúÀÓ.
//		  - -3 : »ç¿ëÀÚ¿¡ ÀÇÇØ ºê¶ó¿ìÀú Restart°¡ Ãë¼ÒµÊ.
//
//	- ErrorCode : -2100 : ÇÑ IE¿¡¼­ µ¿½Ã¿¡ RestartIE ½ÇÇàµÇ¾úÀ»¶§.(½ºÅ©¸³Æ® ¹Ýº¹µÇ¾î È£Ãâ)
//		      -2101 : Àß¸øµÈ ÀÔ·Â ÀÎ¼ö.
//	    	      -2102 : »õ·Î ¶ç¿î IEÀÇ processId threadId È¹µæ ½ÇÆÐ
//	              -2103 : Nomerge·Î IE »õ·Î ¶ç¿ì±â ½ÇÆÐ
//	              -2104 : ÇöÀç Max 128·Î ¼³Á¤µÈ pid ¸®½ºÆ®(nomerge·Î ¶ç¿ï ¼ö ÀÖ´Â ÃÖ´ë IEÃ¢ °³¼ö)°¡ ³Ñ¾úÀ» ¶§.
//		      -2110 : ÀÔ·ÂµÈ restartUrl °ª¿¡ »ó´ë °æ·Î¸¦ ³ªÅ¸³»´Â ./ ../ ¿Í °°Àº °ª ÀÔ·Â½Ã ¿¡·¯.

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;
		if(HaveControl_web())
			ret = document.XecureWeb.RestartWebBrowser(vender, mode, restartUrl, Option, 0);
		else
			ret = 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;
}
//

// Returns the check Is Internet Explorer 8 function.
//
// return 1 : Internet Explorer 8
//        0 : lower version than Internet Explorer 8 
//       -1 : another browser
//
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;
}
//////////////////////////////////////////////////////////////	       
