From e9455ccfa5f4780b65685ad15636bdab0010cc28 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Fri, 3 Jul 2020 19:31:21 +1200 Subject: Add method to enable cookies in JS (#16113) * Better detection for cookies for browser plugins report * rebuilt piwik.js * improve comment * Add method to enable cookies * rebuilt piwik.js * fix test * no longer include cookie in fingerprint * only ignore cookies in fingerprint for IE * fix tests * fix test * tweak enablecookies * rebuilt piwik.js * send tracking request if needed when enable cookies * rebuilt piwik.js * tweak code * update docs * rebuilt piwik.js * Update Visit.php * fix tests * rebuilt piwik.js Co-authored-by: diosmosis --- piwik.js | 66 ++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) (limited to 'piwik.js') diff --git a/piwik.js b/piwik.js index fa093a5122..4e61b790b4 100644 --- a/piwik.js +++ b/piwik.js @@ -38,39 +38,39 @@ if(!aq){aq="/"}}return aq},findMediaUrlInNode:function(at){if(!at){return}var aq if(aq&&au.offsetTop){aq=(au.offsetTop+at.height)>0}var ap=ar.clientWidth;if(T.innerWidth&&ap>T.innerWidth){ap=T.innerWidth}var ao=ar.clientHeight;if(T.innerHeight&&ao>T.innerHeight){ao=T.innerHeight}return((at.bottom>0||aq)&&at.right>0&&at.left=0){dl=dl.slice(0,dk)}dk=dl.lastIndexOf("/");if(dk!==dl.length-1){dl=dl.slice(0,dk+1)}return dl+dj}function cF(dl,dj){var dk;dl=String(dl).toLowerCase();dj=String(dj).toLowerCase();if(dl===dj){return true}if(dj.slice(0,1)==="."){if(dl===dj.slice(1)){return true}dk=dl.length-dj.length;if((dk>0)&&(dl.slice(dk)===dj)){return true}}return false}function ck(dj){var dk=document.createElement("a"); -if(dj.indexOf("//")!==0&&dj.indexOf("http")!==0){if(dj.indexOf("*")===0){dj=dj.substr(1)}if(dj.indexOf(".")===0){dj=dj.substr(1)}dj="http://"+dj}dk.href=v.toAbsoluteUrl(dj);if(dk.pathname){return dk.pathname}return""}function a3(dk,dj){if(!aj(dj,"/")){dj="/"+dj}if(!aj(dk,"/")){dk="/"+dk}var dl=(dj==="/"||dj==="/*");if(dl){return true}if(dk===dj){return true}dj=String(dj).toLowerCase();dk=String(dk).toLowerCase();if(R(dj,"*")){dj=dj.slice(0,-1);dl=(!dj||dj==="/");if(dl){return true}if(dk===dj){return true}return dk.indexOf(dj)===0}if(!R(dk,"/")){dk+="/"}if(!R(dj,"/")){dj+="/"}return dk.indexOf(dj)===0}function ar(dn,dq){var dk,dj,dl,dm,dp;for(dk=0;dk0)&&(dm.slice(dl)===dj)){return true}}}return false}function cp(dj,dl){dj=dj.replace("send_image=0","send_image=1"); -var dk=new Image(1,1);dk.onload=function(){E=0;if(typeof dl==="function"){dl({request:dj,trackerUrl:aD,success:true})}};dk.onerror=function(){if(typeof dl==="function"){dl({request:dj,trackerUrl:aD,success:false})}};dk.src=aD+(aD.indexOf("?")<0?"?":"&")+dj}function cC(dj){if(da==="POST"){return true}return dj&&(dj.length>2000||dj.indexOf('{"requests"')===0)}function aJ(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a6(dn,dr,dq){var dl=aJ();if(!dl){return false}var dm={type:"application/x-www-form-urlencoded; charset=UTF-8"};var ds=false;var dk=aD;try{var dj=new Blob([dn],dm);if(dq&&!cC(dn)){dj=new Blob([],dm);dk=dk+(dk.indexOf("?")<0?"?":"&")+dn}ds=h.sendBeacon(dk,dj)}catch(dp){return false}if(ds&&typeof dr==="function"){dr({request:dn,trackerUrl:aD,success:true,isSendBeacon:true})}return ds}function c4(dk,dl,dj){if(!J(dj)||null===dj){dj=true}if(m&&a6(dk,dl,dj)){return}setTimeout(function(){if(m&&a6(dk,dl,dj)){return}var dp;try{var dn=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; -dn.open("POST",aD,true);dn.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dq=m&&a6(dk,dl,dj);if(!dq&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aD,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dl==="function")){dl({request:dk,trackerUrl:aD,success:true,xhr:this})}}};dn.setRequestHeader("Content-Type",cw);dn.withCredentials=true;dn.send(dk)}catch(dm){dp=m&&a6(dk,dl,dj);if(!dp&&dj){cp(dk,dl)}else{if(typeof dl==="function"){dl({request:dk,trackerUrl:aD,success:false})}}}},50)}function cf(dk){var dj=new Date();var dl=dj.getTime()+dk;if(!r||dl>r){r=dl}}function cn(dj){if(cb||!a5||!bA){return}cb=setTimeout(function dk(){cb=null;if(!bc){bc=(!G.hasFocus||G.hasFocus())}if(!bc){cn(a5);return}if(bQ()){return}var dl=new Date(),dm=a5-(dl.getTime()-cY);dm=Math.min(a5,dm);cn(dm)},dj||a5)}function bJ(){if(!cb){return}clearTimeout(cb);cb=null}function ba(){bc=true;cR=new Date().getTime()}function dd(){var dj=new Date().getTime(); -return !cR||(dj-cR)>a5}function ay(){if(dd()){bQ()}bJ()}function dg(){if(aN||!a5){return}aN=true;an(T,"focus",ba);an(T,"blur",ay);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aN&&dd()){bQ()}}})}function cB(dn){var dk=new Date();var dj=dk.getTime();cY=dj;if(cA&&dj=dj.length){return[dj]}var dk=0;var dl=dj.length;var dm=[];for(dk;dk=dk&&dj<=(dk+aZ)){return true}}return false -}function dh(dj){if(!cM){return""}var dn=f(dj,av);if(!dn){return""}dn=String(dn);var dl=new RegExp("^[a-zA-Z0-9]+$");if(dn.length===32&&dl.test(dn)){var dk=dn.substr(16,32);if(c2(dk)){var dm=dn.substr(0,16);return dm}}return""}function cN(){if(!bN){bN=dh(bM)}var dl=new Date(),dj=Math.round(dl.getTime()/1000),dk=aT("id"),dp=aC(dk),dn,dm;if(dp){dn=dp.split(".");dn.unshift("0");if(bN.length){dn[1]=bN}return dn}if(bN.length){dm=bN}else{if("0"===b4()){dm=""}else{dm=cQ()}}dn=["1",dm,dj,0,dj,"",""];return dn}function aY(){var dr=cN(),dm=dr[0],dn=dr[1],dk=dr[2],dj=dr[3],dp=dr[4],dl=dr[5];if(!J(dr[6])){dr[6]=""}var dq=dr[6];return{newVisitor:dm,uuid:dn,createTs:dk,visitCount:dj,currentVisitTs:dp,lastVisitTs:dl,lastEcommerceOrderTs:dq}}function aG(){var dm=new Date(),dk=dm.getTime(),dn=aY().createTs;var dj=parseInt(dn,10);var dl=(dj*1000)+cI-dk;return dl}function aL(dj){if(!b5){return}var dl=new Date(),dk=Math.round(dl.getTime()/1000);if(!J(dj)){dj=aY()}var dm=dj.uuid+"."+dj.createTs+"."+dj.visitCount+"."+dk+"."+dj.lastVisitTs+"."+dj.lastEcommerceOrderTs; -de(aT("id"),dm,aG(),bo,cX,bR)}function bL(){var dj=aC(aT("ref"));if(dj.length){try{dj=JSON_PIWIK.parse(dj);if(W(dj)){return dj}}catch(dk){}}return["","",0,""]}function bv(dk){var dj="testvalue";de("test",dj,10000,null,dk);if(aC("test")===dj){bX("test",null,dk);return true}return false}function aE(){var dk=bk;bk=false;var dj,dl;for(dj=0;djdJ){dA.visitCount++;dA.lastVisitTs=dA.currentVisitTs}if(!bu||!ds.length){for(dG in cq){if(Object.prototype.hasOwnProperty.call(cq,dG)){ds=f(dK,cq[dG]);if(ds.length){break}}}for(dG in bF){if(Object.prototype.hasOwnProperty.call(bF,dG)){dj=f(dK,bF[dG]);if(dj.length){break}}}}dO=d(bm);dv=dF.length?d(dF):"";if(dO.length&&!aV(dO)&&(!bu||!dv.length||aV(dv))){dF=bm}if(dF.length||ds.length){dr=du;dE=[ds,dj,dr,b1(dF.slice(0,dn))];de(dB,JSON_PIWIK.stringify(dE),c5,bo,cX)}}dl+="&idsite="+b5+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dk.getHours()+"&m="+dk.getMinutes()+"&s="+dk.getSeconds()+"&url="+t(b1(dK))+(bm.length?"&urlref="+t(b1(bm)):"")+((bx&&bx.length)?"&uid="+t(bx):"")+"&_id="+dA.uuid+"&_idts="+dA.createTs+"&_idvc="+dA.visitCount+"&_idn="+dA.newVisitor+(ds.length?"&_rcn="+t(ds):"")+(dj.length?"&_rck="+t(dj):"")+"&_refts="+dr+"&_viewts="+dA.lastVisitTs+(String(dA.lastEcommerceOrderTs).length?"&_ects="+dA.lastEcommerceOrderTs:"")+(String(dF).length?"&_ref="+t(b1(dF.slice(0,dn))):"")+(dx?"&cs="+t(dx):"")+"&send_image=0"; -var dN=cG();for(dG in dN){if(Object.prototype.hasOwnProperty.call(dN,dG)){dl+="&"+dG+"="+dN[dG]}}var dM=[];if(dH){for(dG in dH){if(Object.prototype.hasOwnProperty.call(dH,dG)&&/^dimension\d+$/.test(dG)){var dq=dG.replace("dimension","");dM.push(parseInt(dq,10));dM.push(String(dq));dl+="&"+dG+"="+t(dH[dG]);delete dH[dG]}}}if(dH&&B(dH)){dH=null}for(dG in bl){if(Object.prototype.hasOwnProperty.call(bl,dG)){var dw=(-1===M(dM,dG));if(dw){dl+="&dimension"+dG+"="+t(bl[dG])}}}if(dH){dl+="&data="+t(JSON_PIWIK.stringify(dH))}else{if(ao){dl+="&data="+t(JSON_PIWIK.stringify(ao))}}function dt(dP,dQ){var dR=JSON_PIWIK.stringify(dP);if(dR.length>2){return"&"+dQ+"="+t(dR)}return""}var dL=di(bV);var dC=di(cl);dl+=dt(dL,"cvar");dl+=dt(dC,"e_cvar");if(aQ){dl+=dt(aQ,"_cvar");for(dG in dD){if(Object.prototype.hasOwnProperty.call(dD,dG)){if(aQ[dG][0]===""||aQ[dG][1]===""){delete aQ[dG]}}}if(bP){de(dy,JSON_PIWIK.stringify(aQ),co,bo,cX)}}if(a2){if(cm){dl+=">_ms="+cm}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){dl+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) -}}}if(aK){dl+="&pv_id="+aK}dA.lastEcommerceOrderTs=J(dm)&&String(dm).length?dm:dA.lastEcommerceOrderTs;aL(dA);cc();dl+=ac(dI,{tracker:bH,request:dl});if(cZ.length){dl+="&"+cZ}if(A(ca)){dl=ca(dl)}return dl}bQ=function a7(){var dj=new Date();dj=dj.getTime();if(!cY){return false}if((cY+(1000*c7))<=dj){return false}if(cY+a5<=dj){bH.ping();return true}return false};function bp(dm,dl,ds,dn,dj,dv){var dq="idgoal=0",dr,dk=new Date(),dt=[],du,dp=String(dm).length;if(dp){dq+="&ec_id="+t(dm);dr=Math.round(dk.getTime()/1000)}dq+="&revenue="+dl;if(String(ds).length){dq+="&ec_st="+ds}if(String(dn).length){dq+="&ec_tx="+dn}if(String(dj).length){dq+="&ec_sh="+dj}if(String(dv).length){dq+="&ec_dt="+dv}if(c0){for(du in c0){if(Object.prototype.hasOwnProperty.call(c0,du)){if(!J(c0[du][1])){c0[du][1]=""}if(!J(c0[du][2])){c0[du][2]=""}if(!J(c0[du][3])||String(c0[du][3]).length===0){c0[du][3]=0}if(!J(c0[du][4])||String(c0[du][4]).length===0){c0[du][4]=1}dt.push(c0[du])}}dq+="&ec_items="+t(JSON_PIWIK.stringify(dt)) -}dq=cs(dq,ao,"ecommerce",dr);bE(dq,bI);if(dp){c0={}}}function bY(dj,dn,dm,dl,dk,dp){if(String(dj).length&&J(dn)){bp(dj,dn,dm,dl,dk,dp)}}function br(dj){if(J(dj)){bp("",dj,"","","","")}}function bZ(dk,dm,dl){aK=bg();var dj=cs("action_name="+t(al(dk||bi)),dm,"log");bE(dj,bI,dl)}function a0(dl,dk){var dm,dj="(^| )(piwik[_-]"+dk;if(dl){for(dm=0;dm0){dn=parseInt(dn,10);dr(dn)}})}var bB={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dj=this.requests;this.requests=[];if(dj.length===1){bE(dj[0],bI)}else{df(dj,bI)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dk){if(!this.canQueue()){df(dk,bI);return}var dj;for(dj=0;dj0){if(!J(dk)){dk=""}if(!w(dk)){dk=String(dk)}bl[dj]=dk}};this.getCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0&&Object.prototype.hasOwnProperty.call(bl,dj)){return bl[dj]}};this.deleteCustomDimension=function(dj){dj=parseInt(dj,10);if(dj>0){delete bl[dj]}};this.setCustomVariable=function(dk,dj,dn,dl){var dm;if(!J(dl)){dl="visit"}if(!J(dj)){return}if(!J(dn)){dn=""}if(dk>0){dj=!w(dj)?String(dj):dj;dn=!w(dn)?String(dn):dn;dm=[dj.slice(0,bs),dn.slice(0,bs)];if(dl==="visit"||dl===2){cD();aQ[dk]=dm}else{if(dl==="page"||dl===3){bV[dk]=dm}else{if(dl==="event"){cl[dk]=dm}}}}};this.getCustomVariable=function(dk,dl){var dj; -if(!J(dl)){dl="visit"}if(dl==="page"||dl===3){dj=bV[dk]}else{if(dl==="event"){dj=cl[dk]}else{if(dl==="visit"||dl===2){cD();dj=aQ[dk]}}}if(!J(dj)||(dj&&dj[0]==="")){return false}return dj};this.deleteCustomVariable=function(dj,dk){if(this.getCustomVariable(dj,dk)){this.setCustomVariable(dj,"","",dk)}};this.deleteCustomVariables=function(dj){if(dj==="page"||dj===3){bV={}}else{if(dj==="event"){cl={}}else{if(dj==="visit"||dj===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bP=true};this.setLinkTrackingTimer=function(dj){bI=dj};this.getLinkTrackingTimer=function(){return bI};this.setDownloadExtensions=function(dj){if(w(dj)){dj=dj.split("|")}c6=dj};this.addDownloadExtensions=function(dk){var dj;if(w(dk)){dk=dk.split("|")}for(dj=0;dj1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"]; +if(at!==String(av)){return false}var au=aq[2],ao=aq[3],ar=aq[4];if(!ar){ar=""}else{if(ar.indexOf("&segment=")===0){ar=ar.substr("&segment=".length)}}T.name=ax+"###"+au+"###"+ao+"###"+ar}var aw=T.name.split("###");return aw.length===4&&aw[0]===ax}function Z(ap,aw,ar){var av=T.name.split("###"),au=av[1],ao=av[2],at=av[3],aq=O(ap,aw);o(aq+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aq,ar,au,ao,at)})}function u(){var aq;try{aq=T.frameElement}catch(ap){return true}if(J(aq)){return(aq&&String(aq.nodeName).toLowerCase()==="iframe")?true:false}try{return T.self!==T.top}catch(ao){return true}}function Q(ce,b9){var bI=this,be="mtm_consent",cM="mtm_consent_removed",b4=aa(G.domain,T.location.href,K()),cV=L(b4[0]),bN=p(b4[1]),bn=p(b4[2]),cT=false,ci="GET",db=ci,aI="application/x-www-form-urlencoded; charset=UTF-8",cx=aI,aE=ce||"",bH="",c0="",b6=b9||"",by="",bO="",a5,bj="",c7=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ay=[cV],bz=[],bL=[],a9=[],bJ=500,cX=false,cI,a6,bR,c8=1800,bP,ao,cr=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bG=["pk_kwd","piwik_kwd","utm_term"],bk="_pk_",av="pk_vid",a0=180,cY,bp,bS=false,bl=false,cQ,bf,bv,cJ=33955200000,cp=1800000,c6=15768000000,a3=true,cn=0,bQ=false,aR=false,cb,bW={},cm={},bm={},bt=200,c1={},c9={},ca=[],cf=false,cB=false,ap=false,da=false,cN=false,aO=false,bd=u(),cS=null,cZ=null,cc,aS,bA,b7=am,bo,aL,cs=0,bu=["id","ses","cvar","ref"],cA=false,bB=null,cK=[],ax=U++,aw=false; +try{bj=G.title}catch(cy){bj=""}function df(dr,dp,dn,dq,dm,dl){if(bl){return}var dk;if(dn){dk=new Date();dk.setTime(dk.getTime()+dn)}G.cookie=dr+"="+t(dp)+(dn?";expires="+dk.toGMTString():"")+";path="+(dq||"/")+(dm?";domain="+dm:"")+(dl?";secure":"")+";SameSite=Lax"}function aD(dm){if(bl){return 0}var dk=new RegExp("(^|;)[ ]*"+dm+"=([^;]*)"),dl=dk.exec(G.cookie);return dl?S(dl[2]):0}bB=!aD(cM);function b2(dk){var dl;dk=k(dk,av);if(bP){dl=new RegExp("#.*");return dk.replace(dl,"")}return dk}function bV(dm,dk){var dn=s(dk),dl;if(dn){return dk}if(dk.slice(0,1)==="/"){return s(dm)+"://"+d(dm)+dk}dm=b2(dm);dl=dm.indexOf("?");if(dl>=0){dm=dm.slice(0,dl)}dl=dm.lastIndexOf("/");if(dl!==dm.length-1){dm=dm.slice(0,dl+1)}return dm+dk}function cG(dm,dk){var dl;dm=String(dm).toLowerCase();dk=String(dk).toLowerCase();if(dm===dk){return true}if(dk.slice(0,1)==="."){if(dm===dk.slice(1)){return true}dl=dm.length-dk.length;if((dl>0)&&(dm.slice(dl)===dk)){return true}}return false}function cl(dk){var dl=document.createElement("a"); +if(dk.indexOf("//")!==0&&dk.indexOf("http")!==0){if(dk.indexOf("*")===0){dk=dk.substr(1)}if(dk.indexOf(".")===0){dk=dk.substr(1)}dk="http://"+dk}dl.href=v.toAbsoluteUrl(dk);if(dl.pathname){return dl.pathname}return""}function a4(dl,dk){if(!aj(dk,"/")){dk="/"+dk}if(!aj(dl,"/")){dl="/"+dl}var dm=(dk==="/"||dk==="/*");if(dm){return true}if(dl===dk){return true}dk=String(dk).toLowerCase();dl=String(dl).toLowerCase();if(R(dk,"*")){dk=dk.slice(0,-1);dm=(!dk||dk==="/");if(dm){return true}if(dl===dk){return true}return dl.indexOf(dk)===0}if(!R(dl,"/")){dl+="/"}if(!R(dk,"/")){dk+="/"}return dl.indexOf(dk)===0}function ar(dp,dr){var dl,dk,dm,dn,dq;for(dl=0;dl0)&&(dn.slice(dm)===dk)){return true}}}return false}function cq(dk,dm){dk=dk.replace("send_image=0","send_image=1"); +var dl=new Image(1,1);dl.onload=function(){E=0;if(typeof dm==="function"){dm({request:dk,trackerUrl:aE,success:true})}};dl.onerror=function(){if(typeof dm==="function"){dm({request:dk,trackerUrl:aE,success:false})}};dl.src=aE+(aE.indexOf("?")<0?"?":"&")+dk}function cD(dk){if(db==="POST"){return true}return dk&&(dk.length>2000||dk.indexOf('{"requests"')===0)}function aK(){return"object"===typeof h&&"function"===typeof h.sendBeacon&&"function"===typeof Blob}function a7(dp,ds,dr){var dm=aK();if(!dm){return false}var dn={type:"application/x-www-form-urlencoded; charset=UTF-8"};var dt=false;var dl=aE;try{var dk=new Blob([dp],dn);if(dr&&!cD(dp)){dk=new Blob([],dn);dl=dl+(dl.indexOf("?")<0?"?":"&")+dp}dt=h.sendBeacon(dl,dk)}catch(dq){return false}if(dt&&typeof ds==="function"){ds({request:dp,trackerUrl:aE,success:true,isSendBeacon:true})}return dt}function c5(dl,dm,dk){if(!J(dk)||null===dk){dk=true}if(m&&a7(dl,dm,dk)){return}setTimeout(function(){if(m&&a7(dl,dm,dk)){return}var dq;try{var dp=T.XMLHttpRequest?new T.XMLHttpRequest():T.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null; +dp.open("POST",aE,true);dp.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)){var dr=m&&a7(dl,dm,dk);if(!dr&&dk){cq(dl,dm)}else{if(typeof dm==="function"){dm({request:dl,trackerUrl:aE,success:false,xhr:this})}}}else{if(this.readyState===4&&(typeof dm==="function")){dm({request:dl,trackerUrl:aE,success:true,xhr:this})}}};dp.setRequestHeader("Content-Type",cx);dp.withCredentials=true;dp.send(dl)}catch(dn){dq=m&&a7(dl,dm,dk);if(!dq&&dk){cq(dl,dm)}else{if(typeof dm==="function"){dm({request:dl,trackerUrl:aE,success:false})}}}},50)}function cg(dl){var dk=new Date();var dm=dk.getTime()+dl;if(!r||dm>r){r=dm}}function co(dk){if(cc||!a6||!bB){return}cc=setTimeout(function dl(){cc=null;if(!bd){bd=(!G.hasFocus||G.hasFocus())}if(!bd){co(a6);return}if(bR()){return}var dm=new Date(),dn=a6-(dm.getTime()-cZ);dn=Math.min(a6,dn);co(dn)},dk||a6)}function bK(){if(!cc){return}clearTimeout(cc);cc=null}function bb(){bd=true;cS=new Date().getTime()}function de(){var dk=new Date().getTime(); +return !cS||(dk-cS)>a6}function az(){if(de()){bR()}bK()}function dh(){if(aO||!a6){return}aO=true;an(T,"focus",bb);an(T,"blur",az);ab++;e.addPlugin("HeartBeat"+ab,{unload:function(){if(aO&&de()){bR()}}})}function cC(dp){var dl=new Date();var dk=dl.getTime();cZ=dk;if(cB&&dk=dk.length){return[dk]}var dl=0;var dm=dk.length;var dn=[];for(dl;dl=dl&&dk<=(dl+a0)){return true}}return false +}function di(dk){if(!cN){return""}var dp=f(dk,av);if(!dp){return""}dp=String(dp);var dm=new RegExp("^[a-zA-Z0-9]+$");if(dp.length===32&&dm.test(dp)){var dl=dp.substr(16,32);if(c3(dl)){var dn=dp.substr(0,16);return dn}}return""}function cO(){if(!bO){bO=di(bN)}var dm=new Date(),dk=Math.round(dm.getTime()/1000),dl=aU("id"),dq=aD(dl),dp,dn;if(dq){dp=dq.split(".");dp.unshift("0");if(bO.length){dp[1]=bO}return dp}if(bO.length){dn=bO}else{if("0"===b5()){dn=""}else{dn=cR()}}dp=["1",dn,dk,0,dk,"",""];return dp}function aZ(){var ds=cO(),dn=ds[0],dp=ds[1],dl=ds[2],dk=ds[3],dq=ds[4],dm=ds[5];if(!J(ds[6])){ds[6]=""}var dr=ds[6];return{newVisitor:dn,uuid:dp,createTs:dl,visitCount:dk,currentVisitTs:dq,lastVisitTs:dm,lastEcommerceOrderTs:dr}}function aH(){var dn=new Date(),dl=dn.getTime(),dp=aZ().createTs;var dk=parseInt(dp,10);var dm=(dk*1000)+cJ-dl;return dm}function aM(dk){if(!b6){return}var dm=new Date(),dl=Math.round(dm.getTime()/1000);if(!J(dk)){dk=aZ()}var dn=dk.uuid+"."+dk.createTs+"."+dk.visitCount+"."+dl+"."+dk.lastVisitTs+"."+dk.lastEcommerceOrderTs; +df(aU("id"),dn,aH(),bp,cY,bS)}function bM(){var dk=aD(aU("ref"));if(dk.length){try{dk=JSON_PIWIK.parse(dk);if(W(dk)){return dk}}catch(dl){}}return["","",0,""]}function bw(dl){var dk="testvalue";df("test",dk,10000,null,dl);if(aD("test")===dk){bY("test",null,dl);return true}return false}function aF(){var dl=bl;bl=false;var dk,dm;for(dk=0;dkdK){dB.visitCount++;dB.lastVisitTs=dB.currentVisitTs}if(!bv||!dt.length){for(dH in cr){if(Object.prototype.hasOwnProperty.call(cr,dH)){dt=f(dL,cr[dH]);if(dt.length){break}}}for(dH in bG){if(Object.prototype.hasOwnProperty.call(bG,dH)){dk=f(dL,bG[dH]);if(dk.length){break}}}}dP=d(bn);dw=dG.length?d(dG):"";if(dP.length&&!aW(dP)&&(!bv||!dw.length||aW(dw))){dG=bn}if(dG.length||dt.length){ds=dv;dF=[dt,dk,ds,b2(dG.slice(0,dp))];df(dC,JSON_PIWIK.stringify(dF),c6,bp,cY)}}dm+="&idsite="+b6+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+dl.getHours()+"&m="+dl.getMinutes()+"&s="+dl.getSeconds()+"&url="+t(b2(dL))+(bn.length?"&urlref="+t(b2(bn)):"")+((by&&by.length)?"&uid="+t(by):"")+"&_id="+dB.uuid+"&_idts="+dB.createTs+"&_idvc="+dB.visitCount+"&_idn="+dB.newVisitor+(dt.length?"&_rcn="+t(dt):"")+(dk.length?"&_rck="+t(dk):"")+"&_refts="+ds+"&_viewts="+dB.lastVisitTs+(String(dB.lastEcommerceOrderTs).length?"&_ects="+dB.lastEcommerceOrderTs:"")+(String(dG).length?"&_ref="+t(b2(dG.slice(0,dp))):"")+(dy?"&cs="+t(dy):"")+"&send_image=0"; +var dO=cH();for(dH in dO){if(Object.prototype.hasOwnProperty.call(dO,dH)){dm+="&"+dH+"="+dO[dH]}}var dN=[];if(dI){for(dH in dI){if(Object.prototype.hasOwnProperty.call(dI,dH)&&/^dimension\d+$/.test(dH)){var dr=dH.replace("dimension","");dN.push(parseInt(dr,10));dN.push(String(dr));dm+="&"+dH+"="+t(dI[dH]);delete dI[dH]}}}if(dI&&B(dI)){dI=null}for(dH in bm){if(Object.prototype.hasOwnProperty.call(bm,dH)){var dx=(-1===M(dN,dH));if(dx){dm+="&dimension"+dH+"="+t(bm[dH])}}}if(dI){dm+="&data="+t(JSON_PIWIK.stringify(dI))}else{if(ao){dm+="&data="+t(JSON_PIWIK.stringify(ao))}}function du(dQ,dR){var dS=JSON_PIWIK.stringify(dQ);if(dS.length>2){return"&"+dR+"="+t(dS)}return""}var dM=dj(bW);var dD=dj(cm);dm+=du(dM,"cvar");dm+=du(dD,"e_cvar");if(aR){dm+=du(aR,"_cvar");for(dH in dE){if(Object.prototype.hasOwnProperty.call(dE,dH)){if(aR[dH][0]===""||aR[dH][1]===""){delete aR[dH]}}}if(bQ){df(dz,JSON_PIWIK.stringify(aR),cp,bp,cY)}}if(a3){if(cn){dm+=">_ms="+cn}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){dm+=">_ms="+(i.timing.responseEnd-i.timing.requestStart) +}}}if(aL){dm+="&pv_id="+aL}dB.lastEcommerceOrderTs=J(dn)&&String(dn).length?dn:dB.lastEcommerceOrderTs;aM(dB);cd();dm+=ac(dJ,{tracker:bI,request:dm});if(c0.length){dm+="&"+c0}if(A(cb)){dm=cb(dm)}return dm}bR=function a8(){var dk=new Date();dk=dk.getTime();if(!cZ){return false}if((cZ+(1000*c8))<=dk){return false}if(cZ+a6<=dk){bI.ping();return true}return false};function bq(dn,dm,dt,dp,dk,dw){var dr="idgoal=0",ds,dl=new Date(),du=[],dv,dq=String(dn).length;if(dq){dr+="&ec_id="+t(dn);ds=Math.round(dl.getTime()/1000)}dr+="&revenue="+dm;if(String(dt).length){dr+="&ec_st="+dt}if(String(dp).length){dr+="&ec_tx="+dp}if(String(dk).length){dr+="&ec_sh="+dk}if(String(dw).length){dr+="&ec_dt="+dw}if(c1){for(dv in c1){if(Object.prototype.hasOwnProperty.call(c1,dv)){if(!J(c1[dv][1])){c1[dv][1]=""}if(!J(c1[dv][2])){c1[dv][2]=""}if(!J(c1[dv][3])||String(c1[dv][3]).length===0){c1[dv][3]=0}if(!J(c1[dv][4])||String(c1[dv][4]).length===0){c1[dv][4]=1}du.push(c1[dv])}}dr+="&ec_items="+t(JSON_PIWIK.stringify(du)) +}dr=ct(dr,ao,"ecommerce",ds);bF(dr,bJ);if(dq){c1={}}}function bZ(dk,dp,dn,dm,dl,dq){if(String(dk).length&&J(dp)){bq(dk,dp,dn,dm,dl,dq)}}function bs(dk){if(J(dk)){bq("",dk,"","","","")}}function b0(dl,dn,dm){aL=bh();var dk=ct("action_name="+t(al(dl||bj)),dn,"log");bF(dk,bJ,dm)}function a1(dm,dl){var dn,dk="(^| )(piwik[_-]"+dl;if(dm){for(dn=0;dn0){dp=parseInt(dp,10);ds(dp)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var dk=this.requests;this.requests=[];if(dk.length===1){bF(dk[0],bJ)}else{dg(dk,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dl){if(!this.canQueue()){dg(dl,bJ);return}var dk;for(dk=0;dk0){if(!J(dl)){dl=""}if(!w(dl)){dl=String(dl)}bm[dk]=dl}};this.getCustomDimension=function(dk){dk=parseInt(dk,10);if(dk>0&&Object.prototype.hasOwnProperty.call(bm,dk)){return bm[dk]}};this.deleteCustomDimension=function(dk){dk=parseInt(dk,10);if(dk>0){delete bm[dk]}};this.setCustomVariable=function(dl,dk,dp,dm){var dn;if(!J(dm)){dm="visit"}if(!J(dk)){return}if(!J(dp)){dp=""}if(dl>0){dk=!w(dk)?String(dk):dk;dp=!w(dp)?String(dp):dp;dn=[dk.slice(0,bt),dp.slice(0,bt)];if(dm==="visit"||dm===2){cE();aR[dl]=dn}else{if(dm==="page"||dm===3){bW[dl]=dn}else{if(dm==="event"){cm[dl]=dn}}}}};this.getCustomVariable=function(dl,dm){var dk; +if(!J(dm)){dm="visit"}if(dm==="page"||dm===3){dk=bW[dl]}else{if(dm==="event"){dk=cm[dl]}else{if(dm==="visit"||dm===2){cE();dk=aR[dl]}}}if(!J(dk)||(dk&&dk[0]==="")){return false}return dk};this.deleteCustomVariable=function(dk,dl){if(this.getCustomVariable(dk,dl)){this.setCustomVariable(dk,"","",dl)}};this.deleteCustomVariables=function(dk){if(dk==="page"||dk===3){bW={}}else{if(dk==="event"){cm={}}else{if(dk==="visit"||dk===2){aR={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(dk){bJ=dk};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(dk){if(w(dk)){dk=dk.split("|")}c7=dk};this.addDownloadExtensions=function(dl){var dk;if(w(dl)){dl=dl.split("|")}for(dk=0;dk1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setVisitorId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","enableCookies","requireConsent","setConsentGiven"]; function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar