From 1d5bbb55a4ffdfa9c40ba68a8680a7208e26adb4 Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Mon, 26 Jun 2017 13:03:46 +0200 Subject: Disallow event tracking with empty/whitespace categories (#11819) * trim event values before checking if they are empty * Prevent possible archiving failures for already tracked empty event categories * Throw exception when tracking events with empty category or action * move trim method * Log console error when tracking events without category or action * rebuilt piwik.js --- piwik.js | 107 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 54 insertions(+), 53 deletions(-) (limited to 'piwik.js') diff --git a/piwik.js b/piwik.js index a16819268a..4e9422f670 100644 --- a/piwik.js +++ b/piwik.js @@ -18,59 +18,60 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00" }else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah0){for(ad="",af>10&&(af=10); ad.length=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++; return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y(); -if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON_PIWIK=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Piwik=(function(){var p,a={},v={},D=document,g=navigator,T=screen,Q=window,h=Q.performance||Q.mozPerformance||Q.msPerformance||Q.webkitPerformance,r=Q.encodeURIComponent,P=Q.decodeURIComponent,k=unescape,F=[],B,d,aa=[]; -function n(ah){try{return P(ah)}catch(ai){return unescape(ah)}}function G(ai){var ah=typeof ai;return ah!=="undefined"}function x(ah){return typeof ah==="function"}function S(ah){return typeof ah==="object"}function u(ah){return typeof ah==="string"||ah instanceof String}function y(ai){if(!ai){return true}var ah;var aj=true;for(ah in ai){if(Object.prototype.hasOwnProperty.call(ai,ah)){aj=false}}return aj}function ad(ah){var ai=typeof console;if(ai!=="undefined"&&console&&console.error){console.error(ah)}}function Z(){var am,al,ao,ai,ah;for(am=0;am0;if(ak){an=ao.split("::");aj=an[0];ao=an[1];if("object"===typeof d[aj]&&"function"===typeof d[aj][ao]){d[aj][ao].apply(d[aj],ai)}else{if(ah){aa.push(ah)}}}else{for(al=0;al0;if(ap){an=ao.split(".");if(aj&&"object"===typeof aj[an[0]]){aj=aj[an[0]]; -ao=an[1]}else{if(ah){aa.push(ah);break}}}if(aj[ao]){aj[ao].apply(aj,ai)}else{var aq="The method '"+ao+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: http://developer.piwik.org/api-reference/tracking-javascript';ad(aq);if(!ap){throw new TypeError(aq)}}if(ao==="addTracker"){break}if(ao==="setTrackerUrl"||ao==="setSiteId"){break}}else{ao.apply(F[al],ai)}}}}}function ag(ak,aj,ai,ah){if(ak.addEventListener){ak.addEventListener(aj,ai,ah);return true}if(ak.attachEvent){return ak.attachEvent("on"+aj,ai)}ak["on"+aj]=ai}function l(ah){if(D.readyState==="complete"){ah()}else{if(Q.addEventListener){Q.addEventListener("load",ah)}else{if(Q.attachEvent){Q.attachEvent("onload",ah)}}}}function o(ak){var ah=false;if(D.attachEvent){ah=D.readyState==="complete"}else{ah=D.readyState!=="loading"}if(ah){ak();return}var aj;if(D.addEventListener){ag(D,"DOMContentLoaded",function ai(){D.removeEventListener("DOMContentLoaded",ai,false);if(!ah){ah=true;ak()}})}else{if(D.attachEvent){D.attachEvent("onreadystatechange",function ai(){if(D.readyState==="complete"){D.detachEvent("onreadystatechange",ai); -if(!ah){ah=true;ak()}}});if(D.documentElement.doScroll&&Q===Q.top){(function ai(){if(!ah){try{D.documentElement.doScroll("left")}catch(al){setTimeout(ai,0);return}ah=true;ak()}}())}}}ag(Q,"load",function(){if(!ah){ah=true;ak()}},false)}function W(ai,an,ao){if(!ai){return""}var ah="",ak,aj,al,am;for(ak in a){if(Object.prototype.hasOwnProperty.call(a,ak)){am=a[ak]&&"function"===typeof a[ak][ai];if(am){aj=a[ak][ai];al=aj(an||{},ao);if(al){ah+=al}}}}return ah}function ab(){var ah;W("unload");if(p){do{ah=new Date()}while(ah.getTimeAlias()=0;am--){al=an[am].split("=")[0];if(al===aj){an.splice(am,1)}}var aq=an.join("&");if(aq){ao=ao+"?"+aq}if(ap){ao+="#"+ap}}return ao}function e(aj,ai){var ah="[\\?&#]"+ai+"=([^&#]*)";var al=new RegExp(ah);var ak=al.exec(aj);return ak?P(ak[1]):""}function A(ah){return unescape(r(ah))}function af(ax){var aj=function(aD,aC){return(aD<>>(32-aC))},ay=function(aF){var aD="",aE,aC;for(aE=7;aE>=0;aE--){aC=(aF>>>(aE*4))&15;aD+=aC.toString(16)}return aD},am,aA,az,ai=[],aq=1732584193,ao=4023233417,an=2562383102,al=271733878,ak=3285377520,aw,av,au,at,ar,aB,ah,ap=[];ax=A(ax);ah=ax.length;for(aA=0;aA>>29);ap.push((ah<<3)&4294967295);for(am=0;amam.offsetWidth+am.scrollLeft||ao+ar-atam.offsetHeight+am.scrollTop||au+ap-atap?-1:1});if(ah.length<=1){return ah}var ai=0;var ak=0;var al=[];var aj;aj=ah[ai++];while(aj){if(aj===ah[ai]){ak=al.push(ai)}aj=ah[ai++]||null}while(ak--){ah.splice(al[ak],1) -}return ah},getAttributeValueFromNode:function(al,aj){if(!this.hasNodeAttribute(al,aj)){return}if(al&&al.getAttribute){return al.getAttribute(aj)}if(!al||!al.attributes){return}var ak=(typeof al.attributes[aj]);if("undefined"===ak){return}if(al.attributes[aj].value){return al.attributes[aj].value}if(al.attributes[aj].nodeValue){return al.attributes[aj].nodeValue}var ai;var ah=al.attributes;if(!ah){return}for(ai=0;ai1000){break}ah++}},findPieceNode:function(ai){var ah;ah=Y.findFirstNodeHavingAttribute(ai,this.CONTENT_PIECE_ATTR);if(!ah){ah=Y.findFirstNodeHavingClass(ai,this.CONTENT_PIECE_CLASS)}if(ah){return ah}return ai},findTargetNodeNoDefault:function(ah){if(!ah){return}var ai=Y.findFirstNodeHavingAttributeWithValue(ah,this.CONTENT_TARGET_ATTR);if(ai){return ai}ai=Y.findFirstNodeHavingAttribute(ah,this.CONTENT_TARGET_ATTR); -if(ai){return ai}ai=Y.findFirstNodeHavingClass(ah,this.CONTENT_TARGET_CLASS);if(ai){return ai}},findTargetNode:function(ah){var ai=this.findTargetNodeNoDefault(ah);if(ai){return ai}return ah},findContentName:function(ai){if(!ai){return}var al=Y.findFirstNodeHavingAttributeWithValue(ai,this.CONTENT_NAME_ATTR);if(al){return Y.getAttributeValueFromNode(al,this.CONTENT_NAME_ATTR)}var ah=this.findContentPiece(ai);if(ah){return this.removeDomainIfIsInLink(ah)}if(Y.hasNodeAttributeWithValue(ai,"title")){return Y.getAttributeValueFromNode(ai,"title")}var aj=this.findPieceNode(ai);if(Y.hasNodeAttributeWithValue(aj,"title")){return Y.getAttributeValueFromNode(aj,"title")}var ak=this.findTargetNode(ai);if(Y.hasNodeAttributeWithValue(ak,"title")){return Y.getAttributeValueFromNode(ak,"title")}},findContentPiece:function(ai){if(!ai){return}var ak=Y.findFirstNodeHavingAttributeWithValue(ai,this.CONTENT_PIECE_ATTR);if(ak){return Y.getAttributeValueFromNode(ak,this.CONTENT_PIECE_ATTR)}var ah=this.findPieceNode(ai); -var aj=this.findMediaUrlInNode(ah);if(aj){return this.toAbsoluteUrl(aj)}},findContentTarget:function(aj){if(!aj){return}var ak=this.findTargetNode(aj);if(Y.hasNodeAttributeWithValue(ak,this.CONTENT_TARGET_ATTR)){return Y.getAttributeValueFromNode(ak,this.CONTENT_TARGET_ATTR)}var ai;if(Y.hasNodeAttributeWithValue(ak,"href")){ai=Y.getAttributeValueFromNode(ak,"href");return this.toAbsoluteUrl(ai)}var ah=this.findPieceNode(aj);if(Y.hasNodeAttributeWithValue(ah,"href")){ai=Y.getAttributeValueFromNode(ah,"href");return this.toAbsoluteUrl(ai)}},isSameDomain:function(ah){if(!ah||!ah.indexOf){return false}if(0===ah.indexOf(this.getLocation().origin)){return true}var ai=ah.indexOf(this.getLocation().host);if(8>=ai&&0<=ai){return true}return false},removeDomainIfIsInLink:function(aj){var ai="^https?://[^/]+";var ah="^.*//[^/]+";if(aj&&aj.search&&-1!==aj.search(new RegExp(ai))&&this.isSameDomain(aj)){aj=aj.replace(new RegExp(ah),"");if(!aj){aj="/"}}return aj},findMediaUrlInNode:function(al){if(!al){return -}var aj=["img","embed","video","audio"];var ah=al.nodeName.toLowerCase();if(-1!==J(aj,ah)&&Y.findFirstNodeHavingAttributeWithValue(al,"src")){var ak=Y.findFirstNodeHavingAttributeWithValue(al,"src");return Y.getAttributeValueFromNode(ak,"src")}if(ah==="object"&&Y.hasNodeAttributeWithValue(al,"data")){return Y.getAttributeValueFromNode(al,"data")}if(ah==="object"){var am=Y.findNodesByTagName(al,"param");if(am&&am.length){var ai;for(ai=0;ai0 -}var ai=ak.clientWidth;if(Q.innerWidth&&ai>Q.innerWidth){ai=Q.innerWidth}var ah=ak.clientHeight;if(Q.innerHeight&&ah>Q.innerHeight){ah=Q.innerHeight}return((al.bottom>0||aj)&&al.right>0&&al.left=0){cV=cV.slice(0,cU)}cU=cV.lastIndexOf("/");if(cU!==cV.length-1){cV=cV.slice(0,cU+1)}return cV+cT}function cn(cV,cT){var cU;cV=String(cV).toLowerCase();cT=String(cT).toLowerCase();if(cV===cT){return true}if(cT.slice(0,1)==="."){if(cV===cT.slice(1)){return true}cU=cV.length-cT.length;if((cU>0)&&(cV.slice(cU)===cT)){return true}}return false}function b3(cT){var cU=document.createElement("a");if(cT.indexOf("//")!==0&&cT.indexOf("http")!==0){if(cT.indexOf("*")===0){cT=cT.substr(1) -}if(cT.indexOf(".")===0){cT=cT.substr(1)}cT="http://"+cT}cU.href=t.toAbsoluteUrl(cT);if(cU.pathname){return cU.pathname}return""}function aS(cU,cT){if(!ac(cT,"/")){cT="/"+cT}if(!ac(cU,"/")){cU="/"+cU}var cV=(cT==="/"||cT==="/*");if(cV){return true}if(cU===cT){return true}cT=String(cT).toLowerCase();cU=String(cU).toLowerCase();if(O(cT,"*")){cT=cT.slice(0,-1);cV=(!cT||cT==="/");if(cV){return true}if(cU===cT){return true}return cU.indexOf(cT)===0}if(!O(cU,"/")){cU+="/"}if(!O(cT,"/")){cT+="/"}return cU.indexOf(cT)===0}function ak(cX,cZ){var cU,cT,cV,cW,cY;for(cU=0;cU0)&&(cW.slice(cV)===cT)){return true}}}return false}function b8(cT,cV){var cU=new Image(1,1);cU.onload=function(){B=0;if(typeof cV==="function"){cV() -}};cT=cT.replace("send_image=0","send_image=1");cU.src=av+(av.indexOf("?")<0?"?":"&")+cT}function cG(cU,cX,cT){if(!G(cT)||null===cT){cT=true}try{var cW=Q.XMLHttpRequest?new Q.XMLHttpRequest():Q.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cW.open("POST",av,true);cW.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cT){b8(cU,cX)}else{if(this.readyState===4&&(typeof cX==="function")){cX()}}};cW.setRequestHeader("Content-Type",cf);cW.send(cU)}catch(cV){if(cT){b8(cU,cX)}}}function bY(cU){var cT=new Date();var cV=cT.getTime()+cU;if(!p||cV>p){p=cV}}function b6(cT){if(bU||!aU){return}bU=setTimeout(function cU(){bU=null;if(!a0){a0=(!D.hasFocus||D.hasFocus())}if(!a0){b6(aU);return}if(bA()){return}var cV=new Date(),cW=aU-(cV.getTime()-cB);cW=Math.min(aU,cW);b6(cW)},cT||aU)}function bt(){if(!bU){return}clearTimeout(bU);bU=null}function aY(){a0=true;if(bA()){return}b6()}function ap(){bt()}function cQ(){if(aE||!aU){return}aE=true;ag(Q,"focus",aY); -ag(Q,"blur",ap);b6()}function cj(cX){var cU=new Date();var cT=cU.getTime();cB=cT;if(ci&&cT2000){cG(cU,cV)}else{b8(cU,cV)}bY(cT)})}if(!aE){cQ()}else{b6()}}function b2(cT){if(cu){return false}return(cT&&cT.length)}function cP(cV,cT){if(!b2(cV)){return}var cU='{"requests":["?'+cV.join('","?')+'"]}';cj(function(){cG(cU,null,false);bY(cT)})}function aJ(cT){return a6+cT+"."+bO+"."+ba}function bN(){if(a7){return"0"}if(!G(g.cookieEnabled)){var cT=aJ("testcookie");cO(cT,"1");return au(cT)==="1"?"1":"0"}return g.cookieEnabled?"1":"0"}function a4(){ba=bP((cA||cy)+(bb||"/")).slice(0,4)}function bF(){var cU=aJ("cvar"),cT=au(cU);if(cT.length){cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}return{}}function ck(){if(aG===false){aG=bF()}}function cv(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)+(new Date()).getTime()+Math.random()).slice(0,16) -}function aq(){return bP((g.userAgent||"")+(g.platform||"")+JSON_PIWIK.stringify(cJ)).slice(0,6)}function a2(){return Math.floor((new Date()).getTime()/1000)}function aA(){var cU=a2();var cV=aq();var cT=String(cU)+cV;return cT}function cF(cW){cW=String(cW);var cZ=aq();var cX=cZ.length;var cY=cW.substr(-1*cX,cX);var cV=parseInt(cW.substr(0,cW.length-cX),10);if(cV&&cY&&cY===cZ){var cT=a2();var cU=45;if(cT>=cV&&cT<=(cV+cU)){return true}}return false}function cR(cT){if(!cr){return""}var cX=e(cT,an);if(!cX){return""}cX=String(cX);var cV=new RegExp("^[a-zA-Z0-9]+$");if(cX.length===32&&cV.test(cX)){var cU=cX.substr(16,32);if(cF(cU)){var cW=cX.substr(0,16);return cW}}return""}function cs(){if(!bx){bx=cR(bw)}var cV=new Date(),cT=Math.round(cV.getTime()/1000),cU=aJ("id"),cY=au(cU),cX,cW;if(cY){cX=cY.split(".");cX.unshift("0");if(bx.length){cX[1]=bx}return cX}if(bx.length){cW=bx}else{if("0"===bN()){cW=""}else{cW=cv()}}cX=["1",cW,cT,0,cT,"",""];return cX}function aN(){var c0=cs(),cW=c0[0],cX=c0[1],cU=c0[2],cT=c0[3],cY=c0[4],cV=c0[5]; -if(!G(c0[6])){c0[6]=""}var cZ=c0[6];return{newVisitor:cW,uuid:cX,createTs:cU,visitCount:cT,currentVisitTs:cY,lastVisitTs:cV,lastEcommerceOrderTs:cZ}}function ay(){var cW=new Date(),cU=cW.getTime(),cX=aN().createTs;var cT=parseInt(cX,10);var cV=(cT*1000)+cp-cU;return cV}function aC(cT){if(!bO){return}var cV=new Date(),cU=Math.round(cV.getTime()/1000);if(!G(cT)){cT=aN()}var cW=cT.uuid+"."+cT.createTs+"."+cT.visitCount+"."+cU+"."+cT.lastVisitTs+"."+cT.lastEcommerceOrderTs;cO(aJ("id"),cW,ay(),bb,cA)}function bv(){var cT=au(aJ("ref"));if(cT.length){try{cT=JSON_PIWIK.parse(cT);if(S(cT)){return cT}}catch(cU){}}return["","",0,""]}function bG(cV,cU,cT){cO(cV,"",-86400,cU,cT)}function bh(cU){var cT="testvalue";cO("test",cT,10000,null,cU);if(au("test")===cT){bG("test",null,cU);return true}return false}function aw(){var cU=a7;a7=false;var cT,cV;for(cT=0;cTdi){c9.visitCount++;c9.lastVisitTs=c9.currentVisitTs}if(!bg||!c1.length){for(df in b9){if(Object.prototype.hasOwnProperty.call(b9,df)){c1=e(dj,b9[df]);if(c1.length){break}}}for(df in bp){if(Object.prototype.hasOwnProperty.call(bp,df)){cT=e(dj,bp[df]); -if(cT.length){break}}}}dm=c(a9);c4=de.length?c(de):"";if(dm.length&&!aL(dm)&&(!bg||!c4.length||aL(c4))){de=a9}if(de.length||c1.length){c0=c3;dd=[c1,cT,c0,bK(de.slice(0,cX))];cO(da,JSON_PIWIK.stringify(dd),cH,bb,cA)}}cV+="&idsite="+bO+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cU.getHours()+"&m="+cU.getMinutes()+"&s="+cU.getSeconds()+"&url="+r(bK(dj))+(a9.length?"&urlref="+r(bK(a9)):"")+((bj&&bj.length)?"&uid="+r(bj):"")+"&_id="+c9.uuid+"&_idts="+c9.createTs+"&_idvc="+c9.visitCount+"&_idn="+c9.newVisitor+(c1.length?"&_rcn="+r(c1):"")+(cT.length?"&_rck="+r(cT):"")+"&_refts="+c0+"&_viewts="+c9.lastVisitTs+(String(c9.lastEcommerceOrderTs).length?"&_ects="+c9.lastEcommerceOrderTs:"")+(String(de).length?"&_ref="+r(bK(de.slice(0,cX))):"")+(c6?"&cs="+r(c6):"")+"&send_image=0";for(df in cJ){if(Object.prototype.hasOwnProperty.call(cJ,df)){cV+="&"+df+"="+cJ[df]}}var dl=[];if(dg){for(df in dg){if(Object.prototype.hasOwnProperty.call(dg,df)&&/^dimension\d+$/.test(df)){var cZ=df.replace("dimension",""); -dl.push(parseInt(cZ,10));dl.push(String(cZ));cV+="&"+df+"="+dg[df];delete dg[df]}}}if(dg&&y(dg)){dg=null}for(df in a8){if(Object.prototype.hasOwnProperty.call(a8,df)){var c5=(-1===J(dl,df));if(c5){cV+="&dimension"+df+"="+a8[df]}}}if(dg){cV+="&data="+r(JSON_PIWIK.stringify(dg))}else{if(ah){cV+="&data="+r(JSON_PIWIK.stringify(ah))}}function c2(dn,dp){var dq=JSON_PIWIK.stringify(dn);if(dq.length>2){return"&"+dp+"="+r(dq)}return""}var dk=cS(bE);var db=cS(b4);cV+=c2(dk,"cvar");cV+=c2(db,"e_cvar");if(aG){cV+=c2(aG,"_cvar");for(df in dc){if(Object.prototype.hasOwnProperty.call(dc,df)){if(aG[df][0]===""||aG[df][1]===""){delete aG[df]}}}if(bz){cO(c7,JSON_PIWIK.stringify(aG),b7,bb,cA)}}if(aR){if(b5){cV+=">_ms="+b5}else{if(h&&h.timing&&h.timing.requestStart&&h.timing.responseEnd){cV+=">_ms="+(h.timing.responseEnd-h.timing.requestStart)}}}if(aB){cV+="&pv_id="+aB}c9.lastEcommerceOrderTs=G(cW)&&String(cW).length?cW:c9.lastEcommerceOrderTs;aC(c9);bV();cV+=W(dh,{tracker:br,request:cV});if(cC.length){cV+="&"+cC -}if(x(bT)){cV=bT(cV)}return cV}bA=function aV(){var cT=new Date();if(cB+aU<=cT.getTime()){var cU=cb("ping=1",null,"ping");bo(cU,bs);return true}return false};function bc(cW,cV,c1,cX,cT,c4){var cZ="idgoal=0",c0,cU=new Date(),c2=[],c3,cY=String(cW).length;if(cY){cZ+="&ec_id="+r(cW);c0=Math.round(cU.getTime()/1000)}cZ+="&revenue="+cV;if(String(c1).length){cZ+="&ec_st="+c1}if(String(cX).length){cZ+="&ec_tx="+cX}if(String(cT).length){cZ+="&ec_sh="+cT}if(String(c4).length){cZ+="&ec_dt="+c4}if(cD){for(c3 in cD){if(Object.prototype.hasOwnProperty.call(cD,c3)){if(!G(cD[c3][1])){cD[c3][1]=""}if(!G(cD[c3][2])){cD[c3][2]=""}if(!G(cD[c3][3])||String(cD[c3][3]).length===0){cD[c3][3]=0}if(!G(cD[c3][4])||String(cD[c3][4]).length===0){cD[c3][4]=1}c2.push(cD[c3])}}cZ+="&ec_items="+r(JSON_PIWIK.stringify(c2))}cZ=cb(cZ,ah,"ecommerce",c0);bo(cZ,bs);if(cY){cD={}}}function bH(cT,cX,cW,cV,cU,cY){if(String(cT).length&&G(cX)){bc(cT,cX,cW,cV,cU,cY)}}function bd(cT){if(G(cT)){bc("",cT,"","","","")}}function bI(cU,cW,cV){aB=a3(); -var cT=cb("action_name="+r(ae(cU||a5)),cW,"log");bo(cT,bs,cV)}function aP(cV,cU){var cW,cT="(^| )(piwik[_-]"+cU;if(cV){for(cW=0;cW0){cU+="&"}else{cU+="?"}var cW=aN().uuid;var cV=aA();cU=C(cU,an,cW+cV);Y.setAnyAttribute(cT,"href",cU)}function ar(cW){var cX=Y.getAttributeValueFromNode(cW,"href");if(!cX){return false}cX=String(cX);var cU=cX.indexOf("//")===0||cX.indexOf("http://")===0||cX.indexOf("https://")===0; -if(!cU){return false}var cT=cW.pathname||b3(cW.href);var cV=(cW.hostname||c(cW.href)).toLowerCase();if(ak(cV,cT)){if(!cn(cy,I(cV))){return true}return false}return false}function cm(cT){var cU=cM(cT);if(cU&&cU.type){cU.href=n(cU.href);cE(cU.href,cU.type,undefined,null,cT);return}if(cr){cT=am(cT);if(ar(cT)){b1(cT)}}}function ce(){return D.all&&!D.addEventListener}function cz(cT){var cV=cT.which;var cU=(typeof cT.button);if(!cV&&cU!=="undefined"){if(ce()){if(cT.button&1){cV=1}else{if(cT.button&2){cV=3}else{if(cT.button&4){cV=2}}}}else{if(cT.button===0||cT.button==="0"){cV=1}else{if(cT.button&1){cV=2}else{if(cT.button&2){cV=3}}}}}return cV}function bB(cT){switch(cz(cT)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aQ(cT){return cT.target||cT.srcElement}function at(cT){return function(cW){cW=cW||Q.event;var cV=bB(cW);var cX=aQ(cW);if(cW.type==="click"){var cU=false;if(cT&&cV==="middle"){cU=true}if(cX&&!cU){cm(cX)}}else{if(cW.type==="mousedown"){if(cV==="middle"&&cX){aH=cV; -bl=cX}else{aH=bl=null}}else{if(cW.type==="mouseup"){if(cV===aH&&cX===bl){cm(cX)}aH=bl=null}else{if(cW.type==="contextmenu"){cm(cX)}}}}}}function aj(cV,cU){var cT=typeof cU;if(cT==="undefined"){cU=true}ag(cV,"click",at(cU),false);if(cU){ag(cV,"mouseup",at(cU),false);ag(cV,"mousedown",at(cU),false);ag(cV,"contextmenu",at(cU),false)}}function bm(cV,cX){ai=true;var cW,cU=aP(bk,"ignore"),cY=D.links,cT=null,cZ=null;if(cY){for(cW=0;cW0){cX=parseInt(cX,10);c0(cX)}})}function cl(){var cU,cW,cX={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(cU in cX){if(Object.prototype.hasOwnProperty.call(cX,cU)){cW=g.mimeTypes[cX[cU]];cJ[cU]=(cW&&cW.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&G(g.javaEnabled)&&g.javaEnabled()){cJ.java="1"}if(x(Q.GearsFactory)){cJ.gears="1"}cJ.cookie=bN()}var cV=parseInt(T.width,10);var cT=parseInt(T.height,10);cJ.res=parseInt(cV,10)+"x"+parseInt(cT,10)}cl();a4();aC();this.getVisitorId=function(){return aN().uuid};this.getVisitorInfo=function(){return cs()};this.getAttributionInfo=function(){return bv() -};this.getAttributionCampaignName=function(){return bv()[0]};this.getAttributionCampaignKeyword=function(){return bv()[1]};this.getAttributionReferrerTimestamp=function(){return bv()[2]};this.getAttributionReferrerUrl=function(){return bv()[3]};this.setTrackerUrl=function(cT){av=cT};this.getTrackerUrl=function(){return av};this.getPiwikUrl=function(){return L(this.getTrackerUrl(),bq)};this.addTracker=function(cT,cV){if(!cV){throw new Error("A siteId must be given to add a new tracker")}if(!G(cT)||null===cT){cT=this.getTrackerUrl()}var cU=new N(cT,cV);F.push(cU);return cU};this.getSiteId=function(){return bO};this.setSiteId=function(cT){bL(cT)};this.setUserId=function(cT){if(!G(cT)||!cT.length){return}bj=cT;bx=bP(bj).substr(0,16)};this.getUserId=function(){return bj};this.setCustomData=function(cT,cU){if(S(cT)){ah=cT}else{if(!ah){ah={}}ah[cT]=cU}};this.getCustomData=function(){return ah};this.setCustomRequestProcessing=function(cT){bT=cT};this.appendToTrackingUrl=function(cT){cC=cT};this.getRequest=function(cT){return cb(cT) -};this.addPlugin=function(cT,cU){a[cT]=cU};this.setCustomDimension=function(cT,cU){cT=parseInt(cT,10);if(cT>0){if(!G(cU)){cU=""}if(!u(cU)){cU=String(cU)}a8[cT]=cU}};this.getCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0&&Object.prototype.hasOwnProperty.call(a8,cT)){return a8[cT]}};this.deleteCustomDimension=function(cT){cT=parseInt(cT,10);if(cT>0){delete a8[cT]}};this.setCustomVariable=function(cU,cT,cX,cV){var cW;if(!G(cV)){cV="visit"}if(!G(cT)){return}if(!G(cX)){cX=""}if(cU>0){cT=!u(cT)?String(cT):cT;cX=!u(cX)?String(cX):cX;cW=[cT.slice(0,be),cX.slice(0,be)];if(cV==="visit"||cV===2){ck();aG[cU]=cW}else{if(cV==="page"||cV===3){bE[cU]=cW}else{if(cV==="event"){b4[cU]=cW}}}}};this.getCustomVariable=function(cU,cV){var cT;if(!G(cV)){cV="visit"}if(cV==="page"||cV===3){cT=bE[cU]}else{if(cV==="event"){cT=b4[cU]}else{if(cV==="visit"||cV===2){ck();cT=aG[cU]}}}if(!G(cT)||(cT&&cT[0]==="")){return false}return cT};this.deleteCustomVariable=function(cT,cU){if(this.getCustomVariable(cT,cU)){this.setCustomVariable(cT,"","",cU) -}};this.deleteCustomVariables=function(cT){if(cT==="page"||cT===3){bE={}}else{if(cT==="event"){b4={}}else{if(cT==="visit"||cT===2){aG={}}}}};this.storeCustomVariablesInCookie=function(){bz=true};this.setLinkTrackingTimer=function(cT){bs=cT};this.getLinkTrackingTimer=function(){return bs};this.setDownloadExtensions=function(cT){if(u(cT)){cT=cT.split("|")}cI=cT};this.addDownloadExtensions=function(cU){var cT;if(u(cU)){cU=cU.split("|")}for(cT=0;cT1){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,isNodeVisible:i,isOrWasNodeVisible:t.isNodeVisible},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;if(al){ao=ap.split("::");ak=ao[0];ap=ao[1];if("object"===typeof e[ak]&&"function"===typeof e[ak][ap]){e[ak][ap].apply(e[ak],aj)}else{if(ai){ab.push(ai)}}}else{for(am=0;am0;if(aq){ao=ap.split(".");if(ak&&"object"===typeof ak[ao[0]]){ak=ak[ao[0]]; +ap=ao[1]}else{if(ai){ab.push(ai);break}}}if(ak[ap]){ak[ap].apply(ak,aj)}else{var ar="The method '"+ap+'\' was not found in "_paq" variable. Please have a look at the Piwik tracker documentation: http://developer.piwik.org/api-reference/tracking-javascript';ae(ar);if(!aq){throw new TypeError(ar)}}if(ap==="addTracker"){break}if(ap==="setTrackerUrl"||ap==="setSiteId"){break}}else{ap.apply(G[am],aj)}}}}}function ah(al,ak,aj,ai){if(al.addEventListener){al.addEventListener(ak,aj,ai);return true}if(al.attachEvent){return al.attachEvent("on"+ak,aj)}al["on"+ak]=aj}function m(ai){if(E.readyState==="complete"){ai()}else{if(R.addEventListener){R.addEventListener("load",ai)}else{if(R.attachEvent){R.attachEvent("onload",ai)}}}}function p(al){var ai=false;if(E.attachEvent){ai=E.readyState==="complete"}else{ai=E.readyState!=="loading"}if(ai){al();return}var ak;if(E.addEventListener){ah(E,"DOMContentLoaded",function aj(){E.removeEventListener("DOMContentLoaded",aj,false);if(!ai){ai=true;al()}})}else{if(E.attachEvent){E.attachEvent("onreadystatechange",function aj(){if(E.readyState==="complete"){E.detachEvent("onreadystatechange",aj); +if(!ai){ai=true;al()}}});if(E.documentElement.doScroll&&R===R.top){(function aj(){if(!ai){try{E.documentElement.doScroll("left")}catch(am){setTimeout(aj,0);return}ai=true;al()}}())}}}ah(R,"load",function(){if(!ai){ai=true;al()}},false)}function X(aj,ao,ap){if(!aj){return""}var ai="",al,ak,am,an;for(al in b){if(Object.prototype.hasOwnProperty.call(b,al)){an=b[al]&&"function"===typeof b[al][aj];if(an){ak=b[al][aj];am=ak(ao||{},ap);if(am){ai+=am}}}}return ai}function ac(){var ai;X("unload");if(q){do{ai=new Date()}while(ai.getTimeAlias()=0;an--){am=ao[an].split("=")[0];if(am===ak){ao.splice(an,1)}}var ar=ao.join("&");if(ar){ap=ap+"?"+ar}if(aq){ap+="#"+aq}}return ap}function f(ak,aj){var ai="[\\?&#]"+aj+"=([^&#]*)";var am=new RegExp(ai);var al=am.exec(ak);return al?Q(al[1]):""}function a(ai){if(ai&&String(ai)===ai){return ai.replace(/^\s+|\s+$/g,"")}return ai}function B(ai){return unescape(s(ai))}function ag(ay){var ak=function(aE,aD){return(aE<>>(32-aD))},az=function(aG){var aE="",aF,aD;for(aF=7;aF>=0;aF--){aD=(aG>>>(aF*4))&15;aE+=aD.toString(16)}return aE},an,aB,aA,aj=[],ar=1732584193,ap=4023233417,ao=2562383102,am=271733878,al=3285377520,ax,aw,av,au,at,aC,ai,aq=[];ay=B(ay);ai=ay.length;for(aB=0;aB>>29);aq.push((ai<<3)&4294967295);for(an=0;anan.offsetWidth+an.scrollLeft||ap+at-auan.offsetHeight+an.scrollTop||av+aq-auaq?-1:1});if(ai.length<=1){return ai}var aj=0;var al=0;var am=[];var ak;ak=ai[aj++];while(ak){if(ak===ai[aj]){al=am.push(aj) +}ak=ai[aj++]||null}while(al--){ai.splice(am[al],1)}return ai},getAttributeValueFromNode:function(am,ak){if(!this.hasNodeAttribute(am,ak)){return}if(am&&am.getAttribute){return am.getAttribute(ak)}if(!am||!am.attributes){return}var al=(typeof am.attributes[ak]);if("undefined"===al){return}if(am.attributes[ak].value){return am.attributes[ak].value}if(am.attributes[ak].nodeValue){return am.attributes[ak].nodeValue}var aj;var ai=am.attributes;if(!ai){return}for(aj=0;aj1000){break}ai++}},findPieceNode:function(aj){var ai;ai=Z.findFirstNodeHavingAttribute(aj,this.CONTENT_PIECE_ATTR);if(!ai){ai=Z.findFirstNodeHavingClass(aj,this.CONTENT_PIECE_CLASS)}if(ai){return ai}return aj},findTargetNodeNoDefault:function(ai){if(!ai){return}var aj=Z.findFirstNodeHavingAttributeWithValue(ai,this.CONTENT_TARGET_ATTR); +if(aj){return aj}aj=Z.findFirstNodeHavingAttribute(ai,this.CONTENT_TARGET_ATTR);if(aj){return aj}aj=Z.findFirstNodeHavingClass(ai,this.CONTENT_TARGET_CLASS);if(aj){return aj}},findTargetNode:function(ai){var aj=this.findTargetNodeNoDefault(ai);if(aj){return aj}return ai},findContentName:function(aj){if(!aj){return}var am=Z.findFirstNodeHavingAttributeWithValue(aj,this.CONTENT_NAME_ATTR);if(am){return Z.getAttributeValueFromNode(am,this.CONTENT_NAME_ATTR)}var ai=this.findContentPiece(aj);if(ai){return this.removeDomainIfIsInLink(ai)}if(Z.hasNodeAttributeWithValue(aj,"title")){return Z.getAttributeValueFromNode(aj,"title")}var ak=this.findPieceNode(aj);if(Z.hasNodeAttributeWithValue(ak,"title")){return Z.getAttributeValueFromNode(ak,"title")}var al=this.findTargetNode(aj);if(Z.hasNodeAttributeWithValue(al,"title")){return Z.getAttributeValueFromNode(al,"title")}},findContentPiece:function(aj){if(!aj){return}var al=Z.findFirstNodeHavingAttributeWithValue(aj,this.CONTENT_PIECE_ATTR);if(al){return Z.getAttributeValueFromNode(al,this.CONTENT_PIECE_ATTR) +}var ai=this.findPieceNode(aj);var ak=this.findMediaUrlInNode(ai);if(ak){return this.toAbsoluteUrl(ak)}},findContentTarget:function(ak){if(!ak){return}var al=this.findTargetNode(ak);if(Z.hasNodeAttributeWithValue(al,this.CONTENT_TARGET_ATTR)){return Z.getAttributeValueFromNode(al,this.CONTENT_TARGET_ATTR)}var aj;if(Z.hasNodeAttributeWithValue(al,"href")){aj=Z.getAttributeValueFromNode(al,"href");return this.toAbsoluteUrl(aj)}var ai=this.findPieceNode(ak);if(Z.hasNodeAttributeWithValue(ai,"href")){aj=Z.getAttributeValueFromNode(ai,"href");return this.toAbsoluteUrl(aj)}},isSameDomain:function(ai){if(!ai||!ai.indexOf){return false}if(0===ai.indexOf(this.getLocation().origin)){return true}var aj=ai.indexOf(this.getLocation().host);if(8>=aj&&0<=aj){return true}return false},removeDomainIfIsInLink:function(ak){var aj="^https?://[^/]+";var ai="^.*//[^/]+";if(ak&&ak.search&&-1!==ak.search(new RegExp(aj))&&this.isSameDomain(ak)){ak=ak.replace(new RegExp(ai),"");if(!ak){ak="/"}}return ak},findMediaUrlInNode:function(am){if(!am){return +}var ak=["img","embed","video","audio"];var ai=am.nodeName.toLowerCase();if(-1!==K(ak,ai)&&Z.findFirstNodeHavingAttributeWithValue(am,"src")){var al=Z.findFirstNodeHavingAttributeWithValue(am,"src");return Z.getAttributeValueFromNode(al,"src")}if(ai==="object"&&Z.hasNodeAttributeWithValue(am,"data")){return Z.getAttributeValueFromNode(am,"data")}if(ai==="object"){var an=Z.findNodesByTagName(am,"param");if(an&&an.length){var aj;for(aj=0;aj0}var aj=al.clientWidth;if(R.innerWidth&&aj>R.innerWidth){aj=R.innerWidth +}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