/* KCP 전자 지불(payplus) Script */

var PAYGW_ADDR  = "testpaygw.kcp.co.kr";
var PAYGW_PORT  = "8090";
var UPDATE_ADDR = "http://testpay.kcp.co.kr/plugin_new/update";
var HOME_ADDR   = "http://testpay.kcp.co.kr/plugin_new";
var ISP_ADDR    = "https://pay.kcp.co.kr/ISP";
var KMPI_ADDR   = "https://secure.kcp.co.kr/webpay/KMPI";
var XMPI_ADDR   = "https://pay.kcp.co.kr/XMPI";
var TONG_ADDR   = "https://testpay.kcp.co.kr/CPTong";

var KCPUX_OBJ = "<OBJECT ID=Payplus CLASSID=CLSID:5547DED5-E6A9-469A-90F0-5BFE5CD33FF1 width=0 height=0 CODEBASE=http://testpay.kcp.co.kr/plugin_new/file/KCPPaymentUX.cab#Version=1,0,46699,0 onerror=OnErr()></OBJECT>";

function StartSmartUpdate()
{
    if(navigator.appName == 'Netscape')
    {
        alert("KCP 플러그인은 Internet Explorer 환경에서 동작합니다.");
        return false;
    }
    
   	document.writeln(KCPUX_OBJ);
   	
    return true;
}

function MakePayMessage(payform)
{
    if(document.Payplus == null || document.Payplus.object == null)
    {
        OnErr();
        return false;
    }
    
    document.Payplus.lfKCPUX__init();
    
    SetField(payform);
    
    if(document.Payplus.lfKCPUX__do_tx() != "SUCC")
    {
        PluginErrMsg(payform);
        document.Payplus.lfKCPUX__cleanup();
        return false;
    }
    GetField(payform);
    document.Payplus.lfKCPUX__cleanup();
    
    return true;
}

//Set Merchant Payment Field
function SetField(payform)
{
    var vTemp="";
    var vResrv1="";
    var vResrv2="";
    var vResrv3="";
    var nField = payform.elements.length;
	
    var cfg_data_no  = 0;
    var pay_data_no  = 0;
    var ordr_data_no = 0;
    var escw_data_no = 0;
    var recv_data_no = 0;    
    
    cfg_data_no  = document.Payplus.lfKCPUX__add_set( "cfg_data" );
    pay_data_no  = document.Payplus.lfKCPUX__add_set( "pay_data"  );
    ordr_data_no = document.Payplus.lfKCPUX__add_set( "ordr_data" );
    escw_data_no = document.Payplus.lfKCPUX__add_set( "escw_data" );
    rcvr_data_no = document.Payplus.lfKCPUX__add_set( "rcvr_data" );   

    for(i = 0; i < nField; i++)
    {
        // 가맹점 정보
        if(payform.elements[i].name == "site_cd")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "site_cd",  payform.site_cd.value );
        if(payform.elements[i].name == "site_logo")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "site_logo", payform.site_logo.value );
        if(payform.elements[i].name == "site_name")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "site_name", payform.site_name.value );

        // 결제수단
        if(payform.elements[i].name == "pay_method")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "pay_method", payform.pay_method.value );
        
        // 모듈구분
        if(payform.elements[i].name == "module_type")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "module_type", payform.module_type.value );
        if(payform.elements[i].name == "auth_flag_check")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "auth_flag_check", payform.auth_flag_check.value );
        // 주민번호
        if(payform.elements[i].name == "soc_no")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "soc_no", payform.soc_no.value );
        // 통화코드
        if(payform.elements[i].name == "currency")
        {
            if ( payform.currency.value == "WON" || payform.currency.value == "410")
                document.Payplus.lfKCPUX__set_us( pay_data_no, "currency", "410" );
            else if ( payform.currency.value == "USD" || payform.currency.value == "840")
                document.Payplus.lfKCPUX__set_us( pay_data_no, "currency", "840" );
        }

        //신용카드
        if(payform.elements[i].name == "card_cert_type" || payform.elements[i].name == "keyin" )
        {
            if(payform.elements[i].name == "card_cert_type")
            {
            	  if(payform.card_cert_type.value == "KEYIN")
                    document.Payplus.lfKCPUX__set_us( pay_data_no, "card_cert_type",  "SALE" );
                else
                    document.Payplus.lfKCPUX__set_us( pay_data_no, "card_cert_type",  payform.card_cert_type.value );
            }
            else
            {
            	  if(payform.keyin.value == "KEYIN")
                    document.Payplus.lfKCPUX__set_us( pay_data_no, "card_cert_type",  "SALE" );                
                else
                    document.Payplus.lfKCPUX__set_us( pay_data_no, "card_cert_type",  payform.keyin.value );
            }
        }
        if(payform.elements[i].name == "kcp_noint")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "kcp_noint",       payform.kcp_noint.value );
        if(payform.elements[i].name == "kcp_noint_quota")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "kcp_noint_quota", payform.kcp_noint_quota.value );
        if(payform.elements[i].name == "quotaopt")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "quotaopt",        payform.quotaopt.value );
        if(payform.elements[i].name == "fix_inst")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "fix_inst",        payform.fix_inst.value );
        if(payform.elements[i].name == "not_used_card")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "not_used_card",   payform.not_used_card.value );
        if(payform.elements[i].name == "save_ocb")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "save_ocb",        payform.save_ocb.value );    

        //현금영수증
        if(payform.elements[i].name == "disp_tax_yn")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "disp_tax_yn",     payform.disp_tax_yn.value );
        
        //가상계좌
        if(payform.elements[i].name == "wish_vbank_list")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "wish_vbank_list",       payform.wish_vbank_list.value );
        if(payform.elements[i].name == "vcnt_expire_term")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_expire_term",      payform.vcnt_expire_term.value );
        if(payform.elements[i].name == "vcnt_expire_term_time")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_expire_term_time", payform.vcnt_expire_term_time.value );
        if(payform.elements[i].name == "vcnt_type")         // 고정식 가상계좌 타입
             document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_type",            payform.vcnt_type.value );
        if(payform.elements[i].name == "vcnt_info")         // 고정식 가상계좌(계좌정보)
            document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_info",             payform.vcnt_info.value );
        if(payform.elements[i].name == "vcnt_return_val")   // 가상계좌(가맹점 정보처리)
            document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_rt_val",           payform.vcnt_return_val.value );
        if(payform.elements[i].name == "vcnt_uniq_key")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "vcnt_uniq_key",         payform.vcnt_uniq_key.value );
            
        //포인트
        if(payform.elements[i].name == "complex_pnt_yn")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "complex_pnt_yn",  payform.complex_pnt_yn.value );
        if(payform.elements[i].name == "pay_code")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "pay_code",        payform.pay_code.value );

        //배치
        if(payform.elements[i].name == "kcpgroup_id")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "kcpgroup_id",     payform.kcpgroup_id.value );
        if(payform.elements[i].name == "batch_agree_url")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "batch_agree_url", payform.batch_agree_url.value );
        if(payform.elements[i].name == "batch_agree_yn")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "batch_agree_yn",  payform.batch_agree_yn.value );

        //주문 정보
        if(payform.elements[i].name == "ordr_idxx")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "ordr_idxx", payform.ordr_idxx.value );
        if(payform.elements[i].name == "good_name")
        {
            vTemp = payform.good_name.value;
	        	if(vTemp.length > 201) vTemp = vTemp.substr(0, 199);
	        	vTemp = vTemp.replace("&", "");
	        	vTemp = vTemp.replace(":", "");
	        	vTemp = vTemp.replace(";", "");
	        	vTemp = vTemp.replace("?", "");
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "good_name", vTemp );
        }
        if(payform.elements[i].name == "good_mny")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "good_mny",  payform.good_mny.value );
        if(payform.elements[i].name == "buyr_name")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "buyr_name", payform.buyr_name.value );
        if(payform.elements[i].name == "buyr_tel1")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "buyr_tel1", payform.buyr_tel1.value );
        if(payform.elements[i].name == "buyr_tel2")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "buyr_tel2", payform.buyr_tel2.value );
        if(payform.elements[i].name == "buyr_mail")
            document.Payplus.lfKCPUX__set_us( ordr_data_no, "buyr_mail", payform.buyr_mail.value );

        // 에스크로 구분
        if(payform.elements[i].name == "pay_mod")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "escw_mode", payform.pay_mod.value );        
        //에스크로 정보                
        if(payform.elements[i].name == "bask_cntx")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "bask_cntx", payform.bask_cntx.value );
        if(payform.elements[i].name == "good_info")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "good_info", payform.good_info.value );
        if(payform.elements[i].name == "buyr_zipx")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "buyr_zipx", payform.buyr_zipx.value );
        if(payform.elements[i].name == "buyr_add1")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "buyr_add1", payform.buyr_add1.value );
        if(payform.elements[i].name == "buyr_add2")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "buyr_add2", payform.buyr_add2.value );
        if(payform.elements[i].name == "deli_term")
            document.Payplus.lfKCPUX__set_gs( escw_data_no, "deli_term", payform.deli_term.value );
        
        //배송 정보
        if(payform.elements[i].name == "rcvr_name")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_name", payform.rcvr_name.value );
        if(payform.elements[i].name == "rcvr_tel1")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_tel1", payform.rcvr_tel1.value );
        if(payform.elements[i].name == "rcvr_tel2")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_tel2", payform.rcvr_tel2.value );
        if(payform.elements[i].name == "rcvr_mail")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_mail", payform.rcvr_mail.value );
        if(payform.elements[i].name == "rcvr_zipx")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_zipx", payform.rcvr_zipx.value );
        if(payform.elements[i].name == "rcvr_add1")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_add1", payform.rcvr_add1.value );
        if(payform.elements[i].name == "rcvr_add2")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_add2", payform.rcvr_add2.value );
        if(payform.elements[i].name == "rcvr_date")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rcvr_date", payform.rcvr_date.value );
        if(payform.elements[i].name == "rqst_msgx")
            document.Payplus.lfKCPUX__set_us( rcvr_data_no, "rqst_msgx", payform.rqst_msgx.value );
            
        //이메일 입력여부
        if(payform.elements[i].name == "disable_mail")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "disable_mail", payform.disable_mail.value );
        
        //스킨
        if(payform.elements[i].name == "skin_indx")
            document.Payplus.lfKCPUX__set_us( cfg_data_no, "skin_indx",    payform.skin_indx.value );
            
        // 복합과세
        if(payform.elements[i].name == "tax_flag")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "tax_flag",      payform.tax_flag.value );
        if(payform.elements[i].name == "comm_tax_mny")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "comm_tax_mny",  payform.comm_tax_mny.value );
        if(payform.elements[i].name == "comm_free_mny")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "comm_free_mny", payform.comm_free_mny.value );
        if(payform.elements[i].name == "comm_vat_mny")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "comm_vat_mny",  payform.comm_vat_mny.value );
        
        // 인증서 정책
        if(payform.elements[i].name == "kcp_user_policy")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "kcp_user_policy", payform.kcp_user_policy.value );
        
        // 영문
        if(payform.elements[i].name == "eng_flag")
            document.Payplus.lfKCPUX__set_us( pay_data_no, "eng_flag", payform.eng_flag.value );
    }

    /*접속정보*/
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "paygw_addr",  PAYGW_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "paygw_port",  PAYGW_PORT );    
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "update_addr", UPDATE_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "home_addr",   HOME_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "isp_addr",    ISP_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "kmpi_addr",   KMPI_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "xmpi_addr",   XMPI_ADDR );
    document.Payplus.lfKCPUX__set_us( cfg_data_no, "tong_addr",   TONG_ADDR );

    return true;
}

function GetField(payform)
{
    var nField = payform.elements.length;
              
    for(i = 0; i < nField; i++)
    {
    	  // 공통
    	  if(payform.elements[i].name == "res_cd")
            payform.res_cd.value = document.Payplus.lfKCPUX__get_data("res_cd");

        if(payform.elements[i].name == "res_msg")
            payform.res_msg.value = document.Payplus.lfKCPUX__get_data("res_msg");

        if(payform.elements[i].name == "tno")
            payform.tno.value = document.Payplus.lfKCPUX__get_data("tno");
		
		    if(payform.elements[i].name == "app_time")
            payform.app_time.value = document.Payplus.lfKCPUX__get_data("app_time");

        if(payform.elements[i].name == "app_no")
            payform.app_no.value = document.Payplus.lfKCPUX__get_data("app_no");
        
        // 신용카드
        if(payform.elements[i].name == "card_cd")
            payform.card_cd.value = document.Payplus.lfKCPUX__get_data("card_cd");

        if(payform.elements[i].name == "card_name")
            payform.card_name.value = document.Payplus.lfKCPUX__get_data("card_name");
        
        if(payform.elements[i].name == "noinf")
            payform.noinf.value = document.Payplus.lfKCPUX__get_data("noinf");

        if(payform.elements[i].name == "quota")
            payform.quota.value = document.Payplus.lfKCPUX__get_data("quota");
        
        if(payform.elements[i].name == "isp_card_cd")
            payform.isp_card_cd.value = document.Payplus.lfKCPUX__get_data("isp_card_cd");

        // 계좌이체
        if(payform.elements[i].name == "bank_name")
            payform.bank_name.value = document.Payplus.lfKCPUX__get_data("bank_name");
        
        if(payform.elements[i].name == "bank_code")
            payform.bank_code.value = document.Payplus.lfKCPUX__get_data("bank_code");
        
        if(payform.elements[i].name == "bank_issu")
            payform.bank_issu.value = document.Payplus.lfKCPUX__get_data("bank_issu");
            
        // 가상계좌
        if(payform.elements[i].name == "bankcode")
            payform.bankcode.value = document.Payplus.lfKCPUX__get_data("bankcode");
        
        if(payform.elements[i].name == "bankname")
            payform.bankname.value = document.Payplus.lfKCPUX__get_data("bankname");
        
        if(payform.elements[i].name == "depositor")
            payform.depositor.value = document.Payplus.lfKCPUX__get_data("depositor");
            
        if(payform.elements[i].name == "account")
            payform.account.value = document.Payplus.lfKCPUX__get_data("account");
      
        // 현금영수증
        if(payform.elements[i].name == "cash_yn")
            payform.cash_yn.value = document.Payplus.lfKCPUX__get_data("cash_yn");
        
        if(payform.elements[i].name == "cash_tr_code")
            payform.cash_tr_code.value = document.Payplus.lfKCPUX__get_data("cash_tr_code");
            
        if(payform.elements[i].name == "cash_id_info")
            payform.cash_id_info.value = document.Payplus.lfKCPUX__get_data("cash_id_info");
        
        if(payform.elements[i].name == "cash_tsdtime")
            payform.cash_tsdtime.value = document.Payplus.lfKCPUX__get_data("cash_tsdtime");
            
        if(payform.elements[i].name == "cash_authno")
            payform.cash_authno.value = document.Payplus.lfKCPUX__get_data("cash_authno");
      	
      	//결제수단
        if(payform.elements[i].name == "ret_pay_method")
            payform.ret_pay_method.value = document.Payplus.lfKCPUX__get_data("ret_pay_method");
            
        if(payform.elements[i].name == "use_pay_method")
            payform.use_pay_method.value = document.Payplus.lfKCPUX__get_data("use_pay_method");
        
        //에스크로 유무
        if(payform.elements[i].name == "escw_yn")
            payform.escw_yn.value = document.Payplus.lfKCPUX__get_data("escw_yn");
        
        //포인트사
        if(payform.elements[i].name == "epnt_issu")
            payform.epnt_issu.value = document.Payplus.lfKCPUX__get_data("epnt_issu");
        
        //상품권사
        if(payform.elements[i].name == "gift_issu")
            payform.gift_issu.value = document.Payplus.lfKCPUX__get_data("gift_issu");
              
		    // 암호화 정보
		    if(payform.elements[i].name == "tran_cd")
            payform.tran_cd.value = document.Payplus.lfKCPUX__get_data("tran_cd");
        
        if(payform.elements[i].name == "trace_no")
            payform.trace_no.value = document.Payplus.lfKCPUX__get_data("trace_no");
        
        if(payform.elements[i].name == "enc_info")
            payform.enc_info.value = document.Payplus.lfKCPUX__get_data("enc_info");
            
        if(payform.elements[i].name == "enc_data")
            payform.enc_data.value = document.Payplus.lfKCPUX__get_data("enc_data");
        
        // 주문자 정보
        if(payform.elements[i].name == "buyr_name")
	      {
            if(document.Payplus.lfKCPUX__get_data("buyr_name") != "")
	              payform.buyr_name.value = document.Payplus.lfKCPUX__get_data("buyr_name");
	      }
	
	      if(payform.elements[i].name == "buyr_mail")
	      {
            if(document.Payplus.lfKCPUX__get_data("buyr_mail") != "")
	              payform.buyr_mail.value = document.Payplus.lfKCPUX__get_data("buyr_mail");
	      }
	
	      if(payform.elements[i].name == "buyr_tel1")
	      {
            if(document.Payplus.lfKCPUX__get_data("buyr_tel1") != "")
	              payform.buyr_tel1.value = document.Payplus.lfKCPUX__get_data("buyr_tel1");
	      }
	        
	      if(payform.elements[i].name == "buyr_tel2")
	      {
            if(document.Payplus.lfKCPUX__get_data("buyr_tel2") != "")
	              payform.buyr_tel2.value = document.Payplus.lfKCPUX__get_data("buyr_tel2");
	      }
    }
    
    return true;
}

function PluginErrMsg(payform)
{
    payform.res_cd.value  = document.Payplus.lfKCPUX__get_data("res_cd");
    payform.res_msg.value = document.Payplus.lfKCPUX__get_data("res_msg");
    alert("["+payform.res_cd.value+"]"+payform.res_msg.value);
}

function ShowInfo()
{
    var winopts = "width=600,height=580,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes";
    var popWindow = window.open('http://www.kcp.co.kr/popup/20041118_popup01.html','popup_0903', winopts);
}

function OnErr()
{
    var NEW_OS = "알림 표시줄을 클릭하여 플러그인을 설치해 주세요.";
    var OLD_OS = "브라우저에서 [새로고침]버튼을 클릭하신 후 [보안경고]창이 나타나면 [예]버튼을 클릭하세요.";
    
    if( window.navigator.userAgent.indexOf('Windows NT 5.1') >= 0 )
    {
        if( window.navigator.appMinorVersion.indexOf("SP2") != -1 ||
            navigator.userAgent.indexOf('MSIE 7.0') >= 0 ||
            navigator.userAgent.indexOf('MSIE 8.0') >= 0 )
            alert("KCP 결제 플러그인이 설치되지 않았습니다." + NEW_OS);
        else
            alert(OLD_OS);
    }
    else if( window.navigator.userAgent.indexOf('Windows NT 6.0') >= 0 )
    {
        alert("KCP 결제 플러그인이 설치되지 않았습니다." + NEW_OS);
    }
    else if( window.navigator.userAgent.indexOf('Windows NT 6.1') >= 0 )
    {
        alert("KCP 결제 플러그인이 설치되지 않았습니다." + NEW_OS);
    }
    else
    {
        alert("KCP 결제 플러그인이 설치되지 않았습니다." + OLD_OS);
    }
}