!function(){"use strict";window.addEventListener("elementor/frontend/init",(function(){if(!window.elementorModules?.frontend?.handlers?.Base||!window.elementorFrontend?.hooks)return;let e,t=elementorModules.frontend.handlers.Base;e=t.extend({bindEvents:function(){this.run()},getDefaultSettings:function(){return{allowHTML:!0}},onElementChange:debounce((function(e){-1!==e.indexOf("marquee_")&&this.run()}),400),settings:function(e){return this.getElementSettings("marquee_"+e)},run:function(){if(elementorFrontend.isEditMode())return;const e=this.$element[0],t=e?.dataset?.id??"";var r=this,n=(this.getDefaultSettings(),e?.querySelector(".bdt-marquee"));if(!n)return;let a=this.getElementSettings("marquee_rotate");a&&0!==a.size&&""!==a.size?(e?.parentElement&&(e.parentElement.style.overflow="hidden"),e&&(e.style.marginInlineStart="-100px")):e&&(e.style.overflow="hidden"),"yes"===r.settings("advanced")&&(document.body.style.overflowX="hidden");var o=".elementor-element-"+t;const s=r.settings("direction")||"left",i="top"===s||"bottom"===s;let d=gsap.utils.toArray(o+" .marquee-content");d=((e,t)=>{if(t){let t=e.reduce(((e,t)=>e+t.offsetHeight),0);if(0==t)return e;let r=n.offsetHeight||500;for(;t<2*r;)e.forEach((e=>{const t=e.cloneNode(!0);e.parentNode.appendChild(t)})),t=(e=gsap.utils.toArray(o+" .marquee-content")).reduce(((e,t)=>e+t.offsetHeight),0)}else{let t=e.reduce(((e,t)=>e+t.offsetWidth),0);if(0==t)return e;let r=window.innerWidth;for(;t<r;)e.forEach((e=>{const t=e.cloneNode(!0);e.parentNode.appendChild(t)})),t=(e=gsap.utils.toArray(o+" .marquee-content")).reduce(((e,t)=>e+t.offsetWidth),0)}return e})(d,i);const l=i?"top"===s:"right"===s;let p,g=r.settings("speed")?r.settings("speed")/100:1,u="yes"===r.settings("clickable"),c="yes"===r.settings("pause_on_hover"),f="yes"===r.settings("draggable"),m=r.settings("spacing")?r.settings("spacing"):0;r.settings("loop");const h=i?r.verticalLoop(d,{paused:!1,draggable:f,repeat:-1,speed:g,paddingBottom:m,reversed:l,center:!0,reversedDirection:l,onChange:(e,t)=>{p&&p.classList.remove("active"),e.classList.add("active"),p=e}}):r.horizontalLoop(d,{paused:!1,draggable:f,repeat:-1,speed:g,paddingRight:m,reversed:l,center:!0,reversedDirection:l,onChange:(e,t)=>{p&&p.classList.remove("active"),e.classList.add("active"),p=e}});if(c&&r.pauseOnHover(h,d),u){let e=!1;d.forEach((t=>{t.addEventListener("mouseleave",(()=>{e&&(e=!1,h.reversed()?(h.play(),h.reverse()):h.play())}))})),d.forEach(((t,r)=>{t.addEventListener("click",(()=>{e=!0,h.toIndex(r,{duration:.8,ease:"power1.inOut"})}))}))}},pauseOnHover:function(e,t){t?.length&&t.forEach((t=>{t.addEventListener("mouseenter",(()=>e.pause())),t.addEventListener("mouseleave",(()=>{e.reversed()?(e.play(),e.reverse()):e.play()}))}))},horizontalLoop:function(e,t,r=!1){e=gsap.utils.toArray(e);let n,a,o,s=(t=t||{}).onChange,i=gsap.timeline({repeat:t.repeat,paused:t.paused,defaults:{ease:"none"},onReverseComplete:()=>i.totalTime(i.rawTime()+100*i.duration())}),d=e.length,l=e[0].offsetLeft,p=[],g=[],u=[],c=[],f=0,m=t.center,h=100*(t.speed||1),v=!1===t.snap?e=>e:gsap.utils.snap(t.snap||1),y=0,w=!0===m?e[0].parentNode:gsap.utils.toArray(m)[0]||e[0].parentNode,b=()=>{let r,a=w.getBoundingClientRect();e.forEach(((e,t)=>{g[t]=parseFloat(gsap.getProperty(e,"width","px")),c[t]=v(parseFloat(gsap.getProperty(e,"x","px"))/g[t]*100+gsap.getProperty(e,"xPercent")),r=e.getBoundingClientRect(),u[t]=r.left-(t?a.right:a.left),a=r})),gsap.set(e,{xPercent:e=>c[e]}),n=e[d-1].offsetLeft+c[d-1]/100*g[d-1]-l+u[0]+e[d-1].offsetWidth*gsap.getProperty(e[d-1],"scaleX")+(parseFloat(t.paddingRight)||0)},x=()=>{y=m?i.duration()*(w.offsetWidth/2)/n:0,m&&p.forEach(((e,t)=>{p[t]=a(i.labels["label"+t]+i.duration()*g[t]/2/n-y)}))},P=(e,t,r)=>{let n,a=e.length,o=1e10,s=0;for(;a--;)n=Math.abs(e[a]-t),n>r/2&&(n=r-n),n<o&&(o=n,s=a);return s},E=()=>{let t,r,o,s,f;for(i.clear(),t=0;t<d;t++)r=e[t],o=c[t]/100*g[t],s=r.offsetLeft+o-l+u[0],f=s+g[t]*gsap.getProperty(r,"scaleX"),i.to(r,{xPercent:v((o-f)/g[t]*100),duration:f/h},0).fromTo(r,{xPercent:v((o-f+n)/g[t]*100)},{xPercent:c[t],duration:(o-f+n-o)/h,immediateRender:!1},f/h).add("label"+t,s/h),p[t]=s/h;a=gsap.utils.wrap(0,i.duration())},T=e=>{let t=i.progress();i.progress(0,!0),b(),e&&E(),x(),e&&i.draggable?i.time(p[f],!0):i.progress(t,!0)};function L(e,t){t=t||{},r&&(e=d-e),Math.abs(e-f)>d/2&&(e+=e>f?-d:d);let n=gsap.utils.wrap(0,d,e),s=p[n];return s>i.time()!=e>f&&(s+=i.duration()*(e>f?1:-1)),(s<0||s>i.duration())&&(t.modifiers={time:a}),f=n,t.overwrite=!0,gsap.killTweensOf(o),i.tweenTo(s,t)}if(gsap.set(e,{x:0}),b(),E(),x(),window.addEventListener("resize",(()=>T(!0))),i.next=e=>L(f+1,e),i.previous=e=>L(f-1,e),i.current=()=>f,i.toIndex=(e,t)=>L(e,t),i.closestIndex=e=>{let t=P(p,i.time(),i.duration());return e&&(f=t),t},i.times=p,i.progress(1,!0).progress(0,!0),t.reversed&&(i.vars.onReverseComplete(),i.reverse()),t.draggable&&"function"==typeof Draggable){o=document.createElement("div");let t,r,s,d=gsap.utils.wrap(0,1),l=()=>i.progress(d(r+(s.startX-s.x)*t)),g=()=>i.closestIndex(!0);"undefined"==typeof InertiaPlugin&&console.warn("InertiaPlugin required for momentum-based scrolling and snapping. https://greensock.com/club"),s=Draggable.create(o,{trigger:e[0].parentNode,type:"x",onPressInit(){gsap.killTweensOf(i),r=i.progress(),T(),t=1/n,gsap.set(o,{x:r/-t})},onDrag:l,onThrowUpdate:l,inertia:!0,snap:e=>{let r=-e*t*i.duration(),n=a(r),o=p[P(p,n,i.duration())]-n;return Math.abs(o)>i.duration()/2&&(o+=o<0?i.duration():-i.duration()),(r+o)/i.duration()/-t},onRelease:g,onThrowComplete:g})[0],i.draggable=s}return i.closestIndex(!0),s&&s(e[f],f),i},verticalLoop:function(e,t,r=!1){e=gsap.utils.toArray(e);let n,a,o,s=(t=t||{}).onChange,i=gsap.timeline({repeat:t.repeat,paused:t.paused,defaults:{ease:"none"},onReverseComplete:()=>i.totalTime(i.rawTime()+100*i.duration())}),d=e.length,l=e[0].offsetTop,p=[],g=[],u=[],c=[],f=0,m=t.center,h=100*(t.speed||1),v=!1===t.snap?e=>e:gsap.utils.snap(t.snap||1),y=0,w=!0===m?e[0].parentNode:gsap.utils.toArray(m)[0]||e[0].parentNode,b=()=>{let r,a=w.getBoundingClientRect();e.forEach(((e,t)=>{g[t]=parseFloat(gsap.getProperty(e,"height","px")),c[t]=v(parseFloat(gsap.getProperty(e,"y","px"))/g[t]*100+gsap.getProperty(e,"yPercent")),r=e.getBoundingClientRect(),u[t]=r.top-(t?a.bottom:a.top),a=r})),gsap.set(e,{yPercent:e=>c[e]}),n=e[d-1].offsetTop+c[d-1]/100*g[d-1]-l+u[0]+e[d-1].offsetHeight*gsap.getProperty(e[d-1],"scaleY")+(parseFloat(t.paddingBottom)||0)},x=()=>{y=m?i.duration()*(w.offsetHeight/2)/n:0,m&&p.forEach(((e,t)=>{p[t]=a(i.labels["label"+t]+i.duration()*g[t]/2/n-y)}))},P=(e,t,r)=>{let n,a=e.length,o=1e10,s=0;for(;a--;)n=Math.abs(e[a]-t),n>r/2&&(n=r-n),n<o&&(o=n,s=a);return s},E=()=>{let t,r,o,s,f;for(i.clear(),t=0;t<d;t++)r=e[t],o=c[t]/100*g[t],s=r.offsetTop+o-l+u[0],f=s+g[t]*gsap.getProperty(r,"scaleY"),i.to(r,{yPercent:v((o-f)/g[t]*100),duration:f/h},0).fromTo(r,{yPercent:v((o-f+n)/g[t]*100)},{yPercent:c[t],duration:(o-f+n-o)/h,immediateRender:!1},f/h).add("label"+t,s/h),p[t]=s/h;a=gsap.utils.wrap(0,i.duration())},T=e=>{let t=i.progress();i.progress(0,!0),b(),e&&E(),x(),e&&i.draggable?i.time(p[f],!0):i.progress(t,!0)};function L(e,t){t=t||{},r&&(e=d-e),Math.abs(e-f)>d/2&&(e+=e>f?-d:d);let n=gsap.utils.wrap(0,d,e),s=p[n];return s>i.time()!=e>f&&(s+=i.duration()*(e>f?1:-1)),(s<0||s>i.duration())&&(t.modifiers={time:a}),f=n,t.overwrite=!0,gsap.killTweensOf(o),i.tweenTo(s,t)}if(gsap.set(e,{y:0}),b(),E(),x(),window.addEventListener("resize",(()=>T(!0))),i.next=e=>L(f+1,e),i.previous=e=>L(f-1,e),i.current=()=>f,i.toIndex=(e,t)=>L(e,t),i.closestIndex=e=>{let t=P(p,i.time(),i.duration());return e&&(f=t),t},i.times=p,i.progress(1,!0).progress(0,!0),t.reversed&&(i.vars.onReverseComplete(),i.reverse()),t.draggable&&"function"==typeof Draggable){o=document.createElement("div");let t,r,s,d=gsap.utils.wrap(0,1),l=()=>i.progress(d(r+(s.startY-s.y)*t)),g=()=>i.closestIndex(!0);"undefined"==typeof InertiaPlugin&&console.warn("InertiaPlugin required for momentum-based scrolling and snapping. https://greensock.com/club"),s=Draggable.create(o,{trigger:e[0].parentNode,type:"y",onPressInit(){gsap.killTweensOf(i),r=i.progress(),T(),t=1/n,gsap.set(o,{y:r/-t})},onDrag:l,onThrowUpdate:l,inertia:!0,snap:e=>{let r=-e*t*i.duration(),n=a(r),o=p[P(p,n,i.duration())]-n;return Math.abs(o)>i.duration()/2&&(o+=o<0?i.duration():-i.duration()),(r+o)/i.duration()/-t},onRelease:g,onThrowComplete:g})[0],i.draggable=s}return i.closestIndex(!0),s&&s(e[f],f),i}}),elementorFrontend.hooks.addAction("frontend/element_ready/bdt-marquee.default",(function(t){elementorFrontend.elementsHandler.addHandler(e,{$element:t})}))}))}();
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.sbjs=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
"use strict";
var init=_dereq_('./init');
var sbjs={
init: function(prefs){
this.get=init(prefs);
if(prefs&&prefs.callback&&typeof prefs.callback==='function'){
prefs.callback(this.get);
}}
};
module.exports=sbjs;
},{"./init":6}],2:[function(_dereq_,module,exports){
"use strict";
var terms=_dereq_('./terms'),
utils=_dereq_('./helpers/utils');
var data={
containers: {
current:          'sbjs_current',
current_extra:    'sbjs_current_add',
first:            'sbjs_first',
first_extra:      'sbjs_first_add',
session:          'sbjs_session',
udata:            'sbjs_udata',
promocode:        'sbjs_promo'
},
service: {
migrations:       'sbjs_migrations'
},
delimiter:          '|||',
aliases: {
main: {
type:           'typ',
source:         'src',
medium:         'mdm',
campaign:       'cmp',
content:        'cnt',
term:           'trm',
id:             'id',
platform:       'plt',
format:         'fmt',
tactic:         'tct'
},
extra: {
fire_date:      'fd',
entrance_point: 'ep',
referer:        'rf'
},
session: {
pages_seen:     'pgs',
current_page:   'cpg'
},
udata: {
visits:         'vst',
ip:             'uip',
agent:          'uag'
},
promo:            'code'
},
pack: {
main: function(sbjs){
return (
data.aliases.main.type      + '=' + sbjs.type     + data.delimiter +
data.aliases.main.source    + '=' + sbjs.source   + data.delimiter +
data.aliases.main.medium    + '=' + sbjs.medium   + data.delimiter +
data.aliases.main.campaign  + '=' + sbjs.campaign + data.delimiter +
data.aliases.main.content   + '=' + sbjs.content  + data.delimiter +
data.aliases.main.term      + '=' + sbjs.term     + data.delimiter +
data.aliases.main.id        + '=' + sbjs.id       + data.delimiter +
data.aliases.main.platform  + '=' + sbjs.platform + data.delimiter +
data.aliases.main.format    + '=' + sbjs.format   + data.delimiter +
data.aliases.main.tactic    + '=' + sbjs.tactic
);
},
extra: function(timezone_offset){
return (
data.aliases.extra.fire_date      + '=' + utils.setDate(new Date, timezone_offset) + data.delimiter +
data.aliases.extra.entrance_point + '=' + document.location.href                   + data.delimiter +
data.aliases.extra.referer        + '=' + (document.referrer||terms.none)
);
},
user: function(visits, user_ip){
return (
data.aliases.udata.visits + '=' + visits  + data.delimiter +
data.aliases.udata.ip     + '=' + user_ip + data.delimiter +
data.aliases.udata.agent  + '=' + navigator.userAgent
);
},
session: function(pages){
return (
data.aliases.session.pages_seen   + '=' + pages + data.delimiter +
data.aliases.session.current_page + '=' + document.location.href
);
},
promo: function(promo){
return (
data.aliases.promo + '=' + utils.setLeadingZeroToInt(utils.randomInt(promo.min, promo.max), promo.max.toString().length)
);
}}
};
module.exports=data;
},{"./helpers/utils":5,"./terms":9}],3:[function(_dereq_,module,exports){
"use strict";
var delimiter=_dereq_('../data').delimiter;
module.exports={
useBase64: false,
setBase64Flag: function(value){
this.useBase64=value;
},
encodeData: function(s){
return encodeURIComponent(s).replace(/\!/g, '%21')
.replace(/\~/g, '%7E')
.replace(/\*/g, '%2A')
.replace(/\'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29');
},
decodeData: function(s){
try {
return decodeURIComponent(s).replace(/\%21/g, '!')
.replace(/\%7E/g, '~')
.replace(/\%2A/g, '*')
.replace(/\%27/g, "'")
.replace(/\%28/g, '(')
.replace(/\%29/g, ')');
} catch(err1){
try { return unescape(s); } catch(err2){ return ''; }}
},
set: function(name, value, minutes, domain, excl_subdomains){
var expires, basehost;
if(minutes){
var date=new Date();
date.setTime(date.getTime() + (minutes * 60 * 1000));
expires='; expires=' + date.toGMTString();
}else{
expires='';
}
if(domain&&!excl_subdomains){
basehost=';domain=.' + domain;
}else{
basehost='';
}
var cookie_content=this.encodeData(value);
if(this.useBase64){
cookie_content=btoa(cookie_content).replace(/=+$/, '');
}
document.cookie=this.encodeData(name) + '=' + cookie_content + expires + basehost + '; path=/';
},
get: function(name){
var nameEQ=this.encodeData(name) + '=',
ca=document.cookie.split(';');
for (var i=0; i < ca.length; i++){
var c=ca[i];
while (c.charAt(0)===' '){ c=c.substring(1, c.length); }
if(c.indexOf(nameEQ)===0){
var cookie_content=c.substring(nameEQ.length, c.length);
if(/^[A-Za-z0-9+/]+$/.test(cookie_content)){
try {
cookie_content=atob(cookie_content.padEnd(Math.ceil(cookie_content.length / 4) * 4, "="));
} catch (error){
}}
return this.decodeData(cookie_content);
}}
return null;
},
destroy: function(name, domain, excl_subdomains){
this.set(name, '', -1, domain, excl_subdomains);
},
parse: function(yummy){
var cookies=[],
data={};
if(typeof yummy==='string'){
cookies.push(yummy);
}else{
for (var prop in yummy){
if(yummy.hasOwnProperty(prop)){
cookies.push(yummy[prop]);
}}
}
for (var i1=0; i1 < cookies.length; i1++){
var cookie_array;
data[this.unsbjs(cookies[i1])]={};
if(this.get(cookies[i1])){
cookie_array=this.get(cookies[i1]).split(delimiter);
}else{
cookie_array=[];
}
for (var i2=0; i2 < cookie_array.length; i2++){
var tmp_array=cookie_array[i2].split('='),
result_array=tmp_array.splice(0, 1);
result_array.push(tmp_array.join('='));
data[this.unsbjs(cookies[i1])][result_array[0]]=this.decodeData(result_array[1]);
}}
return data;
},
unsbjs: function (string){
return string.replace('sbjs_', '');
}};},{"../data":2}],4:[function(_dereq_,module,exports){
"use strict";
module.exports={
parse: function(str){
var o=this.parseOptions,
m=o.parser[o.strictMode ? 'strict':'loose'].exec(str),
uri={},
i=14;
while (i--){ uri[o.key[i]]=m[i]||''; }
uri[o.q.name]={};
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2){
if($1){ uri[o.q.name][$1]=$2; }});
return uri;
},
parseOptions: {
strictMode: false,
key: ['source','protocol','authority','userInfo','user','password','host','port','relative','path','directory','file','query','anchor'],
q: {
name:   'queryKey',
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}},
getParam: function(custom_params){
var query_string={},
query=custom_params ? custom_params:window.location.search.substring(1),
vars=query.split('&');
for (var i=0; i < vars.length; i++){
var pair=vars[i].split('=');
if(typeof query_string[pair[0]]==='undefined'){
query_string[pair[0]]=pair[1];
}else if(typeof query_string[pair[0]]==='string'){
var arr=[ query_string[pair[0]], pair[1] ];
query_string[pair[0]]=arr;
}else{
query_string[pair[0]].push(pair[1]);
}}
return query_string;
},
getHost: function(request){
return this.parse(request).host.replace('www.', '');
}};},{}],5:[function(_dereq_,module,exports){
"use strict";
module.exports={
escapeRegexp: function(string){
return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
},
setDate: function(date, offset){
var utc_offset=date.getTimezoneOffset() / 60,
now_hours=date.getHours(),
custom_offset=offset||offset===0 ? offset:-utc_offset;
date.setHours(now_hours + utc_offset + custom_offset);
var year=date.getFullYear(),
month=this.setLeadingZeroToInt(date.getMonth() + 1,   2),
day=this.setLeadingZeroToInt(date.getDate(),        2),
hour=this.setLeadingZeroToInt(date.getHours(),       2),
minute=this.setLeadingZeroToInt(date.getMinutes(),     2),
second=this.setLeadingZeroToInt(date.getSeconds(),     2);
return (year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
},
setLeadingZeroToInt: function(num, size){
var s=num + '';
while (s.length < size){ s='0' + s; }
return s;
},
randomInt: function(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}};},{}],6:[function(_dereq_,module,exports){
"use strict";
var data=_dereq_('./data'),
terms=_dereq_('./terms'),
cookies=_dereq_('./helpers/cookies'),
uri=_dereq_('./helpers/uri'),
utils=_dereq_('./helpers/utils'),
params=_dereq_('./params'),
migrations=_dereq_('./migrations');
module.exports=function(prefs){
var p=params.fetch(prefs);
var get_param=uri.getParam();
var domain=p.domain.host,
isolate=p.domain.isolate,
lifetime=p.lifetime;
cookies.setBase64Flag(p.base64);
migrations.go(lifetime, domain, isolate);
var __sbjs_type,
__sbjs_source,
__sbjs_medium,
__sbjs_campaign,
__sbjs_content,
__sbjs_term,
__sbjs_id,
__sbjs_platform,
__sbjs_format,
__sbjs_tactic;
function mainData(){
var sbjs_data;
if(typeof get_param.utm_source!=='undefined' ||
typeof get_param.utm_medium!=='undefined' ||
typeof get_param.utm_campaign!=='undefined' ||
typeof get_param.utm_content!=='undefined' ||
typeof get_param.utm_term!=='undefined' ||
typeof get_param.utm_id!=='undefined' ||
typeof get_param.utm_source_platform!=='undefined' ||
typeof get_param.utm_creative_format!=='undefined' ||
typeof get_param.utm_marketing_tactic!=='undefined' ||
typeof get_param.gclid!=='undefined' ||
typeof get_param.yclid!=='undefined' ||
typeof get_param[p.campaign_param]!=='undefined' ||
typeof get_param[p.term_param]!=='undefined' ||
typeof get_param[p.content_param]!=='undefined'
){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.utm);
}else if(checkReferer(terms.traffic.organic)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.organic);
}else if(!cookies.get(data.containers.session)&&checkReferer(terms.traffic.referral)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.referral);
}else if(!cookies.get(data.containers.first)&&!cookies.get(data.containers.current)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.typein);
}else{
return cookies.get(data.containers.current);
}
return sbjs_data;
}
function getData(type){
switch (type){
case terms.traffic.utm:
__sbjs_type=terms.traffic.utm;
if(typeof get_param.utm_source!=='undefined'){
__sbjs_source=get_param.utm_source;
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_source='google';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_source='yandex';
}else{
__sbjs_source=terms.none;
}
if(typeof get_param.utm_medium!=='undefined'){
__sbjs_medium=get_param.utm_medium;
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_medium='cpc';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_medium='cpc';
}else{
__sbjs_medium=terms.none;
}
if(typeof get_param.utm_campaign!=='undefined'){
__sbjs_campaign=get_param.utm_campaign;
}else if(typeof get_param[p.campaign_param]!=='undefined'){
__sbjs_campaign=get_param[p.campaign_param];
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_campaign='google_cpc';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_campaign='yandex_cpc';
}else{
__sbjs_campaign=terms.none;
}
if(typeof get_param.utm_content!=='undefined'){
__sbjs_content=get_param.utm_content;
}else if(typeof get_param[p.content_param]!=='undefined'){
__sbjs_content=get_param[p.content_param];
}else{
__sbjs_content=terms.none;
}
__sbjs_id=get_param.utm_id||terms.none;
__sbjs_platform=get_param.utm_source_platform||terms.none;
__sbjs_format=get_param.utm_creative_format||terms.none;
__sbjs_tactic=get_param.utm_marketing_tactic||terms.none;
if(typeof get_param.utm_term!=='undefined'){
__sbjs_term=get_param.utm_term;
}else if(typeof get_param[p.term_param]!=='undefined'){
__sbjs_term=get_param[p.term_param];
}else{
__sbjs_term=getUtmTerm()||terms.none;
}
break;
case terms.traffic.organic:
__sbjs_type=terms.traffic.organic;
__sbjs_source=__sbjs_source||uri.getHost(document.referrer);
__sbjs_medium=terms.referer.organic;
__sbjs_campaign=terms.none;
__sbjs_content=terms.none;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
case terms.traffic.referral:
__sbjs_type=terms.traffic.referral;
__sbjs_source=__sbjs_source||uri.getHost(document.referrer);
__sbjs_medium=__sbjs_medium||terms.referer.referral;
__sbjs_campaign=terms.none;
__sbjs_content=uri.parse(document.referrer).path;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
case terms.traffic.typein:
__sbjs_type=terms.traffic.typein;
__sbjs_source=p.typein_attributes.source;
__sbjs_medium=p.typein_attributes.medium;
__sbjs_campaign=terms.none;
__sbjs_content=terms.none;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
default:
__sbjs_type=terms.oops;
__sbjs_source=terms.oops;
__sbjs_medium=terms.oops;
__sbjs_campaign=terms.oops;
__sbjs_content=terms.oops;
__sbjs_term=terms.oops;
__sbjs_id=terms.oops;
__sbjs_platform=terms.oops;
__sbjs_format=terms.oops;
__sbjs_tactic=terms.oops;
}
var sbjs_data={
type:             __sbjs_type,
source:           __sbjs_source,
medium:           __sbjs_medium,
campaign:         __sbjs_campaign,
content:          __sbjs_content,
term:             __sbjs_term,
id:               __sbjs_id,
platform:         __sbjs_platform,
format:           __sbjs_format,
tactic:           __sbjs_tactic
};
return data.pack.main(sbjs_data);
}
function getUtmTerm(){
var referer=document.referrer;
if(get_param.utm_term){
return get_param.utm_term;
}else if(referer&&uri.parse(referer).host&&uri.parse(referer).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)){
try {
return uri.getParam(uri.parse(document.referrer).query).text;
} catch (err){
return false;
}}else{
return false;
}}
function checkReferer(type){
var referer=document.referrer;
switch(type){
case terms.traffic.organic:
return (!!referer&&checkRefererHost(referer)&&isOrganic(referer));
case terms.traffic.referral:
return (!!referer&&checkRefererHost(referer)&&isReferral(referer));
default:
return false;
}}
function checkRefererHost(referer){
if(p.domain){
if(!isolate){
var host_regex=new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(domain) + '$', 'i');
return !(uri.getHost(referer).match(host_regex));
}else{
return (uri.getHost(referer)!==uri.getHost(domain));
}}else{
return (uri.getHost(referer)!==uri.getHost(document.location.href));
}}
function isOrganic(referer){
var y_host='yandex',
y_param='text',
g_host='google';
var y_host_regex=new RegExp('^(?:.*\\.)?'  + utils.escapeRegexp(y_host)  + '\\..{2,9}$'),
y_param_regex=new RegExp('.*'           + utils.escapeRegexp(y_param) + '=.*'),
g_host_regex=new RegExp('^(?:www\\.)?' + utils.escapeRegexp(g_host)  + '\\..{2,9}$');
if(!!uri.parse(referer).query &&
!!uri.parse(referer).host.match(y_host_regex) &&
!!uri.parse(referer).query.match(y_param_regex)
){
__sbjs_source=y_host;
return true;
}else if(!!uri.parse(referer).host.match(g_host_regex)){
__sbjs_source=g_host;
return true;
}else if(!!uri.parse(referer).query){
for (var i=0; i < p.organics.length; i++){
if(uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.organics[i].host)  + '$', 'i')) &&
uri.parse(referer).query.match(new RegExp('.*'         + utils.escapeRegexp(p.organics[i].param) + '=.*', 'i'))
){
__sbjs_source=p.organics[i].display||p.organics[i].host;
return true;
}
if(i + 1===p.organics.length){
return false;
}}
}else{
return false;
}}
function isReferral(referer){
if(p.referrals.length > 0){
for (var i=0; i < p.referrals.length; i++){
if(uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.referrals[i].host) + '$', 'i'))){
__sbjs_source=p.referrals[i].display||p.referrals[i].host;
__sbjs_medium=p.referrals[i].medium||terms.referer.referral;
return true;
}
if(i + 1===p.referrals.length){
__sbjs_source=uri.getHost(referer);
return true;
}}
}else{
__sbjs_source=uri.getHost(referer);
return true;
}}
function setFirstAndCurrentExtraData(){
cookies.set(data.containers.current_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
if(!cookies.get(data.containers.first_extra)){
cookies.set(data.containers.first_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
}}
(function setData(){
cookies.set(data.containers.current, mainData(), lifetime, domain, isolate);
if(!cookies.get(data.containers.first)){
cookies.set(data.containers.first, cookies.get(data.containers.current), lifetime, domain, isolate);
}
var visits, udata;
if(!cookies.get(data.containers.udata)){
visits=1;
udata=data.pack.user(visits, p.user_ip);
}else{
visits=parseInt(cookies.parse(data.containers.udata)[cookies.unsbjs(data.containers.udata)][data.aliases.udata.visits])||1;
visits=cookies.get(data.containers.session) ? visits:visits + 1;
udata=data.pack.user(visits, p.user_ip);
}
cookies.set(data.containers.udata, udata, lifetime, domain, isolate);
var pages_count;
if(!cookies.get(data.containers.session)){
pages_count=1;
}else{
pages_count=parseInt(cookies.parse(data.containers.session)[cookies.unsbjs(data.containers.session)][data.aliases.session.pages_seen])||1;
pages_count +=1;
}
cookies.set(data.containers.session, data.pack.session(pages_count), p.session_length, domain, isolate);
if(p.promocode&&!cookies.get(data.containers.promocode)){
cookies.set(data.containers.promocode, data.pack.promo(p.promocode), lifetime, domain, isolate);
}})();
return cookies.parse(data.containers);
};},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(_dereq_,module,exports){
"use strict";
var data=_dereq_('./data'),
cookies=_dereq_('./helpers/cookies');
module.exports={
go: function(lifetime, domain, isolate){
var migrate=this.migrations,
_with={ l: lifetime, d: domain, i: isolate };
var i;
if(!cookies.get(data.containers.first)&&!cookies.get(data.service.migrations)){
var mids=[];
for (i=0; i < migrate.length; i++){ mids.push(migrate[i].id); }
var advance='';
for (i=0; i < mids.length; i++){
advance +=mids[i] + '=1';
if(i < mids.length - 1){ advance +=data.delimiter; }}
cookies.set(data.service.migrations, advance, _with.l, _with.d, _with.i);
}else if(!cookies.get(data.service.migrations)){
for (i=0; i < migrate.length; i++){
migrate[i].go(migrate[i].id, _with);
}}
},
migrations: [
{
id: '1418474375998',
version: '1.0.0-beta',
go: function(mid, _with){
var success=mid + '=1',
fail=mid + '=0';
var safeReplace=function($0, $1, $2){
return ($1||$2 ? $0:data.delimiter);
};
try {
var _in=[];
for (var prop in data.containers){
if(data.containers.hasOwnProperty(prop)){
_in.push(data.containers[prop]);
}}
for (var i=0; i < _in.length; i++){
if(cookies.get(_in[i])){
var buffer=cookies.get(_in[i]).replace(/(\|)?\|(\|)?/g, safeReplace);
cookies.destroy(_in[i], _with.d, _with.i);
cookies.destroy(_in[i], _with.d, !_with.i);
cookies.set(_in[i], buffer, _with.l, _with.d, _with.i);
}}
if(cookies.get(data.containers.session)){
cookies.set(data.containers.session, data.pack.session(0), _with.l, _with.d, _with.i);
}
cookies.set(data.service.migrations, success, _with.l, _with.d, _with.i);
} catch (err){
cookies.set(data.service.migrations, fail, _with.l, _with.d, _with.i);
}}
}
]
};},{"./data":2,"./helpers/cookies":3}],8:[function(_dereq_,module,exports){
"use strict";
var terms=_dereq_('./terms'),
uri=_dereq_('./helpers/uri');
module.exports={
fetch: function(prefs){
var user=prefs||{},
params={};
params.lifetime=this.validate.checkFloat(user.lifetime)||6;
params.lifetime=parseInt(params.lifetime * 30 * 24 * 60);
params.session_length=this.validate.checkInt(user.session_length)||30;
params.timezone_offset=this.validate.checkInt(user.timezone_offset);
params.base64=user.base64||false;
params.campaign_param=user.campaign_param||false;
params.term_param=user.term_param||false;
params.content_param=user.content_param||false;
params.user_ip=user.user_ip||terms.none;
if(user.promocode){
params.promocode={};
params.promocode.min=parseInt(user.promocode.min)||100000;
params.promocode.max=parseInt(user.promocode.max)||999999;
}else{
params.promocode=false;
}
if(user.typein_attributes&&user.typein_attributes.source&&user.typein_attributes.medium){
params.typein_attributes={};
params.typein_attributes.source=user.typein_attributes.source;
params.typein_attributes.medium=user.typein_attributes.medium;
}else{
params.typein_attributes={ source: '(direct)', medium: '(none)' };}
if(user.domain&&this.validate.isString(user.domain)){
params.domain={ host: user.domain, isolate: false };}else if(user.domain&&user.domain.host){
params.domain=user.domain;
}else{
params.domain={ host: uri.getHost(document.location.hostname), isolate: false };}
params.referrals=[];
if(user.referrals&&user.referrals.length > 0){
for (var ir=0; ir < user.referrals.length; ir++){
if(user.referrals[ir].host){
params.referrals.push(user.referrals[ir]);
}}
}
params.organics=[];
if(user.organics&&user.organics.length > 0){
for (var io=0; io < user.organics.length; io++){
if(user.organics[io].host&&user.organics[io].param){
params.organics.push(user.organics[io]);
}}
}
params.organics.push({ host: 'bing.com',      param: 'q',     display: 'bing'            });
params.organics.push({ host: 'yahoo.com',     param: 'p',     display: 'yahoo'           });
params.organics.push({ host: 'about.com',     param: 'q',     display: 'about'           });
params.organics.push({ host: 'aol.com',       param: 'q',     display: 'aol'             });
params.organics.push({ host: 'ask.com',       param: 'q',     display: 'ask'             });
params.organics.push({ host: 'globososo.com', param: 'q',     display: 'globo'           });
params.organics.push({ host: 'go.mail.ru',    param: 'q',     display: 'go.mail.ru'      });
params.organics.push({ host: 'rambler.ru',    param: 'query', display: 'rambler'         });
params.organics.push({ host: 'tut.by',        param: 'query', display: 'tut.by'          });
params.referrals.push({ host: 't.co',                         display: 'twitter.com'     });
params.referrals.push({ host: 'plus.url.google.com',          display: 'plus.google.com' });
return params;
},
validate: {
checkFloat: function(v){
return v&&this.isNumeric(parseFloat(v)) ? parseFloat(v):false;
},
checkInt: function(v){
return v&&this.isNumeric(parseInt(v)) ? parseInt(v):false;
},
isNumeric: function(v){
return !isNaN(v);
},
isString: function(v){
return Object.prototype.toString.call(v)==='[object String]';
}}
};},{"./helpers/uri":4,"./terms":9}],9:[function(_dereq_,module,exports){
"use strict";
module.exports={
traffic: {
utm:        'utm',
organic:    'organic',
referral:   'referral',
typein:     'typein'
},
referer: {
referral:   'referral',
organic:    'organic',
social:     'social'
},
none:         '(none)',
oops:         '(Houston, we have a problem)'
};},{}]},{},[1])(1)
});
(function(wc_order_attribution){
'use strict';
const params=wc_order_attribution.params;
const $=document.querySelector.bind(document);
const propertyAccessor=(obj, path)=> path.split('.').reduce(( acc, part)=> acc&&acc[ part ], obj);
const returnNull=()=> null;
const stringifyFalsyInputValue=(value)=> value===null||value===undefined ? '':value;
const CHECKOUT_STORE_KEY='wc/store/checkout';
wc_order_attribution.getAttributionData=function(){
const accessor=params.allowTracking&&isSbjsAvailable() ? propertyAccessor:returnNull;
const getter=isSbjsAvailable() ? sbjs.get:{};
const entries=Object.entries(wc_order_attribution.fields)
.map(( [ key, property ])=> [ key, accessor(getter, property) ]);
return Object.fromEntries(entries);
}
function removeDuplicateInputGroups(){
document.querySelectorAll('wc-order-attribution-inputs').forEach(( group, index)=> {
if(index > 0){
group.remove();
}});
}
function updateFormValues(values){
removeDuplicateInputGroups();
for(const element of document.querySelectorAll('wc-order-attribution-inputs') ){
element.values=values;
}};
function updateCheckoutBlockData(values){
if(window.wp &&
window.wp.data &&
window.wp.data.dispatch &&
window.wc &&
window.wc.wcBlocksData
){
window.wp.data
.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY)
.setExtensionData('woocommerce/order-attribution',
values,
true
);
}}
function isSbjsAvailable(){
return typeof sbjs!=='undefined';
}
wc_order_attribution.setOrderTracking=function(allow){
params.allowTracking=allow;
if(! allow){
removeTrackingCookies();
}else if(! isSbjsAvailable()){
return;
}else{
sbjs.init({
lifetime: Number(params.lifetime),
session_length: Number(params.session),
base64: Boolean(params.base64),
timezone_offset: '0',
});
}
const values=wc_order_attribution.getAttributionData();
updateFormValues(values);
updateCheckoutBlockData(values);
}
function removeTrackingCookies(){
const domain=window.location.hostname;
const sbCookies=[
'sbjs_current',
'sbjs_current_add',
'sbjs_first',
'sbjs_first_add',
'sbjs_session',
'sbjs_udata',
'sbjs_migrations',
'sbjs_promo'
];
sbCookies.forEach(( name)=> {
document.cookie=`${name}=; path=/; max-age=-999; domain=.${domain};`;
});
}
wc_order_attribution.setOrderTracking(params.allowTracking);
function eventuallyInitializeCheckoutBlock(){
if(window.wp&&window.wp.data&&typeof window.wp.data.subscribe==='function'
){
const unsubscribe=window.wp.data.subscribe(function (){
unsubscribe();
updateCheckoutBlockData(wc_order_attribution.getAttributionData());
}, CHECKOUT_STORE_KEY);
}};
if(document.readyState==="loading"){
document.addEventListener("DOMContentLoaded", eventuallyInitializeCheckoutBlock);
}else{
eventuallyInitializeCheckoutBlock();
}
window.customElements.define('wc-order-attribution-inputs', class extends HTMLElement {
constructor(){
super();
this._fieldNames=Object.keys(wc_order_attribution.fields);
if(this.hasOwnProperty('_values') ){
let values=this.values;
delete this.values;
this.values=values||{};}}
connectedCallback(){
this.innerHTML='';
const inputs=new DocumentFragment();
for(const fieldName of this._fieldNames){
const input=document.createElement('input');
input.type='hidden';
input.name=`${params.prefix}${fieldName}`;
input.value=stringifyFalsyInputValue(( this.values&&this.values[ fieldName ])||'');
inputs.appendChild(input);
}
this.appendChild(inputs);
}
set values(values){
this._values=values;
if(this.isConnected){
for(const fieldName of this._fieldNames){
const input=this.querySelector(`input[name="${params.prefix}${fieldName}"]`);
if(input){
input.value=stringifyFalsyInputValue(this.values[ fieldName ]);
}else{
console.warn(`Field "${fieldName}" not found. ` +
`Most likely, the '<wc-order-attribution-inputs>' element was manipulated.`
);
}}
}}
get values(){
return this._values;
}});
}(window.wc_order_attribution) );