JAVASCRIPT   56

fbevents.js

Guest on 3rd May 2022 04:19:00 PM

  1. /*1447801083,,JIT Construction: v2048283,en_US*/
  2. /**
  3.  * Copyright Facebook Inc.
  4.  *
  5.  * Licensed under the Apache License, Version 2.0
  6.  * http://www.apache.org/licenses/LICENSE-2.0
  7.  */
  8. try {
  9.     (function(a, b, c, d) {
  10.         'use strict';
  11.         var e = 'https://www.facebook.com/tr/',
  12.             f = /^\d+$/,
  13.             g = (function(ca) {
  14.                 var da = {
  15.                     exports: ca
  16.                 };
  17.                 'use strict';
  18.                 var ea = 'deep',
  19.                     fa = 'shallow';
  20.  
  21.                 function ga() {
  22.                     this.list = [];
  23.                 }
  24.                 ga.prototype = {
  25.                     append: function(ia, ja) {
  26.                         this._append(encodeURIComponent(ia), ja, ea);
  27.                     },
  28.                     _append: function(ia, ja, ka) {
  29.                         if (Object(ja) !== ja) {
  30.                             this._appendPrimitive(ia, ja);
  31.                         } else if (ka === ea) {
  32.                             this._appendObject(ia, ja);
  33.                         } else this._appendPrimitive(ia, ha(ja));
  34.                     },
  35.                     _appendPrimitive: function(ia, ja) {
  36.                         if (ja != null) this.list.push([ia, ja]);
  37.                     },
  38.                     _appendObject: function(ia, ja) {
  39.                         for (var ka in ja)
  40.                             if (ja.hasOwnProperty(ka)) {
  41.                                 var la = ia + '[' + encodeURIComponent(ka) + ']';
  42.                                 this._append(la, ja[ka], fa);
  43.                             }
  44.                     },
  45.                     each: function(ia) {
  46.                         var ja = this.list;
  47.                         for (var ka = 0, la = ja.length; ka < la; ka++) ia(ja[ka][0], ja[ka][1]);
  48.                     },
  49.                     toQueryString: function() {
  50.                         var ia = [];
  51.                         this.each(function(ja, ka) {
  52.                             ia.push(ja + '=' + encodeURIComponent(ka));
  53.                         });
  54.                         return ia.join('&');
  55.                     }
  56.                 };
  57.  
  58.                 function ha(ia) {
  59.                     if (typeof JSON === 'undefined' || JSON === null || !JSON.stringify) {
  60.                         return Object.prototype.toString.call(ia);
  61.                     } else return JSON.stringify(ia);
  62.                 }
  63.                 da.exports = ga;
  64.                 return da.exports;
  65.             })({}),
  66.             h = (function(ca) {
  67.                 var da = {
  68.                     exports: ca
  69.                 };
  70.                 'use strict';
  71.                 var ea = 'console',
  72.                     fa = 'error',
  73.                     ga = 'Facebook Pixel Error',
  74.                     ha = 'Facebook Pixel Warning',
  75.                     ia = 'warn',
  76.                     ja = Object.prototype.toString,
  77.                     ka = !('addEventListener' in b),
  78.                     la = function() {},
  79.                     ma = a[ea] || {},
  80.                     na = a.postMessage || la;
  81.  
  82.                 function oa(ta) {
  83.                     return Array.isArray ? Array.isArray(ta) : ja.call(ta) === '[object Array]';
  84.                 }
  85.  
  86.                 function pa(ta) {
  87.                     na({
  88.                         action: 'FB_LOG',
  89.                         logType: ga,
  90.                         logMessage: ta
  91.                     }, '*');
  92.                     if (fa in ma) ma[fa](ga + ': ' + ta);
  93.                 }
  94.  
  95.                 function qa(ta) {
  96.                     na({
  97.                         action: 'FB_LOG',
  98.                         logType: ha,
  99.                         logMessage: ta
  100.                     }, '*');
  101.                     if (ia in ma) ma[ia](ha + ': ' + ta);
  102.                 }
  103.  
  104.                 function ra(ta, ua, va) {
  105.                     ua = ka ? 'on' + ua : ua;
  106.                     var wa = ka ? 'attachEvent' : 'addEventListener',
  107.                         xa = ka ? 'detachEvent' : 'removeEventListener',
  108.                         ya = function() {
  109.                             ta[xa](ua, ya, false);
  110.                             va();
  111.                         };
  112.                     ta[wa](ua, ya, false);
  113.                 }
  114.  
  115.                 function sa(ta, ua, va) {
  116.                     var wa = ta[ua];
  117.                     ta[ua] = function() {
  118.                         var xa = wa.apply(this, arguments);
  119.                         va.apply(this, arguments);
  120.                         return xa;
  121.                     };
  122.                 }
  123.                 ca.isArray = oa;
  124.                 ca.logError = pa;
  125.                 ca.logWarning = qa;
  126.                 ca.listenOnce = ra;
  127.                 ca.injectMethod = sa;
  128.                 return da.exports;
  129.             })({}),
  130.             i = (function(ca) {
  131.                 var da = {
  132.                     exports: ca
  133.                 };
  134.                 'use strict';
  135.                 var ea = /^[+-]?\d+(\.\d+)?$/,
  136.                     fa = 'number',
  137.                     ga = 'currency_code',
  138.                     ha = {
  139.                         AED: 1,
  140.                         ARS: 1,
  141.                         AUD: 1,
  142.                         BOB: 1,
  143.                         BRL: 1,
  144.                         CAD: 1,
  145.                         CHF: 1,
  146.                         CLP: 1,
  147.                         CNY: 1,
  148.                         COP: 1,
  149.                         CRC: 1,
  150.                         CZK: 1,
  151.                         DKK: 1,
  152.                         EUR: 1,
  153.                         GBP: 1,
  154.                         GTQ: 1,
  155.                         HKD: 1,
  156.                         HNL: 1,
  157.                         HUF: 1,
  158.                         IDR: 1,
  159.                         ILS: 1,
  160.                         INR: 1,
  161.                         ISK: 1,
  162.                         JPY: 1,
  163.                         KRW: 1,
  164.                         MOP: 1,
  165.                         MXN: 1,
  166.                         MYR: 1,
  167.                         NIO: 1,
  168.                         NOK: 1,
  169.                         NZD: 1,
  170.                         PEN: 1,
  171.                         PHP: 1,
  172.                         PLN: 1,
  173.                         PYG: 1,
  174.                         QAR: 1,
  175.                         RON: 1,
  176.                         RUB: 1,
  177.                         SAR: 1,
  178.                         SEK: 1,
  179.                         SGD: 1,
  180.                         THB: 1,
  181.                         TRY: 1,
  182.                         TWD: 1,
  183.                         USD: 1,
  184.                         UYU: 1,
  185.                         VEF: 1,
  186.                         VND: 1,
  187.                         ZAR: 1
  188.                     },
  189.                     ia = {
  190.                         value: {
  191.                             type: fa,
  192.                             isRequired: true
  193.                         },
  194.                         currency: {
  195.                             type: ga,
  196.                             isRequired: true
  197.                         }
  198.                     },
  199.                     ja = {
  200.                         PageView: {},
  201.                         ViewContent: {},
  202.                         Search: {},
  203.                         AddToCart: {},
  204.                         AddToWishlist: {},
  205.                         InitiateCheckout: {},
  206.                         AddPaymentInfo: {},
  207.                         Purchase: {
  208.                             validationSchema: ia
  209.                         },
  210.                         Lead: {},
  211.                         CompleteRegistration: {},
  212.                         CustomEvent: {
  213.                             validationSchema: {
  214.                                 event: {
  215.                                     isRequired: true
  216.                                 }
  217.                             }
  218.                         }
  219.                     },
  220.                     ka = Object.prototype.hasOwnProperty;
  221.  
  222.                 function la(na, oa) {
  223.                     this.eventName = na;
  224.                     this.params = oa || {};
  225.                     this.error = null;
  226.                     this.warnings = [];
  227.                 }
  228.                 la.prototype = {
  229.                     validate: function() {
  230.                         var na = this.eventName,
  231.                             oa = ja[na];
  232.                         if (!oa) return this._error('Unsupported event: ' + na);
  233.                         var pa = oa.validationSchema;
  234.                         for (var qa in pa)
  235.                             if (ka.call(pa, qa)) {
  236.                                 var ra = pa[qa];
  237.                                 if (ra.isRequired === true && !ka.call(this.params, qa)) return this._error('Required parameter "' + qa + '" is missing for event "' + na + '"');
  238.                                 if (ra.type)
  239.                                     if (!this._validateParam(qa, ra.type)) return this._error('Parameter "' + qa + '" is invalid for event "' + na + '"');
  240.                             }
  241.                         return this;
  242.                     },
  243.                     _validateParam: function(na, oa) {
  244.                         var pa = this.params[na];
  245.                         switch (oa) {
  246.                             case fa:
  247.                                 var qa = ea.test(pa);
  248.                                 if (qa && Number(pa) < 0) this.warnings.push('Parameter "' + na + '" is negative for event "' + this.eventName + '"');
  249.                                 return qa;
  250.                             case ga:
  251.                                 return ha[pa.toUpperCase()] === 1;
  252.                         }
  253.                         return true;
  254.                     },
  255.                     _error: function(na) {
  256.                         this.error = na;
  257.                         return this;
  258.                     }
  259.                 };
  260.  
  261.                 function ma(na, oa) {
  262.                     return new la(na, oa).validate();
  263.                 }
  264.                 ca.validateEvent = ma;
  265.                 return da.exports;
  266.             })({}),
  267.             j = a.fbq;
  268.         if (!j) return h.logError('Pixel code is not installed correctly on this page');
  269.         var k = Array.prototype.slice,
  270.             l = Object.prototype.hasOwnProperty,
  271.             m = c.href,
  272.             n = false,
  273.             o = false,
  274.             p = a.top !== a,
  275.             q = [],
  276.             r = {},
  277.             s = b.referrer,
  278.             t = {},
  279.             u = {
  280.                 allowDuplicatePageViews: false
  281.             };
  282.  
  283.         function v(ca) {
  284.             for (var da in ca)
  285.                 if (l.call(ca, da)) this[da] = ca[da];
  286.         }
  287.         j.callMethod = function(ca) {
  288.             var da = k.call(arguments),
  289.                 ea = da.length === 1 && h.isArray(da[0]);
  290.             if (ea) da = da[0];
  291.             if (ca.slice(0, 6) === 'report') {
  292.                 var fa = ca.slice(6);
  293.                 if (fa === 'CustomEvent') {
  294.                     fa = (da[1] || {}).event || fa;
  295.                     da = ['trackCustom', fa].concat(da.slice(1));
  296.                 } else da = ['track', fa].concat(da.slice(1));
  297.             }
  298.             ca = da.shift();
  299.             if (ca === 'addPixelId') {
  300.                 n = true;
  301.                 return j.init.apply(this, da);
  302.             }
  303.             if (ca === 'init') {
  304.                 o = true;
  305.                 return j.init.apply(this, da);
  306.             }
  307.             if (ca === 'track') {
  308.                 if (f.test(da[0])) return j.trackLegacyConversion.apply(this, da);
  309.                 if (ea) return j.trackWithoutValidation.apply(this, da);
  310.                 return j.trackWithValidation.apply(this, da);
  311.             }
  312.             if (ca === 'trackCustom') return j.trackWithoutValidation.apply(this, da);
  313.             h.logError('Invalid or unknown method name "' + ca + '"');
  314.         };
  315.         j.init = function(ca, da) {
  316.             if (l.call(r, ca)) {
  317.                 h.logError('Duplicate Pixel ID: ' + ca);
  318.                 return;
  319.             }
  320.             var ea = {
  321.                 id: ca,
  322.                 userData: da || {}
  323.             };
  324.             q.push(ea);
  325.             r[ca] = ea;
  326.         };
  327.         j.trackWithValidation = function(ca, da) {
  328.             da = da || {};
  329.             var ea = i.validateEvent(ca, da);
  330.             if (ea.error) h.logError(ea.error);
  331.             if (ea.warnings)
  332.                 for (var fa = 0; fa < ea.warnings.length; fa++) h.logWarning(ea.warnings[fa]);
  333.             if (ca === 'CustomEvent') ca = da.event;
  334.             j.trackWithoutValidation.call(this, ca, da);
  335.         };
  336.         j.trackWithoutValidation = function(ca, da) {
  337.             var ea = this instanceof v ? this : u;
  338.             da = da || {};
  339.             for (var fa = 0, ga = q.length; fa < ga; fa++) {
  340.                 var ha = q[fa];
  341.                 if (ca === 'PageView' && ea.allowDuplicatePageViews === false && t[ha.id] === true) continue;
  342.                 z(ha, ca, da);
  343.                 t[ha.id] = true;
  344.             }
  345.         };
  346.         j.trackLegacyConversion = function(ca, da) {
  347.             z(null, ca, da);
  348.         };
  349.         if (j.pixelId) {
  350.             n = true;
  351.             j.init(j.pixelId);
  352.         }
  353.         var w = j.queue.slice();
  354.         for (var x = 0, y = w.length; x < y; x++) j.callMethod.apply(null, w[x]);
  355.         j.queue.length = 0;
  356.         if (n && o || a.fbq !== a._fbq) h.logWarning('Multiple pixels with conflicting versions were detected on this page');
  357.         if (q.length > 1) h.logWarning('Multiple different pixels were detected on this page');
  358.         (function ca() {
  359.             if (j.disablePushState === true) return;
  360.             if (!d.pushState || !d.replaceState) return;
  361.             var da = function() {
  362.                 s = m;
  363.                 m = c.href;
  364.                 var ea = new v({
  365.                     allowDuplicatePageViews: true
  366.                 });
  367.                 j.trackWithoutValidation.call(ea, 'PageView');
  368.             };
  369.             h.injectMethod(d, 'pushState', da);
  370.             h.injectMethod(d, 'replaceState', da);
  371.             a.addEventListener('popstate', da, false);
  372.         })();
  373.  
  374.         function z(ca, da, ea) {
  375.             ca = ca || {};
  376.             var fa = new g();
  377.             fa.append('id', ca.id);
  378.             fa.append('ev', da);
  379.             fa.append('dl', m);
  380.             fa.append('rl', s);
  381.             fa.append('if', p);
  382.             fa.append('ts', new Date().valueOf());
  383.             fa.append('cd', ea);
  384.             fa.append('ud', ca.userData);
  385.             fa.append('v', j.version);
  386.             var ga = fa.toQueryString();
  387.             if (2048 > (e + '?' + ga).length) {
  388.                 aa(e, ga);
  389.             } else ba(e, fa);
  390.         }
  391.  
  392.         function aa(ca, da) {
  393.             var ea = new Image();
  394.             ea.src = ca + '?' + da;
  395.         }
  396.  
  397.         function ba(ca, da) {
  398.             var ea = 'fb' + Math.random().toString().replace('.', ''),
  399.                 fa = b.createElement('form');
  400.             fa.method = 'post';
  401.             fa.action = ca;
  402.             fa.target = ea;
  403.             fa.acceptCharset = 'utf-8';
  404.             fa.style.display = 'none';
  405.             var ga = !!(a.attachEvent && !a.addEventListener),
  406.                 ha = ga ? '<iframe name="' + ea + '">' : 'iframe',
  407.                 ia = b.createElement(ha);
  408.             ia.src = 'javascript:false';
  409.             ia.id = ea;
  410.             ia.name = ea;
  411.             fa.appendChild(ia);
  412.             h.listenOnce(ia, 'load', function() {
  413.                 da.each(function(ja, ka) {
  414.                     var la = b.createElement('input');
  415.                     la.name = ja;
  416.                     la.value = ka;
  417.                     fa.appendChild(la);
  418.                 });
  419.                 h.listenOnce(ia, 'load', function() {
  420.                     fa.parentNode.removeChild(fa);
  421.                 });
  422.                 fa.submit();
  423.             });
  424.             b.body.appendChild(fa);
  425.         }
  426.     })(window, document, location, history);
  427. } catch (e) {
  428.     new Image().src = "https:\/\/www.facebook.com\/" + 'common/scribe_endpoint.php?c=jssdk_error&m=' + encodeURIComponent('{"error":"LOAD", "extra": {"name":"' + e.name + '","line":"' + (e.lineNumber || e.line) + '","script":"' + (e.fileName || e.sourceURL || e.script) + '","stack":"' + (e.stackTrace || e.stack) + '","revision":"2048283","message":"' + e.message + '"}}');
  429. }

Raw Paste


Login or Register to edit or fork this paste. It's free.