//
// XecureWeb SSL Client Java Script ver4 2000.6.20
//
//

/* Test yessign CA IP */
var	ca_ip =  "203.233.91.232";
/* Real yessign CA IP */
//var	ca_ip =  "203.233.91.71";

var ca_port = 4512;
var accept_cert = "";
var pwd_fail = 3;
//yessignCA
accept_cert+=",yessignCA:1.2.410.200005.1.1.1"; 
accept_cert+=",yessignCA:1.2.410.200005.1.1.4";
accept_cert+=",yessignCA:1.2.410.200005.1.1.6.2";
//signGate CA
accept_cert+=",signGate CA:1.2.410.200004.5.2.1.2";
accept_cert+=",signGate CA:1.2.410.200004.5.2.1.7.1";
accept_cert+=",signGate CA:1.2.410.200004.5.2.1.7.3";
// SignKorea CA
accept_cert+=",SignKorea CA:1.2.410.200004.5.1.1.5";
accept_cert+=",SignKorea CA:1.2.410.200004.5.1.1.9.2";
accept_cert+=",SignKorea CA:1.2.410.200004.5.1.1.9";
// NCASign CA
accept_cert+=",NCASign CA:1.2.410.200004.5.3.1.9";
accept_cert+=",NCASign CA:1.2.410.200004.5.3.1.4";
// CrossCertCA
accept_cert+=",CrossCertCA:1.2.410.200004.5.4.1.1";
accept_cert+=",CrossCertCA:1.2.410.200004.5.4.1.101";
accept_cert+=",CrossCertCA:1.2.410.200004.5.4.1.103";
// TradeSignCA
accept_cert+=",TradeSignCA:1.2.410.200012.1.1.1";
accept_cert+=",TradeSignCA:1.2.410.200012.1.1.101";
accept_cert+=",TradeSignCA:1.2.410.200012.1.1.105";

function SetConvertTable() {
	//±ÝÀ¶°áÀç¿ø yessignCA
	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", "½Å¿ëÄ«µå");			//Ä«µå
	//ÇÑ±¹ Á¤º¸ÀÎÁõ signGate CA
	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", "½Å¿ëÄ«µå");	 	//Ä«µå
	//ÇÑ±¹ Áõ±ÇÀü»ê SignKorea CA
	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.1.1.9", "Áõ±Ç/º¸Çè¿ë");
	//ÇÑ±¹ Àü»ê¿ø NCASign CA
	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.3.1.1", "¹ü¿ë±â¾÷");			//1µî±Þ(±â°ü/´ÜÃ¼)
	//ÇÑ±¹ ÀüÀÚÀÎÁõ CrossCertCA
	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", "½Å¿ëÄ«µå");		//Ä«µå
	//ÇÑ±¹¹«¿ª Á¤º¸Åë½Å TradeSignCA
	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.SetIssuerConvertTableFinal();
}





// ¹Ýµå½Ã È£½ºÆ® ¸íÀ» ÁöÁ¤ÇÒ °Í 
// var bannerUrl = "http://www.softforum.co.kr/XecureObject/xecure.bmp";
var bannerUrl = "";

var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
var pCaCertName = "Å×½ºÆ® ÀÎÁõ±â°ü";

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

// xgate ¼­¹ö ¸í:Æ÷Æ® ÁöÁ¤ , Æ÷Æ® »ý·«½Ã µðÆúÆ®·Î 443 Æ÷Æ® »ç¿ë
var xgate_addr	= "116.193.91.12:443:8080";

var     packageURL = 'http://211.192.139.40/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 = 0;
var     versionRel = 8;
var     versionBld = 20001121;

function process_error ( errCode, errMsg ) {
        if(errCode == '-140')return;
        if(errCode == '-1005') return;
        if(errCode == '0') return;
	alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );
}

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 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 XecureNavigate_NoEnc( url, target ) {

	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');

	if ( qs_begin_index < 0 ) {
		qs = "";
		// if action is relative url, get base url from window location  
		if ( url.charAt(0) != '/' && url.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + url;
		}
		else if ( url.substring(0,7) == "http://" ) {
			path_begin_index = url.substring (7,url.length).indexOf('/');
			path = url.substring( path_begin_index + 7 , url.length);
		}
		else
			path = url;
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
		if ( url.charAt(0) != '/' && url.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + url.substring(0,qs_begin_index);
		}
		else if ( url.substring(0,7) == "http://" ) {
			path_begin_index = url.substring (7,url.length).indexOf('/');
			path = url.substring( path_begin_index + 7 , qs_begin_index );
		}
		else
			path = url.substring(0, qs_begin_index );
	}

	cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path, "", "GET" );
	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	if ( qs == "" )
		xecure_url = path + "?q=" + escape_url(cipher) ;
	else
		xecure_url = path + "?q=" + escape_url(cipher) + "&" + qs;

	open( xecure_url, target );
}

function XecureNavigate( url, target, feature ) {

	var qs ;
	var path = "/";
	var cipher;
	var xecure_url;

	var errCode;
	var errMsg = "";

	// get path info & query string & hash from url
	qs_begin_index = url.indexOf('?');

	if ( qs_begin_index < 0 ) {
		qs = "";
		// if action is relative url, get base url from window location  
		if ( url.charAt(0) != '/' && url.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + url;
		}
		else if ( url.substring(0,7) == "http://" ) {
			path_begin_index = url.substring (7,url.length).indexOf('/');
			path = url.substring( path_begin_index + 7 , url.length);
		}
		else
			path = url;
	}
	else {
		qs = url.substring(qs_begin_index + 1, url.length );
		if ( url.charAt(0) != '/' && url.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + url.substring(0,qs_begin_index );
		}
		else if ( url.substring(0,7) == "http://" ) {
			path_begin_index = url.substring (7,url.length).indexOf('/');
			path = url.substring( path_begin_index + 7 , qs_begin_index );
		}
		else
			path = url.substring(0, qs_begin_index );
	}
	if(navigator.appName == 'Netscape') {
		cipher = document.XecureWeb.BlockEnc("116.193.91.12:443:8080", path, escape(qs),"GET");
	}
	else
		cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path, qs, "GET" );
	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	xecure_url = path + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();

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

function XecureUserInfo( xwaddr, link ) {
	var qs ;
	var path = "/";
	var cipher;

	var errCode;
	var errMsg = "";
	
	xwaddr += ":443:8080"; 

	// 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;
		cipher = document.XecureWeb.BlockEnc(xwaddr, path, escape(qs),"GET");
	}
	else  {
			
		path = "/" + link.pathname;
		cipher = document.XecureWeb.BlockEnc ( xwaddr, path, qs, "GET" );
	}	

	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	// link.search = "?q=" + escape_url(cipher);
	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
	if ( link.target == "" || link.target == null ) open( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

function XecureUserRedirect( xwaddr, link, target ) {
	var qs ;
	var path = "/";
	var cipher;
	var qs_pos;

	var errCode;
	var errMsg = "";
	
	var domino;
	
	
	if(xwaddr == "211.217.131.4"){
		domino = true;
	}
	else {
		domino = false;
	}
	xwaddr += ":443:8080"; 

	// get path info & query string from action url 
	
	qs_pos = link.indexOf("?");
	qs = link.substring(qs_pos + 1);

	if(navigator.appName == 'Netscape') {
		if(domino) {
			cipher = document.XecureWeb.BlockEnc(xwaddr, path, "","GET");
		}
		else {
			cipher = document.XecureWeb.BlockEnc(xwaddr, path, escape(qs),"GET");
		}
	}
	else  {
		if(domino) {
			cipher = document.XecureWeb.BlockEnc ( xwaddr, path, "", "GET" );
		}
		else {
			cipher = document.XecureWeb.BlockEnc ( xwaddr, path, qs, "GET" );
		}

	}	
	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	// link.search = "?q=" + escape_url(cipher);
//	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
	if(domino) {
		xecure_url = link.substring(0,qs_pos) + "?q=" + escape_url(cipher) + "&" + qs + "&ran_num=" + ran_gen();
	}
	else {
		xecure_url = link.substring(0,qs_pos) + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
	}
//alert("xecure"+xecure_url);
//alert("link.target:"+link.target);
//alert("target:"+target);
	if ( link.target == "" || link.target == null ){
//		alert("preopen");
//		open("http://login.exanadu.co.kr", "_self");
	open( xecure_url, target );
//alert("nopen");
	}
	else open( xecure_url, target );
	return false;
}


function XecureLink( 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);
	}

	hash = link.hash;
	if(navigator.appName == 'Netscape') {
		path = link.pathname;
		cipher = document.XecureWeb.BlockEnc("116.193.91.12:443:8080", path, escape(qs),"GET");
	}
	else  {
			
		path = "/" + link.pathname;
		cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path, qs, "GET" );
	}	

	if( cipher == "" ) {
		if(navigator.appName != 'Netscape'){
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                        errCode = document.XecureWeb.LastErrCode();
                        errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
		return false;
	}
	// link.search = "?q=" + escape_url(cipher);
	xecure_url = "http://" + link.host + path + hash + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
	if ( link.target == "" || link.target == null ) open( xecure_url, "_self" );
	else open( xecure_url, link.target );
	return false;
}

function XecureSubmit( form ) {

	var qs ;
	var path ;
	var cipher;

	var errCode;
	var errMsg = "";

	// get path info & query string & hash from action url
	qs_begin_index = form.action.indexOf('?');
	if ( qs_begin_index < 0 ) {
		qs = "";
		// 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.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + form.action;
		}
		else if ( form.action.substring(0,7) == "http://" ) {
			path_begin_index = form.action.substring (7,form.action.length).indexOf('/');
			path = form.action.substring( path_begin_index + 7 , form.action.length);
		}
		else{
			path = form.action;
		}
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
		if ( form.action.charAt(0) != '/' && form.action.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + 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('/');
			path = form.action.substring( path_begin_index + 7 , qs_begin_index);
		}
		else {
			path = form.action.substring(0, qs_begin_index );
		}
	}
	document.xecure.target = form.target;

	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values 
		qs = XecureMakePlain( form );

		// encrypt QueryString

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc("116.193.91.12:443:8080", path, escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path, qs, "GET" );
		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}
		xecure_url = path + "?q=" + escape_url(cipher);

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

		// encrypt QueryString of action field

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc("116.193.91.12:443:8080", path, escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path, qs, "GET" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = document.XecureWeb.LastErrMsg();
                	}
                	else {
                        	errCode = document.XecureWeb.LastErrCode();
                        	errMsg = unescape(document.XecureWeb.LastErrMsg());
                	}
			process_error( errCode, errMsg );
			return false;
		}

		document.xecure.action = path + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
		posting_data = XecureMakePlain( form );
		
		
		if(navigator.appName == 'Netscape'){
			cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path,  escape(posting_data), "POST" );
		}
		else
			cipher = document.XecureWeb.BlockEnc ( "116.193.91.12:443:8080", path,  posting_data, "POST" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = document.XecureWeb.LastErrMsg();
                        }
                        else {
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = unescape(document.XecureWeb.LastErrMsg());
                        }
			process_error( errCode, errMsg );
			return false;
		}
		document.xecure.p.value = cipher;
		document.xecure.submit();
	}
	return false;
}
function XecureUserSubmit( form ) {

	var qs ;
	var path ;
	var cipher;
	var pre_url;
	var xg_addr;

	var errCode;
	var errMsg = "";

	// get path info & query string & hash from action url
	qs_begin_index = form.action.indexOf('?');
	if ( qs_begin_index < 0 ) {
		qs = "";
		// 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.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + form.action;
		}
		else if ( form.action.substring(0,7) == "http://" ) {
			path_begin_index = form.action.substring (7,form.action.length).indexOf('/');
			path = form.action.substring( path_begin_index + 7 , form.action.length);
		}
		else{
			path = form.action;
		}
	}
	else {
		qs = form.action.substring(qs_begin_index + 1, form.action.length );
		if ( form.action.charAt(0) != '/' && form.action.substring(0,7) != "http://" ) {
			path_end = window.location.pathname.lastIndexOf('/');
			path = window.location.pathname.substring(0,path_end+1) + form.action.substring(0,qs_begin_index );
			pre_url = form.action.substring( 0, path_end);
			if (pre_url.indexOf(':') > 0)
				xg_addr = form.action.substring( 0, pre_url.indexOf(':')) + ':443:8080';
			else
				xg_addr = form.action.substring( 0, path_end) + ':443:8080';
		}
		else if ( form.action.substring(0,7) == "http://" ) {
			path_begin_index = form.action.substring (7,form.action.length).indexOf('/');
			path = form.action.substring( path_begin_index + 7 , qs_begin_index);
			pre_url = form.action.substring( 0, path_begin_index + 7);
			if (pre_url.lastIndexOf(':') > 7)
				xg_addr = form.action.substring( 7, pre_url.lastIndexOf(':')) + ':443:8080';
			else
				xg_addr = form.action.substring(7, path_begin_index + 7) + ':443:8080';
		}
		else {
			path = form.action.substring(0, qs_begin_index );
		}
	}
	document.xecure.target = form.target;
	if ( form.method == "get" || form.method=="GET" ) {
		// collect input field values 
		qs = XecureMakePlain( form );

		// encrypt QueryString

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc(xg_addr, "/", escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xg_addr, "/", 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 = pre_url + path + "?q=" + escape_url(cipher);

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

		// encrypt QueryString of action field

		if(navigator.appName == 'Netscape') {
			cipher = document.XecureWeb.BlockEnc(xg_addr, "/", escape(qs),"GET");
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xg_addr, "/", 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;
		}

		document.xecure.action = pre_url + path + "?q=" + escape_url(cipher) + "&ran_num=" + ran_gen();
		posting_data = XecureMakePlain( form );
		
		
		if(navigator.appName == 'Netscape'){
			cipher = document.XecureWeb.BlockEnc ( xg_addr, "/",  escape(posting_data), "POST" );
		}
		else
			cipher = document.XecureWeb.BlockEnc ( xg_addr, "/",  posting_data, "POST" );

		if( cipher == "" ) {
			if(navigator.appName != 'Netscape'){
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = document.XecureWeb.LastErrMsg();
                        }
                        else {
                                errCode = document.XecureWeb.LastErrCode();
                                errMsg = unescape(document.XecureWeb.LastErrMsg());
                        }
			process_error( errCode, errMsg );
			return false;
		}
		document.xecure.p.value = cipher;
		document.xecure.submit();
	}
	return false;
}


function XecureMakePlain(form) {

	var name = new Array(form.elements.length); 
	var value = new Array(form.elements.length); 
	var flag = false;
	var j = 0;
	var plain_text="";


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

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

	return plain_text;
}

function BlockDec(cipher)
{

	var plain = "";
	var errCode = 0;
	var errMsg = "";
	
	if(navigator.appName == 'Netscape'){
		plain = unescape(document.XecureWeb.BlockDec( "116.193.91.12:443:8080", cipher));
	}
	else
		plain = document.XecureWeb.BlockDec ( "116.193.91.12:443:8080",  cipher );

	if( plain == "" ) {
		if(navigator.appName != 'Netscape'){
			errCode = document.XecureWeb.LastErrCode();
			errMsg = document.XecureWeb.LastErrMsg();
		}
		else {
			errCode = document.XecureWeb.LastErrCode();
			errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		process_error( errCode, errMsg );
	}
	return plain;
}

function BlockXMLDec(cipher)
{
	var path = "";
	var errCode = 0;
	var errMsg = "";


	if(navigator.appName == 'Netscape'){
		path = unescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));
	}
	else
		path = document.XecureWeb.BlockXMLDec ( xgate_addr,  cipher );

	if( path == "" ) {
		if(navigator.appName != 'Netscape'){
			errCode = document.XecureWeb.LastErrCode();
			errMsg = document.XecureWeb.LastErrMsg();
		}
		else {
			errCode = document.XecureWeb.LastErrCode();
			errMsg = unescape(document.XecureWeb.LastErrMsg());
		}
		process_error( errCode, errMsg );
	}
	return path;
}

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

function EndSession()
{
	var xwaddr1 = '211.217.131.4:443:8080';  // ruby
	var xwaddr2 = '116.193.91.12:443:8080';  // login
	var xwaddr3 = '116.193.91.21:443:8080';  // app1
	var xwaddr4 = '61.100.2.172:443:8080';  // app2
	var xwaddr5 = '116.193.91.23:443:8080';  // insa

	document.XecureWeb.EndSession( xwaddr1 );
	document.XecureWeb.EndSession( xwaddr2 );
	document.XecureWeb.EndSession( xwaddr3 );
	document.XecureWeb.EndSession( xwaddr4 );
	document.XecureWeb.EndSession( xwaddr5 );
}


function delCookie() {
var value;
var today = new Date();
 
    //°ú°Å½Ã°£ ¸¸µé±â
    today.setTime(today.getTime() - 1);
    //ssnÁ¤º¸Ã£±â
//    alert(today.toGMTString());
    value = GetCookie("ssn");
//    alert(value);
    if(value != "")
        document.cookie = "ssn=" + value + ";expires=" + today.toGMTString();
    window.close();
}



function Sign( plain )
{
	var signed_msg;

	if(navigator.appName != 'Netscape')
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, sign_desc );
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,escape(accept_cert), escape(plain), show_plain, escape(sign_desc) );
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return signed_msg;
}

function Sign_with_desc( plain, desc )
{
	var signed_msg;
	
	if(navigator.appName != 'Netscape')
		signed_msg = document.XecureWeb.SignData ( xgate_addr,accept_cert, plain, show_plain, desc );
	else
		signed_msg = document.XecureWeb.SignData ( xgate_addr,escape(accept_cert), escape(plain), show_plain, escape(desc) );
	if( signed_msg == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return signed_msg;
}

function RequestCertificate ( ref_code, auth_code )
{
	var r = document.XecureWeb.RequestCertificate ( ca_port, ca_ip, ref_code, auth_code );
	if ( r != 0 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function RenewCertificate ( )
{
	var r = document.XecureWeb.RenewCertificate ( ca_port, ca_ip );
	if ( r != 0 ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function RevokeCertificate ( jobcode, reason )
{
	var r;
	r = document.XecureWeb.RevokeCertificate ( ca_port, ca_ip, jobcode, reason );
        if ( r != 0 ) {

		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return r;
}

function GenCertReq ( )
{
	cert_req = document.XecureWeb.GenerateCertReq( 1024 );
	if ( cert_req == "" ) {
		if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }
		process_error( errCode, errMsg );
	}
	return cert_req;
}

function InstallCertificate (cert_type, cert)
{
	document.XecureWeb.InstallCertificate(cert_type, cert );
}

function ShowCertManager()
{
	document.XecureWeb.ShowCertManager();
}

function PutBannerUrl()
{
	document.XecureWeb.PutBannerUrl( xgate_addr, bannerUrl);
}

function PutCACert()
{
	var errCode;
	var errMsg = ""; 
	var r;

	if(navigator.appName != 'Netscape')
		r = document.XecureWeb.PutCACert( pCaCertName, pCaCertUrl);
	else
		r = document.XecureWeb.PutCACert( escape(pCaCertName), pCaCertUrl);

	r = document.XecureWeb.PutCACert( pCaCertName, pCaCertUrl);
	if( r != 0 ) {
        	if(navigator.appName != 'Netscape'){
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = document.XecureWeb.LastErrMsg();
                }
                else {
                       errCode = document.XecureWeb.LastErrCode();
                       errMsg = unescape(document.XecureWeb.LastErrMsg());
                }	
	   alert(errMsg); 
	}
}

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


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

function downloadNow () {
	if ( navigator.javaEnabled() ) {
		trigger = netscape.softupdate.Trigger;
		if ( trigger.UpdateEnabled() ) {
			if (navigator.platform == "Win32") {
				trigger.StartSoftwareUpdate( packageURL, trigger.DEFAULT_MODE);

			}
			else alert('ÀÌ ÇÃ·¯±× ÀÎÀº À©µµ¿ìÁî 95/98/NT È¯°æ¿¡¼­¸¸ ÀÛµ¿ÇÕ´Ï´Ù.')
		}
		else
			alert('³Ý½ºÄÉÀÔÀÇ SmartUpdate ¼³Ä¡¸¦ °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
	}
	else
		alert('Java ½ÇÇàÀ» °¡´ÉÇÏµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.');
}

function PrintObjectTag()
{	
	document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="http://download.softforum.co.kr/Published/XecureWeb/v5.4.8.6/xw_install.cab#Version=5,4,8,6" width=0 height=0><PARAM NAME="seckey" VALUE="XW_SKS_SOFTCAMP">No XecureWeb PlugIn</OBJECT>') ;
}

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

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

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

    return signed_msg;
}

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

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

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

    return signed_msg;
}

function Set_ID_Num(idn)
{
	var ret;
	
	ret = document.XecureWeb.SetIDNum(idn);
	
	return ret;
}

function XecureWebError()		// by zhang
{
	var errCode = 0 ;
	var errMsg = "" ;
	
	errCode = document.XecureWeb.LastErrCode();
	errMsg  = document.XecureWeb.LastErrMsg();
	alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );
	
	return false;
}

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

