"use strict";!function(e){function t(){this.listen=!0,this.startSentinel="",this.endSentinel="",this.LRC="(?:(?:\\r\\n)|\\n|\\r)"}function n(e,t){this.startSentinel=e,this.endSentinel=t}function r(){this.listen=!0,this.track1=new n("%","\\?"),this.track2=new n(";","\\?"),this.track3=new n("_","\\?"),this.LRC="(?:(?:\\r\\n)|\\n|\\r)"}function a(){this.barcode=new t,this.magneticStripe=new r}function i(){var e;h.schema.barcode.listen&&(h.schema.barcode.endSentinel||h.schema.barcode.LRC)&&(e="(?:^%SB[0-9]+%EB%LB$)".replace(/%SB/g,h.schema.barcode.startSentinel).replace(/%EB/g,h.schema.barcode.endSentinel).replace(/%LB/g,h.schema.barcode.LRC)),e&&h.schema.magneticStripe.listen&&(e+="|"),h.schema.magneticStripe.listen&&(e+="(?:^%S1.+%E1%LS$)|(?:^%S2.+%E2%LS$)|(?:^%S3.+%E3%LS$)|(?:^%S1.+%E1%LS%S2.+%E2%LS$)|(?:^%S1.+%E1%LS%S3.+%E3%LS$)|(?:^%S2.+%E2%LS%S3.+%E3%LS$)|(?:^%S1.+%E1%LS%S2.+%E2%LS%S3.+%E3%LS$)".replace(/%S1/g,h.schema.magneticStripe.track1.startSentinel).replace(/%E1/g,h.schema.magneticStripe.track1.endSentinel).replace(/%S2/g,h.schema.magneticStripe.track2.startSentinel).replace(/%E2/g,h.schema.magneticStripe.track2.endSentinel).replace(/%S3/g,h.schema.magneticStripe.track3.startSentinel).replace(/%E3/g,h.schema.magneticStripe.track3.endSentinel).replace(/%LS/g,h.schema.magneticStripe.LRC)),E.active=!0,E.endingTest=new RegExp(e)}function c(){function e(e,t){if(!(t in e))return!1;try{return delete e[t],Object.defineProperty(e,t,{value:49}),!0}catch(n){return!1}}var t,n;if(t={keyboardEvent:!1,initKeyboardEvent:!1,initKeyEvent:!1,initEvent:!1,"char":!1,charCode:!1,key:!1,keyCode:!1,which:!1,textEvent:!1,msie:!1,msie9:!1},document.createEvent)try{n=document.createEvent("KeyboardEvent"),t.keyboardEvent=!0}catch(r){n=document.createEvent("Event"),t.keyboardEvent=!1}else n=document.createEventObject(),t.keyboardEvent=!1;if(t.initKeyboardEvent=!!n.initKeyboardEvent,t.initKeyEvent=!!n.initKeyEvent,t.initEvent=!!n.initEvent,t["char"]=e(n,"char"),t.charCode=e(n,"charCode"),t.key=e(n,"key"),t.keyCode=e(n,"keyCode"),t.which=e(n,"which"),document.createEvent)try{n=document.createEvent("TextEvent"),t.textEvent=!!n.initTextEvent}catch(r){t.textEvent=!1}else t.textEvent=!1;return t.msie=!!document.createEventObject,t.msie9=document.createEventObject&&document.createEvent,t}function o(e,t){return e&&(e+="\n"),e=(e||"")+t}function s(e,t){var n,r;n={raw:e,barcode:{present:!1,valid:!0,code:"",type:""},magneticStripe:{present:!1,valid:!0,track1:"",track2:"",track3:""}};var a;if(t.barcode.listen&&(a="^%SB([0-9]+)%EB(?:%LB){0,1}$".replace(/%SB/g,t.barcode.startSentinel).replace(/%EB/g,t.barcode.endSentinel).replace(/%LB/g,t.barcode.LRC),n.barcode.code=(new RegExp(a).exec(e)||[,""])[1],n.barcode.present=!!n.barcode.code),t.magneticStripe.listen&&!n.barcode.present){var i;a="^(%S1([^%E1%LS]+)%E1(?:%LS){0,1})".replace(/%S1/g,t.magneticStripe.track1.startSentinel).replace(/%E1/g,t.magneticStripe.track1.endSentinel).replace(/%LS/g,t.magneticStripe.LRC),i=new RegExp(a).exec(e)||[,,""],n.magneticStripe.track1=i[2],n.magneticStripe.track1&&(e=e.substr(i[1].length)),a="^(%S2([^%E2%LS]+)%E2(?:%LS){0,1})".replace(/%S2/g,t.magneticStripe.track2.startSentinel).replace(/%E2/g,t.magneticStripe.track2.endSentinel).replace(/%LS/g,t.magneticStripe.LRC),i=new RegExp(a).exec(e)||[,,""],n.magneticStripe.track2=i[2],n.magneticStripe.track2&&(e=e.substr(i[1].length)),a="^(%S3([^%E3%LS]+)%E3(?:%LS){0,1}$)".replace(/%S3/g,t.magneticStripe.track3.startSentinel).replace(/%E3/g,t.magneticStripe.track3.endSentinel).replace(/%LS/g,t.magneticStripe.LRC),i=new RegExp(a).exec(e)||[,,""],n.magneticStripe.track3=i[2],n.magneticStripe.track3&&(e=e.substr(i[1].length)),n.magneticStripe.present=!!(n.magneticStripe.track1+n.magneticStripe.track2+n.magneticStripe.track3),n.magneticStripe.present&&(!n.magneticStripe.track1||n.magneticStripe.track1.length<=76&&/([0-9]|[A-Z]|[\u003a\u003b\u003d\u002b\u0028\u0029\u002d\u0027\u0022\u0021\u0040\u0023\u005e\u0026\u002a\u003c\u003e\u002f\u005c])+/.test(n.magneticStripe.track1)||(n.magneticStripe.valid=!1,r=o(r,"Magnetics stripe: incorrect track #1")),!n.magneticStripe.track2||n.magneticStripe.track2.length<=37&&/([0-9]|=)+/.test(n.magneticStripe.track2)||(n.magneticStripe.valid=!1,r=o(r,"Magnetics stripe: incorrect track #2")),!n.magneticStripe.track3||n.magneticStripe.track3.length<=104&&/([0-9]|=)+/.test(n.magneticStripe.track3)||(n.magneticStripe.valid=!1,r=o(r,"Magnetics stripe: incorrect track #3")),e.length&&(n.magneticStripe.valid=!1,r=o(r,"Magnetics stripe: unexpected data")))}return n.barcode.present||n.magneticStripe.present||(r=e?o(r,"Dataset not recognized"):o(r,"Empty dataset")),r&&(n.error=new Error(r)),n}function d(){return!(E.active||h.enabled&&(h.oncomplete||h.onerror||h.onreceive)&&(h.schema.barcode.listen||h.schema.magneticStripe.listen))}function l(){if(E.active){e.clearTimeout(E.timer);var t;if(1==E.raw.length?g():t=s(E.raw,h.schema),E.active=!1,E.timer=null,E.raw="",E.original=null,E.endingTest=null,t){var n;if(n=t.error?h.onerror:h.oncomplete,n&&!f.isFunction(n))throw new TypeError("Function expected");n(t)}}}function u(e,t){for(var n in t)e[n]=t[n];return e}function m(t){var n,r,a;if(E.active||(n=t.target||t.srcElement,"INPUT"!=n.nodeName||!/date|datetime-local|month|time|week/i.test(n.type))){if(r=null==t.which?null==t.charCode?t.keyCode:t.charCode:t.which,a=String.fromCharCode(r),!E.active){if(!(h.schema.barcode.listen&&-1!=(h.schema.barcode.startSentinel?h.schema.barcode.startSentinel:"0123456789").indexOf(a)||h.schema.magneticStripe.listen&&(a==h.schema.magneticStripe.track1.startSentinel||a==h.schema.magneticStripe.track2.startSentinel||a==h.schema.magneticStripe.track3.startSentinel)))return;i()}if(h.onreceive&&E.raw.length){var c;if(c=h.onreceive,c&&!f.isFunction(c))throw new TypeError("Function expected");1==E.raw.length&&c(S.create.keyPress(E.original)),c(t)}return E.raw+=a,E.endingTest.test(E.raw)?(l(),S.stop(t,h.preventDefault,h.stopPropagation)):(E.original||(E.original={target:t.target||t.srcElement,which:t.which||t.charCode||t.keyCode,data:{"char":t["char"],charCode:t.charCode,key:t.key,keyCode:t.keyCode,keyIdentifier:t.keyIdentifier,srcElement:t.srcElement,target:t.target,which:t.which}}),e.clearTimeout(E.timer),E.timer=e.setTimeout(l,h.sensitivity),S.stop(t,h.preventDefault,h.stopPropagation))}}function p(t){if(!E.releasing&&!d()){if(t=t||e.event,!(t.ctrlKey||t.altKey||t.shiftKey||t.metaKey||t.repeat))return m(t);E.active&&l()}}function g(){function e(e){return S.dispatch(e.target,"keypress",S.create.keyPress(e))}function t(e){return S.dispatch(e.target,"textinput",S.create.textInput(e))}function n(e){function t(e,t){var n,r;if(n={start:t.length,end:t.length},"selectionStart"in e)n.start=e.selectionStart,n.end=e.selectionEnd;else if(document.selection&&(r=document.selection.createRange().duplicate(),r.parentElement()==e)){var a,i;"TEXTAREA"==e.nodeName?(a=document.body.createTextRange(),a.moveToElementText(e)):a=e.createTextRange(),a.setEndPoint("EndToStart",r),"TEXTAREA"==e.nodeName?(i=document.body.createTextRange(),i.moveToElementText(e)):i=e.createTextRange(),i.setEndPoint("StartToEnd",r);var c,o,s;c=!1,o=!1,s=!1;var d,l,u,m,p,g;d=l=a.text,u=m=r.text,p=g=i.text;do c||(0==a.compareEndPoints("StartToEnd",a)?c=!0:(a.moveEnd("character",-1),a.text==d?l+="\r\n":c=!0)),o||(0==r.compareEndPoints("StartToEnd",r)?o=!0:(r.moveEnd("character",-1),r.text==u?m+="\r\n":o=!0)),s||(0==i.compareEndPoints("StartToEnd",i)?s=!0:(i.moveEnd("character",-1),i.text==p?g+="\r\n":s=!0));while(!c||!o||!s);n.start=l.length,n.end=n.start+m.length}return n}function n(e,t,n){var r;if(e.setSelectionRange)e.focus(),e.setSelectionRange(t,t);else if(e.createTextRange){var a,i;a=(n.substr(0,t).match(/(\r\n)/g)||[]).length,i=(n.substr(t,n.length).match(/(\r\n)/g)||[]).length,r=e.createTextRange(),r.moveStart("character",t-a),r.moveEnd("character",t-n.length+i),r.select()}}var r,a,i;r=String.fromCharCode(e.which),i=e.target.value,a=t(e.target,i),i=i.substr(0,a.start)+r+i.substr(a.end,i.length),e.target.value=i,n(e.target,a.start+1,i)}function r(e){return S.dispatch(e.target,"propertychange",S.create.propertyChange(e))}function a(e){return S.dispatch(e.target,"input",S.create.input(e))}var i;E.releasing=!0,e(E.original)&&("TEXTAREA"==E.original.target.nodeName||"INPUT"==E.original.target.nodeName&&!/button|checkbox|color|date|datetime-local|file|image|month|radio|range|reset|submit|time|week/i.test(E.original.target.type))&&(i=t(E.original)&&c.msie9,i&&(r(E.original),n(E.original),a(E.original))),E.releasing=!1}var h,v,E,c,S,f;h=function(t){var n,r;f.isFunction(t)?n={oncomplete:arguments[0],onerror:arguments[1],onreceive:arguments[2]}:f.isElement(t)||f.isJQueryObject(t)?(r=arguments[0],n={oncomplete:arguments[1],onerror:arguments[2],onreceive:arguments[3]}):(n=t||{},r=n.target);for(var a in n)h.hasOwnProperty(a)&&void 0!==n[a]&&(h[a]=n[a]);if(r=r||v||e,f.isJQueryObject(r)&&(r=r[0]),r!==e&&!f.isElement(r))throw new TypeError("DOM element expected");return r!==e||e.addEventListener||e.attachEvent||(r=document),r!==v&&(v&&(v.removeEventListener?v.removeEventListener("keypress",p,!1):v.detachEvent&&v.detachEvent("onkeypress",p)),r.addEventListener?r.addEventListener("keypress",p,!1):r.attachEvent&&r.attachEvent("onkeypress",p),v=r),h},u(h,{enabled:!0,oncomplete:null,onerror:null,onreceive:null,schema:new a,sensitivity:30,preventDefault:!0,stopPropagation:!0,Decode:function(e,t){t=t||new a,u(this,s(e,t))},Schema:a}),E={active:!1,compatibility:c(),original:null,raw:"",timer:null},c=c(),S={create:{keyPress:function(e){function t(e,t){var n;for(n in t)t.hasOwnProperty(n)&&t[n]&&(e[n]=t[n])}function n(e,t,n,r){n[t]&&(delete e[t],Object.defineProperty(e,t,{value:r}))}var r;document.createEvent?r=c.keyboardEvent?document.createEvent("KeyboardEvent"):document.createEvent("Event"):(r=document.createEventObject(),r.type="keypress");var a,i,o,s,d,l,u,m,p,g,h;return a=!0,i=!0,o=document.defaultView,d=!1,s=!1,l=!1,u=!1,m=e.data.keyIdentifier,p=e.which,g=e.which,h=String.fromCharCode(e.which),n(r,"char",c,h),n(r,"charCode",c,g),n(r,"key",c,h),n(r,"keyCode",c,g),n(r,"which",c,g),c.initKeyboardEvent?r.initKeyboardEvent("keypress",a,i,o,m,s,d,l,p,g):c.initKeyEvent?r.initKeyEvent("keypress",a,i,o,s,d,l,u,p,g):c.initEvent?(r.initEvent("keypress",a,i),t(r,e.data)):t(r,e.data),e.target.focus&&e.target.focus(),r},textInput:function(e){if(c.textEvent){var t,n;return n=String.fromCharCode(e.which),t=document.createEvent("TextEvent"),t.initTextEvent("textInput",!0,!0,document.defaultView,n,1,e.locale),t}},propertyChange:function(e){if(c.msie){var t;if(document.createEvent){if(t=document.createEvent("Event"),t.initEvent){var n,r;n=!0,r=!0,t.initEvent("propertychange",n,r)}}else t=document.createEventObject(),t.type="propertychange";return t}},input:function(e){var t;if(document.createEvent&&(t=document.createEvent("Event"),t.initEvent)){var n,r;n=!0,r=!0,t.initEvent("input",n,r)}return t}},dispatch:function(e,t,n){if(n){if(e.dispatchEvent)return e.dispatchEvent(n);if(e.fireEvent){var r;return r=!0,e.fireEvent("on"+t,n,r)}}return!0},stop:function(e,t,n){return t&&(e.preventDefault?e.preventDefault():e.returnValue=!1),n&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!1,e.stopImmediatePropagation&&e.stopImmediatePropagation()),t?!1:void 0}},f={isObject:function(e){return null!==e&&"object"==typeof e},isFunction:function(e){return!!e&&"[object Function]"==={}.toString.call(e)},isElement:function(e){return"object"==typeof Node?e instanceof Node:!!e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},isJQueryObject:function(e){return jQuery&&e instanceof jQuery}},e.scanner=h()}(window);