var hps=function(n){"use strict";var u,r,i,t;return u=function(n,t){this.fail=n;this.message=t},u.prototype.validate=function(){this.fail&&t.error(this.message)},r=function(n,i){this.message=n+" is missing";this.fail=t.empty(i[n])},i=function(i,r){this.field=i;this.type=r;this.element=typeof i=="object"?i:n("#"+i);this.message=this.element.attr("id")+" is invalid";this.fail=t.empty(this.element)||!this.element.is(this.type)},r.prototype=new u,r.prototype.constructor=r,i.prototype=new u,i.prototype.constructor=i,t={Tag:"SecureSubmit",Urls:{CERT:"https://posgateway.cert.secureexchange.net/Hps.Exchange.PosGateway.Hpf.v1/api/token",PROD:"https://api.heartlandportico.com/SecureSubmit.v1/api/token"},getData:function(n){return n.data(t.Tag)},setData:function(n,i){n.data(t.Tag,i)},hasData:function(n){return typeof t.getData(n)=="object"},tokenize:function(i){var u,f,r;f=n.param({api_key:i.data.public_key,object:"token",token_type:"supt",_method:"post","card[number]":n.trim(i.data.number),"card[cvc]":n.trim(i.data.cvc),"card[exp_month]":n.trim(i.data.exp_month),"card[exp_year]":n.trim(i.data.exp_year)});r=i.data.public_key.split("_")[1];u=r==="uat"?t.Urls.UAT:r==="cert"?t.Urls.CERT:t.Urls.PROD;n.ajax({cache:!1,url:u,data:f,dataType:"jsonp",success:function(n){typeof n.error=="object"?(typeof i.error=="function"&&i.error(n.error),t.error(n.error.message)):typeof i.success=="function"&&i.success(n)}})},empty:function(n){return n===undefined||n.length===0},error:function(i){n.error([t.Tag,": ",i].join(""))},configureElement:function(u){t.setData(n(this),{public_key:u.public_key,success:u.success,error:u.error,validators:[new r("public_key",u),new i("card_number","input"),new i("card_cvc","input"),new i("exp_month","input"),new i("exp_year","input")]});n(this).submit(function(i){var r,u,f;for(i.preventDefault(),n("#card_number").removeAttr("name"),n("#card_cvc").removeAttr("name"),n("#exp_month").removeAttr("name"),n("#exp_year").removeAttr("name"),r=n(this),u=t.getData(r),f=0;f<u.validators.length;f+=1)u.validators[f].validate();(typeof r.validate!="function"||(r.validate(),r.valid()))&&t.tokenize({data:{public_key:u.public_key,number:n.trim(n("#card_number").val()),cvc:n.trim(n("#card_cvc").val()),exp_month:n.trim(n("#exp_month").val()),exp_year:n.trim(n("#exp_year").val())},success:function(t){(n("<input>").attr({type:"hidden",id:"token_value",name:"token_value",value:t.token_value}).appendTo(r),typeof u.success!="function"||u.success(t)!==!1)&&(r.unbind("submit"),r.submit())},error:function(n){typeof u.error=="function"&&u.error(n)}})})}},n.fn.SecureSubmit=function(i){return this.each(function(){n(this).is("form")&&typeof i=="object"&&!t.hasData(n(this))&&t.configureElement.apply(this,[i])})},t}(jQuery)