From 73fa23c8e6478e2b378fb6d255f042484486673f Mon Sep 17 00:00:00 2001 From: Matthieu Aubry Date: Fri, 15 Dec 2017 10:00:16 +1300 Subject: JS Tracker: make setSecureCookie work (#12355) * JS Tracker: make setSecureCookie work * update test --- piwik.js | 58 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'piwik.js') diff --git a/piwik.js b/piwik.js index 546991b5ec..de42fd2cae 100644 --- a/piwik.js +++ b/piwik.js @@ -38,35 +38,35 @@ if(aj){return aj}aj=Z.findFirstNodeHavingAttribute(ai,this.CONTENT_TARGET_ATTR); }var ai=al.clientHeight;if(R.innerHeight&&ai>R.innerHeight){ai=R.innerHeight}return((am.bottom>0||ak)&&am.right>0&&am.left=0){c0=c0.slice(0,cZ)}cZ=c0.lastIndexOf("/");if(cZ!==c0.length-1){c0=c0.slice(0,cZ+1)}return c0+cY}function cr(c0,cY){var cZ;c0=String(c0).toLowerCase();cY=String(cY).toLowerCase();if(c0===cY){return true}if(cY.slice(0,1)==="."){if(c0===cY.slice(1)){return true}cZ=c0.length-cY.length;if((cZ>0)&&(c0.slice(cZ)===cY)){return true}}return false}function b6(cY){var cZ=document.createElement("a"); -if(cY.indexOf("//")!==0&&cY.indexOf("http")!==0){if(cY.indexOf("*")===0){cY=cY.substr(1)}if(cY.indexOf(".")===0){cY=cY.substr(1)}cY="http://"+cY}cZ.href=u.toAbsoluteUrl(cY);if(cZ.pathname){return cZ.pathname}return""}function aV(cZ,cY){if(!ad(cY,"/")){cY="/"+cY}if(!ad(cZ,"/")){cZ="/"+cZ}var c0=(cY==="/"||cY==="/*");if(c0){return true}if(cZ===cY){return true}cY=String(cY).toLowerCase();cZ=String(cZ).toLowerCase();if(P(cY,"*")){cY=cY.slice(0,-1);c0=(!cY||cY==="/");if(c0){return true}if(cZ===cY){return true}return cZ.indexOf(cY)===0}if(!P(cZ,"/")){cZ+="/"}if(!P(cY,"/")){cY+="/"}return cZ.indexOf(cY)===0}function al(c2,c4){var cZ,cY,c0,c1,c3;for(cZ=0;cZ0)&&(c1.slice(c0)===cY)){return true}}}return false}function cc(cY,c0){var cZ=new Image(1,1); -cZ.onload=function(){C=0;if(typeof c0==="function"){c0()}};cY=cY.replace("send_image=0","send_image=1");cZ.src=aw+(aw.indexOf("?")<0?"?":"&")+cY}function cL(cZ,c2,cY){if(!H(cY)||null===cY){cY=true}try{var c1=R.XMLHttpRequest?new R.XMLHttpRequest():R.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;c1.open("POST",aw,true);c1.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cY){cc(cZ,c2)}else{if(this.readyState===4&&(typeof c2==="function")){c2()}}};c1.setRequestHeader("Content-Type",cj);c1.send(cZ)}catch(c0){if(cY){cc(cZ,c2)}}}function b1(cZ){var cY=new Date();var c0=cY.getTime()+cZ;if(!q||c0>q){q=c0}}function b9(cY){if(bX||!aX){return}bX=setTimeout(function cZ(){bX=null;if(!a3){a3=(!E.hasFocus||E.hasFocus())}if(!a3){b9(aX);return}if(bD()){return}var c0=new Date(),c1=aX-(c0.getTime()-cF);c1=Math.min(aX,c1);b9(c1)},cY||aX)}function bw(){if(!bX){return}clearTimeout(bX);bX=null}function a1(){a3=true;if(bD()){return}b9()}function aq(){bw()}function cV(){if(aF||!aX){return -}aF=true;ah(R,"focus",a1);ah(R,"blur",aq);b9()}function cn(c2){var cZ=new Date();var cY=cZ.getTime();cF=cY;if(cm&&cY2000){cL(cZ,c0)}else{cc(cZ,c0)}b1(cY)})}if(!aF){cV()}else{b9()}}function b5(cY){if(cy){return false}return(cY&&cY.length)}function cU(c0,cY){if(!b5(c0)){return}var cZ='{"requests":["?'+c0.join('","?')+'"]}';cn(function(){cL(cZ,null,false);b1(cY)})}function aK(cY){return a9+cY+"."+bR+"."+bd}function bQ(){if(ba){return"0"}if(!H(h.cookieEnabled)){var cY=aK("testcookie");cT(cY,"1");return av(cY)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function a7(){bd=bS((cE||cC)+(be||"/")).slice(0,4)}function bI(){var cZ=aK("cvar"),cY=av(cZ);if(cY.length){cY=JSON_PIWIK.parse(cY);if(T(cY)){return cY}}return{}}function co(){if(aH===false){aH=bI()}}function cz(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cO)+(new Date()).getTime()+Math.random()).slice(0,16) -}function ar(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cO)).slice(0,6)}function a5(){return Math.floor((new Date()).getTime()/1000)}function aB(){var cZ=a5();var c0=ar();var cY=String(cZ)+c0;return cY}function cK(c0){c0=String(c0);var c3=ar();var c1=c3.length;var c2=c0.substr(-1*c1,c1);var cZ=parseInt(c0.substr(0,c0.length-c1),10);if(cZ&&c2&&c2===c3){var cY=a5();if(aR<=0){return true}if(cY>=cZ&&cY<=(cZ+aR)){return true}}return false}function cW(cY){if(!cv){return""}var c2=f(cY,ao);if(!c2){return""}c2=String(c2);var c0=new RegExp("^[a-zA-Z0-9]+$");if(c2.length===32&&c0.test(c2)){var cZ=c2.substr(16,32);if(cK(cZ)){var c1=c2.substr(0,16);return c1}}return""}function cw(){if(!bA){bA=cW(bz)}var c0=new Date(),cY=Math.round(c0.getTime()/1000),cZ=aK("id"),c3=av(cZ),c2,c1;if(c3){c2=c3.split(".");c2.unshift("0");if(bA.length){c2[1]=bA}return c2}if(bA.length){c1=bA}else{if("0"===bQ()){c1=""}else{c1=cz()}}c2=["1",c1,cY,0,cY,"",""];return c2}function aP(){var c5=cw(),c1=c5[0],c2=c5[1],cZ=c5[2],cY=c5[3],c3=c5[4],c0=c5[5]; -if(!H(c5[6])){c5[6]=""}var c4=c5[6];return{newVisitor:c1,uuid:c2,createTs:cZ,visitCount:cY,currentVisitTs:c3,lastVisitTs:c0,lastEcommerceOrderTs:c4}}function az(){var c1=new Date(),cZ=c1.getTime(),c2=aP().createTs;var cY=parseInt(c2,10);var c0=(cY*1000)+ct-cZ;return c0}function aD(cY){if(!bR){return}var c0=new Date(),cZ=Math.round(c0.getTime()/1000);if(!H(cY)){cY=aP()}var c1=cY.uuid+"."+cY.createTs+"."+cY.visitCount+"."+cZ+"."+cY.lastVisitTs+"."+cY.lastEcommerceOrderTs;cT(aK("id"),c1,az(),be,cE)}function by(){var cY=av(aK("ref"));if(cY.length){try{cY=JSON_PIWIK.parse(cY);if(T(cY)){return cY}}catch(cZ){}}return["","",0,""]}function bJ(c0,cZ,cY){cT(c0,"",-86400,cZ,cY)}function bk(cZ){var cY="testvalue";cT("test",cY,10000,null,cZ);if(av("test")===cY){bJ("test",null,cZ);return true}return false}function ax(){var cZ=ba;ba=false;var cY,c0;for(cY=0;cYdn){de.visitCount++;de.lastVisitTs=de.currentVisitTs}if(!bj||!c6.length){for(dk in cd){if(Object.prototype.hasOwnProperty.call(cd,dk)){c6=f(dp,cd[dk]);if(c6.length){break}}}for(dk in bs){if(Object.prototype.hasOwnProperty.call(bs,dk)){cY=f(dp,bs[dk]); -if(cY.length){break}}}}ds=d(bc);c9=dj.length?d(dj):"";if(ds.length&&!aN(ds)&&(!bj||!c9.length||aN(c9))){dj=bc}if(dj.length||c6.length){c5=c8;di=[c6,cY,c5,bN(dj.slice(0,c2))];cT(df,JSON_PIWIK.stringify(di),cM,be,cE)}}c0+="&idsite="+bR+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cZ.getHours()+"&m="+cZ.getMinutes()+"&s="+cZ.getSeconds()+"&url="+s(bN(dp))+(bc.length?"&urlref="+s(bN(bc)):"")+((bm&&bm.length)?"&uid="+s(bm):"")+"&_id="+de.uuid+"&_idts="+de.createTs+"&_idvc="+de.visitCount+"&_idn="+de.newVisitor+(c6.length?"&_rcn="+s(c6):"")+(cY.length?"&_rck="+s(cY):"")+"&_refts="+c5+"&_viewts="+de.lastVisitTs+(String(de.lastEcommerceOrderTs).length?"&_ects="+de.lastEcommerceOrderTs:"")+(String(dj).length?"&_ref="+s(bN(dj.slice(0,c2))):"")+(db?"&cs="+s(db):"")+"&send_image=0";for(dk in cO){if(Object.prototype.hasOwnProperty.call(cO,dk)){c0+="&"+dk+"="+cO[dk]}}var dr=[];if(dl){for(dk in dl){if(Object.prototype.hasOwnProperty.call(dl,dk)&&/^dimension\d+$/.test(dk)){var c4=dk.replace("dimension",""); -dr.push(parseInt(c4,10));dr.push(String(c4));c0+="&"+dk+"="+dl[dk];delete dl[dk]}}}if(dl&&z(dl)){dl=null}for(dk in bb){if(Object.prototype.hasOwnProperty.call(bb,dk)){var da=(-1===K(dr,dk));if(da){c0+="&dimension"+dk+"="+bb[dk]}}}if(dl){c0+="&data="+s(JSON_PIWIK.stringify(dl))}else{if(ai){c0+="&data="+s(JSON_PIWIK.stringify(ai))}}function c7(dt,du){var dv=JSON_PIWIK.stringify(dt);if(dv.length>2){return"&"+du+"="+s(dv)}return""}var dq=cX(bH);var dg=cX(b7);c0+=c7(dq,"cvar");c0+=c7(dg,"e_cvar");if(aH){c0+=c7(aH,"_cvar");for(dk in dh){if(Object.prototype.hasOwnProperty.call(dh,dk)){if(aH[dk][0]===""||aH[dk][1]===""){delete aH[dk]}}}if(bC){cT(dc,JSON_PIWIK.stringify(aH),ca,be,cE)}}if(aU){if(b8){c0+=">_ms="+b8}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){c0+=">_ms="+(i.timing.responseEnd-i.timing.requestStart)}}}if(aC){c0+="&pv_id="+aC}de.lastEcommerceOrderTs=H(c1)&&String(c1).length?c1:de.lastEcommerceOrderTs;aD(de);bY();c0+=X(dm,{tracker:bu,request:c0});if(cG.length){c0+="&"+cG -}if(y(bW)){c0=bW(c0)}return c0}bD=function aY(){var cY=new Date();if(cF+aX<=cY.getTime()){var cZ=cf("ping=1",null,"ping");br(cZ,bv);return true}return false};function bf(c1,c0,c6,c2,cY,c9){var c4="idgoal=0",c5,cZ=new Date(),c7=[],c8,c3=String(c1).length;if(c3){c4+="&ec_id="+s(c1);c5=Math.round(cZ.getTime()/1000)}c4+="&revenue="+c0;if(String(c6).length){c4+="&ec_st="+c6}if(String(c2).length){c4+="&ec_tx="+c2}if(String(cY).length){c4+="&ec_sh="+cY}if(String(c9).length){c4+="&ec_dt="+c9}if(cI){for(c8 in cI){if(Object.prototype.hasOwnProperty.call(cI,c8)){if(!H(cI[c8][1])){cI[c8][1]=""}if(!H(cI[c8][2])){cI[c8][2]=""}if(!H(cI[c8][3])||String(cI[c8][3]).length===0){cI[c8][3]=0}if(!H(cI[c8][4])||String(cI[c8][4]).length===0){cI[c8][4]=1}c7.push(cI[c8])}}c4+="&ec_items="+s(JSON_PIWIK.stringify(c7))}c4=cf(c4,ai,"ecommerce",c5);br(c4,bv);if(c3){cI={}}}function bK(cY,c2,c1,c0,cZ,c3){if(String(cY).length&&H(c2)){bf(cY,c2,c1,c0,cZ,c3)}}function bg(cY){if(H(cY)){bf("",cY,"","","","")}}function bL(cZ,c1,c0){aC=a6(); -var cY=cf("action_name="+s(af(cZ||a8)),c1,"log");br(cY,bv,c0)}function aS(c0,cZ){var c1,cY="(^| )(piwik[_-]"+cZ;if(c0){for(c1=0;c10){cZ+="&"}else{cZ+="?"}var c1=aP().uuid;var c0=aB();cZ=D(cZ,ao,c1+c0);Z.setAnyAttribute(cY,"href",cZ)}function at(c1){var c2=Z.getAttributeValueFromNode(c1,"href"); -if(!c2){return false}c2=String(c2);var cZ=c2.indexOf("//")===0||c2.indexOf("http://")===0||c2.indexOf("https://")===0;if(!cZ){return false}var cY=c1.pathname||b6(c1.href);var c0=(c1.hostname||d(c1.href)).toLowerCase();if(al(c0,cY)){if(!cr(cC,J(c0))){return true}return false}return false}function cq(cY){var cZ=cS(cY);if(cZ&&cZ.type){cZ.href=o(cZ.href);cJ(cZ.href,cZ.type,undefined,null,cY);return}if(cv){cY=an(cY);if(at(cY)){b4(cY)}}}function ci(){return E.all&&!E.addEventListener}function cD(cY){var c0=cY.which;var cZ=(typeof cY.button);if(!c0&&cZ!=="undefined"){if(ci()){if(cY.button&1){c0=1}else{if(cY.button&2){c0=3}else{if(cY.button&4){c0=2}}}}else{if(cY.button===0||cY.button==="0"){c0=1}else{if(cY.button&1){c0=2}else{if(cY.button&2){c0=3}}}}}return c0}function bE(cY){switch(cD(cY)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aT(cY){return cY.target||cY.srcElement}function au(cY){return function(c1){c1=c1||R.event;var c0=bE(c1);var c2=aT(c1);if(c1.type==="click"){var cZ=false; -if(cY&&c0==="middle"){cZ=true}if(c2&&!cZ){cq(c2)}}else{if(c1.type==="mousedown"){if(c0==="middle"&&c2){aI=c0;bo=c2}else{aI=bo=null}}else{if(c1.type==="mouseup"){if(c0===aI&&c2===bo){cq(c2)}aI=bo=null}else{if(c1.type==="contextmenu"){cq(c2)}}}}}}function ak(c0,cZ){var cY=typeof cZ;if(cY==="undefined"){cZ=true}ah(c0,"click",au(cZ),false);if(cZ){ah(c0,"mouseup",au(cZ),false);ah(c0,"mousedown",au(cZ),false);ah(c0,"contextmenu",au(cZ),false)}}function bp(c0,c2){aj=true;var c1,cZ=aS(bn,"ignore"),c3=E.links,cY=null,c4=null;if(c3){for(c1=0;c10){c2=parseInt(c2,10);c5(c2)}})}function cp(){var cZ,c1,c2={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(cZ in c2){if(Object.prototype.hasOwnProperty.call(c2,cZ)){c1=h.mimeTypes[c2[cZ]];cO[cZ]=(c1&&c1.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&H(h.javaEnabled)&&h.javaEnabled()){cO.java="1"}if(y(R.GearsFactory)){cO.gears="1"}cO.cookie=bQ()}var c0=parseInt(U.width,10);var cY=parseInt(U.height,10); -cO.res=parseInt(c0,10)+"x"+parseInt(cY,10)}cp();a7();aD();this.getVisitorId=function(){return aP().uuid};this.getVisitorInfo=function(){return cw()};this.getAttributionInfo=function(){return by()};this.getAttributionCampaignName=function(){return by()[0]};this.getAttributionCampaignKeyword=function(){return by()[1]};this.getAttributionReferrerTimestamp=function(){return by()[2]};this.getAttributionReferrerUrl=function(){return by()[3]};this.setTrackerUrl=function(cY){aw=cY};this.getTrackerUrl=function(){return aw};this.getPiwikUrl=function(){return M(this.getTrackerUrl(),bt)};this.addTracker=function(cY,c0){if(!c0){throw new Error("A siteId must be given to add a new tracker")}if(!H(cY)||null===cY){cY=this.getTrackerUrl()}var cZ=new O(cY,c0);G.push(cZ);return cZ};this.getSiteId=function(){return bR};this.setSiteId=function(cY){bO(cY)};this.setUserId=function(cY){if(!H(cY)||!cY.length){return}bm=cY;bA=bS(bm).substr(0,16)};this.getUserId=function(){return bm};this.setCustomData=function(cY,cZ){if(T(cY)){ai=cY -}else{if(!ai){ai={}}ai[cY]=cZ}};this.getCustomData=function(){return ai};this.setCustomRequestProcessing=function(cY){bW=cY};this.appendToTrackingUrl=function(cY){cG=cY};this.getRequest=function(cY){return cf(cY)};this.addPlugin=function(cY,cZ){b[cY]=cZ};this.setCustomDimension=function(cY,cZ){cY=parseInt(cY,10);if(cY>0){if(!H(cZ)){cZ=""}if(!v(cZ)){cZ=String(cZ)}bb[cY]=cZ}};this.getCustomDimension=function(cY){cY=parseInt(cY,10);if(cY>0&&Object.prototype.hasOwnProperty.call(bb,cY)){return bb[cY]}};this.deleteCustomDimension=function(cY){cY=parseInt(cY,10);if(cY>0){delete bb[cY]}};this.setCustomVariable=function(cZ,cY,c2,c0){var c1;if(!H(c0)){c0="visit"}if(!H(cY)){return}if(!H(c2)){c2=""}if(cZ>0){cY=!v(cY)?String(cY):cY;c2=!v(c2)?String(c2):c2;c1=[cY.slice(0,bh),c2.slice(0,bh)];if(c0==="visit"||c0===2){co();aH[cZ]=c1}else{if(c0==="page"||c0===3){bH[cZ]=c1}else{if(c0==="event"){b7[cZ]=c1}}}}};this.getCustomVariable=function(cZ,c0){var cY;if(!H(c0)){c0="visit"}if(c0==="page"||c0===3){cY=bH[cZ] -}else{if(c0==="event"){cY=b7[cZ]}else{if(c0==="visit"||c0===2){co();cY=aH[cZ]}}}if(!H(cY)||(cY&&cY[0]==="")){return false}return cY};this.deleteCustomVariable=function(cY,cZ){if(this.getCustomVariable(cY,cZ)){this.setCustomVariable(cY,"","",cZ)}};this.deleteCustomVariables=function(cY){if(cY==="page"||cY===3){bH={}}else{if(cY==="event"){b7={}}else{if(cY==="visit"||cY===2){aH={}}}}};this.storeCustomVariablesInCookie=function(){bC=true};this.setLinkTrackingTimer=function(cY){bv=cY};this.getLinkTrackingTimer=function(){return bv};this.setDownloadExtensions=function(cY){if(v(cY)){cY=cY.split("|")}cN=cY};this.addDownloadExtensions=function(cZ){var cY;if(v(cZ)){cZ=cZ.split("|")}for(cY=0;cY1){ae("The method "+aj+' 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')}ao[aj]++}}}}return an}var A=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking","setSecureCookie"]; +return ap.length===4&&ap[0]===aq}function V(aj,ap,al){var ao=R.name.split("###"),an=ao[1],ai=ao[2],am=ao[3],ak=M(aj,ap);n(ak+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ak,al,an,ai,am)})}function t(){var ak;try{ak=R.frameElement}catch(aj){return true}if(H(ak)){return(ak&&String(ak.nodeName).toLowerCase()==="iframe")?true:false}try{return R.self!==R.top}catch(ai){return true}}function O(bZ,bU){var bt=this,bP=W(E.domain,R.location.href,I()),cB=J(bP[0]),by=o(bP[1]),bb=o(bP[2]),cz=false,b3="GET",cO=b3,aA="application/x-www-form-urlencoded; charset=UTF-8",ci=aA,aw=bZ||"",bs="",cF="",bR=bU||"",bl="",bz="",aV,a7="",cL=["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"],ap=[cB],bm=[],bw=[],aY=[],bu=500,cr,aW,bC,bA,ai,cc=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],br=["pk_kwd","piwik_kwd","utm_term"],a8="_pk_",ao="pk_vid",aQ=180,cD,bd,bD=false,a9=false,cx,a3,bi,cs=33955200000,ca=1800000,cK=15768000000,aT=true,b8=0,bB=false,aH=false,bW,bH={},b7={},ba={},bg=200,cG={},cM={},bV=[],b0=false,cl=false,aj=false,cN=false,cu=false,aF=false,a2=t(),cE=null,bX,aI,bn,bS=ag,bc,aC,cd=0,bh=["id","ses","cvar","ref"]; +try{a7=E.title}catch(cj){a7=""}function cR(c2,c0,cZ,c1,cY,cX){if(a9){return}var cW;if(cZ){cW=new Date();cW.setTime(cW.getTime()+cZ)}E.cookie=c2+"="+s(c0)+(cZ?";expires="+cW.toGMTString():"")+";path="+(c1||"/")+(cY?";domain="+cY:"")+(cX?";secure":"")}function av(cY){if(a9){return 0}var cW=new RegExp("(^|;)[ ]*"+cY+"=([^;]*)"),cX=cW.exec(E.cookie);return cX?Q(cX[2]):0}function bN(cW){var cX;cW=k(cW,ao);if(bA){cX=new RegExp("#.*");return cW.replace(cX,"")}return cW}function bG(cY,cW){var cZ=r(cW),cX;if(cZ){return cW}if(cW.slice(0,1)==="/"){return r(cY)+"://"+d(cY)+cW}cY=bN(cY);cX=cY.indexOf("?");if(cX>=0){cY=cY.slice(0,cX)}cX=cY.lastIndexOf("/");if(cX!==cY.length-1){cY=cY.slice(0,cX+1)}return cY+cW}function cq(cY,cW){var cX;cY=String(cY).toLowerCase();cW=String(cW).toLowerCase();if(cY===cW){return true}if(cW.slice(0,1)==="."){if(cY===cW.slice(1)){return true}cX=cY.length-cW.length;if((cX>0)&&(cY.slice(cX)===cW)){return true}}return false}function b6(cW){var cX=document.createElement("a");if(cW.indexOf("//")!==0&&cW.indexOf("http")!==0){if(cW.indexOf("*")===0){cW=cW.substr(1) +}if(cW.indexOf(".")===0){cW=cW.substr(1)}cW="http://"+cW}cX.href=u.toAbsoluteUrl(cW);if(cX.pathname){return cX.pathname}return""}function aU(cX,cW){if(!ad(cW,"/")){cW="/"+cW}if(!ad(cX,"/")){cX="/"+cX}var cY=(cW==="/"||cW==="/*");if(cY){return true}if(cX===cW){return true}cW=String(cW).toLowerCase();cX=String(cX).toLowerCase();if(P(cW,"*")){cW=cW.slice(0,-1);cY=(!cW||cW==="/");if(cY){return true}if(cX===cW){return true}return cX.indexOf(cW)===0}if(!P(cX,"/")){cX+="/"}if(!P(cW,"/")){cW+="/"}return cX.indexOf(cW)===0}function al(c0,c2){var cX,cW,cY,cZ,c1;for(cX=0;cX0)&&(cZ.slice(cY)===cW)){return true}}}return false}function cb(cW,cY){var cX=new Image(1,1);cX.onload=function(){C=0;if(typeof cY==="function"){cY() +}};cW=cW.replace("send_image=0","send_image=1");cX.src=aw+(aw.indexOf("?")<0?"?":"&")+cW}function cJ(cX,c0,cW){if(!H(cW)||null===cW){cW=true}try{var cZ=R.XMLHttpRequest?new R.XMLHttpRequest():R.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cZ.open("POST",aw,true);cZ.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cW){cb(cX,c0)}else{if(this.readyState===4&&(typeof c0==="function")){c0()}}};cZ.setRequestHeader("Content-Type",ci);cZ.send(cX)}catch(cY){if(cW){cb(cX,c0)}}}function b1(cX){var cW=new Date();var cY=cW.getTime()+cX;if(!q||cY>q){q=cY}}function b9(cW){if(bX||!aW){return}bX=setTimeout(function cX(){bX=null;if(!a2){a2=(!E.hasFocus||E.hasFocus())}if(!a2){b9(aW);return}if(bC()){return}var cY=new Date(),cZ=aW-(cY.getTime()-cE);cZ=Math.min(aW,cZ);b9(cZ)},cW||aW)}function bv(){if(!bX){return}clearTimeout(bX);bX=null}function a0(){a2=true;if(bC()){return}b9()}function aq(){bv()}function cT(){if(aF||!aW){return}aF=true;ah(R,"focus",a0); +ah(R,"blur",aq);b9()}function cm(c0){var cX=new Date();var cW=cX.getTime();cE=cW;if(cl&&cW2000){cJ(cX,cY)}else{cb(cX,cY)}b1(cW)})}if(!aF){cT()}else{b9()}}function b5(cW){if(cx){return false}return(cW&&cW.length)}function cS(cY,cW){if(!b5(cY)){return}var cX='{"requests":["?'+cY.join('","?')+'"]}';cm(function(){cJ(cX,null,false);b1(cW)})}function aK(cW){return a8+cW+"."+bR+"."+bc}function bQ(){if(a9){return"0"}if(!H(h.cookieEnabled)){var cW=aK("testcookie");cR(cW,"1");return av(cW)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function a6(){bc=bS((cD||cB)+(bd||"/")).slice(0,4)}function bI(){var cX=aK("cvar"),cW=av(cX);if(cW.length){cW=JSON_PIWIK.parse(cW);if(T(cW)){return cW}}return{}}function cn(){if(aH===false){aH=bI()}}function cy(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cM)+(new Date()).getTime()+Math.random()).slice(0,16) +}function ar(){return bS((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cM)).slice(0,6)}function a4(){return Math.floor((new Date()).getTime()/1000)}function aB(){var cX=a4();var cY=ar();var cW=String(cX)+cY;return cW}function cI(cY){cY=String(cY);var c1=ar();var cZ=c1.length;var c0=cY.substr(-1*cZ,cZ);var cX=parseInt(cY.substr(0,cY.length-cZ),10);if(cX&&c0&&c0===c1){var cW=a4();if(aQ<=0){return true}if(cW>=cX&&cW<=(cX+aQ)){return true}}return false}function cU(cW){if(!cu){return""}var c0=f(cW,ao);if(!c0){return""}c0=String(c0);var cY=new RegExp("^[a-zA-Z0-9]+$");if(c0.length===32&&cY.test(c0)){var cX=c0.substr(16,32);if(cI(cX)){var cZ=c0.substr(0,16);return cZ}}return""}function cv(){if(!bz){bz=cU(by)}var cY=new Date(),cW=Math.round(cY.getTime()/1000),cX=aK("id"),c1=av(cX),c0,cZ;if(c1){c0=c1.split(".");c0.unshift("0");if(bz.length){c0[1]=bz}return c0}if(bz.length){cZ=bz}else{if("0"===bQ()){cZ=""}else{cZ=cy()}}c0=["1",cZ,cW,0,cW,"",""];return c0}function aO(){var c3=cv(),cZ=c3[0],c0=c3[1],cX=c3[2],cW=c3[3],c1=c3[4],cY=c3[5]; +if(!H(c3[6])){c3[6]=""}var c2=c3[6];return{newVisitor:cZ,uuid:c0,createTs:cX,visitCount:cW,currentVisitTs:c1,lastVisitTs:cY,lastEcommerceOrderTs:c2}}function az(){var cZ=new Date(),cX=cZ.getTime(),c0=aO().createTs;var cW=parseInt(c0,10);var cY=(cW*1000)+cs-cX;return cY}function aD(cW){if(!bR){return}var cY=new Date(),cX=Math.round(cY.getTime()/1000);if(!H(cW)){cW=aO()}var cZ=cW.uuid+"."+cW.createTs+"."+cW.visitCount+"."+cX+"."+cW.lastVisitTs+"."+cW.lastEcommerceOrderTs;cR(aK("id"),cZ,az(),bd,cD,bD)}function bx(){var cW=av(aK("ref"));if(cW.length){try{cW=JSON_PIWIK.parse(cW);if(T(cW)){return cW}}catch(cX){}}return["","",0,""]}function bJ(cY,cX,cW){cR(cY,"",-86400,cX,cW)}function bj(cX){var cW="testvalue";cR("test",cW,10000,null,cX);if(av("test")===cW){bJ("test",null,cX);return true}return false}function ax(){var cX=a9;a9=false;var cW,cY;for(cW=0;cWdl){dc.visitCount++;dc.lastVisitTs=dc.currentVisitTs}if(!bi||!c4.length){for(di in cc){if(Object.prototype.hasOwnProperty.call(cc,di)){c4=f(dm,cc[di]);if(c4.length){break}}}for(di in br){if(Object.prototype.hasOwnProperty.call(br,di)){cW=f(dm,br[di]); +if(cW.length){break}}}}dq=d(bb);c7=dh.length?d(dh):"";if(dq.length&&!aM(dq)&&(!bi||!c7.length||aM(c7))){dh=bb}if(dh.length||c4.length){c3=c6;dg=[c4,cW,c3,bN(dh.slice(0,c0))];cR(dd,JSON_PIWIK.stringify(dg),cK,bd,cD)}}cY+="&idsite="+bR+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cX.getHours()+"&m="+cX.getMinutes()+"&s="+cX.getSeconds()+"&url="+s(bN(dm))+(bb.length?"&urlref="+s(bN(bb)):"")+((bl&&bl.length)?"&uid="+s(bl):"")+"&_id="+dc.uuid+"&_idts="+dc.createTs+"&_idvc="+dc.visitCount+"&_idn="+dc.newVisitor+(c4.length?"&_rcn="+s(c4):"")+(cW.length?"&_rck="+s(cW):"")+"&_refts="+c3+"&_viewts="+dc.lastVisitTs+(String(dc.lastEcommerceOrderTs).length?"&_ects="+dc.lastEcommerceOrderTs:"")+(String(dh).length?"&_ref="+s(bN(dh.slice(0,c0))):"")+(c9?"&cs="+s(c9):"")+"&send_image=0";for(di in cM){if(Object.prototype.hasOwnProperty.call(cM,di)){cY+="&"+di+"="+cM[di]}}var dp=[];if(dj){for(di in dj){if(Object.prototype.hasOwnProperty.call(dj,di)&&/^dimension\d+$/.test(di)){var c2=di.replace("dimension",""); +dp.push(parseInt(c2,10));dp.push(String(c2));cY+="&"+di+"="+dj[di];delete dj[di]}}}if(dj&&z(dj)){dj=null}for(di in ba){if(Object.prototype.hasOwnProperty.call(ba,di)){var c8=(-1===K(dp,di));if(c8){cY+="&dimension"+di+"="+ba[di]}}}if(dj){cY+="&data="+s(JSON_PIWIK.stringify(dj))}else{if(ai){cY+="&data="+s(JSON_PIWIK.stringify(ai))}}function c5(dr,ds){var dt=JSON_PIWIK.stringify(dr);if(dt.length>2){return"&"+ds+"="+s(dt)}return""}var dn=cV(bH);var de=cV(b7);cY+=c5(dn,"cvar");cY+=c5(de,"e_cvar");if(aH){cY+=c5(aH,"_cvar");for(di in df){if(Object.prototype.hasOwnProperty.call(df,di)){if(aH[di][0]===""||aH[di][1]===""){delete aH[di]}}}if(bB){cR(da,JSON_PIWIK.stringify(aH),ca,bd,cD)}}if(aT){if(b8){cY+=">_ms="+b8}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){cY+=">_ms="+(i.timing.responseEnd-i.timing.requestStart)}}}if(aC){cY+="&pv_id="+aC}dc.lastEcommerceOrderTs=H(cZ)&&String(cZ).length?cZ:dc.lastEcommerceOrderTs;aD(dc);bY();cY+=X(dk,{tracker:bt,request:cY});if(cF.length){cY+="&"+cF +}if(y(bW)){cY=bW(cY)}return cY}bC=function aX(){var cW=new Date();if(cE+aW<=cW.getTime()){var cX=ce("ping=1",null,"ping");bq(cX,bu);return true}return false};function be(cZ,cY,c4,c0,cW,c7){var c2="idgoal=0",c3,cX=new Date(),c5=[],c6,c1=String(cZ).length;if(c1){c2+="&ec_id="+s(cZ);c3=Math.round(cX.getTime()/1000)}c2+="&revenue="+cY;if(String(c4).length){c2+="&ec_st="+c4}if(String(c0).length){c2+="&ec_tx="+c0}if(String(cW).length){c2+="&ec_sh="+cW}if(String(c7).length){c2+="&ec_dt="+c7}if(cG){for(c6 in cG){if(Object.prototype.hasOwnProperty.call(cG,c6)){if(!H(cG[c6][1])){cG[c6][1]=""}if(!H(cG[c6][2])){cG[c6][2]=""}if(!H(cG[c6][3])||String(cG[c6][3]).length===0){cG[c6][3]=0}if(!H(cG[c6][4])||String(cG[c6][4]).length===0){cG[c6][4]=1}c5.push(cG[c6])}}c2+="&ec_items="+s(JSON_PIWIK.stringify(c5))}c2=ce(c2,ai,"ecommerce",c3);bq(c2,bu);if(c1){cG={}}}function bK(cW,c0,cZ,cY,cX,c1){if(String(cW).length&&H(c0)){be(cW,c0,cZ,cY,cX,c1)}}function bf(cW){if(H(cW)){be("",cW,"","","","")}}function bL(cX,cZ,cY){aC=a5(); +var cW=ce("action_name="+s(af(cX||a7)),cZ,"log");bq(cW,bu,cY)}function aR(cY,cX){var cZ,cW="(^| )(piwik[_-]"+cX;if(cY){for(cZ=0;cZ0){cX+="&"}else{cX+="?"}var cZ=aO().uuid;var cY=aB();cX=D(cX,ao,cZ+cY);Z.setAnyAttribute(cW,"href",cX)}function at(cZ){var c0=Z.getAttributeValueFromNode(cZ,"href"); +if(!c0){return false}c0=String(c0);var cX=c0.indexOf("//")===0||c0.indexOf("http://")===0||c0.indexOf("https://")===0;if(!cX){return false}var cW=cZ.pathname||b6(cZ.href);var cY=(cZ.hostname||d(cZ.href)).toLowerCase();if(al(cY,cW)){if(!cq(cB,J(cY))){return true}return false}return false}function cp(cW){var cX=cQ(cW);if(cX&&cX.type){cX.href=o(cX.href);cH(cX.href,cX.type,undefined,null,cW);return}if(cu){cW=an(cW);if(at(cW)){b4(cW)}}}function ch(){return E.all&&!E.addEventListener}function cC(cW){var cY=cW.which;var cX=(typeof cW.button);if(!cY&&cX!=="undefined"){if(ch()){if(cW.button&1){cY=1}else{if(cW.button&2){cY=3}else{if(cW.button&4){cY=2}}}}else{if(cW.button===0||cW.button==="0"){cY=1}else{if(cW.button&1){cY=2}else{if(cW.button&2){cY=3}}}}}return cY}function bE(cW){switch(cC(cW)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aS(cW){return cW.target||cW.srcElement}function au(cW){return function(cZ){cZ=cZ||R.event;var cY=bE(cZ);var c0=aS(cZ);if(cZ.type==="click"){var cX=false; +if(cW&&cY==="middle"){cX=true}if(c0&&!cX){cp(c0)}}else{if(cZ.type==="mousedown"){if(cY==="middle"&&c0){aI=cY;bn=c0}else{aI=bn=null}}else{if(cZ.type==="mouseup"){if(cY===aI&&c0===bn){cp(c0)}aI=bn=null}else{if(cZ.type==="contextmenu"){cp(c0)}}}}}}function ak(cY,cX){var cW=typeof cX;if(cW==="undefined"){cX=true}ah(cY,"click",au(cX),false);if(cX){ah(cY,"mouseup",au(cX),false);ah(cY,"mousedown",au(cX),false);ah(cY,"contextmenu",au(cX),false)}}function bo(cY,c0){aj=true;var cZ,cX=aR(bm,"ignore"),c1=E.links,cW=null,c2=null;if(c1){for(cZ=0;cZ0){c0=parseInt(c0,10);c3(c0)}})}function co(){var cX,cZ,c0={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"};if(!((new RegExp("MSIE")).test(h.userAgent))){if(h.mimeTypes&&h.mimeTypes.length){for(cX in c0){if(Object.prototype.hasOwnProperty.call(c0,cX)){cZ=h.mimeTypes[c0[cX]];cM[cX]=(cZ&&cZ.enabledPlugin)?"1":"0"}}}if(!((new RegExp("Edge[ /](\\d+[\\.\\d]+)")).test(h.userAgent))&&typeof navigator.javaEnabled!=="unknown"&&H(h.javaEnabled)&&h.javaEnabled()){cM.java="1"}if(y(R.GearsFactory)){cM.gears="1"}cM.cookie=bQ()}var cY=parseInt(U.width,10);var cW=parseInt(U.height,10); +cM.res=parseInt(cY,10)+"x"+parseInt(cW,10)}co();a6();aD();this.getVisitorId=function(){return aO().uuid};this.getVisitorInfo=function(){return cv()};this.getAttributionInfo=function(){return bx()};this.getAttributionCampaignName=function(){return bx()[0]};this.getAttributionCampaignKeyword=function(){return bx()[1]};this.getAttributionReferrerTimestamp=function(){return bx()[2]};this.getAttributionReferrerUrl=function(){return bx()[3]};this.setTrackerUrl=function(cW){aw=cW};this.getTrackerUrl=function(){return aw};this.getPiwikUrl=function(){return M(this.getTrackerUrl(),bs)};this.addTracker=function(cW,cY){if(!cY){throw new Error("A siteId must be given to add a new tracker")}if(!H(cW)||null===cW){cW=this.getTrackerUrl()}var cX=new O(cW,cY);G.push(cX);return cX};this.getSiteId=function(){return bR};this.setSiteId=function(cW){bO(cW)};this.setUserId=function(cW){if(!H(cW)||!cW.length){return}bl=cW;bz=bS(bl).substr(0,16)};this.getUserId=function(){return bl};this.setCustomData=function(cW,cX){if(T(cW)){ai=cW +}else{if(!ai){ai={}}ai[cW]=cX}};this.getCustomData=function(){return ai};this.setCustomRequestProcessing=function(cW){bW=cW};this.appendToTrackingUrl=function(cW){cF=cW};this.getRequest=function(cW){return ce(cW)};this.addPlugin=function(cW,cX){b[cW]=cX};this.setCustomDimension=function(cW,cX){cW=parseInt(cW,10);if(cW>0){if(!H(cX)){cX=""}if(!v(cX)){cX=String(cX)}ba[cW]=cX}};this.getCustomDimension=function(cW){cW=parseInt(cW,10);if(cW>0&&Object.prototype.hasOwnProperty.call(ba,cW)){return ba[cW]}};this.deleteCustomDimension=function(cW){cW=parseInt(cW,10);if(cW>0){delete ba[cW]}};this.setCustomVariable=function(cX,cW,c0,cY){var cZ;if(!H(cY)){cY="visit"}if(!H(cW)){return}if(!H(c0)){c0=""}if(cX>0){cW=!v(cW)?String(cW):cW;c0=!v(c0)?String(c0):c0;cZ=[cW.slice(0,bg),c0.slice(0,bg)];if(cY==="visit"||cY===2){cn();aH[cX]=cZ}else{if(cY==="page"||cY===3){bH[cX]=cZ}else{if(cY==="event"){b7[cX]=cZ}}}}};this.getCustomVariable=function(cX,cY){var cW;if(!H(cY)){cY="visit"}if(cY==="page"||cY===3){cW=bH[cX] +}else{if(cY==="event"){cW=b7[cX]}else{if(cY==="visit"||cY===2){cn();cW=aH[cX]}}}if(!H(cW)||(cW&&cW[0]==="")){return false}return cW};this.deleteCustomVariable=function(cW,cX){if(this.getCustomVariable(cW,cX)){this.setCustomVariable(cW,"","",cX)}};this.deleteCustomVariables=function(cW){if(cW==="page"||cW===3){bH={}}else{if(cW==="event"){b7={}}else{if(cW==="visit"||cW===2){aH={}}}}};this.storeCustomVariablesInCookie=function(){bB=true};this.setLinkTrackingTimer=function(cW){bu=cW};this.getLinkTrackingTimer=function(){return bu};this.setDownloadExtensions=function(cW){if(v(cW)){cW=cW.split("|")}cL=cW};this.addDownloadExtensions=function(cX){var cW;if(v(cX)){cX=cX.split("|")}for(cW=0;cW1){ae("The method "+aj+' 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')}ao[aj]++}}}}return an}var A=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"]; function Y(ai,ak){var aj=new O(ai,ak);G.push(aj);_paq=c(_paq,A);for(C=0;C<_paq.length;C++){if(_paq[C]){aa(_paq[C])}}_paq=new F();return aj}ah(R,"beforeunload",ac,false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(al,ak,aj,ai){var am=typeof ai;if(am==="undefined"){ai=false}ah(al,ak,aj,ai)},onLoad:m,onReady:p,isNodeVisible:j,isOrWasNodeVisible:u.isNodeVisible},on:function(aj,ai){if(!w[aj]){w[aj]=[]}w[aj].push(ai)},off:function(ak,aj){if(!w[ak]){return}var ai=0;for(ai;ai