// pay40.js
// function : Merchant Script & 전자지갑의 Interface
// © 2006 INICIS.Co.,Ltd. All rights reserved.


var PLUGIN_SVR_NAME = "/wallet61/"
var PLUGIN_CLASSID = "<OBJECT ID=INIpay CLASSID=CLSID:24F6E6A8-852C-45A8-ADD3-C4AB0D6FD231 width=0 height=0 CODEBASE=http://plugin.inicis.com/wallet61/INIwallet61.cab#Version=1,0,0,1 onerror=OnErr()></OBJECT>"
var PLUGIN_ERRMSG ="";

var IS_VISTA = 0;
var IS_64BIT = 0;

var VISA3D_INF = "12:13:01:14:04:03:34:42:45:51:52:33";	// 안심클릭 적용카드코드, 병행이 없으면 의무임.
var ADD_KVP_FLAG = "ISP_CARD_INF=06:11&PUBCERT_FLAG=1001100110011001&PUBCERT_MSG=회원님의 안전한 전자상거래를 위해 공인인증서(금융결제원 발급)를 통한 본인인증이 필요합니다.\n회원님의 공인인증서를 선택하신후 해당 비밀번호를 입력하여 주시기 바랍니다.\n공인인증서가 없으신 경우, 금융결제원에서 발급하는 공인인증서를 신청하신후 이용해 주십시오.\n&PUBCERT_MSG2=공인 인증서를 사용하시겠습니까?&KMPAY=300000&BCPAY=300000&URIPAY=300000&CHOPAY=300000&PUBIMG_URL=http://plugin.inicis.com/wallet00/files/&VISA_MSG=국민이면서 비자일경우 3D화면으로 전환 됩니다.\n";
var NORMAL_INF = "21:31:35:43";
var KFTC_BANK_INFO = "04:11:20:23:03:05:07:88:27:31:32:34:35:37:39:81:71";
var VISA3D_PUBCERT_PRICE = "300000"

var JSINFO_NAME = "61_40uni"

        
function SetEnvironment()        
{
     if(navigator.userAgent.indexOf("Windows NT 6") > -1)
     {
	IS_VISTA=1;
	PLUGIN_CLASSID = "<OBJECT ID=INIpay CLASSID=CLSID:24F6E6A8-852C-45A8-ADD3-C4AB0D6FD231 width=0 height=0 CODEBASE=http://plugin.inicis.com/wallet61/INIwallet61_vista.cab#Version=1,0,0,1 onerror=OnErr()></OBJECT>"
	PLUGIN_ERRMSG = "고객님의 안전한 결제를 위하여 결제용 암호화 프로그램의 설치가 필요합니다.\n\n" +
			      "다음 단계에 따라 진행하십시오.\n\n\n" +
         			      "1. 브라우저(인터넷 익스플로어) 상단의 노란색 알림 표시줄을 마우스로 클릭 하십시오.\n\n" +
                                                "2. 'ActiveX 컨트롤 설치'를 선택하십시오.\n\n" +
                                                "3. 보안 경고창이 나타나면 '설치'를 눌러서 진행하십시오.\n"	
      }
      else
      {
	IS_VISTA=0;
  	PLUGIN_CLASSID = "<OBJECT ID=INIpay CLASSID=CLSID:24F6E6A8-852C-45A8-ADD3-C4AB0D6FD231 width=0 height=0 CODEBASE=http://plugin.inicis.com/wallet61/INIwallet61.cab#Version=1,0,0,1 onerror=OnErr()></OBJECT>"

  	if( navigator.userAgent.indexOf("Windows NT 5.1") > -1 || navigator.userAgent.indexOf("Windows NT 5.2") > -1 )
  	{
		PLUGIN_ERRMSG = "고객님의 안전한 결제를 위하여 결제용 암호화 프로그램의 설치가 필요합니다.\n\n" +
         				      "다음 단계에 따라 진행하십시오.\n\n\n" +
         				      "1. 브라우저(인터넷 익스플로어) 상단의 노란색 알림 표시줄을 마우스로 클릭 하십시오.\n\n" +
                                                              "2. 'ActiveX 컨트롤 설치'를 선택하십시오.\n\n" +
                                                              "3. 보안 경고창이 나타나면 '설치'를 눌러서 진행하십시오.\n"
  	}
   	else 
   	{
   		PLUGIN_ERRMSG = "[INIpay전자지갑]이 설치되지 않았습니다.\n\n브라우저에서 [새로고침]버튼을 클릭하신 후 [보안경고]창이 나타나면 [예]버튼을 클릭하세요.";
              }		
      }
      
     if(window.navigator.appVersion.indexOf("Win64")>0 || window.navigator.appVersion.indexOf("WOW64")>0)
    {
 	IS_64BIT = 1;
     }        
}

function MakePayMessage(payform)
{
 document.INIpay.IFplugin(100, "INIpay", ""); 
  
  if(IS_VISTA==1)
  {
  	if(IS_64BIT == 1)
	{
		if(document.INIpay.IFplugin(0, PLUGIN_SVR_NAME, "inipay|00") == "ERROR") return false;
	}
	else
	{
	  	if(document.INIpay.IFplugin(0, PLUGIN_SVR_NAME, "inipay|10") == "ERROR") return false;
	}
  }
  else
  {
  	if(document.INIpay.IFplugin(0, PLUGIN_SVR_NAME, "inipay") == "ERROR") return false;
  }


  if(SetField(payform) == false) {
    document.INIpay.IFplugin(1, "", "");
    return false;
  }
  
  if(document.INIpay.IFplugin(4, "", "") == "ERROR") {
    document.INIpay.IFplugin(1, "", "");
    return false;
  }
  
  if(GetField(payform) == false) {
    document.INIpay.IFplugin(1, "", "");
    return false;
  }
	
  document.INIpay.IFplugin(1, "", "");
  
  return true;
}	


//Set Merchant Payment Field
function SetField(payform)
{
   var Is_exist_version = 0;
   var Is_exit_mid = 0;
   var Is_exit_acceptmethod = 0;
   var Is_exit_nointerest = 0;
   var Is_exit_quotabase = 0
   var Is_exit_goodname = 0;
   var Is_exit_price = 0;
   var Is_exit_currency = 0;
   var Is_exit_buyername = 0;
   var Is_exit_reqsign = 0;
   var Is_exit_gopaymethod = 0;	
	
  var nField = payform.elements.length;
    
  for(i = 0; i < nField; i++)
  {
    if(payform.elements[i].name == "INIregno")
	{
		document.INIpay.IFplugin(2, "INIregno", payform.INIregno.value);
    }
    if(payform.elements[i].name == "oid")
	{
		document.INIpay.IFplugin(2, "oid", payform.oid.value);
    }
    if(payform.elements[i].name == "buyeremail")
    {
    	document.INIpay.IFplugin(2, "buyeremail", payform.buyeremail.value);
    }
    if(payform.elements[i].name == "ini_menuarea_url")
    {
    	document.INIpay.IFplugin(2, "menuareaimage_url", payform.ini_menuarea_url.value);
    }
    if(payform.elements[i].name == "ini_logoimage_url")
    {
    	document.INIpay.IFplugin(2, "logoimage_url", payform.ini_logoimage_url.value);
    }
    if(payform.elements[i].name == "ini_bgskin_url")
    {
    	document.INIpay.IFplugin(2, "ini_bgskin_url", payform.ini_bgskin_url.value);
    }        
    if(payform.elements[i].name == "mall_noint")
    {
    	document.INIpay.IFplugin(2, "mall_noint", payform.mall_noint.value);
    }
    if(payform.elements[i].name == "ini_onket_flag")
    {
    	document.INIpay.IFplugin(2, "onket_flag", payform.ini_onket_flag.value);
    }
    if(payform.elements[i].name == "ini_pin_flag")
    {
    	document.INIpay.IFplugin(2, "pin_flag", payform.ini_pin_flag.value);
    }
    if(payform.elements[i].name == "buyertel")
    {
    	document.INIpay.IFplugin(2, "buyertel", payform.buyertel.value);
    }
    if(payform.elements[i].name == "ini_escrow_dlv")
    {
    	document.INIpay.IFplugin(2, "ini_escrow_dlv", payform.ini_escrow_dlv.value);
    }
    if(payform.elements[i].name == "ansim_cardnumber")
    {
    	document.INIpay.IFplugin(2, "ansim_cardnumber", payform.ansim_cardnumber.value);
    }
    if(payform.elements[i].name == "ansim_expy")
    {
    	document.INIpay.IFplugin(2, "ansim_expy", payform.ansim_expy.value);
    }
    if(payform.elements[i].name == "ansim_expm")
    {
    	document.INIpay.IFplugin(2, "ansim_expm", payform.ansim_expm.value);
    }
    if(payform.elements[i].name == "ansim_quota")
    {
    	document.INIpay.IFplugin(2, "ansim_quota", payform.ansim_quota.value);
    }
    if(payform.elements[i].name == "ini_onlycardcode")
    {
    	document.INIpay.IFplugin(2, "ini_onlycardcode", payform.ini_onlycardcode.value);
    }    
    if(payform.elements[i].name == "ESCROW_LOGO_URL") {
      	document.INIpay.IFplugin(2, "ESCROW_LOGO_URL", payform.ESCROW_LOGO_URL.value);
    }
    if(payform.elements[i].name == "KVP_OACERT_INF") 
    {
      	document.INIpay.IFplugin(2, "reserved6", payform.KVP_OACERT_INF.value);
    }
    
    
    if( payform.elements[i].name == "version" )	
    	Is_exist_version = 1;
    else if(payform.elements[i].name == "mid" )	
    	Is_exit_mid = 1;
    else if(payform.elements[i].name == "acceptmethod" )	
    	Is_exit_acceptmethod = 1;
    else if(payform.elements[i].name == "nointerest" )	
    	Is_exit_nointerest = 1;
    else if(payform.elements[i].name == "quotabase" )	
    	Is_exit_quotabase = 1;
    else if(payform.elements[i].name == "goodname" )	
    	Is_exit_goodname = 1;
    else if(payform.elements[i].name == "price" )	
    	Is_exit_price = 1;
    else if(payform.elements[i].name == "currency" )	
    	Is_exit_currency = 1;
    else if(payform.elements[i].name == "buyername" )	
    	Is_exit_buyername = 1;
    else if(payform.elements[i].name == "reqsign" )	
    	Is_exit_reqsign = 1;
    else if(payform.elements[i].name == "gopaymethod" )	
   	Is_exit_gopaymethod = 1;   	
  }
  
  document.INIpay.IFplugin(2, "version", payform.version.value);
  document.INIpay.IFplugin(2, "mid", payform.mid.value);
  document.INIpay.IFplugin(2, "acceptmethod", payform.acceptmethod.value);
  document.INIpay.IFplugin(2, "nointerest", payform.nointerest.value);
  document.INIpay.IFplugin(2, "quotabase", payform.quotabase.value);
  document.INIpay.IFplugin(2, "goodname", payform.goodname.value);	
  document.INIpay.IFplugin(2, "price", payform.price.value);
  document.INIpay.IFplugin(2, "currency", payform.currency.value);
  document.INIpay.IFplugin(2, "buyername", payform.buyername.value);
  document.INIpay.IFplugin(2, "reqsign", payform.reqsign.value); 
      
  document.INIpay.IFplugin(2, "ADD_KVP_FLAG", ADD_KVP_FLAG);
  document.INIpay.IFplugin(2, "visa3d_inf", VISA3D_INF);
  document.INIpay.IFplugin(2, "visa3d_pubcert_price", VISA3D_PUBCERT_PRICE);
  document.INIpay.IFplugin(2, "NORMAL_INF", NORMAL_INF);
  document.INIpay.IFplugin(2, "reserved3", KFTC_BANK_INFO);
  document.INIpay.IFplugin(2, "plugin_jsinfo", JSINFO_NAME);    
  document.INIpay.IFplugin(2, "plugin_cardtype", "1");
  
  if(payform.gopaymethod.value != "")
     document.INIpay.IFplugin(2, "gopaymethod", payform.gopaymethod.value);    

  return true;
}	


//Get PayMessage made
function GetField(payform)
{
  var nField = payform.elements.length;
  
  if((payform.paymethod.value = document.INIpay.IFplugin(3, "paymethod", "")) == "ERROR") {
  	 return false;
  	}
  if(payform.paymethod.value == "") {
  	return false;
  }
  if((payform.sessionkey.value = document.INIpay.IFplugin(3, "sessionkey", "")) == "ERROR") {
  	return false;
  }
  if(payform.sessionkey.value == "") {
  	return false;
  }
  if((payform.encrypted.value = document.INIpay.IFplugin(3, "encrypted", "")) == "ERROR") {
  	return false;
  }
  if(payform.encrypted.value == "") {
  	return false;
  }
  
  if(payform.nointerest.value == "yes")
    payform.quotainterest.value = document.INIpay.IFplugin(3, "quotainterest", "");

  for(i = 0; i < nField; i++)
  {
    
	if(payform.elements[i].name == "uid")
    	{
	  payform.uid.value = "DEFAULTUSR";    
	}
	if(payform.elements[i].name == "cardcode")
    	{
		payform.cardcode.value = document.INIpay.IFplugin(3, "cardcode", "");
      	} 
	if(payform.elements[i].name == "cardquota")
    	{
		payform.cardquota.value = document.INIpay.IFplugin(3, "cardquota", "");
      	} 
	if(payform.elements[i].name == "rbankcode")
	{
    		if(payform.paymethod.value == "DirectBank")
  		{
			if((payform.rbankcode.value = document.INIpay.IFplugin(3, "realbankcode", "")) == "ERROR") 
			{
				alert("error bankcode");
				return false;
			}
		  }
	}
    	if(payform.elements[i].name == "buyeremail")
    	{
        		payform.buyeremail.value = document.INIpay.IFplugin(3, "buyeremail", "");
    	}

           if(payform.paymethod.value == "VCard")
           { 
     	              if(payform.elements[i].name == "ispcardcode")
	               	 	payform.ispcardcode.value = document.INIpay.IFplugin(3,"vcard_cardcode",""); 
	             	if(payform.elements[i].name == "kvp_card_prefix")
	               	 	payform.kvp_card_prefix.value = document.INIpay.IFplugin(3,"vcard_prefix","");   	    
            }  	
 }

  return true;
}



function StartSmartUpdate()
{
	SetEnvironment();
	 document.writeln(PLUGIN_CLASSID);
}


function OnErr()
{
  alert(PLUGIN_ERRMSG);
  //return false;
}


