document.oncontextmenu = function() {return false}

var E2E_keytype = "1";

var gIsContinue=0;
var busy_info = "¾ÏÈ£È­ ¸ðµâ ½ÇÇà ÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù·Á ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù."
var usePageCharset=false;

var yessign_ca_type = 1;
var yessign_ca_ip =  "203.233.91.71"
var yessign_ca_port = 4512;

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 infoURL = "";
var pwd_fail = 3;
var bannerUrl =  "http://" + window.location.host + "/XecureObject/xecure_keb_big.bmp";
var pCaCertUrl= "http://" + window.location.host + "/XecureObject/signed_cacert.bin";
var pCaCertName = "¿ÜÈ¯ÀºÇà ÀÎÁõ±â°ü";

var sign_desc = "";
var show_plain = 0;

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

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.SetIssuerConvertTableFinal();
}



function UserAgent()
{
  return navigator.userAgent.substring(0,9);
}

function IsNetscape()
{
  if(navigator.appName == 'Netscape')
    return true ;
  else
    return false ;
}

function IsNetscape60()
{
  if(IsNetscape() && UserAgent() == 'Mozilla/5')
    return true ;
  else
    return false ;
}

function XecureUnescape(Msg)
{
  if(IsNetscape())
    return unescape(Msg) ;
  else
    return Msg ;
}

function XecureEscape(Msg)
{
  if(IsNetscape())
    return escape(Msg) ;
  else
    return Msg ;
}

function XecurePath(xpath)
{
  if(IsNetscape())
    return (xpath) ;
  else
    return ("/" + xpath) ;
}

function XecureAddQuery(qs)
{
  if(qs == "")
    return "" ;
  else
    return "&" + qs ;
}

function XecureWebError()
{
  var errCode = 0 ;
  var errMsg = "" ;

  if( IsNetscape60() )
  {
    errCode = document.XecureWeb.nsIXecurePluginInstance.LastErrCode();
    errMsg  = document.XecureWeb.nsIXecurePluginInstance.LastErrMsg();
  }
  else
  {
    errCode = document.XecureWeb.LastErrCode();
    errMsg  = document.XecureWeb.LastErrMsg();
  }

  if(errCode == -144)
  {
    if(confirm("¿À·ùÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) + "\n\n ÀÎÁõ¼­°ü¸®Ã¢À» ¿­°Ú½À´Ï±î?"))
      ShowCertManager() ;
  }
//	else if(errCode != 0)
    alert( "¿À·ùÄÚµå : " + errCode + "\n\n" + XecureUnescape(errMsg) );

  return false;
}

function escape_url(url) {
  var i;
  var ch;
  var out = '';
  var url_string = '';

  url_string = String(url);

  for (i = 0; i < url_string.length; i++) {
    ch = url_string.charAt(i);
    if (ch == ' ')		out += '%20';
    else if (ch == '%')	out += '%25';
    else if (ch == '&')	out += '%26';
    else if (ch == '+')	out += '%2B';
    else if (ch == '=')	out += '%3D';
    else if (ch == '?') out += '%3F';
    else				out += ch;
  }
  return out;
}

function ran_gen()
{
  var maxnumbers = "999999";
  var r = Math.round(Math.random() * (maxnumbers-1))+1+"";

  for(var i=0; i < 6-r.length; i++)
    r = "0" + r;

  return r;
}

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

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

  // get query string action url
  if ( qs_begin_index < 0 ) {
    qs = "";
  }
  else {
    qs = url.substring(qs_begin_index + 1, url.length );
  }

  if( gIsContinue == 0 ) {
    gIsContinue = 1;
    if( IsNetscape60() )
      sid = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, "", "GET");
    else
      sid = document.XecureWeb.BlockEnc ( xgate_addr, path, "", "GET" );
    gIsContinue = 0;
  }
  else {
    //alert(busy_info);
    return false ;
  }

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

  xecure_url = path + "?q=" + sid + XecureAddQuery(qs);
  // adding character set information
  if(usePageCharset)
    xecure_url += "&charset=" + document.charset;

  open ( xecure_url, target );
}


/// 2009-02-05ÀÏ ÁÖ¼®Ã³¸®ÇÔ(urlÀÌ »èÁ¦¾î ¿äÃ»ÇÔ)
function XecureNavigate( url, target, feature )
{
  /* 2009.06.25 kyj Ãß°¡ÇÔ  */
  if(typeof(openProcessLayer) != "undefined")
  {
    if(typeof(target) == "undefined" || target == "keb" || target == "_self")
    {
      if(typeof(language) == "undefined")
      {
        openProcessLayer("KO","Y");
      }
      else
      {
        openProcessLayer(language,"Y");
      }
    }
  }


//	eval(target+".location.href = url");
  var qs ;
  var path = "/";
  var cipher;
  var xecure_url;

  // get path info & query string & hash from url
  qs_begin_index = url.indexOf('?');
  path = getPath(url)
  // get query string action url
  if ( qs_begin_index < 0 ) {
    qs = "";
  }
  else {
    qs = url.substring(qs_begin_index + 1, url.length );
  }

  if( gIsContinue == 0 ) {
    gIsContinue = 1;
    if( IsNetscape60() )
      cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
    else
      cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
    gIsContinue = 0;
  }
  else {
    //alert(busy_info);
    return false;
  }

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

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

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

function XecureNavigate_keb( url, target, feature )
{
//	eval(target+".location.href = url");
  var xgate_addr2 = xgate_addr;	//default

  if ( url.indexOf("http://") != 0 ) {
    url = "http://" + url;
  }
  var regExp = /(http|https)\:\/\/([a-z0-9.]+)[:0-9]*\/.*/g;
  var res = regExp.exec(url);
  if(res == null) {
      alert("invalid address :[" +url+ "]");
  }else {
    xgate_addr2 = res[2] + ":443:8080";
  }

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

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

  path = getPath_keb(url)

  // get query string action url
  if ( qs_begin_index < 0 ) {
    qs = "";
  }
  else {
    qs = url.substring(qs_begin_index + 1, url.length );
  }

  if( gIsContinue == 0 ) {
    gIsContinue = 1;
    if( IsNetscape60() )
      cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr2, path, XecureEscape(qs), "GET");
    else
      cipher = document.XecureWeb.BlockEnc(xgate_addr2, path, XecureEscape(qs),"GET");
    gIsContinue = 0;
  }
  else {
    //alert(busy_info);
    return false;
  }

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

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

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

function XecureLink( link )
{
//	window.location.href=link.action;
  var qs ;
//	var path = "/";
  var cipher;

  if ( link.protocol != "http:" ) {
    return true;
  }

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

  hash = link.hash;

  if( gIsContinue == 0 ) {
    path = XecurePath(link.pathname) ;
    gIsContinue = 1;

    if( IsNetscape60() )
      cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr, path, XecureEscape(qs), "GET");
    else {
      cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"GET");
    }
    gIsContinue = 0;
  }
  else {
    //alert(busy_info);
    return false;
  }
  if( cipher.length == 0)	return XecureWebError() ;


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

  if(usePageCharset)
    xecure_url += "&charset=" + document.charset;

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

function XecureSubmit( form ) {

  var 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 );
    qs = 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 == "") {
      posting_data = " ";
    }

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

    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="";
  var is9x = false;

  if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null)
  {
    enable=false;
  }
  else if(navigator.userAgent.indexOf("Win64")>=0)
  {
    enable=false;
  }
  else
  {
    enable=true;
    if(navigator.userAgent.indexOf("Windows 9") != -1) is9x = true;
  }

  len = form.elements.length;
  for (i = 0; i < len; i++)
  {
    if ((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit"))
    {
      if (form.elements[i].type == "radio" || form.elements[i].type == "checkbox")
      {
        if (form.elements[i].checked == true)
        {
          if (form.elements[i].disabled == false)
          {
            name[j] = form.elements[i].name;
            value[j] = form.elements[i].value;
            j++;
          }
        }
      }
      else if(enable && form.elements[i].type == "text" && form.elements[i].enc=="on")
      {
        //for ClientSM V7.2.1.7  20080311
        if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7') enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
        else enc_xgate = xgate_addr;

        //if (!is9x) name[j] =  "xk"+form.elements[i].name;
        //else name[j] =  form.elements[i].name;
        name[j] =  "xk"+form.elements[i].name;
        //value[j]        = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);

        // enc_name ÀÌ ÀÖÀ» °æ¿ì ±âÁ¸ name°ú enc_nameÀÇ ¾ÏÈ£È­°ªÀ» Àü¼ÛÇÑ´Ù.
        if (form.elements[i].enc_name == undefined) {
          value[j]   = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);
        } else {
          value[j]   = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].enc_name);
        }

        j++;
      }
      else if((form.elements[i].type == "text"||form.elements[i].type == "hidden") && form.elements[i].ext_enc=="on")
      {
        name[j]         = "xk" + form.elements[i].name;
        if(form.elements[i].ext_enc_value == undefined) value[j] = form.elements[i].value;
        else value[j]	= form.elements[i].ext_enc_value;

        j++;
      }
      else if( enable && (form.elements[i].type == "password" || form.elements[i].type == "hidden" ) &&form.elements[i].enc=="on" )
      // form.elements[i].enc=="on" ±¸¹®Àº DefaultEnc °ª¿¡ µû¶ó º¯°æµË´Ï´Ù.
      {
        //for ClientSM V7.2.1.7  20080311
        if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7') enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
        else enc_xgate = xgate_addr;

        //if (!is9x) name[j] =  "xk"+form.elements[i].name;
        //else name[j] =  form.elements[i].name;
        name[j] =  "xk"+form.elements[i].name;
        //value[j]        = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);

                                // enc_name ÀÌ ÀÖÀ» °æ¿ì ±âÁ¸ name°ú enc_nameÀÇ ¾ÏÈ£È­°ªÀ» Àü¼ÛÇÑ´Ù.
                                if (form.elements[i].enc_name == undefined) {
                                        value[j]   = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].name);
                                } else {
                                        value[j]   = document.CKKeyPro.GetEncData(enc_xgate,form.name,form.elements[i].enc_name);
                                }

        j++;
      }
      else
      {
        name[j] = form.elements[i].name;
        if (form.elements[i].type == "select-one")
        {
          var ind = form.elements[i].selectedIndex;
          var op_len = form.elements[i].length;
          if (op_len > 0)
          {
            if(ind > 0)
            {
              if (form.elements[i].options[ind].value != '') value[j] = form.elements[i].options[ind].value;
              // else value[j] = form.elements[i].options[ind].text;
              else value[j] = "";
            }
            else
            {
              if(ind == 0)
              {
                if (form.elements[i].options[ind].value != '') value[j] = form.elements[i].options[ind].value;
                //else value[j] = form.elements[i].options[ind].text;
                else value[j] = "";
              }
            }
            // form.elements[i].selectedIndex = 0;
          }
        }
        else if (form.elements[i].type == "select-multiple")
        {
          var llen = form.elements[i].length;
          var increased = 0;
          for( k = 0; k < llen; k++)
          {
            if (form.elements[i].options[k].selected)
            {
              name[j] = form.elements[i].name;
              if (form.elements[i].options[k].value != '') value[j] = form.elements[i].options[k].value;
              //else value[j] = form.elements[i].options[k].text;
              else value[j] = "";
              j++;
              increased++;
            }
          }
          if(increased > 0)
          {
            j--;
          }
          else
          {
            value[j] = "";
          }
        }
        else
        {
          value[j] = form.elements[i].value;
        }
        j++;
      }
    }
  }
  for (i = 0; i < j; i++)
  {
    str = value[i];
    value[i] = escape_url(str);
  }
  for (i = 0; i < j; i++)
  {
    if (flag) plain_text += "&";
    else flag = true;
    plain_text += name[i] ;
    plain_text += "=";
    if (value[i] !="undefined")
    {
      plain_text += value[i];
    }
    else
    {
      plain_text += "";
    }
  }
  return plain_text;
}

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

  if( IsNetscape60() )
    cipher =  XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));
  else
    cipher =  XecureUnescape(document.XecureWeb.BlockEnc(xgate_addr,auth_type,plain_text,"GET"));

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

  return cipher;
}

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

  if( IsNetscape60() )
    plain = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockDec( xgate_addr, cipher));
  else {
    plain = XecureUnescape(document.XecureWeb.BlockDec( xgate_addr, cipher));
  }

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

  return plain;
}

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

  if( IsNetscape60() )
    path = XecureUnescape(document.XecureWeb.nsIXecurePluginInstance.BlockXMLDec( xgate_addr, cipher));
  else
    path = XecureUnescape(document.XecureWeb.BlockXMLDec( xgate_addr, cipher));

  if( path == "" ) 	XecureWebError() ;

  return path;
}

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

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


function Sign_with_option( option, plain, certLoginYn )
{
  PutBannerUrl();
  if ( certLoginYn == "Y" ) {
    option ='2';
  }
  var signed_msg;

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

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

    return signed_msg;
}

function Sign_Add( option, plain )
{
  PutBannerUrl();
  var signed_msg;

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

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

    return signed_msg;
}

function Sign( plain )
{
  PutBannerUrl();
  var signed_msg;

  if( IsNetscape60() )
  {
    signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
  }
  else
  {
    signed_msg = document.XecureWeb.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(sign_desc) );
  }

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

  return signed_msg;
}

function Sign_with_desc( plain, desc )
{
  PutBannerUrl();
  var signed_msg;

  if( IsNetscape60() )
    signed_msg = document.XecureWeb.nsIXecurePluginInstance.SignDataCMS( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );
  else
    signed_msg = document.XecureWeb.SignDataCSM( xgate_addr, XecureEscape(accept_cert), XecureEscape(plain), show_plain, XecureEscape(desc) );

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

  return signed_msg;
}

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

  option = option + 4;

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

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

    return signed_msg;
}

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

  option = option + 12;

  if(IsNetscape())
  {
    alert("Not supported function");
  }
  else {
    ret = Set_ID_Num(idn);
    if(ret != 0) {
      XecureWebError();
      return signed_msg;
    }

    signed_msg = document.XecureWeb.SignDataWithVID ( xgate_addr, accept_cert, plain, svrCert, option, sign_desc, pwd_fail );
  }

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

    return signed_msg;
}


function Sign_with_vid_user_serial( certSerial, certLocation, option, plain, svrCert )
{
  PutBannerUrl();
  var signed_msg;

  option = option + 4;

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

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

    return signed_msg;
}


function Sign_with_vid_web_serial( certSerial, certLocation, option, plain, svrCert, idn )
{
  PutBannerUrl();
  var ret;
  var signed_msg;

  option = option + 12;

  if(IsNetscape())
  {
    alert("Not supported function");
  }
  else {
    ret = Set_ID_Num(idn);
    if(ret != 0) {
      XecureWebError();
      return signed_msg;
    }

    signed_msg = document.XecureWeb.SignDataWithVID_Serial ( xgate_addr, accept_cert, certSerial, certLocation, plain, svrCert, option, sign_desc, pwd_fail );
  }

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

    return signed_msg;
}

function Set_ID_Num(idn)
{
  var ret;

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

  return ret;
}

function send_vid_info()
{
  var	vid_info;

  if( IsNetscape() )
  {
    alert("Not supported function");
  }
  else
  {
    vid_info = document.XecureWeb.GetVidInfo();
  }

  if(vid_info.length == 0)
    return null;
  else
    return vid_info;
}


function Sign_with_serial( certSerial, certLocation, plain, option )
{
  PutBannerUrl();
  var	signed_msg;

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

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

  return signed_msg;
}


function Verify_SignedData( signedData, option, directoryServer )
{
  PutBannerUrl();
  var	verified_msg;
  var	errCode;

  if( IsNetscape() )
  {
    alert("Not supported function");
    return "";
  }
  else
  {
    verified_msg = document.XecureWeb.VerifySignedData( signedData, option, directoryServer );
  }


  errCode = document.XecureWeb.LastErrCode();
  if( errCode != 0 )
    XecureWebError();

  return verified_msg;
}

function Set_PinNumber( pin )
{
  var	ret = -1;

  if( IsNetscape() )
  {
    alert("Not supported function");
  }
  else
  {
    ret = document.XecureWeb.SetPinNum( pin );
  }

  return ret;
}

function RevokeCertificate ( type, jobcode, reason )
{
  PutBannerUrl();
  var r;

  if(IsNetscape())
  {
    if( IsNetscape60() )
      r = document.XecureWeb.nsIXecurePluginInstance.RevokeCertificate2( yessign_ca_port, yessign_ca_ip, jobcode, reason, yessign_ca_type, pwd_fail );
    else
      r = document.XecureWeb.RevokeCertificate2( yessign_ca_port, yessign_ca_ip, jobcode, reason, yessign_ca_type,  pwd_fail);
  }
  else {
    r = document.XecureWeb.RevokeCertificate ( yessign_ca_port, yessign_ca_ip, jobcode, reason, yessign_ca_type, pwd_fail );
  }

        if ( r != 0 ) 	XecureWebError();

  return r;
}

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

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

  return cert_req;
}

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

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

function DeleteCertificate( dn )
{
  var r;

  if( IsNetscape60() )
    r = document.XecureWeb.nsIXecurePluginInstance.DeleteCertificate( XecureEscape(dn) );
  else
    r = document.XecureWeb.DeleteCertificate ( XecureEscape(dn) );

  if( r != 0 )	XecureWebError() ;
  else 		alert('ÀÎÁõ¼­¸¦ »èÁ¦ÇÏ¿´½À´Ï´Ù.');
}

function PutBannerUrl()
{
  var bannerUrlSigned = bannerUrl + ".sig";

  if( IsNetscape60() )
  {
    document.XecureWeb.nsIXecurePluginInstance.PutBigBannerUrl( xgate_addr, bannerUrl);
  }
  else
  {
    document.XecureWeb.PutBigBannerUrl( xgate_addr, bannerUrlSigned);
  }

}

function PutCACert()
{
  var r ;

  if( IsNetscape60() )
    r = document.XecureWeb.nsIXecurePluginInstance.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);
  else
    r = document.XecureWeb.PutCACert( XecureEscape(pCaCertName), pCaCertUrl);

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

function PrintObjectTag()
{
  var Agent = navigator.userAgent;
      Agent = Agent.toLowerCase();

// Multi BrowserÁö¿øÀ» À§ÇØ¼­ ¾Æ·¡ºÎºÐ ÁÖ¼®Ã³¸®ÇÔ
//	if(IsNetscape60())	alert("Netscape 6.0Àº Áö¿øÇÏÁö ¾Ê½À´Ï´Ù") ;
//	else
//	{

  var langValue = "korean";
  try {
    if ( language == "EN" ) {
      langValue = "english";
    }
  } catch (ex) {}

  if(navigator.appName == 'Netscape')
  {
    document.write("<EMBED type='application/x-SoftForum-XecSSL40' hidden=true name='XecureWeb'></EMBED><NOEMBED>No XecureWeb PlugIn</NOEMBED>") ;
  }
  else if( (navigator.appName == "Microsoft Internet Explorer") && (navigator.userAgent.toLowerCase().indexOf("trident/4.0") != -1) )
  {
    document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="http://download.softforum.co.kr/Published/XecureWeb/v7.2.3.3/xw_install.cab#Version=7,2,3,3" width=0 height=0><PARAM NAME="SECKEY"  VALUE="XW_SKS_JRSOFT_DRIVER"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE,PKCS11"><param name="lang" value=' + langValue +'>No XecureWeb PlugIn</OBJECT>');
  }
  else
  {
    document.write('<OBJECT ID="XecureWeb" CLASSID="CLSID:7E9FDB80-5316-11D4-B02C-00C04F0CD404" CODEBASE="http://download.softforum.co.kr/Published/XecureWeb/v7.2.3.3/xw_install.cab#Version=7,2,3,3" width=0 height=0><PARAM NAME="SECKEY"  VALUE="XW_SKS_JRSOFT_DRIVER"><PARAM NAME="STORAGE" VALUE="HARD,REMOVABLE,ICCARD,MPHONE,PKCS11"><param name="lang" value=' + langValue +'>No XecureWeb PlugIn</OBJECT>');
  }
//	}
}

function get_sid()
{
  var sid = document.XecureWeb.BlockEnc ( xgate_addr, "", "", "GET" );

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

  return sid;
}

function enc(str) {
  var state='';
  var plain='';
  var escaped_state='';
  plain=String(str);

  if (navigator.appName == 'Netscape')
    state=XecureWeb.BlockEnc(xgate_addr, path, escape(plain), "POST");
  else
    state=XecureWeb.BlockEnc(xgate_addr, path, plain, "POST");

  escaped_state=escape_url_applet(state);

  return escaped_state;
}


function dec(str) {
  var result=BlockDec(str);
  return result;
}

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

  path = getPath(url);

  cipher = document.XecureWeb.BlockEnc(xgate_addr, path, XecureEscape(qs),"POST");

  if( cipher.length == 0 ) 	return XecureWebError() ;

  xecure_url = path + "?q=" + sid + ";" + escape_url(cipher);
  if (feature=="" || feature==null) open ( xecure_url, target );
  else open(xecure_url, target, feature );
}

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


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

// option bit : _4_ _3_ _2_ _1_
//                       |   |
//                       |   --- 0 : ???? ?????? ????????, 1 : ???????? ?????? ????
//                       ------- 0 : ?????????? idn ???? ????, 1 : idn?? "NULL" setting, ???????? idn ????
function VerifyVirtualID(Idn, TimeStamp, ServerCertPem)
{
  var msg;

  var option = 0;

  option = 0;   // ???? ?????? ????????, ?????????? idn ???? ????
//	option = 1;   // ???????? ?????? ????, ?????????? idn ???? ????
// only over XecureWeb Client v5.3.0.1
//	option = 2;   // ???? ?????? ????????, idn?? "NULL" ????
//	option = 3;   // ???????? ?????? ????, idn?? "NULL" ????

  if( IsNetscape() )
  {
    msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, escape(accept_cert), option, escape(Idn));
  }
  else
  {
    msg = document.XecureWeb.VerifyAndGetVID(xgate_addr, ServerCertPem, TimeStamp, accept_cert, option, Idn);
  }

  return msg;

}

// nOption is 0 : (default value) File version, which is checked by 'Internet Explorer'
//            1 : Product version
//            2 : File Description
function GetVersion(nOption)
{
  var ver;

  if( IsNetscape() )
  {
    alert("Not supported function");
    ver = "";
  }
  else
  {
    ver = document.XecureWeb.GetVerInfo(nOption);
    if( ver == "" )
      alert("No version information");
  }

  return ver;
}

// only over XecureWeb Client v5.3.0.1
function UpdateModules( infoURL )
{
  var	ret;

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

  return	ret;
}

// only over XecureWeb Client v5.3.0.1
function SetUpdateInfo( section, key, value1 )
{
  var	ret;

  if( IsNetscape() )
  {
    alert( "Not supported function" );
    ret = 0;
  }
  else
  {
    ret = document.XecureWeb.SetUpdateInfoString( section, key, value1 );
  }

  return ret;
}

// inserted by knlee 2003/06/10
function SetProviderList()
{
  var	ret;

  //var	provName = "TrustedNet Connect 2 Smart Card CSP;Microsoft Base Cryptographic Provider v1.0;Microsoft Enhanced Cryptographic Provider v1.0";
  var	provName = "TrustedNet Connect 2 Smart Card CSP;Keycorp CSP";

  if( IsNetscape() )
  {
    alert("Not supported function");
    return -1;
  }
  else
  {
    ret = document.XecureWeb.SetProvider(provName);
    if( ret != 0 )
      alert("Set Provider name is Fail!");
  }

  return ret;
}

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

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

  len = in_str.length;

  if(len > 160) {
    leftlen = len/2;
    cut = Math.round(leftlen);
    out1 = quick_escape(in_str.substring(0, cut));
    out2 = quick_escape(in_str.substring(cut));
    out = out1 + out2;
  }else {
    out = quick_escape(in_str);
  }

  return out;
}

function EnvelopData( inMsg, pwd, certPem, envOption )
{
  var envMsg;

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

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

  return envMsg;
}

// Ãß°¡ ¸ðµâ ( 2008.10.28 by ¼Û¿äÇõ  )

/////////////// E2E ¿ë ÀÍ¸í ¼¼¼Ç ¿¬°á ½ºÅ©¸³Æ® 2005³â12¿ù 21ÀÏ etop ////////////////////////
function XecureLinkE2E()
{
  var	cipher = "";

  cipher = document.XecureWeb.BlockEnc(xgate_addr, "/off", "", "GET");
  //alert( "sid :=\n" + cipher );
}

function getE2eValue(form,elements) {
  var is9x = false;
  var enable = false;
  var e2e_value = "";
  if(document.CKKeyPro==null || typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object==null) {
    enable=false;
    }
  else if(navigator.userAgent.indexOf("Win64")>=0) {
    enable=false;
      } else {
    enable=true;
          if(navigator.userAgent.indexOf("Windows 9") != -1) is9x = true;
  }

  if(enable && elements.enc=="on")	{
    //for ClientSM V7.2.1.7  20080311
    if(document.XecureWeb.GetVerInfo(0) >= '7, 2, 1, 7')
      enc_xgate = document.XecureWeb.GetEncUserData(xgate_addr);
    else
      enc_xgate = xgate_addr;
    e2e_value = document.CKKeyPro.GetEncData(enc_xgate,form.name,elements.name);
  } else {
    e2e_value = elements.value;
  }
  return e2e_value
}

function Sign_with_option_with_htmlEx( option, html_templ, plain, svrCert, certLoginYn)
{
  PutBannerUrl();
  if ( certLoginYn == "Y" ) {
    option ='2';
  }
  var signed_msg;
  var agent;
  agent = UserAgent();
  if( IsNetscape60() )
  {
    alert("Áö¿øµÇÁö ¾Ê´Â ±â´ÉÀÔ´Ï´Ù.");
  }else{
    signed_msg = document.XecureWeb.SignDataCMSWithHTMLEx(xgate_addr,XecureEscape(accept_cert),XecureEscape(html_templ),XecureEscape(plain),svrCert,option,XecureEscape(sign_desc),pwd_fail);
  }

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

  return signed_msg;
}



// Ãß°¡ ¸ðµâ - ÀÎÁõ¼­ ·Î±×ÀÎ ( 2009.01.06 by ¼Û¿äÇõ  )
function KebCertLogin(form) {
  EndSession();
  PutBannerUrl();

  var errCode;
    var errMsg = "";
    var cipher;
    var agent;
    var SID;
    var PATH = '/on';
    agent = UserAgent();

    if(navigator.appName == 'Netscape') {
        path = link.pathname;
        if(agent != 'Mozilla/5')
            cipher = document.XecureWeb.BlockEnc(xgate_addr,PATH,'',"GET");
        else
            cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(xgate_addr,PATH,'', "GET");
    }
    else  {
        // Å°º¸µåº¸¾È(CKKeyPRo) - ½ÃÀÛ
      if(typeof(document.CKKeyPro) == "undefined" || document.CKKeyPro.object == null){}
      else{document.XecureWeb.SecKeyStroke = "XW_SKS_JRSOFT_DRIVER";}
    // // Å°º¸µåº¸¾È(CKKeyPRo) - ³¡

      // ·Î±×ÀÎ ½Ã µÎ¹ø Å¬¸¯ ¹æÁö..
      if (gIsContinue == 0){
        gIsContinue = 1;
        cipher = document.XecureWeb.BlockEncEx ( xgate_addr,PATH,'', "GET", accept_cert);
        gIsContinue = 0;
      }
      else{
      //alert("¾ÏÈ£È­ ÁßÀÔ´Ï´Ù Àá½Ã ±â´Ù¸®¼¼¿ä");
        return false;
      }
    }
    if( cipher == "" ) {
        XecureWebError();
        return false;
    }

  /* 2009.06.25 kyj Ãß°¡ÇÔ  */
  if(typeof(openProcessLayer) != "undefined")
  {
    if(typeof(target) == "undefined" || target == "keb" || target == "_self")
    {
      if(typeof(language) == "undefined")
      {
        openProcessLayer("KO","Y", "Y");	//modal Ã³¸®
      }
      else
      {
        openProcessLayer(language,"Y", "Y");	//modal Ã³¸®
      }
    }
  }

    return XecureSubmit(form);

}

// Ãß°¡¸ðµâ ±ÝÀ¶°áÁ¦¿ø ÀÎÁõ¼­ ¼­¸íÃ¢(°³¹ß°ú ¸®¾ó¿¡ Â÷ÀÌ ÀÖÀ½ 2009.01.17 ½ÅÇü·û)
function Sign_yessign( plain )
{
  PutBannerUrl();
    var signed_msg;
    var agent;
    //var accept_cert="yessignCA-TEST,yessignCA"; //°³¹ß
    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 RenewCertificate_yessign ( )
{
  PutBannerUrl();
  var r;
  var agent;
  agent = UserAgent();

  if(IsNetscape())
  {
    if( IsNetscape60() )
      r = document.XecureWeb.nsIXecurePluginInstance.RenewCertificate2( yessign_ca_port, yessign_ca_ip, yessign_ca_type, pwd_fail );
    else
      r = document.XecureWeb.RenewCertificate2( yessign_ca_port, yessign_ca_ip, yessign_ca_type, pwd_fail );
  }
  else{
    r = document.XecureWeb.RenewCertificate ( yessign_ca_port, yessign_ca_ip, yessign_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;
}

// Ãß°¡ ¸ðµâ - process error ( 2009.01.28 by ¼Û¿äÇõ  )
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È¸ ¿À·ù
  if(errCode==-751 || errCode== -1200 || errCode == 128 || errCode == -141) {	// ÀÎÁõ¼­ Ãë¼Ò or 3È¸ ¿À·ù
    alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );
    return;
  }
  if(errCode== -1201) 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;

  var ErrMsg = escape_url(errMsg);
  alert( "¿¡·¯ÄÚµå : " + errCode + "\n\n" + errMsg );
  return;
}


// Ãß°¡ ¸ðµâ -Ä«µå¹æ½Ä  ÀÎÁõ¼­ ·Î±×ÀÎ ( 2009.01.30 by ÃÖÁö¿ø  )
function KebCardCertLogin(form) {
  PutBannerUrl();
  //µÎ¹øÂ° ÆÄ¶ó¹ÌÅÍÀÎ form.USER_SSN´Â ÀÇ¹Ì¾ø´Â ½ºÆ®¸µÀ» ³Ö¾îµµ µÊ.
  form.PM_signed_msg.value = Sign_with_vid_user(16, form.USER_SSN, s);	//ÀÎÁõ¼­ Ã¢À» ¶ç¿öÁÖ´Â ÇÔ¼ö
  form.PM_vid_msg.value = send_vid_info();	//ÀÎÁõ¼­ ¼ÒÀ¯ÀÚ¸¦ °ËÁõÇÏ±â À§ÇÑ ¸Þ½ÃÁö¸¦ ¸¸µå´Â ÇÔ¼ö

  if(form.PM_signed_msg.value == "" || form.PM_vid_msg.value=="")
    return false;
  else
    return XecureSubmit(form);
}

// Ãß°¡¸ðµâ ±â¾÷ ÀºÇà/º¸Çè ÀÎÁõ¼­ ¹ß±Þ (2009.02.05 ¹®ÅÂ±â)
function RequestCertificate_yessign ( ref_code, auth_code )
{
  PutBannerUrl();

  var r;
  var agent;
  agent = UserAgent();


  if(IsNetscape())
  {
    if( IsNetscape60() )
      r = document.XecureWeb.nsIXecurePluginInstance.RequestCertificate2 ( yessign_ca_port, yessign_ca_ip, ref_code, auth_code, yessign_ca_type );
    else
      r = document.XecureWeb.RequestCertificate2 ( yessign_ca_port, yessign_ca_ip, ref_code, auth_code, yessign_ca_type );
  }
  else
  {
    r = document.XecureWeb.RequestCertificate ( yessign_ca_port, yessign_ca_ip, ref_code, auth_code, yessign_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;
}

//AS-IS Ä«µå»çÀÌÆ®·Î º¸³»±â À§ÇÑ ½ºÅ©¸³Æ®
function XecureSubmit_ASIS_card( form ) {

        var qs  = "";
        var path ;
        var cipher;
        var del = 0;
  var x_ad="www.yescard.co.kr:443:8080";

        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(x_ad, path, escape(qs),"GET");
                        else
                                cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(x_ad, path, escape(qs),"GET");
                }
                else
                        cipher = document.XecureWeb.BlockEnc ( x_ad, 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(x_ad, path, escape(qs),"GET");
                        else
                                cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc(x_ad, path, escape(qs),"GET");
                }
                else
                        cipher = document.XecureWeb.BlockEnc ( x_ad, 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 = "http://www.yescard.co.kr"+path+ "?q=" + escape_url(cipher) + "&gen=" + ran_gen();
                posting_data = XecureMakePlain( form );

                if(posting_data == "") {
                        posting_data = " ";
                }

                if(navigator.appName == 'Netscape'){
                        if(agent != 'Mozilla/5')
                                cipher = document.XecureWeb.BlockEnc ( x_ad, path,  escape(posting_data), "POST" );
                        else
                                cipher = document.XecureWeb.nsIXecurePluginInstance.BlockEnc ( x_ad, path,  escape(posting_data), "POST" );
                }
                else
                        cipher = document.XecureWeb.BlockEnc ( x_ad, 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;
                }

                document.xecure.p.value = cipher;
                document.xecure.submit();
                for (del ; del<form.lenth ; i++) {
                        document.form.element[del].value ="";
                }
        }
        return false;
}

function RestartWebBrowser( vender, mode, restartUrl, Option )
{
  var ret;
  var vender;
  var errCode;

  //alert("Called RestartWebBrowser js function");

  if ( checkIE8() == 1 )
  {
    //alert("return ture checkIE8 of javascript checking");
    vender = 1;

    ret = document.XecureWeb.RestartWebBrowser(vender, mode, restartUrl, Option, 0);
  }
  else
  {
    return 0;
  }

  if( ret == 1 )
  {
    // alert("nomerge Àç½ÇÇàÀÌ ½ÇÇàµÇ¾ú´Ù. ÇöÀçÀÇ IE Ã¢Àº °ð ´ÝÈù´Ù.");
  }

  if( ret == 0 )
  {
    // alert("ÀÌ¹Ì nomerge Àç½ÇÇàµÈ ºê¶ó¿ìÀú ÆäÀÌÁöÀÌ´Ù.");
  }

  if( ret < 0 )
  {
    // ¿¡·¯ Ã³¸® ºÎºÐ.
  }

  return ret;
}

function checkIE8()
{
  var rv = -1; // Return value assumes failure

  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent.toLowerCase();
    if( ua.indexOf('trident/4.0') != -1 )
    {
        rv = 1;
      }
    else
    {
      rv = 0;
    }
  }

  return rv;
}
