// XecureWeb SSL Client Java Script ver4.1  2001.4.11
// keb only..20020802. etop

var xw_script_ver = 1.1; // script file version

// YESSIGN CA ADDRESS//////////////////////////////////////////////////////
// TEST : 203.233.91.234
// REAL : 203.233.91.71  
var ca_ip =  "203.233.91.71";
var ca_port = 4512;
var ca_type = 1; // Real
//var ca_type = 11; // Test



////////////////////////////////////////////////////////////////////////////////
var accept_cert = "yessignCA:1.2.410.200005.1.1.1: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.2:1.2.410.200004.5.2.1.1:1.2.410.200004.5.2.1.7.1";
	accept_cert+=",SignKorea CA:1.2.410.200004.5.1.1.7:1.2.410.200004.5.1.1.5";
	accept_cert+=",NCASign CA:1.2.410.200004.5.3.1.2:1.2.410.200004.5.3.1.9:1.2.410.200004.5.3.1.1";
	accept_cert+=",CrossCertCA:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2: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:1.2.410.200012.1.1.101";
	accept_cert+=",signGATE CA2:1.2.410.200004.5.2.1.2:1.2.410.200004.5.2.1.1:1.2.410.200004.5.2.1.7.1";
        accept_cert+=",NCASignCA:1.2.410.200004.5.3.1.2:1.2.410.200004.5.3.1.9:1.2.410.200004.5.3.1.1";
        accept_cert+=",CrossCert Certificate Authority:1.2.410.200004.5.4.1.1:1.2.410.200004.5.4.1.2:1.2.410.200004.5.4.1.101";
	accept_cert+=",¿ÜÈ¯ÀºÇà ÀÎÁõ±â°ü";

/////////////////////////////////////////////////////////////////////////////////
// ÀüÀÚ¼­¸í, ÀÎÁõ¼­ °»½Å, ÀÎÁõ¼­ Æó±â½Ã¿¡ ÀÎÁõ¼­ ¾ÏÈ£¿À·ù¸¦ Çã¿ëÈ¸¼ö   

var pwd_fail = 3;

//////////////////////////////////////////////////////////////////////////////////
// ·Î±×ÀÎ Ã¢¿¡ º¸ÀÏ ÀÌ¹ÌÁö¸¦ ´Ù¿î·Îµå ¹ÞÀ» URL
 
var bannerUrl =  "http://" + window.location.host + "/XecureObject/xecure_big_new.bmp";
//var s_bannerUrl =  "http://" + window.location.host + "/XecureObject/xecure.bmp";
///////////////////////////////////////////////////////////////////////////////////
// ÀÎÁõ±â°ü ÀÎÁõ¼­ ´Ù¿î·Îµå½Ã ÀÎÁõ±â°ü ÀÎÁõ¼­¿Í ÀÎÁõ¼­ CN
  
var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
var pCaCertName = "¿ÜÈ¯ÀºÇà ÀÎÁõ±â°ü";

//////////////////////////////////////////////////////////////////////////////////
// ÀüÀÚ¼­¸í È®ÀÎÃ¢¿¡ º¸ÀÏ ¸Þ¼¼Áö¿Í ÀüÀÚ¼­¸í È®ÀÎÃ¢ º¸±â ¿É¼Ç
// 0 : ¼­¸í ¿ø¹® Ãâ·Â ¾ÈÇÔ, 1: ¼­¸í ¿ø¹® Ãâ·Â 

var sign_desc = "";
var show_plain = 0; 

// BlockEnc°¡ µÎ¹ø È£ÃâµÇ´Â °ÍÀ» ¸·´Â ·ÎÁ÷
// Global variable
var onlyone = 0;
///////////////////////////////////////////////////////////////////////////////////
// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë

var xgate_addr = window.location.hostname + ":443:8080";
//var xgate_addr = "203.234.132.71:443:8080";
///////////////////////////////////////////////////////////////////////////////////
// Netscape plugin version information

var     packageURL = 'http://' + window.location.host + '/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 = 2;
var     versionRel = 0;
var     versionBld = 20010409;


function process_error ( errCode, errMsg ) {

	var fullpath;
	var firstindex, lastindex;
	var path;

	fullpath = document.location.href;
	firstindex = fullpath.lastIndexOf('/');
	lastindex = fullpath.lastIndexOf('?');
	path  = fullpath.substring(firstindex + 1 ,lastindex); 

	if(errCode==-751 || errCode== -1200 || errCode == -1201 || errCode == 128 || errCode == -141) {	// ÀÎÁõ¼­ Ãë¼Ò or 3È¸ ¿À·ù
		alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );  
		if(path == 'cime221r.jsp') {
			XecureNavigate('/IBS/b2c/cibs/cimember/cime120i.jsp?', '_self');
			return;
		}
		
		return;
	}
		
/*	
	if(errCode == -141) { 
		if(path == 'cime200r.jsp' || path == 'cime000.jsp') {
			XecureNavigate('/IBS/b2c/cibs/cimember/cime120i.jsp?', '_self');
			return;
		}
	}
*/
	var errcode = errCode;
	if(errcode < 0) errcode *= -1;
	switch(errcode.toString().length) {
		case 1 : 
			errcode = 'CS000' + errcode;
			break;
		case 2 : 
			errcode = 'CS00' + errcode;
			break;
		case 3 : 
			errcode = 'CS0' + errcode;
			break;
		case 4 : 
			errcode = 'CS' + errcode;
			break;
		default :
			break;
	}

        if(errcode == 'CS0000')
                return;

	if(path == 'npass') 
		open('/IBS/common/ErrPage.jsp?user_code=' + errcode, 'body');
	else
		open('/IBS/common/ErrPage.jsp?user_code=' + errcode, '_self');

	return;
	
}

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 SetConvertTable()
{
 		//±ÝÀ¶°áÁ¦¿ø
    	document.XecureWeb.SetPolicyConvertTableFirst(0, "1.2.410.200005.1.1.1", "¹ü¿ë°³ÀÎ");	//ÀºÇà,Ä«µå
    	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.2", "ÀºÇà±â¾÷");		//ÀºÇà
    	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.6.1", "±â¾÷¹ðÅ·");		//Àû¿ëX
    	document.XecureWeb.SetPolicyConvertTableNext("1.2.410.200005.1.1.6.2", "½Å¿ëÄ«µå");		//Ä«µå

		//ÇÑ±¹ Á¤º¸ÀÎÁõ
    	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.3", "½Å¿ëÄ«µå");	//Ä«µå

    	//ÇÑ±¹ Áõ±ÇÀü»ê
    	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.2", "½Å¿ëÄ«µå");	//Ä«µå

    	//ÇÑ±¹ Àü»ê¿ø
    	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.200004.5.4.1.103", "½Å¿ëÄ«µå");	//Ä«µå

    	//ÇÑ±¹¹«¿ª Á¤º¸Åë½Å
    	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.105", "½Å¿ëÄ«µå");		//Ä«µå
    	document.XecureWeb.SetPolicyConvertTableFinal(0);

    	document.XecureWeb.SetIssuerConvertTableFirst("yessignCA", "±ÝÀ¶°áÁ¦¿ø");
 		document.XecureWeb.SetIssuerConvertTableNext("SignKorea CA", "Áõ±ÇÀü»ê");
 		document.XecureWeb.SetIssuerConvertTableNext("signGate CA", "Á¤º¸ÀÎÁõ");
 		document.XecureWeb.SetIssuerConvertTableNext("NCASign CA", "Àü»ê¿ø");
 		document.XecureWeb.SetIssuerConvertTableNext("TradeSignCA", "¹«¿ªÁ¤º¸Åë½Å");
 		document.XecureWeb.SetIssuerConvertTableNext("CrossCertCA", "ÀüÀÚÀÎÁõ");
 		document.XecureWeb.SetIssuerConvertTableNext("CertRSA01", "KISAÀÎÁõ±â°ü");
 		document.XecureWeb.SetIssuerConvertTableNext("ÇÑºûÀºÇà CA", "¿ì¸®ÀºÇà");
 		document.XecureWeb.SetIssuerConvertTableNext("Á¶ÈïÀÎÁõ¼¾Å¸(CHBCA)","Á¶ÈïÀºÇà");
 		document.XecureWeb.SetIssuerConvertTableFinal();
}



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 = "";

	var agent;
	agent = UserAgent();

	// 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(agent != 'Mozilla/5')
		cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, "", "GET" );
	else
		cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, "", "GET");

	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		else {
                       	errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
		}
		process_error( errCode, errMsg );
		return false;
	}
	if ( qs == "" )
		xecure_url = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
	else
		xecure_url = path + "?q=" + escape_url(cipher) + "&" + qs + "&gen=" + ran_gen();

	open ( xecure_url, target );
}

function XecureNavigate( url, target, feature ) {

	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";

	var agent;
	agent = UserAgent();

	// 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') {
		if(agent != 'Mozilla/5')
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
		else 
			cipher = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		else {
                       	errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
		}
		process_error( errCode, errMsg );
		return false;
	}
	xecure_url = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();

	if (feature=="" || feature==null) return open ( xecure_url, target );
	else return open(xecure_url, target, feature );

}

function XecureLink( link ) {
	
	var qs ;
	var path = "/";
	var cipher;

	var errCode;
	var errMsg = "";

	var agent;
	agent = UserAgent();

	// 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(navigator.appName == 'Netscape') {
		path = link.pathname;
		if(agent != 'Mozilla/5')
			cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
		else 
			cipher = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
		return false;
	}
	// link.search = "?q=" + escape_url(cipher);
	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
 
	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

function cms_process_error ( errCode, errMsg ) {
    
	alert( "Error Code : " + errCode + "\n\n" + errMsg );
}

function CmsXecureLogIn( link )
{
	EndSession();
	return CmsXecureLink(link);
}


/*-------------------------------------------------------------------------
 CmsXecureLink()
 Spec	  :SSO Àû¿ë½Ã CMSMain ¿¡¼­ ·Î±×ÀÎ½Ã »ç¿ë 
 Argument : (ÀÌµ¿URL)
 Return   :
 Author   : ½ÅÇü·û
 update_date    : 2002-07-03
 -------------------------------------------------------------------------*/
function CmsXecureLink( link ) {
	
	var qs ;
	var path = "/";
	var cipher;

	var errCode;
	var errMsg = "";

	// 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);
	}

	var today2 = new Date();
	var today = '' + today2.getDate() + '' + today2.getHours() + '' + today2.getMinutes() + '' + today2.getSeconds();
	
	qs = "dummy="+today;
	
	hash = link.hash;
	if(navigator.appName == 'Netscape') {
		path = link.pathname;
		cipher = document.XecureWeb.BlockEnc(xgate_addr, "/CERT_BASED", escape(qs),"GET");
	}
	else  {
			
		path = "/" + link.pathname;

		cipher = document.XecureWeb.BlockEnc ( xgate_addr, "/CERT_BASED", 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());
                }
		cms_process_error( errCode, errMsg );
		return false;
	}
	
	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();

	if ( link.target == "" || link.target == null ) open ( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

function XecureOpenerSubmit( form ) {

	var qs  = "";
	var path ;
	var cipher;

	var errCode;
	var errMsg = "";

	var agent;
	agent = UserAgent();

	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 );
	}
	opener.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') {
			if(agent != 'Mozilla/5') 
				cipher = opener.document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
			else
				cipher = opener.document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );
		
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = opener.document.XecureWeb.LastErrCode();
                        	errMsg = opener.document.XecureWeb.LastErrMsg();
                	}
			else if(agent != 'Mozilla/5') {
				alert("No cipher1");
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				alert("No cipher2");
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(opener.document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			//alert("No Cipher3");
			process_error( errCode, errMsg );
			return false;
		}
		xecure_url = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
		if ( form.target == "" || form.target == null ) open( xecure_url, "_self");
		else open ( xecure_url, form.target );
	}
	else {
		opener.document.xecure.method = "post";

		// encrypt QueryString of action field

		if(navigator.appName == 'Netscape') {
			if(agent != 'Mozilla/5')
				cipher = opener.document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
			else 
				cipher = opener.document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, escape(qs),"GET");
		}
		else
			cipher = opener.document.XecureWeb.BlockEnc ( xgate_addr, path, qs, "GET" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = opener.document.XecureWeb.LastErrCode();
                        	errMsg = opener.document.XecureWeb.LastErrMsg();
                	}
			else if(agent != 'Mozilla/5') {
				errCode = opener.document.XecureWeb.LastErrCode();
                       		errMsg = unescape(opener.document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = opener.document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(opener.document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
		
			process_error( errCode, errMsg );
			return false;
		}

		opener.document.xecure.action = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
		posting_data = XecureMakePlain( form );
		
		if(posting_data == "") {
			//alert("POST IS NULL");
			posting_data = " ";
		}
		
		if(navigator.appName == 'Netscape'){
			if(agent != 'Mozilla/5')
				cipher = opener.document.XecureWeb.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
			else
				cipher = opener.document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
		}
		else
			cipher = opener.document.XecureWeb.BlockEnc ( xgate_addr, path,  posting_data, "POST" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                                errCode = opener.document.XecureWeb.LastErrCode();
                                errMsg = opener.document.XecureWeb.LastErrMsg();
                        }
			else if(agent != 'Mozilla/5') {
				errCode = opener.document.XecureWeb.LastErrCode();
                       		errMsg = unescape(opener.document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = opener.document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(opener.document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
		
			process_error( errCode, errMsg );
			return false;
		}
		
		opener.document.xecure.p.value = cipher;
		opener.document.xecure.submit();
	}
	return false;
}

function XecureSubmit( form ) {

	var qs  = "";
	var path ;
	var cipher;
	var del = 0;

	var errCode;
	var errMsg = "";

	var agent;
	agent = UserAgent();

	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') {
			if(agent != 'Mozilla/5') 
				cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
			else
				cipher = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
		
			process_error( errCode, errMsg );
			return false;
		}
		xecure_url = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
		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') {
			if(agent != 'Mozilla/5')
				cipher = document.XecureWeb.BlockEnc(xgate_addr, path, escape(qs),"GET");
			else 
				cipher = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			process_error( errCode, errMsg );
			return false;
		}

		document.xecure.action = path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
		posting_data = XecureMakePlain( form );
		if(posting_data == "") {
			alert("POST IS NULL");
			posting_data = " ";
		}
		//alert("xgate addr : " + xgate_addr + " , path : " + path + " , qs : " + qs);
		if(navigator.appName == 'Netscape'){
			if(agent != 'Mozilla/5')
				cipher = document.XecureWeb.BlockEnc ( xgate_addr, path,  escape(posting_data), "POST" );
			else
				cipher = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
				errCode = document.XecureWeb.LastErrCode();
                       		errMsg = unescape(document.XecureWeb.LastErrMsg());
			}
        		else {
				errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        		}
			
			process_error( errCode, errMsg );
			return false;
		}
		//alert("action :" + document.xecure.action);
		//alert("last cipher:" + cipher);
		document.xecure.p.value = cipher;
		document.xecure.submit();
		for (del ; del<form.lenth ; i++) {
			document.form.element[del].value ="";
		} 
	}
	return false;
}

function getE2eValue(form,elements) {
	var is9x = false;
	var enable = false;
	var e2e_value = "";
	if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null) {
		enable=false;                                                       
   	} 
	else if(navigator.userAgent.indexOf("Win64")>=0) {                                                      
		enable=false;                                                                                  
    	} else {                                                                                                  
		enable=true;                                                                         
        	if(navigator.userAgent.indexOf("Windows 9") != -1) is9x = true;                                                                                     
	}
		
	if(enable && elements.enc=="on")	{
		//for ClientSM V7.2.1.7  20080311
		if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7') {
			enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
		} else {
			enc_xgate = xgate_addr;
		}
		e2e_value = document.CKKeyPro.GetEncData(enc_xgate,form.name,elements.name);	
	} else {
		e2e_value = elements.value;
	}	
	return e2e_value;
}

//add for XecureCK (E2E) modify 2007.09.11
function XecureMakePlain(form)
{
	var name = new Array(form.elements.length);
	var value = new Array(form.elements.length);
	var flag = false;
	var j = 0;
	var plain_text="";
	var is9x = false;

	if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null)
	{
		enable=false;
	}
	else if(navigator.userAgent.indexOf("Win64")>=0)
	{
		enable=false;
	}
	else
	{
		enable=true;
		if(navigator.userAgent.indexOf("Windows 9") != -1) is9x = 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++;
					}
				}
			}
			else if(enable && form.elements[i].type == "text" && form.elements[i].enc=="on")
			{
				//for ClientSM V7.2.1.7  20080311
				if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7') enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
				else enc_xgate = xgate_addr;
				if (!is9x) name[j] =  "xw"+form.elements[i].name;
				else name[j] =  form.elements[i].name;
				value[j]        = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);
				//alert("text e2e ("+name[j]+")=" + value[j]);
				j++;
			}
			else if((form.elements[i].type == "text"||form.elements[i].type == "hidden") && form.elements[i].ext_enc=="on")
			{
				name[j]         = "xw" + form.elements[i].name;
				if(form.elements[i].ext_enc_value == undefined) value[j] = form.elements[i].value;
				else value[j]	= form.elements[i].ext_enc_value;				
				//alert(name[j] + " ext text =" + value[j]);
				j++;
			}
			else if( enable && (form.elements[i].type == "password" || form.elements[i].type == "hidden" ) && form.elements[i].enc=="on" )
			// form.elements[i].enc=="on" ±¸¹®Àº DefaultEnc °ª¿¡ µû¶ó º¯°æµË´Ï´Ù.
			{
				//for ClientSM V7.2.1.7  20080311
				if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7') enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
				else enc_xgate = xgate_addr;
				
				if (!is9x) name[j] =  "xw"+form.elements[i].name;
				else name[j] =  form.elements[i].name;
				value[j]        = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);
				//alert("password e2e = " +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;
							else 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;
								else 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;
							else 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 BlockDec(cipher)
{

	var plain = "";
	var errCode = 0;
	var errMsg = "";

	var agent;
	agent = UserAgent();
	
	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5')
			plain = unescape(document.XecureWeb.BlockDec( xgate_addr, cipher));
		else
			plain = unescape(document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return plain;
}

function BlockXMLDec(cipher)
{
	var path = "";
	var errCode = 0;
	var errMsg = "";

	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5')
			path = unescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));
		else
			path = unescape(document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return path;
}

function XecureLogIn( link )
{
	EndSession();
	return XecureLink(link);
}

function EndSession()
{
	var agent;
	agent = UserAgent();

	if ( agent != 'Mozilla/5')
		document.XecureWeb.EndSession(xgate_addr);
	else
		document.XecureWeb.nsIXecurePluginInstance.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;
	var agent;
	agent = UserAgent();

        if(navigator.appName == 'Netscape'){

		if ( agent != 'Mozilla/5')
                	signed_msg = document.XecureWeb.SignData2( xgate_addr,
								escape(accept_cert), 
								escape(plain), 
								option, 
								escape(sign_desc),
								pwd_fail);
		else
                	signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignData2 ( 
									xgate_addr,
									escape(accept_cert), 
									escape(plain), 
									option, 
									escape(sign_desc),
									pwd_fail);
	}
        else
                signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, option, sign_desc, pwd_fail );

        if( signed_msg == "" ) {

                if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
                process_error( errCode, errMsg );
        }
        return signed_msg;
}
 
function Sign( plain )
{
	var signed_msg;
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape') {
		if(agent != 'Mozilla/5') 
			signed_msg = document.XecureWeb.SignData ( 
								xgate_addr,
								escape(accept_cert), 
								escape(plain), 
								show_plain, 
								escape(sign_desc) );
		else
			signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignData ( 
											xgate_addr,
											escape(accept_cert), 
											escape(plain), 
											show_plain, 
											escape(sign_desc) );
	}
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, sign_desc );
	
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return signed_msg;
}
///// 2004.8.14 ±ÝÀ¶°áÀç¿ø Å¸Çà ÀÎÁõ¼­ µî·Ï ¼­¸í (jhlee)
function Sign_yessign( plain )
{
        var signed_msg;
        var agent;
	var accept_cert="yessignCA:1.2.410.200005.1.1.1:1.2.410.200005.1.1.2:1.2.410.200005.1.1.4:1.2.410.200005.1.1.5";
        agent = UserAgent();

        if(navigator.appName == 'Netscape') {
                if(agent != 'Mozilla/5')
                        signed_msg = document.XecureWeb.SignData (
                                                                xgate_addr,
                                                                escape(accept_cert),
                                                                escape(plain),
                                                                show_plain,
                                                                escape(sign_desc) );
                else
                        signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignData (
                                                                                        xgate_addr,
                                                                                        escape(accept_cert),
                                                                                        escape(plain),
                                                                                        show_plain,
                                                                                        escape(sign_desc) );
        }
        else
                signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, sign_desc );

        if( signed_msg == "" ) {
                if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else if(agent != 'Mozilla/5') {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
                else {
                        errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
                }
                process_error( errCode, errMsg );
        }
        return signed_msg;
}


function Sign_with_desc( plain, desc )
{
	var signed_msg;
	var agent;
	agent = UserAgent();
	
	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5') 
			signed_msg = document.XecureWeb.SignData ( 
								xgate_addr,
								escape(accept_cert), 
								escape(plain), 
								show_plain, 
								escape(desc) );
		else
			signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignData ( 
											xgate_addr,
											escape(accept_cert), 
											escape(plain), 
											show_plain, 
											escape(desc) );
	}
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, desc );
	
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
               		errCode = document.XecureWeb.LastErrCode();
               		errMsg = document.XecureWeb.LastErrMsg();
        	}
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return signed_msg;
}

// default YESSIGN
function RequestCertificate ( ref_code, auth_code )
{

	//alert("ref_code:" + ref_code + "auth_code : " + auth_code);
	var r;
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code);
	else
		r = document.XecureWeb.nsIXecurePluginInstance.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 if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		alert("errCode :" + errCode + " errMsg :" +errMsg); 
		process_error( errCode, errMsg );
	}
	return r;
}

function RequestCertificate_yessign ( ref_code, auth_code )
{
	//alert("ref_code:" + ref_code + "auth_code : " + auth_code);
	var r;
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5') 
			r = document.XecureWeb.RequestCertificate2 ( ca_port, ca_ip, ref_code, auth_code, ca_type );
		else
			r = document.XecureWeb.nsIXecurePluginInstance.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 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		alert("errCode :" + errCode + " errMsg :" +errMsg); 
		process_error( errCode, errMsg );
	}
	return r;
}


function RenewCertificate ( )
{
	var r;
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		r = document.XecureWeb.RenewCertificate ( ca_port, ca_ip );
	else
		r = document.XecureWeb.nsIXecurePluginInstance.RenewCertificate ( ca_port, ca_ip );

	if ( r != 0 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return r;
}

function RenewCertificate_yessign ( )
{
	var r;
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5') 
			r = document.XecureWeb.RenewCertificate2( ca_port, ca_ip, ca_type, pwd_fail );
		else
			r = document.XecureWeb.nsIXecurePluginInstance.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 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		alert("errCode :["+errCode+"] errMsg :" + errMsg);
		process_error( errCode, errMsg );
	}
	return r;
}



function RevokeCertificate ( jobcode, reason )
{
	var r;
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason );
	else
		r = document.XecureWeb.nsIXecurePluginInstance.RevokeCertificate ( ca_port, ca_ip, jobcode, reason );

        if ( r != 0 ) {

		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return r;
}

function RevokeCertificate_yessign ( jobcode, reason )
{
	var r;
	var agent;
	agent = UserAgent();
	
	if(navigator.appName == 'Netscape'){
		if(agent != 'Mozilla/5') 
			r = document.XecureWeb.RevokeCertificate2( ca_port, ca_ip, jobcode, reason, ca_type,  pwd_fail);
		else
			r = document.XecureWeb.nsIXecurePluginInstance.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 ) {

		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	return r;
}


function GenCertReq ( )
{
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		cert_req = document.XecureWeb.GenerateCertReq( 1024 );
	else
		cert_req = document.XecureWeb.nsIXecurePluginInstance.GenerateCertReq( 1024 );

	if ( cert_req == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
		return;
	}
	return cert_req;
}

function InstallCertificate (cert_type, cert)
{
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		document.XecureWeb.InstallCertificate(cert_type, cert );
	else
		document.XecureWeb.nsIXecurePluginInstance.InstallCertificate(cert_type, cert );
}

function ShowCertManager()
{
	var agent;
	agent = UserAgent();

	if(agent != 'Mozilla/5') 
		document.XecureWeb.ShowCertManager();
	else
		document.XecureWeb.nsIXecurePluginInstance.ShowCertManager();
}

function DeleteCertificate( dn ) {
       
	var r; 
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape') {
		if(agent != 'Mozilla/5') 
                	r = document.XecureWeb.DeleteCertificate ( escape(dn));
		else 
                	r = document.XecureWeb.nsIXecurePluginInstance.DeleteCertificate ( escape(dn));
	}
        else
                r = document.XecureWeb.DeleteCertificate ( dn);
	if( r != 0 ) {
        	if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
	else {
		alert('ÀÎÁõ¼­¸¦ »èÁ¦ÇÏ¿´½À´Ï´Ù.');
	}
}

// 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
	{
		try {
                        ver = document.XecureWeb.XecureWeb.GetVerInfo(nOption);
                        if( ver == "" )
                                alert("No version information");
                } catch(err) {
                        ver = "";
                }
	}

	return ver;
}

function PutBannerUrl()
{
	var bannerUrlSigned = "http://" + window.location.host + "/XecureObject/xecure_big_new.bmp.sig";
	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);
	}
}

function BigBannerUrl()
{
	//var agent;
	//agent = UserAgent();
	//if(agent != 'Mozilla/5') 
	//	document.XecureWeb.PutBigBannerUrl(xgate_addr, bannerUrl);
	//else
	//	document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
	PutBannerUrl();
}

function PutCACert()
{
	var errCode;
	var errMsg = ""; 
	var r;
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape') {
		if(agent != 'Mozilla/5') 
			r = document.XecureWeb.PutCACert( escape(pCaCertName), pCaCertUrl);
		else
			r = document.XecureWeb.nsIXecurePluginInstance.PutCACert( escape(pCaCertName), pCaCertUrl);
	}
	else
		r = document.XecureWeb.PutCACert( pCaCertName, pCaCertUrl);

	if( r != 0 ) {
        	if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
		else if(agent != 'Mozilla/5') {
			errCode = document.XecureWeb.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
        	else {
			errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                       	errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
        	}
		process_error( errCode, errMsg );
	}
}

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 UserAgent()
{
	var str;
	var agent;

	str = navigator.userAgent;
	agent = str.substring(0,9);
	return agent;
}

function PrintObjectTag()
{
	var tag;
	var agent;
	agent = UserAgent();

	if(navigator.appName == 'Netscape') {
		tag = "<EMBED type='application/x-SoftForum-XecSSL40' hidden=true name='XecureWeb'></EMBED>";	
	}
	else if( (navigator.appName == "Microsoft Internet Explorer") && (navigator.userAgent.toLowerCase().indexOf("trident/4.0") != -1) ) {
		tag = '<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"></OBJECT>';
	}
	else {
		tag = '<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw40_install.cab#Version=4,1,0,0" ></OBJECT>';
	}
	document.write(tag);
}

function XecureNavigate_cert( url, param, target, feature ) {

	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";
	var cert = "/CERT_BASE";

	qs = param;
	path = url;

	if(navigator.appName == 'Netscape') {
		cipher = document.XecureWeb.BlockEnc(xgate_addr, cert, escape(qs),"GET");
	}
	else
		cipher = document.XecureWeb.BlockEnc ( xgate_addr, cert, 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) + "&gen=" + ran_gen();

	if (feature=="" || feature==null) open ( xecure_url, target );
	else open(xecure_url, target, feature );
}

//////////////// »óÈ£ ¿¬µ¿ °ü·Ã API Ãß°¡ 2003.2.14 by softforum SE - jhlee //////////////////////


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() ;
	}
		alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) );
	
	return false;
}


function VerifyVirtualID(Idn, TimeStamp, ServerCertPem)
{
        var msg;

        if( navigator.appName == 'Netscape')
                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;
}
function send_vid_info()
{
	var	vid_info;
	
	vid_info = document.XecureWeb.GetVidInfo();
	if(vid_info=="" || vid_info==null) {
	 vid_info = " ";
	 process_error('1222','');
	} 
	return vid_info;
}

// 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
// option + 4 : Sign the given data and verify the VID. In this case, user should enter his/her  ID
// option + 12 : Sign the given data and verify the VID. In this case, web application is assumed to provide the ID for user's certificate

function Sign_with_vid_user( option, plain, svrCert )
{
	var signed_msg;
	var errCode;
	var errMsg = "";	
	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;
}


//############## Ãß°¡ API 2004.3.24 by softforum SE ##############

function XecureNavigate_IBS( url, target, feature ) {
        var qs ;
        var path = "/";
        var cipher;
        var xecure_url;
        var xgate_addr2 = "ebank.keb.co.kr:443:8080";
        var errCode;
        var errMsg = "";

        var agent;
        agent = UserAgent();

        // 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') {
                if(agent != 'Mozilla/5')
                        cipher = document.XecureWeb.BlockEnc(xgate_addr2, path, escape(qs),"GET");
                else
                        cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr2, path, escape(qs), "GET");
        }
        else
                cipher = document.XecureWeb.BlockEnc ( xgate_addr2, path, qs, "GET" );

        if( cipher == "" ) {
                if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else if(agent != 'Mozilla/5') {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
                else {
                        errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
                        errMsg = unescape(document.XecureWeb.nsIXecurePluginInstance.LastErrMsg());
                }
                process_error( errCode, errMsg );
                return false;
        }
        xecure_url = "http://ebank.keb.co.kr" + path + "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
        if (feature=="" || feature==null) return open ( xecure_url, target );
        else return open(xecure_url, target, feature );

}

// 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;

		ret = document.XecureWeb.RestartWebBrowser(vender, mode, restartUrl, Option, 0);
	}
	else
	{
		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;
}



