From 26d07fc4a91f2d678a70e5b73ef485ef3e1460a0 Mon Sep 17 00:00:00 2001 From: Matthieu Aubry Date: Tue, 24 Jan 2017 10:40:56 +1300 Subject: Cross Domain: forward pk_vid parameter when the clicked element is not directly a link but is within the link element itself (#11262) --- js/piwik.js | 19 ++++++++++++++----- js/piwik.min.js | 30 +++++++++++++++--------------- piwik.js | 30 +++++++++++++++--------------- 3 files changed, 44 insertions(+), 35 deletions(-) diff --git a/js/piwik.js b/js/piwik.js index c97ac02be7..a0e404ba68 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -5118,14 +5118,23 @@ if (typeof window.Piwik !== 'object') { function processClick(sourceElement) { var link = getLinkIfShouldBeProcessed(sourceElement); - if (crossDomainTrackingEnabled && !link && isLinkToDifferentDomainButSamePiwikWebsite(sourceElement)) { - // !link means it is a link to same domain or same website (as set in setDomains()) - replaceHrefForCrossDomainLink(sourceElement); - } - + // not a link to same domain or the same website (as set in setDomains()) if (link && link.type) { link.href = safeDecodeWrapper(link.href); logLink(link.href, link.type, undefined, null, sourceElement); + return; + } + + + // a link to same domain or the same website (as set in setDomains()) + if (crossDomainTrackingEnabled) { + // in case the clicked element is within the (for example there is a
within the ) this will get the actual link element + sourceElement = getSourceElement(sourceElement); + + if(isLinkToDifferentDomainButSamePiwikWebsite(sourceElement)) { + replaceHrefForCrossDomainLink(sourceElement); + } + } } diff --git a/js/piwik.min.js b/js/piwik.min.js index 1c662e4c25..cb12f8b837 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -55,21 +55,21 @@ if(cQ){return{type:cQ,href:cS}}}}function aF(cQ,cR,cS,cT){var cU=t.buildInteract }if(!aZ(cU,cV)){return}bW(bq);if(Y.isLinkElement(cQ)&&Y.hasNodeAttributeWithValue(cQ,"href")&&Y.hasNodeAttributeWithValue(cQ,t.CONTENT_TARGET_ATTR)){var cS=Y.getAttributeValueFromNode(cQ,"href");if(!aK(cS)&&cQ.wasContentTargetAttrReplaced){Y.setAnyAttribute(cQ,t.CONTENT_TARGET_ATTR,"")}}var cZ=cJ(cQ);if(ai&&cZ&&cZ.type){return cZ.type}if(bm(cU)){return"href"}var cW=t.buildContentBlock(cU);if(!cW){return}var cT=cW.name;var c0=cW.piece;var cY=cW.target;var cX=aF("click",cT,c0,cY);bn(cX,bq);return cX}}function bH(cS){if(!cS||!cS.length){return}var cQ,cR;for(cQ=0;cQ0){cR+="&"}else{cR+="?"}var cT=aN().uuid;var cS=aA();cR=C(cR,an,cT+cS);Y.setAnyAttribute(cQ,"href",cR)}function ar(cT){var cU=Y.getAttributeValueFromNode(cT,"href");if(!cU){return false}cU=String(cU);var cR=cU.indexOf("//")===0||cU.indexOf("http://")===0||cU.indexOf("https://")===0; -if(!cR){return false}var cQ=cT.pathname||b1(cT.href);var cS=(cT.hostname||c(cT.href)).toLowerCase();if(ak(cS,cQ)){if(!ck(cv,I(cS))){return true}return false}return false}function cj(cQ){var cR=cJ(cQ);if(co&&!cR&&ar(cQ)){bZ(cQ)}if(cR&&cR.type){cR.href=n(cR.href);cB(cR.href,cR.type,undefined,null,cQ)}}function cb(){return D.all&&!D.addEventListener}function cw(cQ){var cS=cQ.which;var cR=(typeof cQ.button);if(!cS&&cR!=="undefined"){if(cb()){if(cQ.button&1){cS=1}else{if(cQ.button&2){cS=3}else{if(cQ.button&4){cS=2}}}}else{if(cQ.button===0||cQ.button==="0"){cS=1}else{if(cQ.button&1){cS=2}else{if(cQ.button&2){cS=3}}}}}return cS}function bz(cQ){switch(cw(cQ)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cQ){return cQ.target||cQ.srcElement}function at(cQ){return function(cT){cT=cT||Q.event;var cS=bz(cT);var cU=aQ(cT);if(cT.type==="click"){var cR=false;if(cQ&&cS==="middle"){cR=true}if(cU&&!cR){cj(cU)}}else{if(cT.type==="mousedown"){if(cS==="middle"&&cU){aH=cS;bk=cU}else{aH=bk=null -}}else{if(cT.type==="mouseup"){if(cS===aH&&cU===bk){cj(cU)}aH=bk=null}else{if(cT.type==="contextmenu"){cj(cU)}}}}}}function aj(cS,cR){var cQ=typeof cR;if(cQ==="undefined"){cR=true}ag(cS,"click",at(cR),false);if(cR){ag(cS,"mouseup",at(cR),false);ag(cS,"mousedown",at(cR),false);ag(cS,"contextmenu",at(cR),false)}}function bl(cR){if(!ai){ai=true;var cS,cQ=aP(bj,"ignore"),cT=D.links;if(cT){for(cS=0;cS0){cU=parseInt(cU,10);cX(cU)}})}function ci(){var cR,cT,cU={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cR in cU){if(Object.prototype.hasOwnProperty.call(cU,cR)){cT=g.mimeTypes[cU[cR]];cG[cR]=(cT&&cT.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cG.java="1"}if(x(Q.GearsFactory)){cG.gears="1"}cG.cookie=bL()}var cS=parseInt(T.width,10);var cQ=parseInt(T.height,10);cG.res=parseInt(cS,10)+"x"+parseInt(cQ,10)}ci();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cp()};this.getAttributionInfo=function(){return bt()};this.getAttributionCampaignName=function(){return bt()[0]};this.getAttributionCampaignKeyword=function(){return bt()[1]};this.getAttributionReferrerTimestamp=function(){return bt()[2]};this.getAttributionReferrerUrl=function(){return bt()[3]};this.setTrackerUrl=function(cQ){av=cQ};this.getTrackerUrl=function(){return av};this.addTracker=function(cQ,cS){if(!cS){throw new Error("A siteId must be given to add a new tracker") -}if(!G(cQ)||null===cQ){cQ=this.getTrackerUrl()}var cR=new N(cQ,cS);F.push(cR);return cR};this.getSiteId=function(){return bM};this.setSiteId=function(cQ){bJ(cQ)};this.setUserId=function(cQ){if(!G(cQ)||!cQ.length){return}bi=cQ;bv=bN(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cQ,cR){if(S(cQ)){ah=cQ}else{if(!ah){ah={}}ah[cQ]=cR}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cQ){bR=cQ};this.appendToTrackingUrl=function(cQ){cz=cQ};this.getRequest=function(cQ){return b8(cQ)};this.addPlugin=function(cQ,cR){a[cQ]=cR};this.setCustomDimension=function(cQ,cR){cQ=parseInt(cQ,10);if(cQ>0){if(!G(cR)){cR=""}if(!u(cR)){cR=String(cR)}a8[cQ]=cR}};this.getCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0&&Object.prototype.hasOwnProperty.call(a8,cQ)){return a8[cQ]}};this.deleteCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0){delete a8[cQ]}};this.setCustomVariable=function(cR,cQ,cU,cS){var cT;if(!G(cS)){cS="visit"}if(!G(cQ)){return -}if(!G(cU)){cU=""}if(cR>0){cQ=!u(cQ)?String(cQ):cQ;cU=!u(cU)?String(cU):cU;cT=[cQ.slice(0,be),cU.slice(0,be)];if(cS==="visit"||cS===2){ch();aG[cR]=cT}else{if(cS==="page"||cS===3){bC[cR]=cT}else{if(cS==="event"){b2[cR]=cT}}}}};this.getCustomVariable=function(cR,cS){var cQ;if(!G(cS)){cS="visit"}if(cS==="page"||cS===3){cQ=bC[cR]}else{if(cS==="event"){cQ=b2[cR]}else{if(cS==="visit"||cS===2){ch();cQ=aG[cR]}}}if(!G(cQ)||(cQ&&cQ[0]==="")){return false}return cQ};this.deleteCustomVariable=function(cQ,cR){if(this.getCustomVariable(cQ,cR)){this.setCustomVariable(cQ,"","",cR)}};this.storeCustomVariablesInCookie=function(){bx=true};this.setLinkTrackingTimer=function(cQ){bq=cQ};this.setDownloadExtensions=function(cQ){if(u(cQ)){cQ=cQ.split("|")}cF=cQ};this.addDownloadExtensions=function(cR){var cQ;if(u(cR)){cR=cR.split("|")}for(cQ=0;cQ1){ad("The method "+ai+' 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')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah; -ah0){cU=parseInt(cU,10); +cX(cU)}})}function ci(){var cR,cT,cU={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cR in cU){if(Object.prototype.hasOwnProperty.call(cU,cR)){cT=g.mimeTypes[cU[cR]];cG[cR]=(cT&&cT.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cG.java="1"}if(x(Q.GearsFactory)){cG.gears="1"}cG.cookie=bL()}var cS=parseInt(T.width,10);var cQ=parseInt(T.height,10);cG.res=parseInt(cS,10)+"x"+parseInt(cQ,10)}ci();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cp()};this.getAttributionInfo=function(){return bt()};this.getAttributionCampaignName=function(){return bt()[0]};this.getAttributionCampaignKeyword=function(){return bt()[1] +};this.getAttributionReferrerTimestamp=function(){return bt()[2]};this.getAttributionReferrerUrl=function(){return bt()[3]};this.setTrackerUrl=function(cQ){av=cQ};this.getTrackerUrl=function(){return av};this.addTracker=function(cQ,cS){if(!cS){throw new Error("A siteId must be given to add a new tracker")}if(!G(cQ)||null===cQ){cQ=this.getTrackerUrl()}var cR=new N(cQ,cS);F.push(cR);return cR};this.getSiteId=function(){return bM};this.setSiteId=function(cQ){bJ(cQ)};this.setUserId=function(cQ){if(!G(cQ)||!cQ.length){return}bi=cQ;bv=bN(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cQ,cR){if(S(cQ)){ah=cQ}else{if(!ah){ah={}}ah[cQ]=cR}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cQ){bR=cQ};this.appendToTrackingUrl=function(cQ){cz=cQ};this.getRequest=function(cQ){return b8(cQ)};this.addPlugin=function(cQ,cR){a[cQ]=cR};this.setCustomDimension=function(cQ,cR){cQ=parseInt(cQ,10);if(cQ>0){if(!G(cR)){cR=""}if(!u(cR)){cR=String(cR) +}a8[cQ]=cR}};this.getCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0&&Object.prototype.hasOwnProperty.call(a8,cQ)){return a8[cQ]}};this.deleteCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0){delete a8[cQ]}};this.setCustomVariable=function(cR,cQ,cU,cS){var cT;if(!G(cS)){cS="visit"}if(!G(cQ)){return}if(!G(cU)){cU=""}if(cR>0){cQ=!u(cQ)?String(cQ):cQ;cU=!u(cU)?String(cU):cU;cT=[cQ.slice(0,be),cU.slice(0,be)];if(cS==="visit"||cS===2){ch();aG[cR]=cT}else{if(cS==="page"||cS===3){bC[cR]=cT}else{if(cS==="event"){b2[cR]=cT}}}}};this.getCustomVariable=function(cR,cS){var cQ;if(!G(cS)){cS="visit"}if(cS==="page"||cS===3){cQ=bC[cR]}else{if(cS==="event"){cQ=b2[cR]}else{if(cS==="visit"||cS===2){ch();cQ=aG[cR]}}}if(!G(cQ)||(cQ&&cQ[0]==="")){return false}return cQ};this.deleteCustomVariable=function(cQ,cR){if(this.getCustomVariable(cQ,cR)){this.setCustomVariable(cQ,"","",cR)}};this.storeCustomVariablesInCookie=function(){bx=true};this.setLinkTrackingTimer=function(cQ){bq=cQ};this.setDownloadExtensions=function(cQ){if(u(cQ)){cQ=cQ.split("|") +}cF=cQ};this.addDownloadExtensions=function(cR){var cQ;if(u(cR)){cR=cR.split("|")}for(cQ=0;cQ1){ad("The method "+ai+' 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')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah; +if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah0){cR+="&"}else{cR+="?"}var cT=aN().uuid;var cS=aA();cR=C(cR,an,cT+cS);Y.setAnyAttribute(cQ,"href",cR)}function ar(cT){var cU=Y.getAttributeValueFromNode(cT,"href");if(!cU){return false}cU=String(cU);var cR=cU.indexOf("//")===0||cU.indexOf("http://")===0||cU.indexOf("https://")===0; -if(!cR){return false}var cQ=cT.pathname||b1(cT.href);var cS=(cT.hostname||c(cT.href)).toLowerCase();if(ak(cS,cQ)){if(!ck(cv,I(cS))){return true}return false}return false}function cj(cQ){var cR=cJ(cQ);if(co&&!cR&&ar(cQ)){bZ(cQ)}if(cR&&cR.type){cR.href=n(cR.href);cB(cR.href,cR.type,undefined,null,cQ)}}function cb(){return D.all&&!D.addEventListener}function cw(cQ){var cS=cQ.which;var cR=(typeof cQ.button);if(!cS&&cR!=="undefined"){if(cb()){if(cQ.button&1){cS=1}else{if(cQ.button&2){cS=3}else{if(cQ.button&4){cS=2}}}}else{if(cQ.button===0||cQ.button==="0"){cS=1}else{if(cQ.button&1){cS=2}else{if(cQ.button&2){cS=3}}}}}return cS}function bz(cQ){switch(cw(cQ)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cQ){return cQ.target||cQ.srcElement}function at(cQ){return function(cT){cT=cT||Q.event;var cS=bz(cT);var cU=aQ(cT);if(cT.type==="click"){var cR=false;if(cQ&&cS==="middle"){cR=true}if(cU&&!cR){cj(cU)}}else{if(cT.type==="mousedown"){if(cS==="middle"&&cU){aH=cS;bk=cU}else{aH=bk=null -}}else{if(cT.type==="mouseup"){if(cS===aH&&cU===bk){cj(cU)}aH=bk=null}else{if(cT.type==="contextmenu"){cj(cU)}}}}}}function aj(cS,cR){var cQ=typeof cR;if(cQ==="undefined"){cR=true}ag(cS,"click",at(cR),false);if(cR){ag(cS,"mouseup",at(cR),false);ag(cS,"mousedown",at(cR),false);ag(cS,"contextmenu",at(cR),false)}}function bl(cR){if(!ai){ai=true;var cS,cQ=aP(bj,"ignore"),cT=D.links;if(cT){for(cS=0;cS0){cU=parseInt(cU,10);cX(cU)}})}function ci(){var cR,cT,cU={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cR in cU){if(Object.prototype.hasOwnProperty.call(cU,cR)){cT=g.mimeTypes[cU[cR]];cG[cR]=(cT&&cT.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cG.java="1"}if(x(Q.GearsFactory)){cG.gears="1"}cG.cookie=bL()}var cS=parseInt(T.width,10);var cQ=parseInt(T.height,10);cG.res=parseInt(cS,10)+"x"+parseInt(cQ,10)}ci();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cp()};this.getAttributionInfo=function(){return bt()};this.getAttributionCampaignName=function(){return bt()[0]};this.getAttributionCampaignKeyword=function(){return bt()[1]};this.getAttributionReferrerTimestamp=function(){return bt()[2]};this.getAttributionReferrerUrl=function(){return bt()[3]};this.setTrackerUrl=function(cQ){av=cQ};this.getTrackerUrl=function(){return av};this.addTracker=function(cQ,cS){if(!cS){throw new Error("A siteId must be given to add a new tracker") -}if(!G(cQ)||null===cQ){cQ=this.getTrackerUrl()}var cR=new N(cQ,cS);F.push(cR);return cR};this.getSiteId=function(){return bM};this.setSiteId=function(cQ){bJ(cQ)};this.setUserId=function(cQ){if(!G(cQ)||!cQ.length){return}bi=cQ;bv=bN(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cQ,cR){if(S(cQ)){ah=cQ}else{if(!ah){ah={}}ah[cQ]=cR}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cQ){bR=cQ};this.appendToTrackingUrl=function(cQ){cz=cQ};this.getRequest=function(cQ){return b8(cQ)};this.addPlugin=function(cQ,cR){a[cQ]=cR};this.setCustomDimension=function(cQ,cR){cQ=parseInt(cQ,10);if(cQ>0){if(!G(cR)){cR=""}if(!u(cR)){cR=String(cR)}a8[cQ]=cR}};this.getCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0&&Object.prototype.hasOwnProperty.call(a8,cQ)){return a8[cQ]}};this.deleteCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0){delete a8[cQ]}};this.setCustomVariable=function(cR,cQ,cU,cS){var cT;if(!G(cS)){cS="visit"}if(!G(cQ)){return -}if(!G(cU)){cU=""}if(cR>0){cQ=!u(cQ)?String(cQ):cQ;cU=!u(cU)?String(cU):cU;cT=[cQ.slice(0,be),cU.slice(0,be)];if(cS==="visit"||cS===2){ch();aG[cR]=cT}else{if(cS==="page"||cS===3){bC[cR]=cT}else{if(cS==="event"){b2[cR]=cT}}}}};this.getCustomVariable=function(cR,cS){var cQ;if(!G(cS)){cS="visit"}if(cS==="page"||cS===3){cQ=bC[cR]}else{if(cS==="event"){cQ=b2[cR]}else{if(cS==="visit"||cS===2){ch();cQ=aG[cR]}}}if(!G(cQ)||(cQ&&cQ[0]==="")){return false}return cQ};this.deleteCustomVariable=function(cQ,cR){if(this.getCustomVariable(cQ,cR)){this.setCustomVariable(cQ,"","",cR)}};this.storeCustomVariablesInCookie=function(){bx=true};this.setLinkTrackingTimer=function(cQ){bq=cQ};this.setDownloadExtensions=function(cQ){if(u(cQ)){cQ=cQ.split("|")}cF=cQ};this.addDownloadExtensions=function(cR){var cQ;if(u(cR)){cR=cR.split("|")}for(cQ=0;cQ1){ad("The method "+ai+' 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')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah;if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah; -ah0){cU=parseInt(cU,10); +cX(cU)}})}function ci(){var cR,cT,cU={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(g.userAgent))){if(g.mimeTypes&&g.mimeTypes.length){for(cR in cU){if(Object.prototype.hasOwnProperty.call(cU,cR)){cT=g.mimeTypes[cU[cR]];cG[cR]=(cT&&cT.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cG.java="1"}if(x(Q.GearsFactory)){cG.gears="1"}cG.cookie=bL()}var cS=parseInt(T.width,10);var cQ=parseInt(T.height,10);cG.res=parseInt(cS,10)+"x"+parseInt(cQ,10)}ci();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cp()};this.getAttributionInfo=function(){return bt()};this.getAttributionCampaignName=function(){return bt()[0]};this.getAttributionCampaignKeyword=function(){return bt()[1] +};this.getAttributionReferrerTimestamp=function(){return bt()[2]};this.getAttributionReferrerUrl=function(){return bt()[3]};this.setTrackerUrl=function(cQ){av=cQ};this.getTrackerUrl=function(){return av};this.addTracker=function(cQ,cS){if(!cS){throw new Error("A siteId must be given to add a new tracker")}if(!G(cQ)||null===cQ){cQ=this.getTrackerUrl()}var cR=new N(cQ,cS);F.push(cR);return cR};this.getSiteId=function(){return bM};this.setSiteId=function(cQ){bJ(cQ)};this.setUserId=function(cQ){if(!G(cQ)||!cQ.length){return}bi=cQ;bv=bN(bi).substr(0,16)};this.getUserId=function(){return bi};this.setCustomData=function(cQ,cR){if(S(cQ)){ah=cQ}else{if(!ah){ah={}}ah[cQ]=cR}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cQ){bR=cQ};this.appendToTrackingUrl=function(cQ){cz=cQ};this.getRequest=function(cQ){return b8(cQ)};this.addPlugin=function(cQ,cR){a[cQ]=cR};this.setCustomDimension=function(cQ,cR){cQ=parseInt(cQ,10);if(cQ>0){if(!G(cR)){cR=""}if(!u(cR)){cR=String(cR) +}a8[cQ]=cR}};this.getCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0&&Object.prototype.hasOwnProperty.call(a8,cQ)){return a8[cQ]}};this.deleteCustomDimension=function(cQ){cQ=parseInt(cQ,10);if(cQ>0){delete a8[cQ]}};this.setCustomVariable=function(cR,cQ,cU,cS){var cT;if(!G(cS)){cS="visit"}if(!G(cQ)){return}if(!G(cU)){cU=""}if(cR>0){cQ=!u(cQ)?String(cQ):cQ;cU=!u(cU)?String(cU):cU;cT=[cQ.slice(0,be),cU.slice(0,be)];if(cS==="visit"||cS===2){ch();aG[cR]=cT}else{if(cS==="page"||cS===3){bC[cR]=cT}else{if(cS==="event"){b2[cR]=cT}}}}};this.getCustomVariable=function(cR,cS){var cQ;if(!G(cS)){cS="visit"}if(cS==="page"||cS===3){cQ=bC[cR]}else{if(cS==="event"){cQ=b2[cR]}else{if(cS==="visit"||cS===2){ch();cQ=aG[cR]}}}if(!G(cQ)||(cQ&&cQ[0]==="")){return false}return cQ};this.deleteCustomVariable=function(cQ,cR){if(this.getCustomVariable(cQ,cR)){this.setCustomVariable(cQ,"","",cR)}};this.storeCustomVariablesInCookie=function(){bx=true};this.setLinkTrackingTimer=function(cQ){bq=cQ};this.setDownloadExtensions=function(cQ){if(u(cQ)){cQ=cQ.split("|") +}cF=cQ};this.addDownloadExtensions=function(cR){var cQ;if(u(cR)){cR=cR.split("|")}for(cQ=0;cQ1){ad("The method "+ai+' 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')}an[ai]++}}}}return am}var z=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];function X(ah,aj){var ai=new N(ah,aj);F.push(ai);_paq=b(_paq,z);for(B=0;B<_paq.length;B++){if(_paq[B]){Z(_paq[B])}}_paq=new E();return ai}ag(Q,"beforeunload",ab,false);Date.prototype.getTimeAlias=Date.prototype.getTime;d={initialized:false,JSON:JSON_PIWIK,DOM:{addEventListener:function(ak,aj,ai,ah){var al=typeof ah; +if(al==="undefined"){ah=false}ag(ak,aj,ai,ah)},onLoad:l,onReady:o},on:function(ai,ah){if(!v[ai]){v[ai]=[]}v[ai].push(ah)},off:function(aj,ai){if(!v[aj]){return}var ah=0;for(ah;ah