From 4576d92b5fc69e748d68c157e0e7bde90ff772e9 Mon Sep 17 00:00:00 2001 From: Matthieu Aubry Date: Wed, 19 Jul 2017 09:04:11 +1200 Subject: JS Tracker: new setCrossDomainLinkingTimeout function useful to set a higher timeout for links (#11828) * JS Tracker: new setCrossDomainLinkingTimeout function useful to set a higher timeout for links and increasing the default to 120 seconds * Code review feedback * Compiled Piwik.js * fix one test * Fix tests * remove debugger; --- piwik.js | 62 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) (limited to 'piwik.js') diff --git a/piwik.js b/piwik.js index 2791267342..f409e7b4f4 100644 --- a/piwik.js +++ b/piwik.js @@ -38,37 +38,37 @@ 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){cW=cW.slice(0,cV)}cV=cW.lastIndexOf("/");if(cV!==cW.length-1){cW=cW.slice(0,cV+1)}return cW+cU}function co(cW,cU){var cV;cW=String(cW).toLowerCase();cU=String(cU).toLowerCase();if(cW===cU){return true}if(cU.slice(0,1)==="."){if(cW===cU.slice(1)){return true}cV=cW.length-cU.length;if((cV>0)&&(cW.slice(cV)===cU)){return true}}return false}function b4(cU){var cV=document.createElement("a");if(cU.indexOf("//")!==0&&cU.indexOf("http")!==0){if(cU.indexOf("*")===0){cU=cU.substr(1) -}if(cU.indexOf(".")===0){cU=cU.substr(1)}cU="http://"+cU}cV.href=u.toAbsoluteUrl(cU);if(cV.pathname){return cV.pathname}return""}function aT(cV,cU){if(!ad(cU,"/")){cU="/"+cU}if(!ad(cV,"/")){cV="/"+cV}var cW=(cU==="/"||cU==="/*");if(cW){return true}if(cV===cU){return true}cU=String(cU).toLowerCase();cV=String(cV).toLowerCase();if(P(cU,"*")){cU=cU.slice(0,-1);cW=(!cU||cU==="/");if(cW){return true}if(cV===cU){return true}return cV.indexOf(cU)===0}if(!P(cV,"/")){cV+="/"}if(!P(cU,"/")){cU+="/"}return cV.indexOf(cU)===0}function al(cY,c0){var cV,cU,cW,cX,cZ;for(cV=0;cV0)&&(cX.slice(cW)===cU)){return true}}}return false}function b9(cU,cW){var cV=new Image(1,1);cV.onload=function(){C=0;if(typeof cW==="function"){cW() -}};cU=cU.replace("send_image=0","send_image=1");cV.src=aw+(aw.indexOf("?")<0?"?":"&")+cU}function cH(cV,cY,cU){if(!H(cU)||null===cU){cU=true}try{var cX=R.XMLHttpRequest?new R.XMLHttpRequest():R.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cX.open("POST",aw,true);cX.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cU){b9(cV,cY)}else{if(this.readyState===4&&(typeof cY==="function")){cY()}}};cX.setRequestHeader("Content-Type",cg);cX.send(cV)}catch(cW){if(cU){b9(cV,cY)}}}function bZ(cV){var cU=new Date();var cW=cU.getTime()+cV;if(!q||cW>q){q=cW}}function b7(cU){if(bV||!aV){return}bV=setTimeout(function cV(){bV=null;if(!a1){a1=(!E.hasFocus||E.hasFocus())}if(!a1){b7(aV);return}if(bB()){return}var cW=new Date(),cX=aV-(cW.getTime()-cC);cX=Math.min(aV,cX);b7(cX)},cU||aV)}function bu(){if(!bV){return}clearTimeout(bV);bV=null}function aZ(){a1=true;if(bB()){return}b7()}function aq(){bu()}function cR(){if(aF||!aV){return}aF=true;ah(R,"focus",aZ); -ah(R,"blur",aq);b7()}function ck(cY){var cV=new Date();var cU=cV.getTime();cC=cU;if(cj&&cU2000){cH(cV,cW)}else{b9(cV,cW)}bZ(cU)})}if(!aF){cR()}else{b7()}}function b3(cU){if(cv){return false}return(cU&&cU.length)}function cQ(cW,cU){if(!b3(cW)){return}var cV='{"requests":["?'+cW.join('","?')+'"]}';ck(function(){cH(cV,null,false);bZ(cU)})}function aK(cU){return a7+cU+"."+bP+"."+bb}function bO(){if(a8){return"0"}if(!H(h.cookieEnabled)){var cU=aK("testcookie");cP(cU,"1");return av(cU)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function a5(){bb=bQ((cB||cz)+(bc||"/")).slice(0,4)}function bG(){var cV=aK("cvar"),cU=av(cV);if(cU.length){cU=JSON_PIWIK.parse(cU);if(T(cU)){return cU}}return{}}function cl(){if(aH===false){aH=bG()}}function cw(){return bQ((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cK)+(new Date()).getTime()+Math.random()).slice(0,16) -}function ar(){return bQ((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cK)).slice(0,6)}function a3(){return Math.floor((new Date()).getTime()/1000)}function aB(){var cV=a3();var cW=ar();var cU=String(cV)+cW;return cU}function cG(cX){cX=String(cX);var c0=ar();var cY=c0.length;var cZ=cX.substr(-1*cY,cY);var cW=parseInt(cX.substr(0,cX.length-cY),10);if(cW&&cZ&&cZ===c0){var cU=a3();var cV=45;if(cU>=cW&&cU<=(cW+cV)){return true}}return false}function cS(cU){if(!cs){return""}var cY=f(cU,ao);if(!cY){return""}cY=String(cY);var cW=new RegExp("^[a-zA-Z0-9]+$");if(cY.length===32&&cW.test(cY)){var cV=cY.substr(16,32);if(cG(cV)){var cX=cY.substr(0,16);return cX}}return""}function ct(){if(!by){by=cS(bx)}var cW=new Date(),cU=Math.round(cW.getTime()/1000),cV=aK("id"),cZ=av(cV),cY,cX;if(cZ){cY=cZ.split(".");cY.unshift("0");if(by.length){cY[1]=by}return cY}if(by.length){cX=by}else{if("0"===bO()){cX=""}else{cX=cw()}}cY=["1",cX,cU,0,cU,"",""];return cY}function aO(){var c1=ct(),cX=c1[0],cY=c1[1],cV=c1[2],cU=c1[3],cZ=c1[4],cW=c1[5]; -if(!H(c1[6])){c1[6]=""}var c0=c1[6];return{newVisitor:cX,uuid:cY,createTs:cV,visitCount:cU,currentVisitTs:cZ,lastVisitTs:cW,lastEcommerceOrderTs:c0}}function az(){var cX=new Date(),cV=cX.getTime(),cY=aO().createTs;var cU=parseInt(cY,10);var cW=(cU*1000)+cq-cV;return cW}function aD(cU){if(!bP){return}var cW=new Date(),cV=Math.round(cW.getTime()/1000);if(!H(cU)){cU=aO()}var cX=cU.uuid+"."+cU.createTs+"."+cU.visitCount+"."+cV+"."+cU.lastVisitTs+"."+cU.lastEcommerceOrderTs;cP(aK("id"),cX,az(),bc,cB)}function bw(){var cU=av(aK("ref"));if(cU.length){try{cU=JSON_PIWIK.parse(cU);if(T(cU)){return cU}}catch(cV){}}return["","",0,""]}function bH(cW,cV,cU){cP(cW,"",-86400,cV,cU)}function bi(cV){var cU="testvalue";cP("test",cU,10000,null,cV);if(av("test")===cU){bH("test",null,cV);return true}return false}function ax(){var cV=a8;a8=false;var cU,cW;for(cU=0;cUdj){da.visitCount++;da.lastVisitTs=da.currentVisitTs}if(!bh||!c2.length){for(dg in ca){if(Object.prototype.hasOwnProperty.call(ca,dg)){c2=f(dk,ca[dg]);if(c2.length){break}}}for(dg in bq){if(Object.prototype.hasOwnProperty.call(bq,dg)){cU=f(dk,bq[dg]); -if(cU.length){break}}}}dn=d(ba);c5=df.length?d(df):"";if(dn.length&&!aM(dn)&&(!bh||!c5.length||aM(c5))){df=ba}if(df.length||c2.length){c1=c4;de=[c2,cU,c1,bL(df.slice(0,cY))];cP(db,JSON_PIWIK.stringify(de),cI,bc,cB)}}cW+="&idsite="+bP+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cV.getHours()+"&m="+cV.getMinutes()+"&s="+cV.getSeconds()+"&url="+s(bL(dk))+(ba.length?"&urlref="+s(bL(ba)):"")+((bk&&bk.length)?"&uid="+s(bk):"")+"&_id="+da.uuid+"&_idts="+da.createTs+"&_idvc="+da.visitCount+"&_idn="+da.newVisitor+(c2.length?"&_rcn="+s(c2):"")+(cU.length?"&_rck="+s(cU):"")+"&_refts="+c1+"&_viewts="+da.lastVisitTs+(String(da.lastEcommerceOrderTs).length?"&_ects="+da.lastEcommerceOrderTs:"")+(String(df).length?"&_ref="+s(bL(df.slice(0,cY))):"")+(c7?"&cs="+s(c7):"")+"&send_image=0";for(dg in cK){if(Object.prototype.hasOwnProperty.call(cK,dg)){cW+="&"+dg+"="+cK[dg]}}var dm=[];if(dh){for(dg in dh){if(Object.prototype.hasOwnProperty.call(dh,dg)&&/^dimension\d+$/.test(dg)){var c0=dg.replace("dimension",""); -dm.push(parseInt(c0,10));dm.push(String(c0));cW+="&"+dg+"="+dh[dg];delete dh[dg]}}}if(dh&&z(dh)){dh=null}for(dg in a9){if(Object.prototype.hasOwnProperty.call(a9,dg)){var c6=(-1===K(dm,dg));if(c6){cW+="&dimension"+dg+"="+a9[dg]}}}if(dh){cW+="&data="+s(JSON_PIWIK.stringify(dh))}else{if(ai){cW+="&data="+s(JSON_PIWIK.stringify(ai))}}function c3(dp,dq){var dr=JSON_PIWIK.stringify(dp);if(dr.length>2){return"&"+dq+"="+s(dr)}return""}var dl=cT(bF);var dc=cT(b5);cW+=c3(dl,"cvar");cW+=c3(dc,"e_cvar");if(aH){cW+=c3(aH,"_cvar");for(dg in dd){if(Object.prototype.hasOwnProperty.call(dd,dg)){if(aH[dg][0]===""||aH[dg][1]===""){delete aH[dg]}}}if(bA){cP(c8,JSON_PIWIK.stringify(aH),b8,bc,cB)}}if(aS){if(b6){cW+=">_ms="+b6}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){cW+=">_ms="+(i.timing.responseEnd-i.timing.requestStart)}}}if(aC){cW+="&pv_id="+aC}da.lastEcommerceOrderTs=H(cX)&&String(cX).length?cX:da.lastEcommerceOrderTs;aD(da);bW();cW+=X(di,{tracker:bs,request:cW});if(cD.length){cW+="&"+cD -}if(y(bU)){cW=bU(cW)}return cW}bB=function aW(){var cU=new Date();if(cC+aV<=cU.getTime()){var cV=cc("ping=1",null,"ping");bp(cV,bt);return true}return false};function bd(cX,cW,c2,cY,cU,c5){var c0="idgoal=0",c1,cV=new Date(),c3=[],c4,cZ=String(cX).length;if(cZ){c0+="&ec_id="+s(cX);c1=Math.round(cV.getTime()/1000)}c0+="&revenue="+cW;if(String(c2).length){c0+="&ec_st="+c2}if(String(cY).length){c0+="&ec_tx="+cY}if(String(cU).length){c0+="&ec_sh="+cU}if(String(c5).length){c0+="&ec_dt="+c5}if(cE){for(c4 in cE){if(Object.prototype.hasOwnProperty.call(cE,c4)){if(!H(cE[c4][1])){cE[c4][1]=""}if(!H(cE[c4][2])){cE[c4][2]=""}if(!H(cE[c4][3])||String(cE[c4][3]).length===0){cE[c4][3]=0}if(!H(cE[c4][4])||String(cE[c4][4]).length===0){cE[c4][4]=1}c3.push(cE[c4])}}c0+="&ec_items="+s(JSON_PIWIK.stringify(c3))}c0=cc(c0,ai,"ecommerce",c1);bp(c0,bt);if(cZ){cE={}}}function bI(cU,cY,cX,cW,cV,cZ){if(String(cU).length&&H(cY)){bd(cU,cY,cX,cW,cV,cZ)}}function be(cU){if(H(cU)){bd("",cU,"","","","")}}function bJ(cV,cX,cW){aC=a4(); -var cU=cc("action_name="+s(af(cV||a6)),cX,"log");bp(cU,bt,cW)}function aQ(cW,cV){var cX,cU="(^| )(piwik[_-]"+cV;if(cW){for(cX=0;cX0){cV+="&"}else{cV+="?"}var cX=aO().uuid;var cW=aB();cV=D(cV,ao,cX+cW);Z.setAnyAttribute(cU,"href",cV)}function at(cX){var cY=Z.getAttributeValueFromNode(cX,"href"); -if(!cY){return false}cY=String(cY);var cV=cY.indexOf("//")===0||cY.indexOf("http://")===0||cY.indexOf("https://")===0;if(!cV){return false}var cU=cX.pathname||b4(cX.href);var cW=(cX.hostname||d(cX.href)).toLowerCase();if(al(cW,cU)){if(!co(cz,J(cW))){return true}return false}return false}function cn(cU){var cV=cN(cU);if(cV&&cV.type){cV.href=o(cV.href);cF(cV.href,cV.type,undefined,null,cU);return}if(cs){cU=an(cU);if(at(cU)){b2(cU)}}}function cf(){return E.all&&!E.addEventListener}function cA(cU){var cW=cU.which;var cV=(typeof cU.button);if(!cW&&cV!=="undefined"){if(cf()){if(cU.button&1){cW=1}else{if(cU.button&2){cW=3}else{if(cU.button&4){cW=2}}}}else{if(cU.button===0||cU.button==="0"){cW=1}else{if(cU.button&1){cW=2}else{if(cU.button&2){cW=3}}}}}return cW}function bC(cU){switch(cA(cU)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aR(cU){return cU.target||cU.srcElement}function au(cU){return function(cX){cX=cX||R.event;var cW=bC(cX);var cY=aR(cX);if(cX.type==="click"){var cV=false; -if(cU&&cW==="middle"){cV=true}if(cY&&!cV){cn(cY)}}else{if(cX.type==="mousedown"){if(cW==="middle"&&cY){aI=cW;bm=cY}else{aI=bm=null}}else{if(cX.type==="mouseup"){if(cW===aI&&cY===bm){cn(cY)}aI=bm=null}else{if(cX.type==="contextmenu"){cn(cY)}}}}}}function ak(cW,cV){var cU=typeof cV;if(cU==="undefined"){cV=true}ah(cW,"click",au(cV),false);if(cV){ah(cW,"mouseup",au(cV),false);ah(cW,"mousedown",au(cV),false);ah(cW,"contextmenu",au(cV),false)}}function bn(cW,cY){aj=true;var cX,cV=aQ(bl,"ignore"),cZ=E.links,cU=null,c0=null;if(cZ){for(cX=0;cX0){cY=parseInt(cY,10);c1(cY)}})}function cm(){var cV,cX,cY={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(cV in cY){if(Object.prototype.hasOwnProperty.call(cY,cV)){cX=h.mimeTypes[cY[cV]];cK[cV]=(cX&&cX.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&H(h.javaEnabled)&&h.javaEnabled()){cK.java="1"}if(y(R.GearsFactory)){cK.gears="1"}cK.cookie=bO()}var cW=parseInt(U.width,10);var cU=parseInt(U.height,10);cK.res=parseInt(cW,10)+"x"+parseInt(cU,10) -}cm();a5();aD();this.getVisitorId=function(){return aO().uuid};this.getVisitorInfo=function(){return ct()};this.getAttributionInfo=function(){return bw()};this.getAttributionCampaignName=function(){return bw()[0]};this.getAttributionCampaignKeyword=function(){return bw()[1]};this.getAttributionReferrerTimestamp=function(){return bw()[2]};this.getAttributionReferrerUrl=function(){return bw()[3]};this.setTrackerUrl=function(cU){aw=cU};this.getTrackerUrl=function(){return aw};this.getPiwikUrl=function(){return M(this.getTrackerUrl(),br)};this.addTracker=function(cU,cW){if(!cW){throw new Error("A siteId must be given to add a new tracker")}if(!H(cU)||null===cU){cU=this.getTrackerUrl()}var cV=new O(cU,cW);G.push(cV);return cV};this.getSiteId=function(){return bP};this.setSiteId=function(cU){bM(cU)};this.setUserId=function(cU){if(!H(cU)||!cU.length){return}bk=cU;by=bQ(bk).substr(0,16)};this.getUserId=function(){return bk};this.setCustomData=function(cU,cV){if(T(cU)){ai=cU}else{if(!ai){ai={}}ai[cU]=cV -}};this.getCustomData=function(){return ai};this.setCustomRequestProcessing=function(cU){bU=cU};this.appendToTrackingUrl=function(cU){cD=cU};this.getRequest=function(cU){return cc(cU)};this.addPlugin=function(cU,cV){b[cU]=cV};this.setCustomDimension=function(cU,cV){cU=parseInt(cU,10);if(cU>0){if(!H(cV)){cV=""}if(!v(cV)){cV=String(cV)}a9[cU]=cV}};this.getCustomDimension=function(cU){cU=parseInt(cU,10);if(cU>0&&Object.prototype.hasOwnProperty.call(a9,cU)){return a9[cU]}};this.deleteCustomDimension=function(cU){cU=parseInt(cU,10);if(cU>0){delete a9[cU]}};this.setCustomVariable=function(cV,cU,cY,cW){var cX;if(!H(cW)){cW="visit"}if(!H(cU)){return}if(!H(cY)){cY=""}if(cV>0){cU=!v(cU)?String(cU):cU;cY=!v(cY)?String(cY):cY;cX=[cU.slice(0,bf),cY.slice(0,bf)];if(cW==="visit"||cW===2){cl();aH[cV]=cX}else{if(cW==="page"||cW===3){bF[cV]=cX}else{if(cW==="event"){b5[cV]=cX}}}}};this.getCustomVariable=function(cV,cW){var cU;if(!H(cW)){cW="visit"}if(cW==="page"||cW===3){cU=bF[cV]}else{if(cW==="event"){cU=b5[cV] -}else{if(cW==="visit"||cW===2){cl();cU=aH[cV]}}}if(!H(cU)||(cU&&cU[0]==="")){return false}return cU};this.deleteCustomVariable=function(cU,cV){if(this.getCustomVariable(cU,cV)){this.setCustomVariable(cU,"","",cV)}};this.deleteCustomVariables=function(cU){if(cU==="page"||cU===3){bF={}}else{if(cU==="event"){b5={}}else{if(cU==="visit"||cU===2){aH={}}}}};this.storeCustomVariablesInCookie=function(){bA=true};this.setLinkTrackingTimer=function(cU){bt=cU};this.getLinkTrackingTimer=function(){return bt};this.setDownloadExtensions=function(cU){if(v(cU)){cU=cU.split("|")}cJ=cU};this.addDownloadExtensions=function(cV){var cU;if(v(cV)){cV=cV.split("|")}for(cU=0;cU1){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: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}ao[aj]++}}}}return an}var A=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","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=0){cX=cX.slice(0,cW)}cW=cX.lastIndexOf("/");if(cW!==cX.length-1){cX=cX.slice(0,cW+1)}return cX+cV}function cp(cX,cV){var cW;cX=String(cX).toLowerCase();cV=String(cV).toLowerCase();if(cX===cV){return true}if(cV.slice(0,1)==="."){if(cX===cV.slice(1)){return true}cW=cX.length-cV.length;if((cW>0)&&(cX.slice(cW)===cV)){return true}}return false}function b5(cV){var cW=document.createElement("a");if(cV.indexOf("//")!==0&&cV.indexOf("http")!==0){if(cV.indexOf("*")===0){cV=cV.substr(1) +}if(cV.indexOf(".")===0){cV=cV.substr(1)}cV="http://"+cV}cW.href=u.toAbsoluteUrl(cV);if(cW.pathname){return cW.pathname}return""}function aU(cW,cV){if(!ad(cV,"/")){cV="/"+cV}if(!ad(cW,"/")){cW="/"+cW}var cX=(cV==="/"||cV==="/*");if(cX){return true}if(cW===cV){return true}cV=String(cV).toLowerCase();cW=String(cW).toLowerCase();if(P(cV,"*")){cV=cV.slice(0,-1);cX=(!cV||cV==="/");if(cX){return true}if(cW===cV){return true}return cW.indexOf(cV)===0}if(!P(cW,"/")){cW+="/"}if(!P(cV,"/")){cV+="/"}return cW.indexOf(cV)===0}function al(cZ,c1){var cW,cV,cX,cY,c0;for(cW=0;cW0)&&(cY.slice(cX)===cV)){return true}}}return false}function ca(cV,cX){var cW=new Image(1,1);cW.onload=function(){C=0;if(typeof cX==="function"){cX() +}};cV=cV.replace("send_image=0","send_image=1");cW.src=aw+(aw.indexOf("?")<0?"?":"&")+cV}function cI(cW,cZ,cV){if(!H(cV)||null===cV){cV=true}try{var cY=R.XMLHttpRequest?new R.XMLHttpRequest():R.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cY.open("POST",aw,true);cY.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cV){ca(cW,cZ)}else{if(this.readyState===4&&(typeof cZ==="function")){cZ()}}};cY.setRequestHeader("Content-Type",ch);cY.send(cW)}catch(cX){if(cV){ca(cW,cZ)}}}function b0(cW){var cV=new Date();var cX=cV.getTime()+cW;if(!q||cX>q){q=cX}}function b8(cV){if(bW||!aW){return}bW=setTimeout(function cW(){bW=null;if(!a2){a2=(!E.hasFocus||E.hasFocus())}if(!a2){b8(aW);return}if(bC()){return}var cX=new Date(),cY=aW-(cX.getTime()-cD);cY=Math.min(aW,cY);b8(cY)},cV||aW)}function bv(){if(!bW){return}clearTimeout(bW);bW=null}function a0(){a2=true;if(bC()){return}b8()}function aq(){bv()}function cS(){if(aF||!aW){return}aF=true;ah(R,"focus",a0); +ah(R,"blur",aq);b8()}function cl(cZ){var cW=new Date();var cV=cW.getTime();cD=cV;if(ck&&cV2000){cI(cW,cX)}else{ca(cW,cX)}b0(cV)})}if(!aF){cS()}else{b8()}}function b4(cV){if(cw){return false}return(cV&&cV.length)}function cR(cX,cV){if(!b4(cX)){return}var cW='{"requests":["?'+cX.join('","?')+'"]}';cl(function(){cI(cW,null,false);b0(cV)})}function aK(cV){return a8+cV+"."+bQ+"."+bc}function bP(){if(a9){return"0"}if(!H(h.cookieEnabled)){var cV=aK("testcookie");cQ(cV,"1");return av(cV)==="1"?"1":"0"}return h.cookieEnabled?"1":"0"}function a6(){bc=bR((cC||cA)+(bd||"/")).slice(0,4)}function bH(){var cW=aK("cvar"),cV=av(cW);if(cV.length){cV=JSON_PIWIK.parse(cV);if(T(cV)){return cV}}return{}}function cm(){if(aH===false){aH=bH()}}function cx(){return bR((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cL)+(new Date()).getTime()+Math.random()).slice(0,16) +}function ar(){return bR((h.userAgent||"")+(h.platform||"")+JSON_PIWIK.stringify(cL)).slice(0,6)}function a4(){return Math.floor((new Date()).getTime()/1000)}function aB(){var cW=a4();var cX=ar();var cV=String(cW)+cX;return cV}function cH(cX){cX=String(cX);var c0=ar();var cY=c0.length;var cZ=cX.substr(-1*cY,cY);var cW=parseInt(cX.substr(0,cX.length-cY),10);if(cW&&cZ&&cZ===c0){var cV=a4();if(aQ<=0){return true}if(cV>=cW&&cV<=(cW+aQ)){return true}}return false}function cT(cV){if(!ct){return""}var cZ=f(cV,ao);if(!cZ){return""}cZ=String(cZ);var cX=new RegExp("^[a-zA-Z0-9]+$");if(cZ.length===32&&cX.test(cZ)){var cW=cZ.substr(16,32);if(cH(cW)){var cY=cZ.substr(0,16);return cY}}return""}function cu(){if(!bz){bz=cT(by)}var cX=new Date(),cV=Math.round(cX.getTime()/1000),cW=aK("id"),c0=av(cW),cZ,cY;if(c0){cZ=c0.split(".");cZ.unshift("0");if(bz.length){cZ[1]=bz}return cZ}if(bz.length){cY=bz}else{if("0"===bP()){cY=""}else{cY=cx()}}cZ=["1",cY,cV,0,cV,"",""];return cZ}function aO(){var c2=cu(),cY=c2[0],cZ=c2[1],cW=c2[2],cV=c2[3],c0=c2[4],cX=c2[5]; +if(!H(c2[6])){c2[6]=""}var c1=c2[6];return{newVisitor:cY,uuid:cZ,createTs:cW,visitCount:cV,currentVisitTs:c0,lastVisitTs:cX,lastEcommerceOrderTs:c1}}function az(){var cY=new Date(),cW=cY.getTime(),cZ=aO().createTs;var cV=parseInt(cZ,10);var cX=(cV*1000)+cr-cW;return cX}function aD(cV){if(!bQ){return}var cX=new Date(),cW=Math.round(cX.getTime()/1000);if(!H(cV)){cV=aO()}var cY=cV.uuid+"."+cV.createTs+"."+cV.visitCount+"."+cW+"."+cV.lastVisitTs+"."+cV.lastEcommerceOrderTs;cQ(aK("id"),cY,az(),bd,cC)}function bx(){var cV=av(aK("ref"));if(cV.length){try{cV=JSON_PIWIK.parse(cV);if(T(cV)){return cV}}catch(cW){}}return["","",0,""]}function bI(cX,cW,cV){cQ(cX,"",-86400,cW,cV)}function bj(cW){var cV="testvalue";cQ("test",cV,10000,null,cW);if(av("test")===cV){bI("test",null,cW);return true}return false}function ax(){var cW=a9;a9=false;var cV,cX;for(cV=0;cVdk){db.visitCount++;db.lastVisitTs=db.currentVisitTs}if(!bi||!c3.length){for(dh in cb){if(Object.prototype.hasOwnProperty.call(cb,dh)){c3=f(dl,cb[dh]);if(c3.length){break}}}for(dh in br){if(Object.prototype.hasOwnProperty.call(br,dh)){cV=f(dl,br[dh]); +if(cV.length){break}}}}dp=d(bb);c6=dg.length?d(dg):"";if(dp.length&&!aM(dp)&&(!bi||!c6.length||aM(c6))){dg=bb}if(dg.length||c3.length){c2=c5;df=[c3,cV,c2,bM(dg.slice(0,cZ))];cQ(dc,JSON_PIWIK.stringify(df),cJ,bd,cC)}}cX+="&idsite="+bQ+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cW.getHours()+"&m="+cW.getMinutes()+"&s="+cW.getSeconds()+"&url="+s(bM(dl))+(bb.length?"&urlref="+s(bM(bb)):"")+((bl&&bl.length)?"&uid="+s(bl):"")+"&_id="+db.uuid+"&_idts="+db.createTs+"&_idvc="+db.visitCount+"&_idn="+db.newVisitor+(c3.length?"&_rcn="+s(c3):"")+(cV.length?"&_rck="+s(cV):"")+"&_refts="+c2+"&_viewts="+db.lastVisitTs+(String(db.lastEcommerceOrderTs).length?"&_ects="+db.lastEcommerceOrderTs:"")+(String(dg).length?"&_ref="+s(bM(dg.slice(0,cZ))):"")+(c8?"&cs="+s(c8):"")+"&send_image=0";for(dh in cL){if(Object.prototype.hasOwnProperty.call(cL,dh)){cX+="&"+dh+"="+cL[dh]}}var dn=[];if(di){for(dh in di){if(Object.prototype.hasOwnProperty.call(di,dh)&&/^dimension\d+$/.test(dh)){var c1=dh.replace("dimension",""); +dn.push(parseInt(c1,10));dn.push(String(c1));cX+="&"+dh+"="+di[dh];delete di[dh]}}}if(di&&z(di)){di=null}for(dh in ba){if(Object.prototype.hasOwnProperty.call(ba,dh)){var c7=(-1===K(dn,dh));if(c7){cX+="&dimension"+dh+"="+ba[dh]}}}if(di){cX+="&data="+s(JSON_PIWIK.stringify(di))}else{if(ai){cX+="&data="+s(JSON_PIWIK.stringify(ai))}}function c4(dq,dr){var ds=JSON_PIWIK.stringify(dq);if(ds.length>2){return"&"+dr+"="+s(ds)}return""}var dm=cU(bG);var dd=cU(b6);cX+=c4(dm,"cvar");cX+=c4(dd,"e_cvar");if(aH){cX+=c4(aH,"_cvar");for(dh in de){if(Object.prototype.hasOwnProperty.call(de,dh)){if(aH[dh][0]===""||aH[dh][1]===""){delete aH[dh]}}}if(bB){cQ(c9,JSON_PIWIK.stringify(aH),b9,bd,cC)}}if(aT){if(b7){cX+=">_ms="+b7}else{if(i&&i.timing&&i.timing.requestStart&&i.timing.responseEnd){cX+=">_ms="+(i.timing.responseEnd-i.timing.requestStart)}}}if(aC){cX+="&pv_id="+aC}db.lastEcommerceOrderTs=H(cY)&&String(cY).length?cY:db.lastEcommerceOrderTs;aD(db);bX();cX+=X(dj,{tracker:bt,request:cX});if(cE.length){cX+="&"+cE +}if(y(bV)){cX=bV(cX)}return cX}bC=function aX(){var cV=new Date();if(cD+aW<=cV.getTime()){var cW=cd("ping=1",null,"ping");bq(cW,bu);return true}return false};function be(cY,cX,c3,cZ,cV,c6){var c1="idgoal=0",c2,cW=new Date(),c4=[],c5,c0=String(cY).length;if(c0){c1+="&ec_id="+s(cY);c2=Math.round(cW.getTime()/1000)}c1+="&revenue="+cX;if(String(c3).length){c1+="&ec_st="+c3}if(String(cZ).length){c1+="&ec_tx="+cZ}if(String(cV).length){c1+="&ec_sh="+cV}if(String(c6).length){c1+="&ec_dt="+c6}if(cF){for(c5 in cF){if(Object.prototype.hasOwnProperty.call(cF,c5)){if(!H(cF[c5][1])){cF[c5][1]=""}if(!H(cF[c5][2])){cF[c5][2]=""}if(!H(cF[c5][3])||String(cF[c5][3]).length===0){cF[c5][3]=0}if(!H(cF[c5][4])||String(cF[c5][4]).length===0){cF[c5][4]=1}c4.push(cF[c5])}}c1+="&ec_items="+s(JSON_PIWIK.stringify(c4))}c1=cd(c1,ai,"ecommerce",c2);bq(c1,bu);if(c0){cF={}}}function bJ(cV,cZ,cY,cX,cW,c0){if(String(cV).length&&H(cZ)){be(cV,cZ,cY,cX,cW,c0)}}function bf(cV){if(H(cV)){be("",cV,"","","","")}}function bK(cW,cY,cX){aC=a5(); +var cV=cd("action_name="+s(af(cW||a7)),cY,"log");bq(cV,bu,cX)}function aR(cX,cW){var cY,cV="(^| )(piwik[_-]"+cW;if(cX){for(cY=0;cY0){cW+="&"}else{cW+="?"}var cY=aO().uuid;var cX=aB();cW=D(cW,ao,cY+cX);Z.setAnyAttribute(cV,"href",cW)}function at(cY){var cZ=Z.getAttributeValueFromNode(cY,"href"); +if(!cZ){return false}cZ=String(cZ);var cW=cZ.indexOf("//")===0||cZ.indexOf("http://")===0||cZ.indexOf("https://")===0;if(!cW){return false}var cV=cY.pathname||b5(cY.href);var cX=(cY.hostname||d(cY.href)).toLowerCase();if(al(cX,cV)){if(!cp(cA,J(cX))){return true}return false}return false}function co(cV){var cW=cO(cV);if(cW&&cW.type){cW.href=o(cW.href);cG(cW.href,cW.type,undefined,null,cV);return}if(ct){cV=an(cV);if(at(cV)){b3(cV)}}}function cg(){return E.all&&!E.addEventListener}function cB(cV){var cX=cV.which;var cW=(typeof cV.button);if(!cX&&cW!=="undefined"){if(cg()){if(cV.button&1){cX=1}else{if(cV.button&2){cX=3}else{if(cV.button&4){cX=2}}}}else{if(cV.button===0||cV.button==="0"){cX=1}else{if(cV.button&1){cX=2}else{if(cV.button&2){cX=3}}}}}return cX}function bD(cV){switch(cB(cV)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aS(cV){return cV.target||cV.srcElement}function au(cV){return function(cY){cY=cY||R.event;var cX=bD(cY);var cZ=aS(cY);if(cY.type==="click"){var cW=false; +if(cV&&cX==="middle"){cW=true}if(cZ&&!cW){co(cZ)}}else{if(cY.type==="mousedown"){if(cX==="middle"&&cZ){aI=cX;bn=cZ}else{aI=bn=null}}else{if(cY.type==="mouseup"){if(cX===aI&&cZ===bn){co(cZ)}aI=bn=null}else{if(cY.type==="contextmenu"){co(cZ)}}}}}}function ak(cX,cW){var cV=typeof cW;if(cV==="undefined"){cW=true}ah(cX,"click",au(cW),false);if(cW){ah(cX,"mouseup",au(cW),false);ah(cX,"mousedown",au(cW),false);ah(cX,"contextmenu",au(cW),false)}}function bo(cX,cZ){aj=true;var cY,cW=aR(bm,"ignore"),c0=E.links,cV=null,c1=null;if(c0){for(cY=0;cY0){cZ=parseInt(cZ,10);c2(cZ)}})}function cn(){var cW,cY,cZ={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(cW in cZ){if(Object.prototype.hasOwnProperty.call(cZ,cW)){cY=h.mimeTypes[cZ[cW]];cL[cW]=(cY&&cY.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&H(h.javaEnabled)&&h.javaEnabled()){cL.java="1"}if(y(R.GearsFactory)){cL.gears="1"}cL.cookie=bP()}var cX=parseInt(U.width,10);var cV=parseInt(U.height,10);cL.res=parseInt(cX,10)+"x"+parseInt(cV,10) +}cn();a6();aD();this.getVisitorId=function(){return aO().uuid};this.getVisitorInfo=function(){return cu()};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(cV){aw=cV};this.getTrackerUrl=function(){return aw};this.getPiwikUrl=function(){return M(this.getTrackerUrl(),bs)};this.addTracker=function(cV,cX){if(!cX){throw new Error("A siteId must be given to add a new tracker")}if(!H(cV)||null===cV){cV=this.getTrackerUrl()}var cW=new O(cV,cX);G.push(cW);return cW};this.getSiteId=function(){return bQ};this.setSiteId=function(cV){bN(cV)};this.setUserId=function(cV){if(!H(cV)||!cV.length){return}bl=cV;bz=bR(bl).substr(0,16)};this.getUserId=function(){return bl};this.setCustomData=function(cV,cW){if(T(cV)){ai=cV}else{if(!ai){ai={}}ai[cV]=cW +}};this.getCustomData=function(){return ai};this.setCustomRequestProcessing=function(cV){bV=cV};this.appendToTrackingUrl=function(cV){cE=cV};this.getRequest=function(cV){return cd(cV)};this.addPlugin=function(cV,cW){b[cV]=cW};this.setCustomDimension=function(cV,cW){cV=parseInt(cV,10);if(cV>0){if(!H(cW)){cW=""}if(!v(cW)){cW=String(cW)}ba[cV]=cW}};this.getCustomDimension=function(cV){cV=parseInt(cV,10);if(cV>0&&Object.prototype.hasOwnProperty.call(ba,cV)){return ba[cV]}};this.deleteCustomDimension=function(cV){cV=parseInt(cV,10);if(cV>0){delete ba[cV]}};this.setCustomVariable=function(cW,cV,cZ,cX){var cY;if(!H(cX)){cX="visit"}if(!H(cV)){return}if(!H(cZ)){cZ=""}if(cW>0){cV=!v(cV)?String(cV):cV;cZ=!v(cZ)?String(cZ):cZ;cY=[cV.slice(0,bg),cZ.slice(0,bg)];if(cX==="visit"||cX===2){cm();aH[cW]=cY}else{if(cX==="page"||cX===3){bG[cW]=cY}else{if(cX==="event"){b6[cW]=cY}}}}};this.getCustomVariable=function(cW,cX){var cV;if(!H(cX)){cX="visit"}if(cX==="page"||cX===3){cV=bG[cW]}else{if(cX==="event"){cV=b6[cW] +}else{if(cX==="visit"||cX===2){cm();cV=aH[cW]}}}if(!H(cV)||(cV&&cV[0]==="")){return false}return cV};this.deleteCustomVariable=function(cV,cW){if(this.getCustomVariable(cV,cW)){this.setCustomVariable(cV,"","",cW)}};this.deleteCustomVariables=function(cV){if(cV==="page"||cV===3){bG={}}else{if(cV==="event"){b6={}}else{if(cV==="visit"||cV===2){aH={}}}}};this.storeCustomVariablesInCookie=function(){bB=true};this.setLinkTrackingTimer=function(cV){bu=cV};this.getLinkTrackingTimer=function(){return bu};this.setDownloadExtensions=function(cV){if(v(cV)){cV=cV.split("|")}cK=cV};this.addDownloadExtensions=function(cW){var cV;if(v(cW)){cW=cW.split("|")}for(cV=0;cV1){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: http://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"];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