// 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 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 IS_VISTA=0;
var IS_64BIT = 0;
var JSINFO_NAME = "61_pay40";

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") {
    GetErrField(payform);
    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_cardcode")
    {
    	document.INIpay.IFplugin(2, "ini_cardcode", payform.ini_cardcode.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;
}

//Get PayMessage made
function GetErrField(payform)
{
    var nField = payform.elements.length;
    if((payform.paymethod.value = document.INIpay.IFplugin(3, "paymethod", "")) == "HPP") 
    {
    	  for(i = 0; i < nField; i++)
    	  {
  		if(payform.elements[i].name == "INI_errmsg")
  		     	payform.INI_errmsg.value = document.INIpay.IFplugin(3,"hpp_errmsg","");   	 		
	 }
    }
}


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 StartSmartUpdate()
{
	SetEnvironment();
	 document.writeln(PLUGIN_CLASSID);
}


function OnErr()
{
  alert(PLUGIN_ERRMSG);
  //return false;
}

