document.oncontextmenu = function() {return false}

// XecureWeb SSL Client Java Script ver4.1  2001.4.11
// keb only..20020802. etop


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

///////////////////// À×Ä« E2E cookie°ª »ý¼º ½ÃÀÛ 20060424 À¯Áöº¸¼ö : À×Ä«//////////////////////////////////////
function setCookie( name, value, expiredays ) {
    var todayDate = new Date();
    todayDate.setDate( todayDate.getDate() + expiredays );
    document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString()+ "; "
}
setCookie("key_e2e" , "yes", 100000);


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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.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";

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


///////////////////////////////////////*inca ÇÔ¼ö Ãß°¡ 2006.5.12 À¯Áöº¸¼ö : À×Ä« ///////////////////////////////////////
var __secureframe__=null;
var framecount = 0;
var maxframecount = 10;

function FindSecureFrame(inframe)
{
	
	if( __secureframe__ != null) 
	{
		return __secureframe__;
	}
	if (framecount++ > maxframecount) 
	{
		return null;
	}
	if ((typeof inframe == "undefined") || (inframe == null))
	{
		return null;
	}
	
	else if( inframe[framecount-1] != null )
	{
		var fc = 0 ;
		if ( (typeof inframe[framecount-1].NPKXSite_new != "undefined") && (typeof inframe[framecount-1].NPKXSite_new != "unknown")) 
		{
			
			if (inframe[framecount-1].NPKXSite_new != null )
			{
		        fc = framecount - 1 ; 
				framecount = 0;
				return inframe[fc];
			}
			else if ( inframe[framecount-1].document.NPKXSite_new != null)
			{
				
				fc = framecount-1 ; 
				framecount = 0;
				return inframe[fc];
			}
			else
			{
				if (inframe.parent.length > 0)
				{
					return FindSecureFrame(inframe.parent);
				}
				else
				{
					return null;
				}

			}
		}
    	else
	    {
			
			if (inframe.parent.length > 0)
			{
				return FindSecureFrame(inframe.parent);
			}
			else
			{
				return null;
			}
	     }
	}
	else if (inframe.parent.length > 0)
	{
		return FindSecureFrame(inframe.parent);
	}
    return null;
}

function FrameCheck()
{

	
	if (typeof document.NPKXSite_new != "undefined")
	{
		__secureframe__ = self;
	}
	else
	{
		framecount = 0;
		__secureframe__ = FindSecureFrame(parent);
    
		if ((__secureframe__ == null) && ((typeof top.opener) != "undefined"))
		{
			framecount = 0;
			__secureframe__ = FindSecureFrame(top.opener);
		}
  
	}
}

//////////////////////////////////////////////////////À×Ä« ÇÔ¼ö Ãß°¡ ³¡ ////////////////////////////////////////////////


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 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="";
	
      /*-------------- inca Ãß°¡ 2006.5.12 --------------*/
     var i = 0;
	  var len = 0 ;
	  var enable = true;
      var keyE2E = null ;
  

      if ( typeof(document.NPKXSite_new) != "undefined" )
      {
          keyE2E = document.NPKXSite_new ;
      }
      
      else if ( typeof(form.NPKXSite_new) != "undefined")
      {
          keyE2E = form.NPKXSite_new ;        
      }
      else
      {
         FrameCheck();
		 

		 if ( __secureframe__ == null )
		 {
			
			enable = false ;

		 }
		 else
		 {
			 if ( typeof(__secureframe__.NPKXSite_new) != "undefined" )
			 {
				 keyE2E = __secureframe__.NPKXSite_new;
				 enable = true;
			 } 
			 else
			 {
				 enable = false ;

			 }
			 
          }
	  }
	  if ( enable == true)
	  {
		  if( typeof(keyE2E) == null )
		  {
				if(keyE2E.object == null)
				{
					 enable=false;
				}
				else
				{
					enable=true;	
				}
		  }
		  else
		  {
			 if(keyE2E.object == null)
			 {
				 enable=false;
			 }
			 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") { // Leejh 99.11.10 checkboxÃß°¡
				if (form.elements[i].checked == true) {
					name[j] = form.elements[i].name; 
					value[j] = form.elements[i].value;
					j++;
				}
			}
			////////////// E2E : password Å¸ÀÔÀÌ°í enableÀÌ trueÀÏ¶§¸¸ ¾Æ·¡ ºÐ±â·Î µé¾î °¨ /////////////////
		        else if(enable && form.elements[i].type == "password"){
                                              if(form.elements[i].type == "password"){
														//alert(" Encrypt ");
														name[j] = "xw" + form.elements[i].name;
														value[j] = keyE2E.GetEncData(xgate_addr, form.elements[i].value);
														//alert( "start e2e ==> encrypted data :=\n"+value[j] +"\n name :" + name[j]);
														j++;
												   														
                                              }
                       }
			else {
				name[j] = form.elements[i].name;
				if (form.elements[i].type == "select") {
					var ind = form.elements[i].selectedIndex;
					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;
							j++;
							increased++;
						}
					}
					if(increased > 0) {
						j--;
					} else {
						value[j] = "";
					}
				}
				else {
					value[j] = form.elements[i].value;
				}
				j++;
			}
		}
	}
	for (i = 0; i < j; i++) {
		str = value[i]; 
		value[i] = escape_url(str); 
	}

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

	
	return plain_text;
}

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('ÀÎÁõ¼­¸¦ »èÁ¦ÇÏ¿´½À´Ï´Ù.');
	}
}


function BigBannerUrl()
{
	var agent;
	agent = UserAgent();
	if(agent != 'Mozilla/5') 
		document.XecureWeb.PutBigBannerUrl(xgate_addr, bannerUrl);
	else
		document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
}

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 {
		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);
}
*/

// 2007-02-20 For Windows Vista 
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 if(Agent.indexOf("nt 6.") > 0)
		{
			//ºñ½ºÅ¸ ÄÁÆ®·Ñ (´Ù¿î·Îµå¼¾Å¸)
			document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw72_install.cab#Version=7,2,0,0"  width=0 height=0><param name="lang" value="korean"><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');
		}
		else {
			document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="/XecureObject/xw_install.cab#Version=7,0,5,0" width=0 height=0><param name="lang" value="korean"><param name="lang" value="korean">No XecureWeb PlugIn</OBJECT>');	
		}
	}	
}

// 2007-02-20 For Windows Vista
function PutBannerUrl()
{
	var bannerUrlSigned = "http://" + window.location.host + "/XecureObject/xecure_big.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);
	}
}

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


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









