/* INISAFE Web V6 - INIplugin.js */
if ( typeof(_iniplugin_js_) == "undefined" ) //check¿ë
{
    var _iniplugin_js_ = "define";

/********************************************************************
1. update 2002/01/29 wakano@initech.com
 - ½ÅÇÑÀºÇà È£È¯ ¸Þ¼Òµå ±â´É Ãß°¡.
    : EncryptInput(form)     => EncForm
    : EncryptInput2(form, r) => EncFormVerify
    : À§ ¸Þ¼Òµå »ç¿ë½Ã ³»ºÎÀûÀ¸·Î ShinHan_plugin°ªÀ» true·Î »ç¿ëÇÏ¿© Ã³¸®
 - INIpluginData¾øÀÌ EcnForm.. »ç¿ë½Ã ¿¡·¯Ã³¸®

2. update 2002/03/13 wakano@initech.com
 - ¿¡ÇÃ¸´ÀÌ³ª ÇÃ·¹½¬ °°Àº°ÍÀº elementsÀÇ °ªÀÌ "" ÀÏ°æ¿ì°¡ ÀÖÀ½
    : if(element.name=="") continue;

3 update 2002/11/30 wakano@initech.com
 - GatherValeu¿¡¼­ element.typeÀÌ "select"ÀÏ °æ¿ì ¾ÏÈ£È­µÈ ¿øº»ÀÌ »èÁ¦µÇÁö ¾Ê´Â ¹ö±×¼öÁ¤

4. update 2002/06/11 brson@initech.com
 - GatherValue, EncLink, EncLocation ¼öÁ¤
    : AddServerTimeÀÌ trueÀÏ¶§ TimeURL¿¡¼­ server½Ã°£ ¾ò¾î¼­ µ¥ÀÌÅ¸·Î Ãß°¡ÇÔ.

5. update 2004/07/29 wakano@initech.com
 - iframe»ç¿ë½Ã ÇÁ·¹ÀÓ¸í(secureframe)°ú Àü¿ªº¯¼ö¸íÀÌ Ãæµ¹·Î ÀÎÇÏ¿© secureframeÀ» Ã£Áö ¸øÇÏ´Â ¹ö±×¼öÁ¤
    : Àü¿ªº¯¼ö·Î ¼±¾ðµÈ secureframe¸¦ __secureframe__·Î º¯°æ

6. update 2005/10/20 smgrl 2005/10/20
 - GatherValue¿¡¼­ element.typeÀÌ "select-one"ÀÏ °æ¿ì ¾ÏÈ£È­ÈÄ index°ªÀ» -1·Î ÃÊ±âÈ­½ÃÅ´
********************************************************************/

var TimeURL = "http://" + window.location.host + "/initech/plugin/tools/Time.jsp";
var LogoURL = 'http://' + window.location.host + '/initech/plugin/site/img/plugin.initech.com.gif';

var YessignCAIP = "203.233.91.234";
var YessignCMPPort = "4512";
//var YessignCAIP = "203.233.91.71";
//var YessignCMPPort = 4512;

var cipher = "SEED-CBC";
var InitechPackage = "INITECH";
var YessignPackage = "YESSIGN";

var EnableMsg = true;
var secureframename="secureframe";
var __secureframe__=null;
var framecount = 0;
var maxframecount = 10;
var ShinHan_plugin = false;
var AddServerTime=false;

function FindSecureFrame(inframe)
{
    //alert(__secureframe__);
    if(__secureframe__!=null) return __secureframe__;
    if (framecount++ > maxframecount) return null;
    if ((typeof inframe == "undefined") || (inframe == null))
    {
        return null;
    }
    else if ((typeof inframe.secureframe != "undefined")  && (inframe.secureframe != null))
    {
        //alert("SecureFrame Find OK = " + inframe.secureframe);
        framecount = 0;
        return inframe.secureframe
    }
    else if (inframe.parent.length > 0)
    {
        return FindSecureFrame(inframe.parent);
    }
    return null;
}

function FrameCheck()
{
    if (typeof document.INIplugin != "undefined")
    {
        __secureframe__ = self;
    }
    else
    {
        framecount = 0;
        __secureframe__ = FindSecureFrame(parent);

/*      if (__secureframe__ == null) {
            var open_frame = top.opener;
            for(i=0; i<5; i++)
            {
                alert(open_frame + " " + i);
                if ((typeof open_frame) != "undefined")
                {
                    //alert(top.window.opener);
                    framecount = 0;
                    __secureframe__ = FindSecureFrame(open_frame);
                    if (__secureframe__ != null) break;
                }
                else {
                    break;
                }
                open_frame = open_frame.opener;
            }
        }
*/
        if ((__secureframe__ == null) && ((typeof top.opener) != "undefined"))
        {
            //alert(top.window.opener);
            framecount = 0;
            __secureframe__ = FindSecureFrame(top.opener);
        }

/*      if ((__secureframe__ == null) && ((typeof opener) != "undefined"))
        {
            //alert(top.window.opener);
            framecount = 0;
            __secureframe__ = FindSecureFrame(opener);
        }
*/
    }
}

function ModuleInstallCheck()
{
    FrameCheck();
    if (__secureframe__==null) return;

    if(navigator.appName == "Netscape")
    {
        return __secureframe__.document.INIplugin;
    }
    else
    {
        if(__secureframe__.INIplugin==null || typeof(__secureframe__.INIplugin) == "undefined" || __secureframe__.INIplugin.object==null) return null;
        else return __secureframe__.INIplugin;
    }
}

function GatherValue(form, start, bErase)
{
    var strResult = "";
    var name = "";
    var value = "";
    var sel=0;

    // INIplugin-128 Install Check
    obj = ModuleInstallCheck();
    if (obj == null) return "";

    len = form.elements.length;
    for(i=start; i<len; i++)
    {
        element = form.elements[i];

        //add to wakano 2002/03/13
        if(element.name=="") continue;
        if(element.name=="INIpluginData") continue;
        if(element.name=="filedata") continue;

//alert(element.type);

        if ((ShinHan_plugin) && (element.name=="input")) // with for Shinhan Bank
            continue;
        if (!((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")))
            continue;

        if ( ((element.type == "radio") || (element.type == "checkbox")) && (element.checked!=true) )
            continue;
        // File Field´Â SKIPÇÑ´Ù.
        if(form.elements[i].name.indexOf('file_', 0) >= 0) {
            continue;
        }

        if (element.type == "select-one")
        {
            sel = element.selectedIndex;
            if(sel<0) continue;
            if (element.options[sel].value != '')
            {
                value = element.options[sel].value;
                // modify wakano 2001/10/30
                if(bErase) element.options[0].value = "";

            }
            else
            {
                value = element.options[sel].text;
                // modify wakano 2002/10/30
                if(bErase) element.options[0].text = "";
            }
            //modify smsgrl 2005/10/20
            if(bErase) element.selectedIndex = -1;
        }
        else
        {
            value = element.value;
            if(bErase) element.value = "";
        }

        // modify wakano 2001/08/21
        if ((element.type == "checkbox") && (bErase)) element.checked = false;

        if (strResult!="") strResult += "&";
        strResult += element.name;
        strResult += "=";
        strResult += obj.URLEncode(value);
//      alert("name=[" + element.name + "] value=[" + value + "]");
    }

    //modify brson 2002/06/11
    //dt¿¡ server time Ãß°¡
    var ver="4,2,0,0";
    if(AddServerTime && EnableFunction(ver)) {
        if(strResult!=""){
                strResult = "__INIts__=" + obj.GetServerTime(TimeURL) + "&" + strResult;
        }
        else{
                strResult = "__INIts__=" + obj.GetServerTime(TimeURL);
        }
    }

/*
    if (strResult == "") {
        strResult = "certLogin=logon";
    }
*/
    //alert("bef e2e >> ¾ÏÈ£È­ÇÏ±âÀü µ¥ÀÌÅ¸ : [" + strResult + "]");
    if(typeof(modifyE2EFieldNAME) == "function"){
        strResult = modifyE2EFieldNAME(strResult);
    }
    //alert("aft e2e >> ¾ÏÈ£È­ÇÏ±âÀü µ¥ÀÌÅ¸ : [" + strResult + "]");
    return strResult;
}

function GatherFileValue(form, start, bErase)
{
    var strResult = "";
    var name = "";
    var value = "";
    var sel=0;

    // INIplugin-128 Install Check
    obj = ModuleInstallCheck();
    if (obj == null) return "";

    len = form.elements.length;
    for(i=start; i<len; i++)
    {
        element = form.elements[i];

        //add to wakano 2002/03/13
        if(element.name=="") continue;
        if(element.name=="INIpluginData") continue;
        if(element.name=="filedata") continue;

        if ((ShinHan_plugin) && (element.name=="input")) // with for Shinhan Bank
            continue;
        if (!((form.elements[i].type != "button") && (form.elements[i].type != "reset") && (form.elements[i].type != "submit")))
            continue;

        if ( ((element.type == "radio") || (element.type == "checkbox")) && (element.checked!=true) )
            continue;
        // File Field
        if(form.elements[i].name.indexOf('file_', 0)>=0)
        {
            if(strResult!="")
            {
                strResult += "&";
            }
            strResult+= form.elements[i].name;
            strResult += "=";
            strResult += obj.URLEncode(form.elements[i].value);
            if(bErase) form.elements[i].value = "";
        }
    }
    return strResult;
}

// make for Shinhan Bank
function EncryptInput(form)
{
    ShinHan_plugin = true;
    return EncForm(form);
}

function EncryptInput2(form, r)
{
    ShinHan_plugin = true;
    return EncFormVerify(form);
}

function EncForm(form)
{
    var INIdata = "";
    var eletemp = "";
    var filetemp = "";

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    filetemp = GatherFileValue(form, 0, true);
    if (filetemp !=  "")
    {
        if ((form.filedata.value = obj.MakeFileData(0, cipher, filetemp)) == "") return false;
    }

    eletemp = GatherValue(form, 0, true);
    if ((INIdata = obj.MakeINIpluginData(0, cipher, eletemp, ""))=="") return false;

    //add bye wakano 2001/01/29
    if (typeof form.INIpluginData == "undefined")
    {
        if (ShinHan_plugin) // with for Shinhan Bank
        {
            form.input.value = INIdata;
            form.input.name = "INIpluginData"; // for Shinhan Bank
        } else {
            alert("INIpluginData(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
            return false;
        }
    } else {
        form.INIpluginData.value = INIdata;
    }

    //alert("¾ÏÈ£È­µÈ µ¥ÀÌÅ¸ : [" + INIdata + "]");
    return true;
}

function EncForm2(form1, form2)
{
    var INIdata = "";
    var eletemp = "";
    var filetemp = "";

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    filetemp = GatherFileValue(form1, 0, false);
    if (filetemp !=  "")
    {
        if ((form2.filedata.value = obj.MakeFileData(0, cipher, filetemp)) == "") return false;
    }

    eletemp = GatherValue(form1, 0, false);
    if ((INIdata = obj.MakeINIpluginData(0, cipher, eletemp, ""))=="") return false;

    //add bye wakano 2001/01/29
    if (typeof form2.INIpluginData == "undefined")
    {
        if (ShinHan_plugin) // with for Shinhan Bank
        {
            form2.input.value = INIdata;
            form2.input.name = "INIpluginData"; // for Shinhan Bank
        } else {
            alert("INIpluginData(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
            return false;
        }
    } else {
        form2.INIpluginData.value = INIdata;
    }

//  alert(INIdata);
    return true;
}

function EncLink(url, encData, target, style)
{
    var queryString = "INIpluginData=";
    var INIdata;

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    //modify brson 2002/06/11
    //dt¿¡ server time Ãß°¡
    var ver="4,2,0,0";
    if(AddServerTime && EnableFunction(ver)) {
        if(encData!=""){
                encData = "__INIts__=" + obj.GetServerTime(TimeURL) + "&" + encData;
        }
        else{
                encData = "__INIts__=" + obj.GetServerTime(TimeURL);
        }
    }

    if ((INIdata = obj.MakeINIpluginData("0", cipher, encData, ""))=="") return;
    queryString += obj.URLEncode(INIdata);
    if(url.indexOf('?', 0) < 0) url += "?";
    if((url.charAt(url.length-1)!='?') && (url.charAt(url.length-1)!='&')) url += "&";
    url += queryString;

    window.open(url, target, style);
}


function Idecrypt(data)
{
    var decdata = "";
    obj = ModuleInstallCheck();
    if (obj == null) return "";

//alert("º¹È£È­ÇÏ±âÀü µ¥ÀÌÅ¸ : [" + data + "]");

    if (navigator.appName == 'Netscape')
        decdata = unescape(obj.Decrypt(cipher, data));
    else
        decdata = obj.Decrypt(cipher, data);

//alert("º¹È£È­µÈ µ¥ÀÌÅ¸ : [" + decdata + "]");

    return decdata;
}

function Idecrypt2(data)
{
    obj = ModuleInstallCheck();
    if (obj == null) return "";

    if (navigator.appName == 'Netscape')
        return unescape(obj.Decrypt2(cipher, data));
    else
        return obj.Decrypt2(cipher, data);
}

function EncFormVerify(form)
{
    var INIdata = "";
    var eletemp = "";
    var filetemp = "";
    var Random = TimeURL;

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    filetemp = GatherFileValue(form, 0, true);
    if (filetemp !=  "")
    {
        if ((form.filedata.value = obj.MakeFileData(1, cipher, filetemp)) == "") return false;
    }

    eletemp = GatherValue(form, 0, true);
    if ((INIdata = obj.MakeINIpluginData(1, cipher, eletemp, Random))=="") return false;

    //add bye wakano 2001/01/29
    if (typeof form.INIpluginData == "undefined")
    {
        if (ShinHan_plugin) // with for Shinhan Bank
        {
            form.input.value = INIdata;
            form.input.name = "INIpluginData"; // for Shinhan Bank
        } else {
            alert("INIpluginData(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
            return false;
        }
    } else {
        form.INIpluginData.value = INIdata;
    }

    return true;
}

function EncFormVerify2(form1, form2)
{
    var INIdata = "";
    var eletemp = "";
    var filetemp = "";
    var Random = TimeURL;

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    filetemp = GatherFileValue(form1, 0, false);
    if (filetemp !=  "")
    {
        if ((form2.filedata.value = obj.MakeFileData(1, cipher, filetemp)) == "") return false;
    }

    eletemp = GatherValue(form1, 0, false);
    if((form2.INIpluginData.value = obj.MakeINIpluginData(1, cipher, eletemp, Random))=="") return false;
    if ((INIdata = obj.MakeINIpluginData(1, cipher, eletemp, Random))=="") return false;

    //add bye wakano 2001/01/29
    if (typeof form2.INIpluginData == "undefined")
    {
        if (ShinHan_plugin) // with for Shinhan Bank
        {
            form2.input.value = INIdata;
            form2.input.name = "INIpluginData"; // for Shinhan Bank
        } else {
            alert("INIpluginData(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
            return false;
        }
    } else {
        form2.INIpluginData.value = INIdata;
    }

    return true;
}

/* ASP Time Check ¿ë ÇÔ¼ö ÀÓ½Ã¿ëÀÔ´Ï´Ù. */
function imsi_FormVerify(form1, form2)
{
    var INIdata = "";
    var eletemp = "";
    var filetemp = "";
    var TimeURL = "http://" + window.location.host + "/initech/plugin/tools/Time.asp";
    var Random = TimeURL;

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    filetemp = GatherFileValue(form1, 0, false);
    if (filetemp !=  "")
    {
        if ((form2.filedata.value = obj.MakeFileData(1, cipher, filetemp)) == "") return false;
    }

    eletemp = GatherValue(form1, 0, false);
    if((form2.INIpluginData.value = obj.MakeINIpluginData(1, cipher, eletemp, Random))=="") return false;
    if ((INIdata = obj.MakeINIpluginData(1, cipher, eletemp, Random))=="") return false;

    //add bye wakano 2001/01/29
    if (typeof form2.INIpluginData == "undefined")
    {
        if (ShinHan_plugin) // with for Shinhan Bank
        {
            form2.input.value = INIdata;
            form2.input.name = "INIpluginData"; // for Shinhan Bank
        } else {
            alert("INIpluginData(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
            return false;
        }
    } else {
        form2.INIpluginData.value = INIdata;
    }

    return true;
}

function EncLinkVerify(url, encData, target)
{
    var queryString = "INIpluginData=";
    var INIdata;
    var Random = TimeURL;

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }

    if((INIdata = obj.MakeINIpluginData(1, cipher, encData, Random))=="") return;
    queryString += obj.URLEncode(INIdata);

    if(url.indexOf('?', 0) < 0) url += "?";
    if((url.charAt(url.length-1)!='?') && (url.charAt(url.length-1)!='&')) url += "&";

    url += queryString;
    window.open(url, target);
}

function InsertUserCert(cert)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    return obj.InsertUserCert(InitechPackage, "", cert);
}

function InsertUserCert2(cert, storage)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    return obj.InsertUserCert(InitechPackage, storage, cert);
}

function CertRequest(form)
{
    var dn="";
    var temp=""
    len = form.elements.length;

    form.req.value="";

    obj = ModuleInstallCheck();
    if (obj == null) return false;

    for (i = 0; i < len; i++)
    {
        var name = form.elements[i].name.toUpperCase();
        var temp = form.elements[i].value;
        if(name == "C") dn = dn + "C=" + obj.URLEncode(temp) + "&";
        if(name == "L") dn = dn + "L=" + obj.URLEncode(temp) + "&";
        if(name == "O") dn = dn + "O=" + obj.URLEncode(temp) + "&";
        if(name == "OU") dn = dn + "OU=" + obj.URLEncode(temp) + "&";
        if(name == "CN") dn = dn + "CN=" + obj.URLEncode(temp) + "&";
        if(name == "EMAIL")
        {
            if(temp=="") temp = " ";

            dn = dn + "EMAIL=" + obj.URLEncode(temp) + "&";
        }
    }

    req = obj.CertRequest(InitechPackage, "", dn, form.challenge.value);

    if(req=="") return false;
    form.req.value = req;

    return true;
}

function CertRequest2(form)
{
    var dn="";
    var temp=""
    len = form.elements.length;

    form.req.value="";

    obj = ModuleInstallCheck();
    if (obj == null) return false;

    for (i = 0; i < len; i++)
    {
        var name = form.elements[i].name.toUpperCase();
        var temp = form.elements[i].value;
        if(name == "C") dn = dn + "C=" + obj.URLEncode(temp) + "&";
        if(name == "L") dn = dn + "L=" + obj.URLEncode(temp) + "&";
        if(name == "O") dn = dn + "O=" + obj.URLEncode(temp) + "&";
        if(name == "OU") dn = dn + "OU=" + obj.URLEncode(temp) + "&";
        if(name == "CN") dn = dn + "CN=" + obj.URLEncode(temp) + "&";
        if(name == "EMAIL")
        {
            if(temp=="") temp = " ";

            dn = dn + "EMAIL=" + obj.URLEncode(temp) + "&";
        }
    }

    req = obj.CertRequest2(InitechPackage, "", dn, form.challenge.value);

    if(req=="") return false;
    form.req.value = req;

    return true;
}

function IssueCertificate(szRef, szCode)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    var Arg = "";
    var challenge = "1111";

    Arg += "REF=";
    Arg += obj.URLEncode(szRef);
    Arg += "&CODE=";
    Arg += obj.URLEncode(szCode);
    Arg += "&CAIP=";
    Arg += obj.URLEncode(YessignCAIP);
    Arg += "&CAPORT=";
    Arg += obj.URLEncode(YessignCMPPort);

    obj.CertRequest(YessignPackage, "", Arg, challenge);
}

function UpdateCertificate()
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    var Arg = "";
    var challenge = "1111";

    Arg += "CAIP=";
    Arg += obj.URLEncode(YessignCAIP);
    Arg += "&CAPORT=";
    Arg += obj.URLEncode(YessignCMPPort);

    //obj.CertUpdate(YessignPackage, "", Arg);
    if(obj.CertUpdate2(YessignPackage, "", Arg)=="")    return false; //Ä³½¬µÈÀÎÁõ¼­»ç¿ë½Ã
    return true;
}

function InsertCACert(cert)
{
    // INIplugin-128 Install Check
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    obj.InsertCACert(InitechPackage, cert);

    return true;
}

//add bye wakano 2001/01/29 with for Shinhan Bank
function EncryptedCertRequest(form1)
{
        ShinHan_plugin = true;
        if(CertRequest(form1)){
            return EncForm(form1);
        }
        return false;
}

function EncCertReq(form1)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    if(CertRequest(form1)) return EncForm(form1);

    return false;

}

function EncCertReq2(form1, form2)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    if(!CertRequest(form1))
        return false;

    return EncForm2(form1, form2);
}

function LoadCACert(CACert)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    obj.LoadCACert(CACert);

    return true;
}

function DeleteUserCert(DelCert)
{
    obj = ModuleInstallCheck();
    if (obj == null) return;

    if (obj.DeleteUserCert(InitechPackage, "", DelCert))
    {
        //alert("ÇØ´ç ÀÎÁõ¼­ »èÁ¦ÇÏ¿´½À´Ï´Ù.");
    }
    else
    {
        //alert("ÇöÀç »ç¿ëÇÏ½Ã´Â ÄÄÇ»ÅÍ¿¡ ÇØ´ç ÀÎÁõ¼­°¡ ¾ø¾î¼­ »èÁ¦ÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.");
    }

    return;
}

function RevokeCertificate(serial)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    //alert(serial);
    if(obj.DeleteUserCert(YessignPackage, "", serial))
    {
        //alert("ÇØ´ç ÀÎÁõ¼­ »èÁ¦ÇÏ¿´½À´Ï´Ù.");
        return true;
    }
    else
    {
        //alert("ÇöÀç »ç¿ëÇÏ½Ã´Â ÄÄÇ»ÅÍ¿¡ ÇØ´ç ÀÎÁõ¼­°¡ ¾ø¾î¼­ »èÁ¦ÇÏÁö ¸øÇÏ¿´½À´Ï´Ù.");
        return false;
    }

    return  true;
}

function SelFile(field)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    field.value = obj.SelectFile();
}

/*function InstallModule()
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    if(InstallModuleURL=="") return true;
    obj.InstallModule(InstallModuleURL);
    return true;
}
*/

function InstallModule(InstallModuleURL)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    if(InstallModuleURL=="") return true;
    obj.InstallModule(InstallModuleURL);
    return true;
}

function FilterUserCert(storage, issuerAndSerial)
{
    obj = ModuleInstallCheck();
    if (obj == null) return -1;
    return obj.FilterUserCert(storage, issuerAndSerial);
}

function URLEncode(data)
{
    obj = ModuleInstallCheck();
    if (obj == null) return "";
    return obj.URLEncode(data);
}

function GetStorageSerial(storage, pin)
{
    obj = ModuleInstallCheck();
    if (obj == null) return "";
    return obj.GetStorageSerial(storage, pin);
}

function IsCheckCard(storage)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.IsCheckCard(storage);
}

function VerifyPin(storage, pin)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.VerifyPIN(storage, pin);
}

function ChangePIN(storage, oldpin, newpin)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.ChangePIN(storage, oldpin, newpin);
}

//add to brson :  ÆÄÀÏ¾ÏÈ£È­ V4.0.2.4
///////////////////////////////////////////////////
///////////// ÆÄÀÏ¾ÐÈ£È­ API  /////////////////////
///////////////////////////////////////////////////

function EncFile(url, form)
{
    var eletemp = "";
    var filetemp = "";

    obj = ModuleInstallCheck();
    if (obj == null) return false;

    filetemp = GatherFileValue(form, 0, true);
    if (filetemp !=  "")
    {
        if ((form.INIfileData.value = obj.UploadEncryptFile(url, 0, cipher, filetemp, "")) == ""){
            alert("File Upload Fail");
            return false;
        }
        //alert("INIfileData = " + form.INIfileData.value);
    }

    eletemp = GatherValue(form, 0, true);
    if ((form.INIpluginData.value = obj.MakeINIpluginData(0, cipher, eletemp, ""))=="") return false;

    return true;
}

function EncFile2(url, form, form2)
{
    var eletemp = "";
    var filetemp = "";

    obj = ModuleInstallCheck();
    if (obj == null) return false;

    filetemp = GatherFileValue(form, 0, false);
    if (filetemp !=  "")
    {
        //alert("fileValue = " + filetemp);
        if ((form.INIfileData.value = obj.UploadEncryptFile(url, 0, cipher, filetemp, "")) == ""){
            alert("File Upload Fail");
            return false;
        }
        //alert("INIfileData = " + form.INIfileData.value);
    }

    eletemp = GatherValue(form, 0, false);
    if ((form2.INIpluginData.value = obj.MakeINIpluginData(0, cipher, eletemp, ""))=="") return false;

    return true;
}

function EncDown(url, args)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.DownloadEncryptFile(url, 0, cipher, args, "");
}

function EncDownVerify(url, args)
{

    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.DownloadEncryptFile(url, 1, cipher, args, TimeURL);
}

///////////////////////////////////////////////////
///////////// ÃÊ±â°ª ¼¼ÆÃ API  /////////////////////
///////////////////////////////////////////////////

function LoadCert(Cert)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.LoadCert(Cert);
}

function InitCache()
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    obj.InitCache();

    return true;
}

function SetCacheTime(gap)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    obj.SetCacheTime(gap);

    return true;
}

function ReSession()
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    obj.ReSession();
    return true;
}

function SetLogoPath()
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.SetLogoPath(LogoURL);
}

function EnableCheckCRL(check)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    obj.EnableCheckCRL(check);
}

function SetVerifyNegoTime(time1, time2)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    obj.SetVerifyNegoTime(time1, time2);
}

function DisableInvalidCert(check)
{
    obj = ModuleInstallCheck();
    if (obj == null) return false;
    obj.DisableInvalidCert(check);
}

function SetTVBanking(bTV)
{
    var ver = "4, 1, 3, 0";
    if(EnableFunction(ver)) {
        obj = ModuleInstallCheck();
        if (obj == null) return false;
        obj.SetTVBanking(bTV);
    } else {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â Áö¿øÇÏÁö ¾Ê´Â±â´ÉÀÔ´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg) alert(msg);
        return false;
    }
    return true;
}

///////////////////////////////////////////////////
///////////// ±âÅ¸             /////////////////////
///////////////////////////////////////////////////

function GetVersion()
{
    var ver = "4,0,0,0"
    obj = ModuleInstallCheck();
    if (obj == null) return ver;
    return new String(obj.GetVersion());
}

function EnableFunction(inputVersion)
{
    var thisArray = GetVersion().split(',');
    var inputArray = inputVersion.split(',');

    for (i=0; i<4; i++)
    {
        if (parseInt(thisArray[i], 10) > parseInt(inputArray[i], 10))
            return true;
        else if (parseInt(thisArray[i], 10) < parseInt(inputArray[i], 10))
            return false;
    }
    return true;
}

function ManageCert()
{
    obj = ModuleInstallCheck();
    if (obj == null) return;

    obj.ManageCert();
}

function INIAbout()
{
    obj = ModuleInstallCheck();
    if (obj == null) return;
    obj.About();
}

function GetClientUID()
{
    var ver = "4, 5, 0, 0";
    if(EnableFunction(ver)) {
        obj = ModuleInstallCheck();
        if (obj == null) return;
        return obj.GetClientUID();
    } else {
        var msg;
        //msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â Áö¿øÇÏÁö ¾Ê´Â±â´ÉÀÔ´Ï´Ù."
        //msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        msg = "\n .. °ø»çÁßÀÔ´Ï´Ù... "
        if (EnableMsg) alert(msg);
    }
    return;
}


///////////////////////////////////////////////////
/////////////¼¼±Ý°è»ê¼­ API ½ÃÀÛ/////////////////////
///////////////////////////////////////////////////

function MakeTaxData(inform, outform)
{
    var gValue = "";
    var ret  = "";

    len = inform.elements.length;
    outform.INIpluginTax.value="";

    // INIplugin-128 Install Check
    INIpluginObject = ModuleInstallCheck();
    if (INIpluginObject == null) return false;

    for (i = 0; i < len; i++) {
        var name = inform.elements[i].name;
        var value = INIpluginObject.URLEncode(inform.elements[i].value);
        gValue = gValue + name + "=" + value + "&";
    }

    ret = INIpluginObject.MakeTaxData(gValue);
    if(ret == "" || ret == "CERT_NOT_FOUND") return false;
    outform.INIpluginTax.value = ret;

    return true;
}

function EncMakeTaxData(inform, outform)
{
    if(MakeTaxData(inform, outform)) {
        alert(outform.INIpluginTax.value);
        return EncForm(outform);
    }
    return false;
}

function SaveTaxData(taxData)
{
        // INIplugin-128 Install Check
        INIpluginObject = ModuleInstallCheck();
        if (INIpluginObject == null) return false;
        if(INIpluginObject.SaveTaxData(taxData)) {
                return true;
        } else {
                return false;
        }
}

function SaveTaxData2Clt(pfile, taxData)
{
        // INIplugin-128 Install Check
        INIpluginObject = ModuleInstallCheck();
        if (INIpluginObject == null) return false;
        if(INIpluginObject.SaveTaxData2Clt(pfile, taxData)) {
                return true;
        } else {
                return false;
        }
}

function ManageTax()
{
    INIpluginObject = ModuleInstallCheck();
        if (INIpluginObject == null) return false;
        if(INIpluginObject.manageTax()) {
                return true;
        } else {
                return false;
        }
}


///////////////////////////////////////////////////
///////////// ÀüÀÚ¼­¸í API ½ÃÀÛ/////////////////////
///////////////////////////////////////////////////

function IniSign(form, data, inputtitle, inputdata)
{
    var ver = "4, 1, 9, 0";
    if(EnableFunction(ver)) {
        INIpluginObject = ModuleInstallCheck();
        if (INIpluginObject == null) return false;

        form.PKCS7SignedData.value = INIpluginObject.IniSign("sha1", data, TimeURL, inputtitle, inputdata);
        if(form.PKCS7SignedData.value=="") return false;
        //alert(PKCS7SignedData);
        return true;
    } else {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀüÀÚ¼­¸í ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg) alert(msg);
        return false;
    }
}

function IniSign2(form, data)
{
    var ver = "4, 1, 9, 0";
    if(EnableFunction(ver)) {
        INIpluginObject = ModuleInstallCheck();
        if (INIpluginObject == null) return false;

        form.PKCS7SignedData.value = INIpluginObject.IniSign2("sha1", data, TimeURL);
        if(form.PKCS7SignedData.value=="") return false;
        return true;

    } else {alert("this");
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀüÀÚ¼­¸í ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        //msg = "\n .. °ø»çÁßÀÔ´Ï´Ù... "
        if (EnableMsg) alert(msg);
        return false;
    }
}


function PKCS7SignedData(form, data, view)
{
    var ver = "4, 1, 14, 0";
    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }
    if(EnableFunction(ver)) {
        form.PKCS7SignedData.value = obj.PKCS7SignData("sha1", data, TimeURL, view);
        if(form.PKCS7SignedData.value=="") return false;
        return true;
    } else {
        alert("this");
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀüÀÚ¼­¸í ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg)  alert(msg);
        return false;
    }
}

function AddSignValue(data, name, value)
{
    if(data!="") data += "&";
    data += URLEncode(name);
    data += "=";
    data += URLEncode(value);
    return data;
}

function EncLocation(indata)
{
    var INIdata;
    var s = indata.indexOf('?');

    //add by wakano 2002/07/15
    if (s <= -1 ) s = indata.length;

    var url = indata.substring(0, s) + "?INIpluginData=";
    var encData = indata.substring(s+1);

    obj = ModuleInstallCheck();
    if (obj == null) {
        //alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        //return false;
        //(¿¡·¯Ã³¸®)2006/11/02¼öÁ¤
        alert("ÇöÀç °í°´´Ô²²¼­ »ç¿ëÇÏ°í °è½Å È­¸éÀÇ \n"+
              "¾ÏÈ£È­ »óÅÂ°¡ ºÒ¾ÈÁ¤ÇÏ¿© »õ·Î°íÄ§ ÈÄ Ã¹ÆäÀÌÁö·Î ÀÌµ¿ÇÕ´Ï´Ù.\n"+
              "º¸¾È °­È­¸¦ À§ÇÑ Á¶Ä¡ÀÌ¿À´Ï »ç¿ë¿¡ ºÒÆíÇÏ½Ã´õ¶óµµ ¾çÇØÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.\n\n"+
              "»ç¿ë¿¡ ºÒÆíÀ» µå·Á ÁË¼ÛÇÕ´Ï´Ù.");
        window.top.location.href='/';
        return void(0);
    }
    //modify brson 2002/06/11
    //dt¿¡ server time Ãß°¡
    var ver="4,2,0,0";
    if(AddServerTime && EnableFunction(ver)) {
        if(encData!=""){
                encData = "__INIts__=" + obj.GetServerTime(TimeURL) + "&" + encData;
        }
        else{
                encData = "__INIts__=" + obj.GetServerTime(TimeURL);
        }
    }

    if( (INIdata = obj.MakeINIpluginData("0", cipher, encData, "")) == "" )
        return;
    url += obj.URLEncode(INIdata);

    //alert(url);
    return url;
}


function AddSignValue(data, name, value)
{
    if(data!="") data += "&";
    data += URLEncode(name);
    data += "=";
    data += URLEncode(value);
    return data;
}

function PKCS7SignedData(form, data, view)
{
    var ver = "4, 1, 14, 0";
    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }
    if(EnableFunction(ver)) {
        form.PKCS7SignedData.value = obj.PKCS7SignData("sha1", data, TimeURL, view);
        if(form.PKCS7SignedData.value=="") return false;
        return true;
    } else {
        alert("this");
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀüÀÚ¼­¸í ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg)  alert(msg);
        return false;
    }
}

function SignFile(filename)
{
    var obj = ModuleInstallCheck();
    if (obj == null) return "";

    return obj.SignFile(filename);
}

//ÀÌÁß¾ÏÈ£È­
function EncryptTo(cert, data)
{
    var ver = "4, 3, 1, 0";
    if(EnableFunction(ver)) {
        obj = ModuleInstallCheck();
        if (obj == null) "";
        return obj.MakeINIpluginData2(cert, 0, cipher, data, "");
    } else {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀÌÁß¾ÏÈ£È­ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg) alert(msg);
        return "";
    }
    return "";
}

function AddValue(data, name, value)
{
    if(data!="") data += "&";
    data += URLEncode(name);
    data += "=";
    data += URLEncode(value);
    return data;
}

function SetProperty(name, value)
{
    var obj = ModuleInstallCheck();
    if (obj == null) return "";
    return obj.SetProperty(name, value);
}

// ÀºÇàÀÇ ¼­¹öÀÎÁõ¼­(BSCert)¸¦ ÀÌ¿ëÇÏ¿© ¾ÏÈ£È­µÈ SK»ý¼º
function makeSK(BSCert, form)
{
    var ver = "4, 5, 2, 11";
    if(!EnableFunction(ver)) {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀÌÁß¾ÏÈ£È­ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg) alert(msg);
        return false;
    }

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }
    if (typeof form.INIencSK == "undefined") {
        alert("INIecnSK(form.name)°¡ ÇÊ¿äÇÕ´Ï´Ù.");
        return false;
    }

    form.INIencSK.value = obj.MakeSessionKeyInfo(BSCert, "SEED-CBC");
    return true;
}

// sk¸¦ ÀÌ¿ëÇÏ¿© Æ¯Á¤formÀÇ value°ªÀ» ¾ÏÈ£È­ÇÏ¿© ±âÁ¸ value¸¦ ±³Ã¼ÇÔ
function EncryptToSK(name, form)
{
    var ver = "4, 5, 2, 11";
    if(!EnableFunction(ver)) {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â ÀÌÁß¾ÏÈ£È­ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù."
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù."
        if (EnableMsg) alert(msg);
        return false;
    }

    obj = ModuleInstallCheck();
    if (obj == null) {
        alert("¾ÏÈ£È­ÇÁ·¹ÀÓ(secureframe)À» Ã£À»¼ö ¾ø½À´Ï´Ù.");
        return false;
    }
    for(var i=0; i<form.elements.length; i++)
    {
        var element = form.elements[i];
        if (element.name == name) {
            element.value = obj.EncryptWithSKInfo2(form.INIencSK.value, element.value);
            return true;
        }
    }
    alert("ÀÌÁß¾ÏÈ£È­ÇÒ form.name(" + name + ")À» Ã£À»¼ö°¡ ¾ø½À´Ï´Ù.");
    return false;
}



function IsCachedCert()
{
    var obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.IsCachedCert();
}

function GetCachedCert(name)
{
    var obj = ModuleInstallCheck();
    if (obj == null) return "";
    return obj.GetCachedCert(name);
}

function CheckCRL(cert)
{
    var obj = ModuleInstallCheck();
    if (obj == null) return false;
    return obj.CheckCRL(cert);
}

function ViewCert(cert)
{
    var obj = ModuleInstallCheck();
    if (obj == null) return;
    obj.ViewCert(cert);
}

//¼±Á¾ Ãß°¡... HTML Encrypt ¿ë...
function setSharedAttribute(name, value){
    obj = ModuleInstallCheck();
    if (obj == null) return false;

    obj.setSharedAttribute(name, value);
    return true;
}

function getSharedAttribute(name){
    obj = ModuleInstallCheck();
    if (obj == null) return null;

    return obj.getSharedAttribute(name);
}

//input serial , subjectcn , subjectdn , issuerdn
function getCachedData(name){
    obj = ModuleInstallCheck();
    if (obj == null) return "";
    return obj.GetCachedData(name);
}

//¾ÐÃà+¾ÏÈ£È­ µÈ ³»¿ëÀ» º¹È£È­ ÇÏ¿© ¸®ÅÏÇÔ.

function IdecryptWithGunzip(data)
{
    var decdata = "";
    obj = ModuleInstallCheck();
    if (obj == null) return "";

    var ver = "5, 1, 6, 1";

    if(!EnableFunction(ver)) {
        var msg;
        msg = "ÇöÀç ¼³Ä¡µÈ ¹öÀü V " + GetVersion() + " ¿¡¼­´Â º» ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.";
        msg += "\n\nV " + ver + " ÀÌ»óÀ¸·Î ¾÷±×·¹ÀÌµå ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.";

        if (EnableMsg) alert(msg);

        return false;
    }

    if (navigator.appName == 'Netscape')
        decdata = unescape(obj.DecryptWithGunzip(cipher, data));
    else
        decdata = obj.DecryptWithGunzip(cipher, data);

    return decdata;
}

function EncryptWithPassword(alg, key, data)
{
    obj = ModuleInstallCheck();

    if (obj == null)
    {
        alert('ModuleInstallCheck() return null');
        return null;
    }
    return obj.EncryptWithPassword(alg, key, data);
}


if ( typeof(KeystrokeChkDefine) == "undefined" )
{
    var KeystrokeChkDefine = "define"; //check¿ë

    /*
    	ÀÛ¼ºÀÚ : sgchoi
    	ÇÔ¼ö ¸í : SecukeyInsert()
    	ÇÔ¼ö ¼³¸í : Å°º¸µåº¸¾È Àû¿ë ÇÔ¼ö
    	»ç¿ë¹ý : ÆäÀÌÁö°¡ ´Ù ·ÎµùµÈ ÀÌÈÄ¿¡ ÇÔ¼ö¸¦ È£ÃâÇÔ
    */
    function SecukeyInsert(){

    	var os_ver = window.navigator.appVersion;
    	var scsk_script = "";

    	var SCSKDownloadRoot = "/keystroke/403174/";
    	var SCSKScriptVer = "";

    	if(os_ver.toLowerCase().indexOf("wow64")>0){		// 64bit OS - 32 bit IE
    		SCSKScriptVer = "4,0,6031,74";
    		SCSKDownloadRoot = SCSKDownloadRoot + "SCSK4_WOW64.cab";
    	}else if(os_ver.toLowerCase().indexOf("win64")>0){		// 64bit OS - 64 bit IE : Áö¿øºÒ°¡
    		//alert("32bit Internet Explorer¸¦ »ç¿ëÇÏ½Ê½Ã¿À.");
    	}else if(os_ver.toLowerCase().indexOf("nt 6")>0){			// Windows Vista
    		SCSKScriptVer = "4,0,6031,74";
    		SCSKDownloadRoot = SCSKDownloadRoot + "SCSK4_VISTA.cab";
    	}else if(os_ver.toLowerCase().indexOf("windows 98")>0 || os_ver.toLowerCase().indexOf("winme")>0 || os_ver.toLowerCase().indexOf("windows me")>0){		// Windows 98, ME : Ansi ¸ðµâ
    		SCSKScriptVer = "4,0,31,74";
    		SCSKDownloadRoot = SCSKDownloadRoot + "SCSK4_9X.cab";
    	} else {		// etc : Unicode ¸ðµâ
    		SCSKScriptVer = "4,0,31,74";
    		SCSKDownloadRoot = SCSKDownloadRoot + "SCSK4.cab";
    	}

    	if(os_ver.toLowerCase().indexOf("win64")>0){		// 64bit OS - 64 bit IE : Áö¿øºÒ°¡
    		//alert("32bit Internet Explorer¸¦ »ç¿ëÇÏ½Ê½Ã¿À.");
    	}else{
    		scsk_script = scsk_script + '<object classid="CLSID:39FC0CF9-86F3-4502-B773-D16706EDEC83" codebase="'+SCSKDownloadRoot+'#version='+SCSKScriptVer+'" width="0" height="0" id="secukey">';
    		scsk_script = scsk_script + '<param name="USEICON" value="1">';
    		scsk_script = scsk_script + '<param name="HACKOPTION" value="17">';  //
    		scsk_script = scsk_script + '<param name="HACKHTMSTR" value="http://www.softcamp.co.kr/scsk/attack_info/index.asp">';
    		if(typeof(SCert) != "undefined" && typeof(scsk_exte2e_start) == "function"){
    			scsk_script = scsk_script + '<param name="SiteCode" value="9232">';
    			scsk_script = scsk_script + '<param name="INI7CustomCode" value="208">';
    			scsk_script = scsk_script + '<param name="ExtE2EServerCert" value="'+SCert+'">';
    			scsk_script = scsk_script + '<param name="EteExtBkColor" value="13434828">';
    		}
    		scsk_script = scsk_script + '</object>';
    	}

    	var newDiv = document.createElement("div");
    	with (newDiv.style){
    		position = "relative";
    		left = -1;
    		top = -1;
    		width = 0;
    		height = 0;
    	}

    	newDiv.setAttribute("name", "scsk_div");
    	newDiv.setAttribute("id", "scsk_div");
    	newDiv.innerHTML = scsk_script;
    	document.appendChild(newDiv);
    }

    /*
    	ÀÛ¼ºÀÚ : sgchoi
    	ÇÔ¼ö ¸í : SCSKCheckDocument()
    	ÇÔ¼ö ¼³¸í : HTML ÆäÀÌÁöÀÇ Form, password, È®Àå E2E ´ë»ó ÇÊµåÀÇ °³¼ö¸¦ È®ÀÎÇÏ´Â ÇÔ¼ö
    	»ç¿ë¹ý : ÆäÀÌÁö ·Îµù ÈÄ Å°º¸µåº¸¾È ¸ðµâÀ» Àû¿ëÇÏ±â Àü¿¡ ÇØ´ç ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Àû¿ë ÆäÀÌÁöÀÇ Á¤º¸¸¦ ¾òÀ½
    	¸®ÅÏ°ª : 1/1/1 (Form ÀÇ °³¼ö / input type=text ÇÊµåÀÇ °³¼ö / password ÇÊµåÀÇ °³¼ö)
    */
    function SCSKCheckDocument(){
    	var retVal = "";
    	var ETECount = 0;
    	var ExtETECount = 0;
    	var dwInput = document.getElementsByTagName("input");
    	var dwForm = document.getElementsByTagName("form");
    	var FormCount = dwForm.length;
    	for (i=0;i<dwInput.length;i++) {
    		if (dwInput[i].type == "text") {	// ÀÏ¹Ý ÅØ½ºÆ®Çü
    			 ETECount++;
    		}
    		if (dwInput[i].type == "password") {	// ÆÐ½º¿öµåÇü
    			 ETECount++;
    		}
    	}
    	retVal = FormCount+"/"+ETECount+"/"+ExtETECount;
//    	alert(
//        	"URL : "+document.location.href+"\n"+
//        	"retVal" + retVal
//    	);
    	return retVal;
    }

    /*
    	ÀÛ¼ºÀÚ : sgchoi
    	ÇÔ¼ö ¸í : _isPageLoadcomplete_()
    	ÇÔ¼ö ¼³¸í : ÆäÀÌÁö°¡ ·ÎµùµÇ¾ú´ÂÁö È®ÀÎÇÏ´Â ÇÔ¼ö
    	»ç¿ë¹ý : ÆäÀÌÁöÀÇ ·Îµù»óÅÂ¸¦ °è¼Ó Ã¼Å©ÇÏ¿© ·Îµù ÈÄ Å°º¸µåº¸¾È Àû¿ë ÇÔ¼ö¸¦ È£ÃâÇÔ
    */
    function _isPageLoadcomplete_() {
    	if(document.readyState == "complete") {
    		var retVal = SCSKCheckDocument();
    		var retValArr = retVal.split("/");
    		//if(retValArr[0] > 1 || retValArr[1] > 0 || retValArr[2] > 0)
    		if(retValArr[0] > 1 && retValArr[1] > 0)
    		{
    			SecukeyInsert();
    			if(typeof(scsk_exte2e_start) == "function"){
    				scsk_exte2e_start();
    			}
    		}
    	} else {
    		setTimeout("_isPageLoadcomplete_();", 500); // 1ÃÊ:1000  0.5ÃÊ:500
    	}
    }

    /*
    	ÀÛ¼ºÀÚ : sgchoi
    	ÇÔ¼ö ¸í : makeE2EFieldURL(name, value, option)
    	ÇÔ¼ö ¼³¸í : Å°º¸µåº¸¾È E2E ´ë»ó ÇÊµåÀÇ ÀÌ¸§À» Ã¼Å©ÇÏ´Â ÇÔ¼ö, ÆÐ½º¿öµåÀÌ¸é ÇÊµåÀÇ ÀÌ¸§ ¾Õ¿¡ _E2E123_À» ºÙ¿©ÁÖ°í È®ÀåE2E ´ë»óÀº ¾ÏÈ£È­ hidden ÇÊµå¸¦ µÚ¿¡ ºÙ¿©ÁØ´Ù.
    	»ç¿ë¹ý : °ªÀ» Àü¼ÛÇÏ±â Àü¿¡ ÇØ´ç ÇÔ¼ö¸¦ È£ÃâÇÔ.
    	       name Àº ÇÊµåÀÌ¸§,
    	       value ÇÊµå °ª,
    	       option Àº 0Àº ÆÐ½º¿öµå ÇÊµå, 1Àº Text ÇÊµå
    */
    function makeE2EFieldURL(name, value, option){
    	//alert("name : "+name+"\nvalue : "+value+"\noption : "+option);
    	if(option == "0"){
    		if(document.secukey.INI7E2ESTATE() == "0" && name.indexOf("_E2E123_") == -1){
    			name = "_E2E123_"+name;
    		}
    	}else{
    		if(typeof(document.all["_ExtE2E123_"+name]) != "undefined"){
    			value = value + "&_ExtE2E123_"+name+"="+URLEncode(document.all["_ExtE2E123_"+name].value);
    		}
    	}
    	return "&"+name+"="+value;
    }

    /*
    	ÀÛ¼ºÀÚ : sgchoi
    	ÇÔ¼ö ¸í : makeE2ESeed(data)
    	ÇÔ¼ö ¼³¸í : Å°º¸µåº¸¾È E2E SEED °ª Ã¼Å©ÇÔ¼ö, E2E°¡ Àû¿ëµÇ¸é SEED ¿©ºÎ¸¦ È®ÀÎÇÏ¿© ¾øÀ»°æ¿ì SEED ¸¦ ºÙ¿©ÁÜ
    	»ç¿ë¹ý : ÇØ´ç ÇÔ¼ö¿¡ ¾ÏÈ£È­µÇ±â Àü µ¥ÀÌÅÍ¸¦ Àü¼ÛÇÏ¿© E2E »óÅÂ¿Í SEED »óÅÂ¸¦ °ËÁõÇÔ
    */
    function makeE2ESeed(data){
    	if(data.indexOf("_E2E123_") > -1 || data.indexOf("_ExtE2E123_") > -1){
    		if(data.indexOf("_ETEExt_SEED_") == -1){
    			data = data + "&_ETEExt_SEED_="+URLEncode(document.all['_ETEExt_SEED_'].value);
    		}
    	}
    	return data;
    }

    function SetExtE2EFields()
    {
    	secukey.SetExtE2EFields(document);
    }

    //inputÀÇ elememt·Î µî·ÏÇÏ±â.
    function SetSCSKEtEExtbyID(input,hidden)
    {
    	input.autocomplete='off'; //ÀÚµ¿¿Ï¼º ±â´É ²ô±â
    	input.style.imeMode = "disabled";	//ÇÑ±ÛÀÔ·Â ¸·±â.
    	secukey.AddETEExtInput(document, input, hidden);
    }

    //input ÀÇ nameÀ¸·Î µî·ÏÇÏ±â.
    function SetSCSKEtEExtbyName(form,inputname,hiddenname)
    {
    	var inputelement=null;
    	var hiddenelement=null;
    	len = form.elements.length;
    	for(i=0; i<len; i++)
    	{
    		if(form.elements[i].name==inputname)
    		{
    			inputelement=form.elements[i];
    		}
    		else if(form.elements[i].name==hiddenname)
    		{
    			hiddenelement = form.elements[i];
    		}
    	}

    	if(inputelement && hiddenelement)
    	{
    		SetSCSKEtEExtbyID(inputelement,hiddenelement);
    	}
    }

    _isPageLoadcomplete_();
}



} // if ( typeof(_iniplugin_js_) == "undefined" ) //check¿ë

